/* * This is the source code of Telegram for Android v. 5.x.x. * It is licensed under GNU GPL v. 2 or later. * You should have received a copy of the license in this archive (see LICENSE). * * Copyright Nikolai Kudashov, 2013-2018. */ package org.telegram.tgnet; import android.text.TextUtils; import java.util.ArrayList; import java.util.HashMap; @SuppressWarnings("unchecked") public class TLRPC { public static final int USER_FLAG_ACCESS_HASH = 0x00000001; public static final int USER_FLAG_FIRST_NAME = 0x00000002; public static final int USER_FLAG_LAST_NAME = 0x00000004; public static final int USER_FLAG_USERNAME = 0x00000008; public static final int USER_FLAG_PHONE = 0x00000010; public static final int USER_FLAG_PHOTO = 0x00000020; public static final int USER_FLAG_STATUS = 0x00000040; public static final int USER_FLAG_UNUSED = 0x00000080; public static final int USER_FLAG_UNUSED2 = 0x00000100; public static final int USER_FLAG_UNUSED3 = 0x00000200; //public static final int USER_FLAG_SELF = 0x00000400; //public static final int USER_FLAG_CONTACT = 0x00000800; //public static final int USER_FLAG_MUTUAL_CONTACT = 0x00001000; //public static final int USER_FLAG_DELETED = 0x00002000; //public static final int USER_FLAG_BOT = 0x00004000; //public static final int USER_FLAG_BOT_READING_HISTORY = 0x00008000; //public static final int USER_FLAG_BOT_CANT_JOIN_GROUP = 0x00010000; //public static final int USER_FLAG_VERIFIED = 0x00020000; //public static final int CHAT_FLAG_CREATOR = 0x00000001; //public static final int CHAT_FLAG_USER_KICKED = 0x00000002; //public static final int CHAT_FLAG_USER_LEFT = 0x00000004; //public static final int CHAT_FLAG_USER_IS_EDITOR = 0x00000008; //public static final int CHAT_FLAG_USER_IS_MODERATOR = 0x00000010; //public static final int CHAT_FLAG_IS_BROADCAST = 0x00000020; public static final int CHAT_FLAG_IS_PUBLIC = 0x00000040; //public static final int CHAT_FLAG_IS_VERIFIED = 0x00000080; //public static final int MESSAGE_FLAG_UNREAD = 0x00000001; //public static final int MESSAGE_FLAG_OUT = 0x00000002; public static final int MESSAGE_FLAG_FWD = 0x00000004; public static final int MESSAGE_FLAG_REPLY = 0x00000008; //public static final int MESSAGE_FLAG_MENTION = 0x00000010; //public static final int MESSAGE_FLAG_CONTENT_UNREAD = 0x00000020; public static final int MESSAGE_FLAG_HAS_MARKUP = 0x00000040; public static final int MESSAGE_FLAG_HAS_ENTITIES = 0x00000080; public static final int MESSAGE_FLAG_HAS_FROM_ID = 0x00000100; public static final int MESSAGE_FLAG_HAS_MEDIA = 0x00000200; public static final int MESSAGE_FLAG_HAS_VIEWS = 0x00000400; public static final int MESSAGE_FLAG_HAS_BOT_ID = 0x00000800; public static final int MESSAGE_FLAG_EDITED = 0x00008000; public static final int MESSAGE_FLAG_MEGAGROUP = 0x80000000; public static final int LAYER = 96; public static class TL_chatBannedRights extends TLObject { public static int constructor = 0x9f120418; public int flags; public boolean view_messages; public boolean send_messages; public boolean send_media; public boolean send_stickers; public boolean send_gifs; public boolean send_games; public boolean send_inline; public boolean embed_links; public boolean send_polls; public boolean change_info; public boolean invite_users; public boolean pin_messages; public int until_date; public static TL_chatBannedRights TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_chatBannedRights.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_chatBannedRights", constructor)); } else { return null; } } TL_chatBannedRights result = new TL_chatBannedRights(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); view_messages = (flags & 1) != 0; send_messages = (flags & 2) != 0; send_media = (flags & 4) != 0; send_stickers = (flags & 8) != 0; send_gifs = (flags & 16) != 0; send_games = (flags & 32) != 0; send_inline = (flags & 64) != 0; embed_links = (flags & 128) != 0; send_polls = (flags & 256) != 0; change_info = (flags & 1024) != 0; invite_users = (flags & 32768) != 0; pin_messages = (flags & 131072) != 0; until_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = view_messages ? (flags | 1) : (flags &~ 1); flags = send_messages ? (flags | 2) : (flags &~ 2); flags = send_media ? (flags | 4) : (flags &~ 4); flags = send_stickers ? (flags | 8) : (flags &~ 8); flags = send_gifs ? (flags | 16) : (flags &~ 16); flags = send_games ? (flags | 32) : (flags &~ 32); flags = send_inline ? (flags | 64) : (flags &~ 64); flags = embed_links ? (flags | 128) : (flags &~ 128); flags = send_polls ? (flags | 256) : (flags &~ 256); flags = change_info ? (flags | 1024) : (flags &~ 1024); flags = invite_users ? (flags | 32768) : (flags &~ 32768); flags = pin_messages ? (flags | 131072) : (flags &~ 131072); stream.writeInt32(flags); stream.writeInt32(until_date); } } public static abstract class DraftMessage extends TLObject { public int flags; public boolean no_webpage; public int reply_to_msg_id; public String message; public ArrayList entities = new ArrayList<>(); public int date; public static DraftMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DraftMessage result = null; switch (constructor) { case 0x1b0c841a: result = new TL_draftMessageEmpty(); break; case 0xba4baec5: result = new TL_draftMessageEmpty_layer81(); break; case 0xfd8e711f: result = new TL_draftMessage(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DraftMessage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_draftMessageEmpty extends DraftMessage { public static int constructor = 0x1b0c841a; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { date = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(date); } } } public static class TL_draftMessageEmpty_layer81 extends TL_draftMessageEmpty { public static int constructor = 0xba4baec5; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_draftMessage extends DraftMessage { public static int constructor = 0xfd8e711f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); no_webpage = (flags & 2) != 0; if ((flags & 1) != 0) { reply_to_msg_id = stream.readInt32(exception); } message = stream.readString(exception); if ((flags & 8) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = no_webpage ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeString(message); if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } stream.writeInt32(date); } } public static abstract class ChatPhoto extends TLObject { public FileLocation photo_small; public FileLocation photo_big; public static ChatPhoto TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatPhoto result = null; switch (constructor) { case 0x37c1011c: result = new TL_chatPhotoEmpty(); break; case 0x6153276a: result = new TL_chatPhoto(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChatPhoto", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_chatPhotoEmpty extends ChatPhoto { public static int constructor = 0x37c1011c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_chatPhoto extends ChatPhoto { public static int constructor = 0x6153276a; public void readParams(AbstractSerializedData stream, boolean exception) { photo_small = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); photo_big = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo_small.serializeToStream(stream); photo_big.serializeToStream(stream); } } public static class TL_help_termsOfService extends TLObject { public static int constructor = 0x780a0310; public int flags; public boolean popup; public TL_dataJSON id; public String text; public ArrayList entities = new ArrayList<>(); public int min_age_confirm; public static TL_help_termsOfService TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_help_termsOfService.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_help_termsOfService", constructor)); } else { return null; } } TL_help_termsOfService result = new TL_help_termsOfService(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); popup = (flags & 1) != 0; id = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); text = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } if ((flags & 2) != 0) { min_age_confirm = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = popup ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); id.serializeToStream(stream); stream.writeString(text); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeInt32(min_age_confirm); } } } public static class TL_payments_paymentReceipt extends TLObject { public static int constructor = 0x500911e1; public int flags; public int date; public int bot_id; public TL_invoice invoice; public int provider_id; public TL_paymentRequestedInfo info; public TL_shippingOption shipping; public String currency; public long total_amount; public String credentials_title; public ArrayList users = new ArrayList<>(); public static TL_payments_paymentReceipt TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_payments_paymentReceipt.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_payments_paymentReceipt", constructor)); } else { return null; } } TL_payments_paymentReceipt result = new TL_payments_paymentReceipt(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); date = stream.readInt32(exception); bot_id = stream.readInt32(exception); invoice = TL_invoice.TLdeserialize(stream, stream.readInt32(exception), exception); provider_id = stream.readInt32(exception); if ((flags & 1) != 0) { info = TL_paymentRequestedInfo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { shipping = TL_shippingOption.TLdeserialize(stream, stream.readInt32(exception), exception); } currency = stream.readString(exception); total_amount = stream.readInt64(exception); credentials_title = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(date); stream.writeInt32(bot_id); invoice.serializeToStream(stream); stream.writeInt32(provider_id); if ((flags & 1) != 0) { info.serializeToStream(stream); } if ((flags & 2) != 0) { shipping.serializeToStream(stream); } stream.writeString(currency); stream.writeInt64(total_amount); stream.writeString(credentials_title); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class NotifyPeer extends TLObject { public static NotifyPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { NotifyPeer result = null; switch (constructor) { case 0xd612e8ef: result = new TL_notifyBroadcasts(); break; case 0xc007cec3: result = new TL_notifyChats(); break; case 0xb4c83b4c: result = new TL_notifyUsers(); break; case 0x9fd40bd8: result = new TL_notifyPeer(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in NotifyPeer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_notifyBroadcasts extends NotifyPeer { public static int constructor = 0xd612e8ef; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_notifyChats extends NotifyPeer { public static int constructor = 0xc007cec3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_notifyUsers extends NotifyPeer { public static int constructor = 0xb4c83b4c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_notifyPeer extends NotifyPeer { public static int constructor = 0x9fd40bd8; public Peer peer; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static abstract class messages_SentEncryptedMessage extends TLObject { public int date; public EncryptedFile file; public static messages_SentEncryptedMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_SentEncryptedMessage result = null; switch (constructor) { case 0x560f8935: result = new TL_messages_sentEncryptedMessage(); break; case 0x9493ff32: result = new TL_messages_sentEncryptedFile(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_SentEncryptedMessage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_sentEncryptedMessage extends messages_SentEncryptedMessage { public static int constructor = 0x560f8935; public void readParams(AbstractSerializedData stream, boolean exception) { date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(date); } } public static class TL_messages_sentEncryptedFile extends messages_SentEncryptedMessage { public static int constructor = 0x9493ff32; public void readParams(AbstractSerializedData stream, boolean exception) { date = stream.readInt32(exception); file = EncryptedFile.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(date); file.serializeToStream(stream); } } public static class TL_error extends TLObject { public static int constructor = 0xc4b9f9bb; public int code; public String text; public static TL_error TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_error.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_error", constructor)); } else { return null; } } TL_error result = new TL_error(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { code = stream.readInt32(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(code); stream.writeString(text); } } public static class TL_auth_checkedPhone extends TLObject { public static int constructor = 0x811ea28e; public boolean phone_registered; public static TL_auth_checkedPhone TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_auth_checkedPhone.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_auth_checkedPhone", constructor)); } else { return null; } } TL_auth_checkedPhone result = new TL_auth_checkedPhone(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { phone_registered = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(phone_registered); } } public static class TL_messages_chatFull extends TLObject { public static int constructor = 0xe5d7d19c; public ChatFull full_chat; public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_messages_chatFull TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_chatFull.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_chatFull", constructor)); } else { return null; } } TL_messages_chatFull result = new TL_messages_chatFull(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { full_chat = ChatFull.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); full_chat.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_account_passwordSettings extends TLObject { public static int constructor = 0x9a5c33e5; public int flags; public String email; public TL_secureSecretSettings secure_settings; public static TL_account_passwordSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_passwordSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_passwordSettings", constructor)); } else { return null; } } TL_account_passwordSettings result = new TL_account_passwordSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { email = stream.readString(exception); } if ((flags & 2) != 0) { secure_settings = TL_secureSecretSettings.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeString(email); } if ((flags & 2) != 0) { secure_settings.serializeToStream(stream); } } } public static abstract class DocumentAttribute extends TLObject { public String alt; public InputStickerSet stickerset; public int duration; public int flags; public TL_maskCoords mask_coords; public boolean round_message; public boolean supports_streaming; public String file_name; public int w; public int h; public boolean mask; public String title; public String performer; public boolean voice; public byte[] waveform; public static DocumentAttribute TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DocumentAttribute result = null; switch (constructor) { case 0x3a556302: result = new TL_documentAttributeSticker_layer55(); break; case 0x51448e5: result = new TL_documentAttributeAudio_old(); break; case 0x6319d612: result = new TL_documentAttributeSticker(); break; case 0x11b58939: result = new TL_documentAttributeAnimated(); break; case 0x15590068: result = new TL_documentAttributeFilename(); break; case 0xef02ce6: result = new TL_documentAttributeVideo(); break; case 0x5910cccb: result = new TL_documentAttributeVideo_layer65(); break; case 0xded218e0: result = new TL_documentAttributeAudio_layer45(); break; case 0xfb0a5727: result = new TL_documentAttributeSticker_old(); break; case 0x9801d2f7: result = new TL_documentAttributeHasStickers(); break; case 0x994c9882: result = new TL_documentAttributeSticker_old2(); break; case 0x6c37c15c: result = new TL_documentAttributeImageSize(); break; case 0x9852f9c6: result = new TL_documentAttributeAudio(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DocumentAttribute", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_documentAttributeSticker_layer55 extends TL_documentAttributeSticker { public static int constructor = 0x3a556302; public void readParams(AbstractSerializedData stream, boolean exception) { alt = stream.readString(exception); stickerset = InputStickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(alt); stickerset.serializeToStream(stream); } } public static class TL_documentAttributeAudio_old extends TL_documentAttributeAudio { public static int constructor = 0x51448e5; public void readParams(AbstractSerializedData stream, boolean exception) { duration = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(duration); } } public static class TL_documentAttributeSticker extends DocumentAttribute { public static int constructor = 0x6319d612; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); mask = (flags & 2) != 0; alt = stream.readString(exception); stickerset = InputStickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { mask_coords = TL_maskCoords.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = mask ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeString(alt); stickerset.serializeToStream(stream); if ((flags & 1) != 0) { mask_coords.serializeToStream(stream); } } } public static class TL_documentAttributeAnimated extends DocumentAttribute { public static int constructor = 0x11b58939; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_documentAttributeFilename extends DocumentAttribute { public static int constructor = 0x15590068; public void readParams(AbstractSerializedData stream, boolean exception) { file_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(file_name); } } public static class TL_documentAttributeVideo extends DocumentAttribute { public static int constructor = 0xef02ce6; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); round_message = (flags & 1) != 0; supports_streaming = (flags & 2) != 0; duration = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = round_message ? (flags | 1) : (flags &~ 1); flags = supports_streaming ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(duration); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_documentAttributeVideo_layer65 extends TL_documentAttributeVideo { public static int constructor = 0x5910cccb; public void readParams(AbstractSerializedData stream, boolean exception) { duration = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(duration); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_documentAttributeAudio_layer45 extends TL_documentAttributeAudio { public static int constructor = 0xded218e0; public void readParams(AbstractSerializedData stream, boolean exception) { duration = stream.readInt32(exception); title = stream.readString(exception); performer = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(duration); stream.writeString(title); stream.writeString(performer); } } public static class TL_documentAttributeSticker_old extends TL_documentAttributeSticker { public static int constructor = 0xfb0a5727; public void readParams(AbstractSerializedData stream, boolean exception) { } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_documentAttributeHasStickers extends DocumentAttribute { public static int constructor = 0x9801d2f7; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_documentAttributeSticker_old2 extends TL_documentAttributeSticker { public static int constructor = 0x994c9882; public void readParams(AbstractSerializedData stream, boolean exception) { alt = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(alt); } } public static class TL_documentAttributeImageSize extends DocumentAttribute { public static int constructor = 0x6c37c15c; public void readParams(AbstractSerializedData stream, boolean exception) { w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_documentAttributeAudio extends DocumentAttribute { public static int constructor = 0x9852f9c6; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); voice = (flags & 1024) != 0; duration = stream.readInt32(exception); if ((flags & 1) != 0) { title = stream.readString(exception); } if ((flags & 2) != 0) { performer = stream.readString(exception); } if ((flags & 4) != 0) { waveform = stream.readByteArray(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = voice ? (flags | 1024) : (flags &~ 1024); stream.writeInt32(flags); stream.writeInt32(duration); if ((flags & 1) != 0) { stream.writeString(title); } if ((flags & 2) != 0) { stream.writeString(performer); } if ((flags & 4) != 0) { stream.writeByteArray(waveform); } } } public static class TL_textPhone extends RichText { public static int constructor = 0x1ccb966a; public RichText text; public String phone; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); phone = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); stream.writeString(phone); } } public static class TL_textSuperscript extends RichText { public static int constructor = 0xc7fb5e01; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textImage extends RichText { public static int constructor = 0x81ccf4f; public long document_id; public int w; public int h; public void readParams(AbstractSerializedData stream, boolean exception) { document_id = stream.readInt64(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(document_id); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_textEmpty extends RichText { public static int constructor = 0xdc3d824f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_textUrl extends RichText { public static int constructor = 0x3c2884c1; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); url = stream.readString(exception); webpage_id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); stream.writeString(url); stream.writeInt64(webpage_id); } } public static class TL_textAnchor extends RichText { public static int constructor = 0x35553762; public RichText text; public String name; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); stream.writeString(name); } } public static class TL_textStrike extends RichText { public static int constructor = 0x9bf8bb95; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textMarked extends RichText { public static int constructor = 0x34b8621; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textFixed extends RichText { public static int constructor = 0x6c3f19b9; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textEmail extends RichText { public static int constructor = 0xde5a0dd6; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); email = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); stream.writeString(email); } } public static class TL_textPlain extends RichText { public static int constructor = 0x744694e0; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_textConcat extends RichText { public static int constructor = 0x7e6260d7; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { RichText object = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } texts.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = texts.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { texts.get(a).serializeToStream(stream); } } } public static class TL_textBold extends RichText { public static int constructor = 0x6724abc4; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textItalic extends RichText { public static int constructor = 0xd912a59c; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textUnderline extends RichText { public static int constructor = 0xc12622c4; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_textSubscript extends RichText { public static int constructor = 0xed6a8504; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_statsURL extends TLObject { public static int constructor = 0x47a971e0; public String url; public static TL_statsURL TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_statsURL.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_statsURL", constructor)); } else { return null; } } TL_statsURL result = new TL_statsURL(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); } } public static class TL_popularContact extends TLObject { public static int constructor = 0x5ce14175; public long client_id; public int importers; public static TL_popularContact TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_popularContact.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_popularContact", constructor)); } else { return null; } } TL_popularContact result = new TL_popularContact(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { client_id = stream.readInt64(exception); importers = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(client_id); stream.writeInt32(importers); } } public static class TL_messages_botCallbackAnswer extends TLObject { public static int constructor = 0x36585ea4; public int flags; public boolean alert; public boolean has_url; public boolean native_ui; public String message; public String url; public int cache_time; public static TL_messages_botCallbackAnswer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_botCallbackAnswer.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_botCallbackAnswer", constructor)); } else { return null; } } TL_messages_botCallbackAnswer result = new TL_messages_botCallbackAnswer(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); alert = (flags & 2) != 0; has_url = (flags & 8) != 0; native_ui = (flags & 16) != 0; if ((flags & 1) != 0) { message = stream.readString(exception); } if ((flags & 4) != 0) { url = stream.readString(exception); } cache_time = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = alert ? (flags | 2) : (flags &~ 2); flags = has_url ? (flags | 8) : (flags &~ 8); flags = native_ui ? (flags | 16) : (flags &~ 16); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeString(message); } if ((flags & 4) != 0) { stream.writeString(url); } stream.writeInt32(cache_time); } } public static class TL_dataJSON extends TLObject { public static int constructor = 0x7d748d04; public String data; public static TL_dataJSON TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_dataJSON.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_dataJSON", constructor)); } else { return null; } } TL_dataJSON result = new TL_dataJSON(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { data = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(data); } } public static class TL_contactStatus extends TLObject { public static int constructor = 0xd3680c61; public int user_id; public UserStatus status; public static TL_contactStatus TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contactStatus.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contactStatus", constructor)); } else { return null; } } TL_contactStatus result = new TL_contactStatus(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); status.serializeToStream(stream); } } public static abstract class GroupCall extends TLObject { public long id; public long access_hash; public int duration; public int flags; public int channel_id; public int admin_id; public byte[] encryption_key; public long key_fingerprint; public TL_phoneCallProtocol protocol; public TL_groupCallConnection connection; public byte[] reflector_group_tag; public byte[] reflector_self_tag; public byte[] reflector_self_secret; public int participants_count; public static GroupCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { GroupCall result = null; switch (constructor) { case 0x7780bcb4: result = new TL_groupCallDiscarded(); break; case 0xa8f1624: result = new TL_groupCall(); break; case 0x6d0b1604: result = new TL_groupCallPrivate(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in GroupCall", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_groupCallDiscarded extends GroupCall { public static int constructor = 0x7780bcb4; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); duration = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(duration); } } public static class TL_groupCall extends GroupCall { public static int constructor = 0xa8f1624; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); if ((flags & 1) != 0) { channel_id = stream.readInt32(exception); } admin_id = stream.readInt32(exception); if ((flags & 2) != 0) { encryption_key = stream.readByteArray(exception); } key_fingerprint = stream.readInt64(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); connection = TL_groupCallConnection.TLdeserialize(stream, stream.readInt32(exception), exception); reflector_group_tag = stream.readByteArray(exception); reflector_self_tag = stream.readByteArray(exception); reflector_self_secret = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); if ((flags & 1) != 0) { stream.writeInt32(channel_id); } stream.writeInt32(admin_id); if ((flags & 2) != 0) { stream.writeByteArray(encryption_key); } stream.writeInt64(key_fingerprint); protocol.serializeToStream(stream); connection.serializeToStream(stream); stream.writeByteArray(reflector_group_tag); stream.writeByteArray(reflector_self_tag); stream.writeByteArray(reflector_self_secret); } } public static class TL_groupCallPrivate extends GroupCall { public static int constructor = 0x6d0b1604; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); if ((flags & 1) != 0) { channel_id = stream.readInt32(exception); } participants_count = stream.readInt32(exception); admin_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); if ((flags & 1) != 0) { stream.writeInt32(channel_id); } stream.writeInt32(participants_count); stream.writeInt32(admin_id); } } public static class TL_channelBannedRights_layer92 extends TLObject { public static int constructor = 0x58cf4249; public int flags; public boolean view_messages; public boolean send_messages; public boolean send_media; public boolean send_stickers; public boolean send_gifs; public boolean send_games; public boolean send_inline; public boolean embed_links; public int until_date; public static TL_channelBannedRights_layer92 TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channelBannedRights_layer92.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channelBannedRights_layer92", constructor)); } else { return null; } } TL_channelBannedRights_layer92 result = new TL_channelBannedRights_layer92(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); view_messages = (flags & 1) != 0; send_messages = (flags & 2) != 0; send_media = (flags & 4) != 0; send_stickers = (flags & 8) != 0; send_gifs = (flags & 16) != 0; send_games = (flags & 32) != 0; send_inline = (flags & 64) != 0; embed_links = (flags & 128) != 0; until_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = view_messages ? (flags | 1) : (flags &~ 1); flags = send_messages ? (flags | 2) : (flags &~ 2); flags = send_media ? (flags | 4) : (flags &~ 4); flags = send_stickers ? (flags | 8) : (flags &~ 8); flags = send_gifs ? (flags | 16) : (flags &~ 16); flags = send_games ? (flags | 32) : (flags &~ 32); flags = send_inline ? (flags | 64) : (flags &~ 64); flags = embed_links ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); stream.writeInt32(until_date); } } public static abstract class DialogPeer extends TLObject { public static DialogPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DialogPeer result = null; switch (constructor) { case 0xe56dbf05: result = new TL_dialogPeer(); break; case 0xda429411: result = new TL_dialogPeerFeed(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DialogPeer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_dialogPeer extends DialogPeer { public static int constructor = 0xe56dbf05; public Peer peer; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_dialogPeerFeed extends DialogPeer { public static int constructor = 0xda429411; public int feed_id; public void readParams(AbstractSerializedData stream, boolean exception) { feed_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(feed_id); } } public static class TL_auth_authorization extends TLObject { public static int constructor = 0xcd050916; public int flags; public int tmp_sessions; public User user; public static TL_auth_authorization TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_auth_authorization.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_auth_authorization", constructor)); } else { return null; } } TL_auth_authorization result = new TL_auth_authorization(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { tmp_sessions = stream.readInt32(exception); } user = User.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(tmp_sessions); } user.serializeToStream(stream); } } public static class TL_pollAnswer extends TLObject { public static int constructor = 0x6ca9c2e9; public String text; public byte[] option; public static TL_pollAnswer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pollAnswer.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pollAnswer", constructor)); } else { return null; } } TL_pollAnswer result = new TL_pollAnswer(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); option = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); stream.writeByteArray(option); } } public static abstract class JSONValue extends TLObject { public static JSONValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { JSONValue result = null; switch (constructor) { case 0xc7345e6a: result = new TL_jsonBool(); break; case 0x3f6d7b68: result = new TL_jsonNull(); break; case 0xb71e767a: result = new TL_jsonString(); break; case 0xf7444763: result = new TL_jsonArray(); break; case 0x99c1d49d: result = new TL_jsonObject(); break; case 0x2be0dfa4: result = new TL_jsonNumber(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in JSONValue", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_jsonBool extends JSONValue { public static int constructor = 0xc7345e6a; public boolean value; public void readParams(AbstractSerializedData stream, boolean exception) { value = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(value); } } public static class TL_jsonNull extends JSONValue { public static int constructor = 0x3f6d7b68; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_jsonString extends JSONValue { public static int constructor = 0xb71e767a; public String value; public void readParams(AbstractSerializedData stream, boolean exception) { value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(value); } } public static class TL_jsonArray extends JSONValue { public static int constructor = 0xf7444763; public ArrayList value = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { JSONValue object = JSONValue.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } value.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = value.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { value.get(a).serializeToStream(stream); } } } public static class TL_jsonObject extends JSONValue { public static int constructor = 0x99c1d49d; public ArrayList value = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_jsonObjectValue object = TL_jsonObjectValue.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } value.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = value.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { value.get(a).serializeToStream(stream); } } } public static class TL_jsonNumber extends JSONValue { public static int constructor = 0x2be0dfa4; public double value; public void readParams(AbstractSerializedData stream, boolean exception) { value = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(value); } } public static abstract class InputWallPaper extends TLObject { public static InputWallPaper TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputWallPaper result = null; switch (constructor) { case 0xe630b979: result = new TL_inputWallPaper(); break; case 0x72091c80: result = new TL_inputWallPaperSlug(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputWallPaper", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputWallPaper extends InputWallPaper { public static int constructor = 0xe630b979; public long id; public long access_hash; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_inputWallPaperSlug extends InputWallPaper { public static int constructor = 0x72091c80; public String slug; public void readParams(AbstractSerializedData stream, boolean exception) { slug = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(slug); } } public static abstract class messages_Messages extends TLObject { public ArrayList messages = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public int flags; public boolean inexact; public int pts; public int count; public static messages_Messages TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_Messages result = null; switch (constructor) { case 0x8c718e87: result = new TL_messages_messages(); break; case 0x99262e37: result = new TL_messages_channelMessages(); break; case 0xa6c47aaa: result = new TL_messages_messagesSlice(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_Messages", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_messages extends messages_Messages { public static int constructor = 0x8c718e87; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_messages_channelMessages extends messages_Messages { public static int constructor = 0x99262e37; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); inexact = (flags & 2) != 0; pts = stream.readInt32(exception); count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = inexact ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(pts); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_messages_messagesSlice extends messages_Messages { public static int constructor = 0xa6c47aaa; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); inexact = (flags & 2) != 0; count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = inexact ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_payments_paymentForm extends TLObject { public static int constructor = 0x3f56aea3; public int flags; public boolean can_save_credentials; public boolean password_missing; public int bot_id; public TL_invoice invoice; public int provider_id; public String url; public String native_provider; public TL_dataJSON native_params; public TL_paymentRequestedInfo saved_info; public TL_paymentSavedCredentialsCard saved_credentials; public ArrayList users = new ArrayList<>(); public static TL_payments_paymentForm TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_payments_paymentForm.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_payments_paymentForm", constructor)); } else { return null; } } TL_payments_paymentForm result = new TL_payments_paymentForm(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_save_credentials = (flags & 4) != 0; password_missing = (flags & 8) != 0; bot_id = stream.readInt32(exception); invoice = TL_invoice.TLdeserialize(stream, stream.readInt32(exception), exception); provider_id = stream.readInt32(exception); url = stream.readString(exception); if ((flags & 16) != 0) { native_provider = stream.readString(exception); } if ((flags & 16) != 0) { native_params = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 1) != 0) { saved_info = TL_paymentRequestedInfo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { saved_credentials = TL_paymentSavedCredentialsCard.TLdeserialize(stream, stream.readInt32(exception), exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_save_credentials ? (flags | 4) : (flags &~ 4); flags = password_missing ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt32(bot_id); invoice.serializeToStream(stream); stream.writeInt32(provider_id); stream.writeString(url); if ((flags & 16) != 0) { stream.writeString(native_provider); } if ((flags & 16) != 0) { native_params.serializeToStream(stream); } if ((flags & 1) != 0) { saved_info.serializeToStream(stream); } if ((flags & 2) != 0) { saved_credentials.serializeToStream(stream); } stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_contacts_link extends TLObject { public static int constructor = 0x3ace484c; public ContactLink my_link; public ContactLink foreign_link; public User user; public static TL_contacts_link TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contacts_link.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contacts_link", constructor)); } else { return null; } } TL_contacts_link result = new TL_contacts_link(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { my_link = ContactLink.TLdeserialize(stream, stream.readInt32(exception), exception); foreign_link = ContactLink.TLdeserialize(stream, stream.readInt32(exception), exception); user = User.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); my_link.serializeToStream(stream); foreign_link.serializeToStream(stream); user.serializeToStream(stream); } } public static abstract class EncryptedFile extends TLObject { public long id; public long access_hash; public int size; public int dc_id; public int key_fingerprint; public static EncryptedFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { EncryptedFile result = null; switch (constructor) { case 0x4a70994c: result = new TL_encryptedFile(); break; case 0xc21f497e: result = new TL_encryptedFileEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in EncryptedFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_encryptedFile extends EncryptedFile { public static int constructor = 0x4a70994c; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); key_fingerprint = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(size); stream.writeInt32(dc_id); stream.writeInt32(key_fingerprint); } } public static class TL_encryptedFileEmpty extends EncryptedFile { public static int constructor = 0xc21f497e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class Peer extends TLObject { public int channel_id; public int user_id; public int chat_id; public static Peer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Peer result = null; switch (constructor) { case 0xbddde532: result = new TL_peerChannel(); break; case 0x9db1bc6d: result = new TL_peerUser(); break; case 0xbad0e5bb: result = new TL_peerChat(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Peer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_peerChannel extends Peer { public static int constructor = 0xbddde532; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); } } public static class TL_peerUser extends Peer { public static int constructor = 0x9db1bc6d; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_peerChat extends Peer { public static int constructor = 0xbad0e5bb; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_labeledPrice extends TLObject { public static int constructor = 0xcb296bf8; public String label; public long amount; public static TL_labeledPrice TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_labeledPrice.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_labeledPrice", constructor)); } else { return null; } } TL_labeledPrice result = new TL_labeledPrice(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { label = stream.readString(exception); amount = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(label); stream.writeInt64(amount); } } public static class TL_langPackDifference extends TLObject { public static int constructor = 0xf385c1f6; public String lang_code; public int from_version; public int version; public ArrayList strings = new ArrayList<>(); public static TL_langPackDifference TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_langPackDifference.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_langPackDifference", constructor)); } else { return null; } } TL_langPackDifference result = new TL_langPackDifference(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { lang_code = stream.readString(exception); from_version = stream.readInt32(exception); version = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { LangPackString object = LangPackString.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } strings.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(lang_code); stream.writeInt32(from_version); stream.writeInt32(version); stream.writeInt32(0x1cb5c415); int count = strings.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { strings.get(a).serializeToStream(stream); } } } public static abstract class help_DeepLinkInfo extends TLObject { public static help_DeepLinkInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_DeepLinkInfo result = null; switch (constructor) { case 0x66afa166: result = new TL_help_deepLinkInfoEmpty(); break; case 0x6a4ee832: result = new TL_help_deepLinkInfo(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_DeepLinkInfo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_deepLinkInfoEmpty extends help_DeepLinkInfo { public static int constructor = 0x66afa166; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_deepLinkInfo extends help_DeepLinkInfo { public static int constructor = 0x6a4ee832; public int flags; public boolean update_app; public String message; public ArrayList entities = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); update_app = (flags & 1) != 0; message = stream.readString(exception); if ((flags & 2) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = update_app ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeString(message); if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_chatAdminRights extends TLObject { public static int constructor = 0x5fb224d5; public int flags; public boolean change_info; public boolean post_messages; public boolean edit_messages; public boolean delete_messages; public boolean ban_users; public boolean invite_users; public boolean pin_messages; public boolean add_admins; public static TL_chatAdminRights TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_chatAdminRights.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_chatAdminRights", constructor)); } else { return null; } } TL_chatAdminRights result = new TL_chatAdminRights(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); change_info = (flags & 1) != 0; post_messages = (flags & 2) != 0; edit_messages = (flags & 4) != 0; delete_messages = (flags & 8) != 0; ban_users = (flags & 16) != 0; invite_users = (flags & 32) != 0; pin_messages = (flags & 128) != 0; add_admins = (flags & 512) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = change_info ? (flags | 1) : (flags &~ 1); flags = post_messages ? (flags | 2) : (flags &~ 2); flags = edit_messages ? (flags | 4) : (flags &~ 4); flags = delete_messages ? (flags | 8) : (flags &~ 8); flags = ban_users ? (flags | 16) : (flags &~ 16); flags = invite_users ? (flags | 32) : (flags &~ 32); flags = pin_messages ? (flags | 128) : (flags &~ 128); flags = add_admins ? (flags | 512) : (flags &~ 512); stream.writeInt32(flags); } } public static class TL_pollResults extends TLObject { public static int constructor = 0x5755785a; public int flags; public boolean min; public ArrayList results = new ArrayList<>(); public int total_voters; public static TL_pollResults TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pollResults.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pollResults", constructor)); } else { return null; } } TL_pollResults result = new TL_pollResults(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); min = (flags & 1) != 0; if ((flags & 2) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_pollAnswerVoters object = TL_pollAnswerVoters.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } results.add(object); } } if ((flags & 4) != 0) { total_voters = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = min ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { results.get(a).serializeToStream(stream); } } if ((flags & 4) != 0) { stream.writeInt32(total_voters); } } } public static abstract class SecureFile extends TLObject { public static SecureFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecureFile result = null; switch (constructor) { case 0x64199744: result = new TL_secureFileEmpty(); break; case 0xe0277a62: result = new TL_secureFile(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecureFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_secureFileEmpty extends SecureFile { public static int constructor = 0x64199744; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureFile extends SecureFile { public static int constructor = 0xe0277a62; public long id; public long access_hash; public int size; public int dc_id; public int date; public byte[] file_hash; public byte[] secret; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); date = stream.readInt32(exception); file_hash = stream.readByteArray(exception); secret = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(size); stream.writeInt32(dc_id); stream.writeInt32(date); stream.writeByteArray(file_hash); stream.writeByteArray(secret); } } public static class TL_messages_affectedMessages extends TLObject { public static int constructor = 0x84d19185; public int pts; public int pts_count; public static TL_messages_affectedMessages TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_affectedMessages.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_affectedMessages", constructor)); } else { return null; } } TL_messages_affectedMessages result = new TL_messages_affectedMessages(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_pollAnswerVoters extends TLObject { public static int constructor = 0x3b6ddad2; public int flags; public boolean chosen; public byte[] option; public int voters; public static TL_pollAnswerVoters TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pollAnswerVoters.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pollAnswerVoters", constructor)); } else { return null; } } TL_pollAnswerVoters result = new TL_pollAnswerVoters(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); chosen = (flags & 1) != 0; option = stream.readByteArray(exception); voters = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = chosen ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeByteArray(option); stream.writeInt32(voters); } } public static class TL_channels_channelParticipant extends TLObject { public static int constructor = 0xd0d9b163; public ChannelParticipant participant; public ArrayList users = new ArrayList<>(); public static TL_channels_channelParticipant TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channels_channelParticipant.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channels_channelParticipant", constructor)); } else { return null; } } TL_channels_channelParticipant result = new TL_channels_channelParticipant(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); participant.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_authorization extends TLObject { public static int constructor = 0xad01d61d; public int flags; public boolean current; public boolean official_app; public boolean password_pending; public long hash; public String device_model; public String platform; public String system_version; public int api_id; public String app_name; public String app_version; public int date_created; public int date_active; public String ip; public String country; public String region; public static TL_authorization TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_authorization.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_authorization", constructor)); } else { return null; } } TL_authorization result = new TL_authorization(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); current = (flags & 1) != 0; official_app = (flags & 2) != 0; password_pending = (flags & 4) != 0; hash = stream.readInt64(exception); device_model = stream.readString(exception); platform = stream.readString(exception); system_version = stream.readString(exception); api_id = stream.readInt32(exception); app_name = stream.readString(exception); app_version = stream.readString(exception); date_created = stream.readInt32(exception); date_active = stream.readInt32(exception); ip = stream.readString(exception); country = stream.readString(exception); region = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = current ? (flags | 1) : (flags &~ 1); flags = official_app ? (flags | 2) : (flags &~ 2); flags = password_pending ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); stream.writeInt64(hash); stream.writeString(device_model); stream.writeString(platform); stream.writeString(system_version); stream.writeInt32(api_id); stream.writeString(app_name); stream.writeString(app_version); stream.writeInt32(date_created); stream.writeInt32(date_active); stream.writeString(ip); stream.writeString(country); stream.writeString(region); } } public static abstract class updates_Difference extends TLObject { public ArrayList new_messages = new ArrayList<>(); public ArrayList new_encrypted_messages = new ArrayList<>(); public ArrayList other_updates = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public TL_updates_state state; public TL_updates_state intermediate_state; public int pts; public int date; public int seq; public static updates_Difference TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { updates_Difference result = null; switch (constructor) { case 0xf49ca0: result = new TL_updates_difference(); break; case 0xa8fb1981: result = new TL_updates_differenceSlice(); break; case 0x4afe8f6d: result = new TL_updates_differenceTooLong(); break; case 0x5d75a138: result = new TL_updates_differenceEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in updates_Difference", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_updates_difference extends updates_Difference { public static int constructor = 0xf49ca0; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } new_messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { EncryptedMessage object = EncryptedMessage.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } new_encrypted_messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Update object = Update.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } other_updates.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } state = TL_updates_state.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = new_messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { new_messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = new_encrypted_messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { new_encrypted_messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = other_updates.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { other_updates.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } state.serializeToStream(stream); } } public static class TL_updates_differenceSlice extends updates_Difference { public static int constructor = 0xa8fb1981; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } new_messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { EncryptedMessage object = EncryptedMessage.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } new_encrypted_messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Update object = Update.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } other_updates.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } intermediate_state = TL_updates_state.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = new_messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { new_messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = new_encrypted_messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { new_encrypted_messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = other_updates.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { other_updates.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } intermediate_state.serializeToStream(stream); } } public static class TL_updates_differenceTooLong extends updates_Difference { public static int constructor = 0x4afe8f6d; public void readParams(AbstractSerializedData stream, boolean exception) { pts = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pts); } } public static class TL_updates_differenceEmpty extends updates_Difference { public static int constructor = 0x5d75a138; public void readParams(AbstractSerializedData stream, boolean exception) { date = stream.readInt32(exception); seq = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(date); stream.writeInt32(seq); } } public static abstract class PrivacyKey extends TLObject { public static PrivacyKey TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PrivacyKey result = null; switch (constructor) { case 0xbc2eab30: result = new TL_privacyKeyStatusTimestamp(); break; case 0x39491cc8: result = new TL_privacyKeyPhoneP2P(); break; case 0x500e6dfa: result = new TL_privacyKeyChatInvite(); break; case 0x3d662b7b: result = new TL_privacyKeyPhoneCall(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PrivacyKey", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_privacyKeyStatusTimestamp extends PrivacyKey { public static int constructor = 0xbc2eab30; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyKeyPhoneP2P extends PrivacyKey { public static int constructor = 0x39491cc8; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyKeyChatInvite extends PrivacyKey { public static int constructor = 0x500e6dfa; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyKeyPhoneCall extends PrivacyKey { public static int constructor = 0x3d662b7b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class GeoPoint extends TLObject { public double _long; public double lat; public long access_hash; public static GeoPoint TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { GeoPoint result = null; switch (constructor) { case 0x296f104: result = new TL_geoPoint(); break; case 0x2049d70c: result = new TL_geoPoint_layer81(); break; case 0x1117dd5f: result = new TL_geoPointEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in GeoPoint", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_geoPoint extends GeoPoint { public static int constructor = 0x296f104; public void readParams(AbstractSerializedData stream, boolean exception) { _long = stream.readDouble(exception); lat = stream.readDouble(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(_long); stream.writeDouble(lat); stream.writeInt64(access_hash); } } public static class TL_geoPoint_layer81 extends TL_geoPoint { public static int constructor = 0x2049d70c; public void readParams(AbstractSerializedData stream, boolean exception) { _long = stream.readDouble(exception); lat = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(_long); stream.writeDouble(lat); } } public static class TL_geoPointEmpty extends GeoPoint { public static int constructor = 0x1117dd5f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_privacyRules extends TLObject { public static int constructor = 0x554abb6f; public ArrayList rules = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_account_privacyRules TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_privacyRules.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_privacyRules", constructor)); } else { return null; } } TL_account_privacyRules result = new TL_account_privacyRules(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PrivacyRule object = PrivacyRule.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } rules.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = rules.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rules.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class ChatInvite extends TLObject { public int flags; public boolean channel; public boolean broadcast; public boolean isPublic; public boolean megagroup; public String title; public ChatPhoto photo; public int participants_count; public ArrayList participants = new ArrayList<>(); public Chat chat; public static ChatInvite TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatInvite result = null; switch (constructor) { case 0xdb74f558: result = new TL_chatInvite(); break; case 0x5a686d7c: result = new TL_chatInviteAlready(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChatInvite", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_chatInvite extends ChatInvite { public static int constructor = 0xdb74f558; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); channel = (flags & 1) != 0; broadcast = (flags & 2) != 0; isPublic = (flags & 4) != 0; megagroup = (flags & 8) != 0; title = stream.readString(exception); photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); participants_count = stream.readInt32(exception); if ((flags & 16) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } participants.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = channel ? (flags | 1) : (flags &~ 1); flags = broadcast ? (flags | 2) : (flags &~ 2); flags = isPublic ? (flags | 4) : (flags &~ 4); flags = megagroup ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeString(title); photo.serializeToStream(stream); stream.writeInt32(participants_count); if ((flags & 16) != 0) { stream.writeInt32(0x1cb5c415); int count = participants.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { participants.get(a).serializeToStream(stream); } } } } public static class TL_chatInviteAlready extends ChatInvite { public static int constructor = 0x5a686d7c; public void readParams(AbstractSerializedData stream, boolean exception) { chat = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); chat.serializeToStream(stream); } } public static class TL_inputGroupCall extends TLObject { public static int constructor = 0xd8aa840f; public long id; public long access_hash; public static TL_inputGroupCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputGroupCall.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputGroupCall", constructor)); } else { return null; } } TL_inputGroupCall result = new TL_inputGroupCall(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static abstract class help_AppUpdate extends TLObject { public static help_AppUpdate TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_AppUpdate result = null; switch (constructor) { case 0x1da7158f: result = new TL_help_appUpdate(); break; case 0xc45a6536: result = new TL_help_noAppUpdate(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_AppUpdate", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_appUpdate extends help_AppUpdate { public static int constructor = 0x1da7158f; public int flags; public boolean popup; public int id; public String version; public String text; public ArrayList entities = new ArrayList<>(); public Document document; public String url; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); popup = (flags & 1) != 0; id = stream.readInt32(exception); version = stream.readString(exception); text = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } if ((flags & 2) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { url = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = popup ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(version); stream.writeString(text); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } if ((flags & 2) != 0) { document.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeString(url); } } } public static class TL_help_noAppUpdate extends help_AppUpdate { public static int constructor = 0xc45a6536; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channelAdminLogEvent extends TLObject { public static int constructor = 0x3b5a3e40; public long id; public int date; public int user_id; public ChannelAdminLogEventAction action; public static TL_channelAdminLogEvent TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channelAdminLogEvent.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channelAdminLogEvent", constructor)); } else { return null; } } TL_channelAdminLogEvent result = new TL_channelAdminLogEvent(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); date = stream.readInt32(exception); user_id = stream.readInt32(exception); action = ChannelAdminLogEventAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(date); stream.writeInt32(user_id); action.serializeToStream(stream); } } public static abstract class messages_FavedStickers extends TLObject { public int hash; public ArrayList packs = new ArrayList<>(); public ArrayList stickers = new ArrayList<>(); public static messages_FavedStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_FavedStickers result = null; switch (constructor) { case 0x9e8fa6d3: result = new TL_messages_favedStickersNotModified(); break; case 0xf37f2f16: result = new TL_messages_favedStickers(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_FavedStickers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_favedStickersNotModified extends messages_FavedStickers { public static int constructor = 0x9e8fa6d3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_favedStickers extends messages_FavedStickers { public static int constructor = 0xf37f2f16; public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_stickerPack object = TL_stickerPack.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } packs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } stickers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = packs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { packs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = stickers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stickers.get(a).serializeToStream(stream); } } } public static class TL_langPackLanguage extends TLObject { public static int constructor = 0xeeca5ce3; public int flags; public boolean official; public boolean rtl; public String name; public String native_name; public String lang_code; public String base_lang_code; public String plural_code; public int strings_count; public int translated_count; public String translations_url; public static TL_langPackLanguage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_langPackLanguage.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_langPackLanguage", constructor)); } else { return null; } } TL_langPackLanguage result = new TL_langPackLanguage(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); official = (flags & 1) != 0; rtl = (flags & 4) != 0; name = stream.readString(exception); native_name = stream.readString(exception); lang_code = stream.readString(exception); if ((flags & 2) != 0) { base_lang_code = stream.readString(exception); } plural_code = stream.readString(exception); strings_count = stream.readInt32(exception); translated_count = stream.readInt32(exception); translations_url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = official ? (flags | 1) : (flags &~ 1); flags = rtl ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); stream.writeString(name); stream.writeString(native_name); stream.writeString(lang_code); if ((flags & 2) != 0) { stream.writeString(base_lang_code); } stream.writeString(plural_code); stream.writeInt32(strings_count); stream.writeInt32(translated_count); stream.writeString(translations_url); } } public static abstract class SendMessageAction extends TLObject { public int progress; public static SendMessageAction TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SendMessageAction result = null; switch (constructor) { case 0xdd6a8f48: result = new TL_sendMessageGamePlayAction(); break; case 0xd52f73f7: result = new TL_sendMessageRecordAudioAction(); break; case 0x92042ff7: result = new TL_sendMessageUploadVideoAction_old(); break; case 0xe6ac8a6f: result = new TL_sendMessageUploadAudioAction_old(); break; case 0xf351d7ab: result = new TL_sendMessageUploadAudioAction(); break; case 0xd1d34a26: result = new TL_sendMessageUploadPhotoAction(); break; case 0x8faee98e: result = new TL_sendMessageUploadDocumentAction_old(); break; case 0xe9763aec: result = new TL_sendMessageUploadVideoAction(); break; case 0xfd5ec8f5: result = new TL_sendMessageCancelAction(); break; case 0x176f8ba1: result = new TL_sendMessageGeoLocationAction(); break; case 0x628cbc6f: result = new TL_sendMessageChooseContactAction(); break; case 0x88f27fbc: result = new TL_sendMessageRecordRoundAction(); break; case 0x243e1c66: result = new TL_sendMessageUploadRoundAction(); break; case 0x16bf744e: result = new TL_sendMessageTypingAction(); break; case 0x990a3c1a: result = new TL_sendMessageUploadPhotoAction_old(); break; case 0xaa0cd9e4: result = new TL_sendMessageUploadDocumentAction(); break; case 0xa187d66f: result = new TL_sendMessageRecordVideoAction(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SendMessageAction", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_sendMessageGamePlayAction extends SendMessageAction { public static int constructor = 0xdd6a8f48; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageRecordAudioAction extends SendMessageAction { public static int constructor = 0xd52f73f7; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadVideoAction_old extends TL_sendMessageUploadVideoAction { public static int constructor = 0x92042ff7; public void readParams(AbstractSerializedData stream, boolean exception) { } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadAudioAction_old extends TL_sendMessageUploadAudioAction { public static int constructor = 0xe6ac8a6f; public void readParams(AbstractSerializedData stream, boolean exception) { } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadAudioAction extends SendMessageAction { public static int constructor = 0xf351d7ab; public void readParams(AbstractSerializedData stream, boolean exception) { progress = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(progress); } } public static class TL_sendMessageUploadPhotoAction extends SendMessageAction { public static int constructor = 0xd1d34a26; public void readParams(AbstractSerializedData stream, boolean exception) { progress = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(progress); } } public static class TL_sendMessageUploadDocumentAction_old extends TL_sendMessageUploadDocumentAction { public static int constructor = 0x8faee98e; public void readParams(AbstractSerializedData stream, boolean exception) { } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadVideoAction extends SendMessageAction { public static int constructor = 0xe9763aec; public void readParams(AbstractSerializedData stream, boolean exception) { progress = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(progress); } } public static class TL_sendMessageCancelAction extends SendMessageAction { public static int constructor = 0xfd5ec8f5; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageGeoLocationAction extends SendMessageAction { public static int constructor = 0x176f8ba1; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageChooseContactAction extends SendMessageAction { public static int constructor = 0x628cbc6f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageRecordRoundAction extends SendMessageAction { public static int constructor = 0x88f27fbc; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadRoundAction extends SendMessageAction { public static int constructor = 0x243e1c66; public void readParams(AbstractSerializedData stream, boolean exception) { progress = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(progress); } } public static class TL_sendMessageTypingAction extends SendMessageAction { public static int constructor = 0x16bf744e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadPhotoAction_old extends TL_sendMessageUploadPhotoAction { public static int constructor = 0x990a3c1a; public void readParams(AbstractSerializedData stream, boolean exception) { } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_sendMessageUploadDocumentAction extends SendMessageAction { public static int constructor = 0xaa0cd9e4; public void readParams(AbstractSerializedData stream, boolean exception) { progress = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(progress); } } public static class TL_sendMessageRecordVideoAction extends SendMessageAction { public static int constructor = 0xa187d66f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class auth_SentCodeType extends TLObject { public int length; public String pattern; public static auth_SentCodeType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { auth_SentCodeType result = null; switch (constructor) { case 0x3dbb5986: result = new TL_auth_sentCodeTypeApp(); break; case 0x5353e5a7: result = new TL_auth_sentCodeTypeCall(); break; case 0xab03c6d9: result = new TL_auth_sentCodeTypeFlashCall(); break; case 0xc000bba2: result = new TL_auth_sentCodeTypeSms(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in auth_SentCodeType", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_auth_sentCodeTypeApp extends auth_SentCodeType { public static int constructor = 0x3dbb5986; public void readParams(AbstractSerializedData stream, boolean exception) { length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(length); } } public static class TL_auth_sentCodeTypeCall extends auth_SentCodeType { public static int constructor = 0x5353e5a7; public void readParams(AbstractSerializedData stream, boolean exception) { length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(length); } } public static class TL_auth_sentCodeTypeFlashCall extends auth_SentCodeType { public static int constructor = 0xab03c6d9; public void readParams(AbstractSerializedData stream, boolean exception) { pattern = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(pattern); } } public static class TL_auth_sentCodeTypeSms extends auth_SentCodeType { public static int constructor = 0xc000bba2; public void readParams(AbstractSerializedData stream, boolean exception) { length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(length); } } public static abstract class messages_StickerSetInstallResult extends TLObject { public ArrayList sets = new ArrayList<>(); public static messages_StickerSetInstallResult TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_StickerSetInstallResult result = null; switch (constructor) { case 0x38641628: result = new TL_messages_stickerSetInstallResultSuccess(); break; case 0x35e410a8: result = new TL_messages_stickerSetInstallResultArchive(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_StickerSetInstallResult", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_stickerSetInstallResultSuccess extends messages_StickerSetInstallResult { public static int constructor = 0x38641628; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_stickerSetInstallResultArchive extends messages_StickerSetInstallResult { public static int constructor = 0x35e410a8; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sets.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = sets.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sets.get(a).serializeToStream(stream); } } } public static class TL_peerSettings extends TLObject { public static int constructor = 0x818426cd; public int flags; public boolean report_spam; public static TL_peerSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_peerSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_peerSettings", constructor)); } else { return null; } } TL_peerSettings result = new TL_peerSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); report_spam = (flags & 1) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = report_spam ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); } } public static abstract class InputDialogPeer extends TLObject { public static InputDialogPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputDialogPeer result = null; switch (constructor) { case 0xfcaafeb7: result = new TL_inputDialogPeer(); break; case 0x2c38b8cf: result = new TL_inputDialogPeerFeed(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputDialogPeer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputDialogPeer extends InputDialogPeer { public static int constructor = 0xfcaafeb7; public InputPeer peer; public void readParams(AbstractSerializedData stream, boolean exception) { peer = InputPeer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_inputDialogPeerFeed extends InputDialogPeer { public static int constructor = 0x2c38b8cf; public int feed_id; public void readParams(AbstractSerializedData stream, boolean exception) { feed_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(feed_id); } } public static abstract class FoundGif extends TLObject { public String url; public Photo photo; public Document document; public String thumb_url; public String content_url; public String content_type; public int w; public int h; public static FoundGif TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { FoundGif result = null; switch (constructor) { case 0x9c750409: result = new TL_foundGifCached(); break; case 0x162ecc1f: result = new TL_foundGif(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in FoundGif", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_foundGifCached extends FoundGif { public static int constructor = 0x9c750409; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); photo.serializeToStream(stream); document.serializeToStream(stream); } } public static class TL_foundGif extends FoundGif { public static int constructor = 0x162ecc1f; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); thumb_url = stream.readString(exception); content_url = stream.readString(exception); content_type = stream.readString(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeString(thumb_url); stream.writeString(content_url); stream.writeString(content_type); stream.writeInt32(w); stream.writeInt32(h); } } public static abstract class payments_PaymentResult extends TLObject { public Updates updates; public String url; public static payments_PaymentResult TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { payments_PaymentResult result = null; switch (constructor) { case 0x4e5f810d: result = new TL_payments_paymentResult(); break; case 0x6b56b921: result = new TL_payments_paymentVerficationNeeded(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in payments_PaymentResult", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_payments_paymentResult extends payments_PaymentResult { public static int constructor = 0x4e5f810d; public void readParams(AbstractSerializedData stream, boolean exception) { updates = Updates.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); updates.serializeToStream(stream); } } public static class TL_payments_paymentVerficationNeeded extends payments_PaymentResult { public static int constructor = 0x6b56b921; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); } } public static class TL_channels_adminLogResults extends TLObject { public static int constructor = 0xed8af74d; public ArrayList events = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_channels_adminLogResults TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channels_adminLogResults.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channels_adminLogResults", constructor)); } else { return null; } } TL_channels_adminLogResults result = new TL_channels_adminLogResults(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_channelAdminLogEvent object = TL_channelAdminLogEvent.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } events.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = events.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { events.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_inputPhoneContact extends TLObject { public static int constructor = 0xf392b7f4; public long client_id; public String phone; public String first_name; public String last_name; public static TL_inputPhoneContact TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputPhoneContact.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputPhoneContact", constructor)); } else { return null; } } TL_inputPhoneContact result = new TL_inputPhoneContact(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { client_id = stream.readInt64(exception); phone = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(client_id); stream.writeString(phone); stream.writeString(first_name); stream.writeString(last_name); } } public static class TL_pageCaption extends TLObject { public static int constructor = 0x6f747657; public RichText text; public RichText credit; public static TL_pageCaption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pageCaption.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pageCaption", constructor)); } else { return null; } } TL_pageCaption result = new TL_pageCaption(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); credit = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); credit.serializeToStream(stream); } } public static abstract class PrivacyRule extends TLObject { public ArrayList users = new ArrayList<>(); public static PrivacyRule TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PrivacyRule result = null; switch (constructor) { case 0x4d5bbe0c: result = new TL_privacyValueAllowUsers(); break; case 0x8b73e763: result = new TL_privacyValueDisallowAll(); break; case 0xfffe1bac: result = new TL_privacyValueAllowContacts(); break; case 0xf888fa1a: result = new TL_privacyValueDisallowContacts(); break; case 0x65427b82: result = new TL_privacyValueAllowAll(); break; case 0xc7f49b7: result = new TL_privacyValueDisallowUsers(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PrivacyRule", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_privacyValueAllowUsers extends PrivacyRule { public static int constructor = 0x4d5bbe0c; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { users.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(users.get(a)); } } } public static class TL_privacyValueDisallowAll extends PrivacyRule { public static int constructor = 0x8b73e763; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyValueAllowContacts extends PrivacyRule { public static int constructor = 0xfffe1bac; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyValueDisallowContacts extends PrivacyRule { public static int constructor = 0xf888fa1a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyValueAllowAll extends PrivacyRule { public static int constructor = 0x65427b82; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_privacyValueDisallowUsers extends PrivacyRule { public static int constructor = 0xc7f49b7; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { users.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(users.get(a)); } } } public static class TL_pageTableCell extends TLObject { public static int constructor = 0x34566b6a; public int flags; public boolean header; public boolean align_center; public boolean align_right; public boolean valign_middle; public boolean valign_bottom; public RichText text; public int colspan; public int rowspan; public static TL_pageTableCell TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pageTableCell.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pageTableCell", constructor)); } else { return null; } } TL_pageTableCell result = new TL_pageTableCell(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); header = (flags & 1) != 0; align_center = (flags & 8) != 0; align_right = (flags & 16) != 0; valign_middle = (flags & 32) != 0; valign_bottom = (flags & 64) != 0; if ((flags & 128) != 0) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { colspan = stream.readInt32(exception); } if ((flags & 4) != 0) { rowspan = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = header ? (flags | 1) : (flags &~ 1); flags = align_center ? (flags | 8) : (flags &~ 8); flags = align_right ? (flags | 16) : (flags &~ 16); flags = valign_middle ? (flags | 32) : (flags &~ 32); flags = valign_bottom ? (flags | 64) : (flags &~ 64); stream.writeInt32(flags); if ((flags & 128) != 0) { text.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeInt32(colspan); } if ((flags & 4) != 0) { stream.writeInt32(rowspan); } } } public static class TL_messageMediaUnsupported_old extends TL_messageMediaUnsupported { public static int constructor = 0x29632a36; public void readParams(AbstractSerializedData stream, boolean exception) { bytes = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(bytes); } } public static class TL_messageMediaAudio_layer45 extends MessageMedia { public static int constructor = 0xc6b68300; public void readParams(AbstractSerializedData stream, boolean exception) { audio_unused = Audio.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); audio_unused.serializeToStream(stream); } } public static class TL_messageMediaPhoto_old extends TL_messageMediaPhoto { public static int constructor = 0xc8c45a2a; public void readParams(AbstractSerializedData stream, boolean exception) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo.serializeToStream(stream); } } public static class TL_messageMediaInvoice extends MessageMedia { public static int constructor = 0x84551347; public WebDocument photo; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); shipping_address_requested = (flags & 2) != 0; test = (flags & 8) != 0; title = stream.readString(exception); description = stream.readString(exception); if ((flags & 1) != 0) { photo = WebDocument.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { receipt_msg_id = stream.readInt32(exception); } currency = stream.readString(exception); total_amount = stream.readInt64(exception); start_param = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = shipping_address_requested ? (flags | 2) : (flags &~ 2); flags = test ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeString(title); stream.writeString(description); if ((flags & 1) != 0) { photo.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeInt32(receipt_msg_id); } stream.writeString(currency); stream.writeInt64(total_amount); stream.writeString(start_param); } } public static class TL_messageMediaUnsupported extends MessageMedia { public static int constructor = 0x9f84f49e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageMediaEmpty extends MessageMedia { public static int constructor = 0x3ded6320; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageMediaVenue extends MessageMedia { public static int constructor = 0x2ec0533f; public void readParams(AbstractSerializedData stream, boolean exception) { geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); venue_type = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo.serializeToStream(stream); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); stream.writeString(venue_type); } } public static class TL_messageMediaVenue_layer71 extends MessageMedia { public static int constructor = 0x7912b71f; public void readParams(AbstractSerializedData stream, boolean exception) { geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo.serializeToStream(stream); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); } } public static class TL_messageMediaVideo_old extends TL_messageMediaVideo_layer45 { public static int constructor = 0xa2d24290; public void readParams(AbstractSerializedData stream, boolean exception) { video_unused = Video.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); video_unused.serializeToStream(stream); } } public static class TL_messageMediaDocument extends MessageMedia { public static int constructor = 0x9cb070d7; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } else { document = new TLRPC.TL_documentEmpty(); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { document.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_messageMediaDocument_layer74 extends TL_messageMediaDocument { public static int constructor = 0x7c4414d3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } else { document = new TLRPC.TL_documentEmpty(); } if ((flags & 2) != 0) { captionLegacy = stream.readString(exception); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { document.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeString(captionLegacy); } if ((flags & 4) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_messageMediaDocument_old extends TL_messageMediaDocument { public static int constructor = 0x2fda2204; public void readParams(AbstractSerializedData stream, boolean exception) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); document.serializeToStream(stream); } } public static class TL_messageMediaDocument_layer68 extends TL_messageMediaDocument { public static int constructor = 0xf3e02ea8; public void readParams(AbstractSerializedData stream, boolean exception) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); captionLegacy = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); document.serializeToStream(stream); stream.writeString(captionLegacy); } } public static class TL_messageMediaPhoto extends MessageMedia { public static int constructor = 0x695150d7; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } else { photo = new TLRPC.TL_photoEmpty(); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { photo.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_messageMediaPoll extends MessageMedia { public static int constructor = 0x4bd6e798; public TL_poll poll; public TL_pollResults results; public void readParams(AbstractSerializedData stream, boolean exception) { poll = TL_poll.TLdeserialize(stream, stream.readInt32(exception), exception); results = TL_pollResults.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); poll.serializeToStream(stream); results.serializeToStream(stream); } } public static class TL_messageMediaPhoto_layer74 extends TL_messageMediaPhoto { public static int constructor = 0xb5223b0f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } else { photo = new TLRPC.TL_photoEmpty(); } if ((flags & 2) != 0) { captionLegacy = stream.readString(exception); } if ((flags & 4) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { photo.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeString(captionLegacy); } if ((flags & 4) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_messageMediaGeoLive extends MessageMedia { public static int constructor = 0x7c3c2609; public void readParams(AbstractSerializedData stream, boolean exception) { geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); period = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo.serializeToStream(stream); stream.writeInt32(period); } } public static class TL_messageMediaGame extends MessageMedia { public static int constructor = 0xfdb19008; public void readParams(AbstractSerializedData stream, boolean exception) { game = TL_game.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); game.serializeToStream(stream); } } public static class TL_messageMediaContact_layer81 extends TL_messageMediaContact { public static int constructor = 0x5e7d2f39; public void readParams(AbstractSerializedData stream, boolean exception) { phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); stream.writeInt32(user_id); } } public static class TL_messageMediaPhoto_layer68 extends TL_messageMediaPhoto { public static int constructor = 0x3d8ce53d; public void readParams(AbstractSerializedData stream, boolean exception) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); captionLegacy = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo.serializeToStream(stream); stream.writeString(captionLegacy); } } public static class TL_messageMediaVideo_layer45 extends MessageMedia { public static int constructor = 0x5bcf1675; public void readParams(AbstractSerializedData stream, boolean exception) { video_unused = Video.TLdeserialize(stream, stream.readInt32(exception), exception); captionLegacy = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); video_unused.serializeToStream(stream); stream.writeString(captionLegacy); } } public static class TL_messageMediaContact extends MessageMedia { public static int constructor = 0xcbf24940; public void readParams(AbstractSerializedData stream, boolean exception) { phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); vcard = stream.readString(exception); user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(vcard); stream.writeInt32(user_id); } } public static class TL_messageMediaGeo extends MessageMedia { public static int constructor = 0x56e0d474; public void readParams(AbstractSerializedData stream, boolean exception) { geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo.serializeToStream(stream); } } public static class TL_messageMediaWebPage extends MessageMedia { public static int constructor = 0xa32dd600; public void readParams(AbstractSerializedData stream, boolean exception) { webpage = WebPage.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); webpage.serializeToStream(stream); } } public static abstract class LangPackString extends TLObject { public int flags; public String key; public String zero_value; public String one_value; public String two_value; public String few_value; public String many_value; public String other_value; public String value; public static LangPackString TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { LangPackString result = null; switch (constructor) { case 0x6c47ac9f: result = new TL_langPackStringPluralized(); break; case 0xcad181f6: result = new TL_langPackString(); break; case 0x2979eeb2: result = new TL_langPackStringDeleted(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in LangPackString", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_langPackStringPluralized extends LangPackString { public static int constructor = 0x6c47ac9f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); key = stream.readString(exception); if ((flags & 1) != 0) { zero_value = stream.readString(exception); } if ((flags & 2) != 0) { one_value = stream.readString(exception); } if ((flags & 4) != 0) { two_value = stream.readString(exception); } if ((flags & 8) != 0) { few_value = stream.readString(exception); } if ((flags & 16) != 0) { many_value = stream.readString(exception); } other_value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(key); if ((flags & 1) != 0) { stream.writeString(zero_value); } if ((flags & 2) != 0) { stream.writeString(one_value); } if ((flags & 4) != 0) { stream.writeString(two_value); } if ((flags & 8) != 0) { stream.writeString(few_value); } if ((flags & 16) != 0) { stream.writeString(many_value); } stream.writeString(other_value); } } public static class TL_langPackString extends LangPackString { public static int constructor = 0xcad181f6; public void readParams(AbstractSerializedData stream, boolean exception) { key = stream.readString(exception); value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(key); stream.writeString(value); } } public static class TL_langPackStringDeleted extends LangPackString { public static int constructor = 0x2979eeb2; public void readParams(AbstractSerializedData stream, boolean exception) { key = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(key); } } public static class TL_auth_sentCode extends TLObject { public static int constructor = 0x38faab5f; public int flags; public boolean phone_registered; public auth_SentCodeType type; public String phone_code_hash; public auth_CodeType next_type; public int timeout; public TL_help_termsOfService terms_of_service; public static TL_auth_sentCode TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_auth_sentCode.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_auth_sentCode", constructor)); } else { return null; } } TL_auth_sentCode result = new TL_auth_sentCode(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); phone_registered = (flags & 1) != 0; type = auth_SentCodeType.TLdeserialize(stream, stream.readInt32(exception), exception); phone_code_hash = stream.readString(exception); if ((flags & 2) != 0) { next_type = auth_CodeType.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { timeout = stream.readInt32(exception); } if ((flags & 8) != 0) { terms_of_service = TL_help_termsOfService.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = phone_registered ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); type.serializeToStream(stream); stream.writeString(phone_code_hash); if ((flags & 2) != 0) { next_type.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeInt32(timeout); } if ((flags & 8) != 0) { terms_of_service.serializeToStream(stream); } } } public static abstract class BotInlineResult extends TLObject { public int flags; public String id; public String type; public Photo photo; public Document document; public String title; public String description; public String url; public WebDocument thumb; public WebDocument content; public BotInlineMessage send_message; public long query_id; public static BotInlineResult TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { BotInlineResult result = null; switch (constructor) { case 0x11965f3a: result = new TL_botInlineResult(); break; case 0x17db940b: result = new TL_botInlineMediaResult(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in BotInlineResult", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_botInlineResult extends BotInlineResult { public static int constructor = 0x11965f3a; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readString(exception); type = stream.readString(exception); if ((flags & 2) != 0) { title = stream.readString(exception); } if ((flags & 4) != 0) { description = stream.readString(exception); } if ((flags & 8) != 0) { url = stream.readString(exception); } if ((flags & 16) != 0) { thumb = WebDocument.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 32) != 0) { content = WebDocument.TLdeserialize(stream, stream.readInt32(exception), exception); } send_message = BotInlineMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(id); stream.writeString(type); if ((flags & 2) != 0) { stream.writeString(title); } if ((flags & 4) != 0) { stream.writeString(description); } if ((flags & 8) != 0) { stream.writeString(url); } if ((flags & 16) != 0) { thumb.serializeToStream(stream); } if ((flags & 32) != 0) { content.serializeToStream(stream); } send_message.serializeToStream(stream); } } public static class TL_botInlineMediaResult extends BotInlineResult { public static int constructor = 0x17db940b; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readString(exception); type = stream.readString(exception); if ((flags & 1) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { title = stream.readString(exception); } if ((flags & 8) != 0) { description = stream.readString(exception); } send_message = BotInlineMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(id); stream.writeString(type); if ((flags & 1) != 0) { photo.serializeToStream(stream); } if ((flags & 2) != 0) { document.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeString(title); } if ((flags & 8) != 0) { stream.writeString(description); } send_message.serializeToStream(stream); } } public static abstract class PeerNotifySettings extends TLObject { public int flags; public int mute_until; public String sound; public boolean show_previews; public int events_mask; public boolean silent; public static PeerNotifySettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PeerNotifySettings result = null; switch (constructor) { case 0x9acda4c0: result = new TL_peerNotifySettings_layer77(); break; case 0xaf509d20: result = new TL_peerNotifySettings(); break; case 0x8d5e11ee: result = new TL_peerNotifySettings_layer47(); break; case 0x70a68512: result = new TL_peerNotifySettingsEmpty_layer77(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PeerNotifySettings", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_peerNotifySettings_layer77 extends TL_peerNotifySettings { public static int constructor = 0x9acda4c0; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); show_previews = (flags & 1) != 0; silent = (flags & 2) != 0; mute_until = stream.readInt32(exception); sound = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = show_previews ? (flags | 1) : (flags &~ 1); flags = silent ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(mute_until); stream.writeString(sound); } } public static class TL_peerNotifySettings extends PeerNotifySettings { public static int constructor = 0xaf509d20; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { show_previews = stream.readBool(exception); } if ((flags & 2) != 0) { silent = stream.readBool(exception); } if ((flags & 4) != 0) { mute_until = stream.readInt32(exception); } if ((flags & 8) != 0) { sound = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeBool(show_previews); } if ((flags & 2) != 0) { stream.writeBool(silent); } if ((flags & 4) != 0) { stream.writeInt32(mute_until); } if ((flags & 8) != 0) { stream.writeString(sound); } } } public static class TL_peerNotifySettings_layer47 extends TL_peerNotifySettings { public static int constructor = 0x8d5e11ee; public void readParams(AbstractSerializedData stream, boolean exception) { mute_until = stream.readInt32(exception); sound = stream.readString(exception); show_previews = stream.readBool(exception); events_mask = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(mute_until); stream.writeString(sound); stream.writeBool(show_previews); stream.writeInt32(events_mask); } } public static class TL_peerNotifySettingsEmpty_layer77 extends PeerNotifySettings { public static int constructor = 0x70a68512; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class contacts_Blocked extends TLObject { public ArrayList blocked = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public int count; public static contacts_Blocked TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { contacts_Blocked result = null; switch (constructor) { case 0x1c138d15: result = new TL_contacts_blocked(); break; case 0x900802a1: result = new TL_contacts_blockedSlice(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in contacts_Blocked", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_contacts_blocked extends contacts_Blocked { public static int constructor = 0x1c138d15; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_contactBlocked object = TL_contactBlocked.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocked.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocked.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocked.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_contacts_blockedSlice extends contacts_Blocked { public static int constructor = 0x900802a1; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_contactBlocked object = TL_contactBlocked.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocked.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = blocked.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocked.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_inputSecureValue extends TLObject { public static int constructor = 0xdb21d0a7; public int flags; public SecureValueType type; public TL_secureData data; public InputSecureFile front_side; public InputSecureFile reverse_side; public InputSecureFile selfie; public ArrayList translation = new ArrayList<>(); public ArrayList files = new ArrayList<>(); public SecurePlainData plain_data; public static TL_inputSecureValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputSecureValue.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputSecureValue", constructor)); } else { return null; } } TL_inputSecureValue result = new TL_inputSecureValue(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { data = TL_secureData.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { front_side = InputSecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { reverse_side = InputSecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 8) != 0) { selfie = InputSecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputSecureFile object = InputSecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } translation.add(object); } } if ((flags & 16) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputSecureFile object = InputSecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } files.add(object); } } if ((flags & 32) != 0) { plain_data = SecurePlainData.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); type.serializeToStream(stream); if ((flags & 1) != 0) { data.serializeToStream(stream); } if ((flags & 2) != 0) { front_side.serializeToStream(stream); } if ((flags & 4) != 0) { reverse_side.serializeToStream(stream); } if ((flags & 8) != 0) { selfie.serializeToStream(stream); } if ((flags & 64) != 0) { stream.writeInt32(0x1cb5c415); int count = translation.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { translation.get(a).serializeToStream(stream); } } if ((flags & 16) != 0) { stream.writeInt32(0x1cb5c415); int count = files.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { files.get(a).serializeToStream(stream); } } if ((flags & 32) != 0) { plain_data.serializeToStream(stream); } } } public static abstract class messages_DhConfig extends TLObject { public byte[] random; public int g; public byte[] p; public int version; public static messages_DhConfig TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_DhConfig result = null; switch (constructor) { case 0xc0e24635: result = new TL_messages_dhConfigNotModified(); break; case 0x2c221edd: result = new TL_messages_dhConfig(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_DhConfig", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_dhConfigNotModified extends messages_DhConfig { public static int constructor = 0xc0e24635; public void readParams(AbstractSerializedData stream, boolean exception) { random = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(random); } } public static class TL_messages_dhConfig extends messages_DhConfig { public static int constructor = 0x2c221edd; public void readParams(AbstractSerializedData stream, boolean exception) { g = stream.readInt32(exception); p = stream.readByteArray(exception); version = stream.readInt32(exception); random = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(g); stream.writeByteArray(p); stream.writeInt32(version); stream.writeByteArray(random); } } public static abstract class help_UserInfo extends TLObject { public static help_UserInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_UserInfo result = null; switch (constructor) { case 0xf3ae2eed: result = new TL_help_userInfoEmpty(); break; case 0x1eb3758: result = new TL_help_userInfo(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_UserInfo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_userInfoEmpty extends help_UserInfo { public static int constructor = 0xf3ae2eed; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_userInfo extends help_UserInfo { public static int constructor = 0x1eb3758; public String message; public ArrayList entities = new ArrayList<>(); public String author; public int date; public void readParams(AbstractSerializedData stream, boolean exception) { message = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } author = stream.readString(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(message); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } stream.writeString(author); stream.writeInt32(date); } } public static class TL_secureValueHash extends TLObject { public static int constructor = 0xed1ecdb0; public SecureValueType type; public byte[] hash; public static TL_secureValueHash TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_secureValueHash.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_secureValueHash", constructor)); } else { return null; } } TL_secureValueHash result = new TL_secureValueHash(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); hash = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(hash); } } public static class TL_messages_stickerSet extends TLObject { public static int constructor = 0xb60a24a6; public StickerSet set; public ArrayList packs = new ArrayList<>(); public ArrayList documents = new ArrayList<>(); public static TL_messages_stickerSet TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_stickerSet.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_stickerSet", constructor)); } else { return null; } } TL_messages_stickerSet result = new TL_messages_stickerSet(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { set = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_stickerPack object = TL_stickerPack.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } packs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); set.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = packs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { packs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static abstract class InputGeoPoint extends TLObject { public double lat; public double _long; public static InputGeoPoint TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputGeoPoint result = null; switch (constructor) { case 0xf3b7acc9: result = new TL_inputGeoPoint(); break; case 0xe4c123d6: result = new TL_inputGeoPointEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputGeoPoint", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputGeoPoint extends InputGeoPoint { public static int constructor = 0xf3b7acc9; public void readParams(AbstractSerializedData stream, boolean exception) { lat = stream.readDouble(exception); _long = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(lat); stream.writeDouble(_long); } } public static class TL_inputGeoPointEmpty extends InputGeoPoint { public static int constructor = 0xe4c123d6; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_inviteText extends TLObject { public static int constructor = 0x18cb9f78; public String message; public static TL_help_inviteText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_help_inviteText.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_help_inviteText", constructor)); } else { return null; } } TL_help_inviteText result = new TL_help_inviteText(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { message = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(message); } } public static abstract class Audio extends TLObject { public long id; public long access_hash; public int date; public int duration; public String mime_type; public int size; public int dc_id; public int user_id; public byte[] key; public byte[] iv; public static Audio TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Audio result = null; switch (constructor) { case 0x586988d8: result = new TL_audioEmpty_layer45(); break; case 0xf9e35055: result = new TL_audio_layer45(); break; case 0x427425e7: result = new TL_audio_old(); break; case 0x555555F6: result = new TL_audioEncrypted(); break; case 0xc7ac6496: result = new TL_audio_old2(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Audio", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_audioEmpty_layer45 extends Audio { public static int constructor = 0x586988d8; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static class TL_audio_layer45 extends Audio { public static int constructor = 0xf9e35055; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(size); stream.writeInt32(dc_id); } } public static class TL_audio_old extends TL_audio_layer45 { public static int constructor = 0x427425e7; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeInt32(duration); stream.writeInt32(size); stream.writeInt32(dc_id); } } public static class TL_audioEncrypted extends TL_audio_layer45 { public static int constructor = 0x555555F6; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeInt32(duration); stream.writeInt32(size); stream.writeInt32(dc_id); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_audio_old2 extends TL_audio_layer45 { public static int constructor = 0xc7ac6496; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); dc_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(size); stream.writeInt32(dc_id); } } public static abstract class SecurePasswordKdfAlgo extends TLObject { public static SecurePasswordKdfAlgo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecurePasswordKdfAlgo result = null; switch (constructor) { case 0xbbf2dda0: result = new TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(); break; case 0x86471d92: result = new TL_securePasswordKdfAlgoSHA512(); break; case 0x4a8537: result = new TL_securePasswordKdfAlgoUnknown(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecurePasswordKdfAlgo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 extends SecurePasswordKdfAlgo { public static int constructor = 0xbbf2dda0; public byte[] salt; public void readParams(AbstractSerializedData stream, boolean exception) { salt = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(salt); } } public static class TL_securePasswordKdfAlgoSHA512 extends SecurePasswordKdfAlgo { public static int constructor = 0x86471d92; public byte[] salt; public void readParams(AbstractSerializedData stream, boolean exception) { salt = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(salt); } } public static class TL_securePasswordKdfAlgoUnknown extends SecurePasswordKdfAlgo { public static int constructor = 0x4a8537; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class BotInfo extends TLObject { public int user_id; public String description; public ArrayList commands = new ArrayList<>(); public int version; public static BotInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { BotInfo result = null; switch (constructor) { case 0xbb2e37ce: result = new TL_botInfoEmpty_layer48(); break; case 0x98e81d3a: result = new TL_botInfo(); break; case 0x9cf585d: result = new TL_botInfo_layer48(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in BotInfo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_botInfoEmpty_layer48 extends TL_botInfo { public static int constructor = 0xbb2e37ce; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_botInfo extends BotInfo { public static int constructor = 0x98e81d3a; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); description = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_botCommand object = TL_botCommand.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } commands.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeString(description); stream.writeInt32(0x1cb5c415); int count = commands.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { commands.get(a).serializeToStream(stream); } } } public static class TL_botInfo_layer48 extends TL_botInfo { public static int constructor = 0x9cf585d; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); version = stream.readInt32(exception); stream.readString(exception); description = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_botCommand object = TL_botCommand.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } commands.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(version); stream.writeString(""); stream.writeString(description); stream.writeInt32(0x1cb5c415); int count = commands.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { commands.get(a).serializeToStream(stream); } } } public static abstract class InputGame extends TLObject { public InputUser bot_id; public String short_name; public long id; public long access_hash; public static InputGame TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputGame result = null; switch (constructor) { case 0xc331e80a: result = new TL_inputGameShortName(); break; case 0x32c3e77: result = new TL_inputGameID(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputGame", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputGameShortName extends InputGame { public static int constructor = 0xc331e80a; public void readParams(AbstractSerializedData stream, boolean exception) { bot_id = InputUser.TLdeserialize(stream, stream.readInt32(exception), exception); short_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); bot_id.serializeToStream(stream); stream.writeString(short_name); } } public static class TL_inputGameID extends InputGame { public static int constructor = 0x32c3e77; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static abstract class ReplyMarkup extends TLObject { public ArrayList rows = new ArrayList<>(); public int flags; public boolean selective; public boolean single_use; public boolean resize; public static ReplyMarkup TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ReplyMarkup result = null; switch (constructor) { case 0x48a30254: result = new TL_replyInlineMarkup(); break; case 0xa03e5b85: result = new TL_replyKeyboardHide(); break; case 0xf4108aa0: result = new TL_replyKeyboardForceReply(); break; case 0x3502758c: result = new TL_replyKeyboardMarkup(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ReplyMarkup", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_replyInlineMarkup extends ReplyMarkup { public static int constructor = 0x48a30254; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_keyboardButtonRow object = TL_keyboardButtonRow.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } rows.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = rows.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rows.get(a).serializeToStream(stream); } } } public static class TL_replyKeyboardHide extends ReplyMarkup { public static int constructor = 0xa03e5b85; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); selective = (flags & 4) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = selective ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); } } public static class TL_replyKeyboardForceReply extends ReplyMarkup { public static int constructor = 0xf4108aa0; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); single_use = (flags & 2) != 0; selective = (flags & 4) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = single_use ? (flags | 2) : (flags &~ 2); flags = selective ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); } } public static class TL_replyKeyboardMarkup extends ReplyMarkup { public static int constructor = 0x3502758c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); resize = (flags & 1) != 0; single_use = (flags & 2) != 0; selective = (flags & 4) != 0; int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_keyboardButtonRow object = TL_keyboardButtonRow.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } rows.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = resize ? (flags | 1) : (flags &~ 1); flags = single_use ? (flags | 2) : (flags &~ 2); flags = selective ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = rows.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rows.get(a).serializeToStream(stream); } } } public static abstract class contacts_Contacts extends TLObject { public ArrayList contacts = new ArrayList<>(); public int saved_count; public ArrayList users = new ArrayList<>(); public static contacts_Contacts TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { contacts_Contacts result = null; switch (constructor) { case 0xb74ba9d2: result = new TL_contacts_contactsNotModified(); break; case 0xeae87e42: result = new TL_contacts_contacts(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in contacts_Contacts", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_contacts_contactsNotModified extends contacts_Contacts { public static int constructor = 0xb74ba9d2; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contacts_contacts extends contacts_Contacts { public static int constructor = 0xeae87e42; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_contact object = TL_contact.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } contacts.add(object); } saved_count = stream.readInt32(exception); magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = contacts.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { contacts.get(a).serializeToStream(stream); } stream.writeInt32(saved_count); stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class SecureRequiredType extends TLObject { public static SecureRequiredType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecureRequiredType result = null; switch (constructor) { case 0x829d99da: result = new TL_secureRequiredType(); break; case 0x27477b4: result = new TL_secureRequiredTypeOneOf(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecureRequiredType", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_secureRequiredType extends SecureRequiredType { public static int constructor = 0x829d99da; public int flags; public boolean native_names; public boolean selfie_required; public boolean translation_required; public SecureValueType type; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); native_names = (flags & 1) != 0; selfie_required = (flags & 2) != 0; translation_required = (flags & 4) != 0; type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = native_names ? (flags | 1) : (flags &~ 1); flags = selfie_required ? (flags | 2) : (flags &~ 2); flags = translation_required ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); type.serializeToStream(stream); } } public static class TL_secureRequiredTypeOneOf extends SecureRequiredType { public static int constructor = 0x27477b4; public ArrayList types = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureRequiredType object = SecureRequiredType.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } types.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = types.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { types.get(a).serializeToStream(stream); } } } public static abstract class InputPrivacyKey extends TLObject { public static InputPrivacyKey TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPrivacyKey result = null; switch (constructor) { case 0x4f96cb18: result = new TL_inputPrivacyKeyStatusTimestamp(); break; case 0xbdfb0426: result = new TL_inputPrivacyKeyChatInvite(); break; case 0xfabadc5f: result = new TL_inputPrivacyKeyPhoneCall(); break; case 0xdb9e70d2: result = new TL_inputPrivacyKeyPhoneP2P(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPrivacyKey", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputPrivacyKeyStatusTimestamp extends InputPrivacyKey { public static int constructor = 0x4f96cb18; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyKeyChatInvite extends InputPrivacyKey { public static int constructor = 0xbdfb0426; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyKeyPhoneCall extends InputPrivacyKey { public static int constructor = 0xfabadc5f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyKeyPhoneP2P extends InputPrivacyKey { public static int constructor = 0xdb9e70d2; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class photos_Photos extends TLObject { public ArrayList photos = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public int count; public static photos_Photos TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { photos_Photos result = null; switch (constructor) { case 0x8dca6aa5: result = new TL_photos_photos(); break; case 0x15051f54: result = new TL_photos_photosSlice(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in photos_Photos", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_photos_photos extends photos_Photos { public static int constructor = 0x8dca6aa5; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_photos_photosSlice extends photos_Photos { public static int constructor = 0x15051f54; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class ChatFull extends TLObject { public int id; public ChatParticipants participants; public Photo chat_photo; public PeerNotifySettings notify_settings; public ExportedChatInvite exported_invite; public ArrayList bot_info = new ArrayList<>(); public int flags; public boolean can_view_participants; public boolean can_set_username; public String about; public int participants_count; public int admins_count; public int read_inbox_max_id; public int read_outbox_max_id; public int unread_count; public int migrated_from_chat_id; public int migrated_from_max_id; public int pinned_msg_id; public int kicked_count; public int unread_important_count; public boolean can_set_stickers; public boolean hidden_prehistory; public boolean can_view_stats; public int banned_count; public int online_count; public StickerSet stickerset; public int available_min_id; public int call_msg_id; public static ChatFull TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatFull result = null; switch (constructor) { case 0x1c87a71a: result = new TL_channelFull(); break; case 0x2e02a614: result = new TL_chatFull_layer87(); break; case 0x17f45fcf: result = new TL_channelFull_layer71(); break; case 0x76af5481: result = new TL_channelFull_layer72(); break; case 0x97bee562: result = new TL_channelFull_layer52(); break; case 0xc3d5512f: result = new TL_channelFull_layer67(); break; case 0x9e341ddf: result = new TL_channelFull_layer48(); break; case 0x22a235da: result = new TL_chatFull(); break; case 0xedd2a791: result = new TL_chatFull_layer92(); break; case 0xfab31aa3: result = new TL_channelFull_old(); break; case 0x95cb5f57: result = new TL_channelFull_layer70(); break; case 0xcbb62890: result = new TL_channelFull_layer89(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChatFull", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_channelFull extends ChatFull { public static int constructor = 0x1c87a71a; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; can_view_stats = (flags & 4096) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } if ((flags & 8192) != 0) { online_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } if ((flags & 256) != 0) { stickerset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); flags = can_view_stats ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } if ((flags & 4) != 0) { stream.writeInt32(banned_count); } if ((flags & 8192) != 0) { stream.writeInt32(online_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } if ((flags & 256) != 0) { stickerset.serializeToStream(stream); } if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } } } public static class TL_chatFull_layer87 extends TL_chatFull { public static int constructor = 0x2e02a614; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); participants.serializeToStream(stream); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } } } public static class TL_channelFull_layer89 extends TL_channelFull { public static int constructor = 0xcbb62890; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } if ((flags & 256) != 0) { stickerset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } if ((flags & 2048) != 0) { call_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } if ((flags & 4) != 0) { stream.writeInt32(banned_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } if ((flags & 256) != 0) { stickerset.serializeToStream(stream); } if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } if ((flags & 2048) != 0) { stream.writeInt32(call_msg_id); } } } public static class TL_channelFull_layer72 extends TL_channelFull { public static int constructor = 0x76af5481; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; hidden_prehistory = (flags & 1024) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } if ((flags & 256) != 0) { stickerset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 512) != 0) { available_min_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); flags = hidden_prehistory ? (flags | 1024) : (flags &~ 1024); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } if ((flags & 4) != 0) { stream.writeInt32(banned_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } if ((flags & 256) != 0) { stickerset.serializeToStream(stream); } if ((flags & 512) != 0) { stream.writeInt32(available_min_id); } } } public static class TL_channelFull_layer71 extends TL_channelFull { public static int constructor = 0x17f45fcf; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; can_set_stickers = (flags & 128) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } if ((flags & 256) != 0) { stickerset = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); flags = can_set_stickers ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } if ((flags & 4) != 0) { stream.writeInt32(banned_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } if ((flags & 256) != 0) { stickerset.serializeToStream(stream); } } } public static class TL_chatFull extends ChatFull { public static int constructor = 0x22a235da; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_set_username = (flags & 128) != 0; id = stream.readInt32(exception); about = stream.readString(exception); participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } } if ((flags & 64) != 0) { pinned_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_set_username ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); participants.serializeToStream(stream); if ((flags & 4) != 0) { chat_photo.serializeToStream(stream); } notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } } if ((flags & 64) != 0) { stream.writeInt32(pinned_msg_id); } } } public static class TL_chatFull_layer92 extends TL_chatFull { public static int constructor = 0xedd2a791; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt32(exception); participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } } if ((flags & 64) != 0) { pinned_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(id); participants.serializeToStream(stream); if ((flags & 4) != 0) { chat_photo.serializeToStream(stream); } notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } } if ((flags & 64) != 0) { stream.writeInt32(pinned_msg_id); } } } public static class TL_channelFull_layer70 extends TL_channelFull { public static int constructor = 0x95cb5f57; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } if ((flags & 4) != 0) { banned_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } if ((flags & 4) != 0) { stream.writeInt32(banned_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } } } public static class TL_channelFull_layer52 extends TL_channelFull { public static int constructor = 0x97bee562; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); unread_important_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(unread_count); stream.writeInt32(unread_important_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } } } public static class TL_channelFull_layer67 extends TL_channelFull { public static int constructor = 0xc3d5512f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; can_set_username = (flags & 64) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } if ((flags & 32) != 0) { pinned_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); flags = can_set_username ? (flags | 64) : (flags &~ 64); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } if ((flags & 32) != 0) { stream.writeInt32(pinned_msg_id); } } } public static class TL_channelFull_layer48 extends TL_channelFull { public static int constructor = 0x9e341ddf; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); unread_important_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInfo object = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } bot_info.add(object); } if ((flags & 16) != 0) { migrated_from_chat_id = stream.readInt32(exception); } if ((flags & 16) != 0) { migrated_from_max_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(unread_count); stream.writeInt32(unread_important_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = bot_info.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { bot_info.get(a).serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_chat_id); } if ((flags & 16) != 0) { stream.writeInt32(migrated_from_max_id); } } } public static class TL_channelFull_old extends TL_channelFull { public static int constructor = 0xfab31aa3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_view_participants = (flags & 8) != 0; id = stream.readInt32(exception); about = stream.readString(exception); if ((flags & 1) != 0) { participants_count = stream.readInt32(exception); } if ((flags & 2) != 0) { admins_count = stream.readInt32(exception); } if ((flags & 4) != 0) { kicked_count = stream.readInt32(exception); } read_inbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); unread_important_count = stream.readInt32(exception); chat_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); exported_invite = ExportedChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_view_participants ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(about); if ((flags & 1) != 0) { stream.writeInt32(participants_count); } if ((flags & 2) != 0) { stream.writeInt32(admins_count); } if ((flags & 4) != 0) { stream.writeInt32(kicked_count); } stream.writeInt32(read_inbox_max_id); stream.writeInt32(unread_count); stream.writeInt32(unread_important_count); chat_photo.serializeToStream(stream); notify_settings.serializeToStream(stream); exported_invite.serializeToStream(stream); } } public static class TL_inputPeerNotifySettings extends TLObject { public static int constructor = 0x9c3d198e; public int flags; public boolean show_previews; public boolean silent; public int mute_until; public String sound; public static TL_inputPeerNotifySettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputPeerNotifySettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputPeerNotifySettings", constructor)); } else { return null; } } TL_inputPeerNotifySettings result = new TL_inputPeerNotifySettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { show_previews = stream.readBool(exception); } if ((flags & 2) != 0) { silent = stream.readBool(exception); } if ((flags & 4) != 0) { mute_until = stream.readInt32(exception); } if ((flags & 8) != 0) { sound = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeBool(show_previews); } if ((flags & 2) != 0) { stream.writeBool(silent); } if ((flags & 4) != 0) { stream.writeInt32(mute_until); } if ((flags & 8) != 0) { stream.writeString(sound); } } } public static class TL_codeSettings extends TLObject { public static int constructor = 0x302f59f3; public int flags; public boolean allow_flashcall; public boolean current_number; public boolean app_hash_persistent; public String app_hash; public static TL_codeSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_codeSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_codeSettings", constructor)); } else { return null; } } TL_codeSettings result = new TL_codeSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); allow_flashcall = (flags & 1) != 0; current_number = (flags & 2) != 0; app_hash_persistent = (flags & 4) != 0; if ((flags & 8) != 0) { app_hash = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = allow_flashcall ? (flags | 1) : (flags &~ 1); flags = current_number ? (flags | 2) : (flags &~ 2); flags = app_hash_persistent ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); if ((flags & 8) != 0) { stream.writeString(app_hash); } } } public static class TL_null extends TLObject { public static int constructor = 0x56730bcc; public static TL_null TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_null.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_null", constructor)); } else { return null; } } TL_null result = new TL_null(); result.readParams(stream, exception); return result; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class Page extends TLObject { public int flags; public boolean part; public boolean rtl; public String url; public ArrayList blocks = new ArrayList<>(); public ArrayList photos = new ArrayList<>(); public ArrayList documents = new ArrayList<>(); public static Page TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Page result = null; switch (constructor) { case 0x8dee6c44: result = new TL_pagePart_layer67(); break; case 0x8e3f9ebe: result = new TL_pagePart_layer82(); break; case 0xd7a19d69: result = new TL_pageFull_layer67(); break; case 0x556ec7aa: result = new TL_pageFull_layer82(); break; case 0xae891bec: result = new TL_page(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Page", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_pagePart_layer67 extends TL_pagePart_layer82 { public static int constructor = 0x8dee6c44; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static class TL_pagePart_layer82 extends Page { public static int constructor = 0x8e3f9ebe; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static class TL_pageFull_layer67 extends TL_page { public static int constructor = 0xd7a19d69; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static class TL_pageFull_layer82 extends TL_page { public static int constructor = 0x556ec7aa; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static class TL_page extends Page { public static int constructor = 0xae891bec; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); part = (flags & 1) != 0; rtl = (flags & 2) != 0; url = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Photo object = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } photos.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } documents.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = part ? (flags | 1) : (flags &~ 1); flags = rtl ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeString(url); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = photos.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { photos.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { documents.get(a).serializeToStream(stream); } } } public static class TL_topPeerCategoryPeers extends TLObject { public static int constructor = 0xfb834291; public TopPeerCategory category; public int count; public ArrayList peers = new ArrayList<>(); public static TL_topPeerCategoryPeers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_topPeerCategoryPeers.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_topPeerCategoryPeers", constructor)); } else { return null; } } TL_topPeerCategoryPeers result = new TL_topPeerCategoryPeers(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { category = TopPeerCategory.TLdeserialize(stream, stream.readInt32(exception), exception); count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_topPeer object = TL_topPeer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } peers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); category.serializeToStream(stream); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = peers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { peers.get(a).serializeToStream(stream); } } } public static abstract class InputUser extends TLObject { public int user_id; public long access_hash; public static InputUser TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputUser result = null; switch (constructor) { case 0xb98886cf: result = new TL_inputUserEmpty(); break; case 0xf7c1b13f: result = new TL_inputUserSelf(); break; case 0xd8292816: result = new TL_inputUser(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputUser", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputUserEmpty extends InputUser { public static int constructor = 0xb98886cf; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputUserSelf extends InputUser { public static int constructor = 0xf7c1b13f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputUser extends InputUser { public static int constructor = 0xd8292816; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt64(access_hash); } } public static abstract class KeyboardButton extends TLObject { public String text; public String url; public int flags; public boolean same_peer; public String query; public byte[] data; public static KeyboardButton TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { KeyboardButton result = null; switch (constructor) { case 0xb16a6c29: result = new TL_keyboardButtonRequestPhone(); break; case 0x50f41ccf: result = new TL_keyboardButtonGame(); break; case 0x258aff05: result = new TL_keyboardButtonUrl(); break; case 0x568a748: result = new TL_keyboardButtonSwitchInline(); break; case 0xfc796b3f: result = new TL_keyboardButtonRequestGeoLocation(); break; case 0xafd93fbb: result = new TL_keyboardButtonBuy(); break; case 0x683a5e46: result = new TL_keyboardButtonCallback(); break; case 0xa2fa4880: result = new TL_keyboardButton(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in KeyboardButton", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_keyboardButtonRequestPhone extends KeyboardButton { public static int constructor = 0xb16a6c29; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_keyboardButtonGame extends KeyboardButton { public static int constructor = 0x50f41ccf; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_keyboardButtonUrl extends KeyboardButton { public static int constructor = 0x258aff05; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); stream.writeString(url); } } public static class TL_keyboardButtonSwitchInline extends KeyboardButton { public static int constructor = 0x568a748; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); same_peer = (flags & 1) != 0; text = stream.readString(exception); query = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = same_peer ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeString(text); stream.writeString(query); } } public static class TL_keyboardButtonRequestGeoLocation extends KeyboardButton { public static int constructor = 0xfc796b3f; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_keyboardButtonBuy extends KeyboardButton { public static int constructor = 0xafd93fbb; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_keyboardButtonCallback extends KeyboardButton { public static int constructor = 0x683a5e46; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); data = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); stream.writeByteArray(data); } } public static class TL_keyboardButton extends KeyboardButton { public static int constructor = 0xa2fa4880; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static abstract class BotInlineMessage extends TLObject { public int flags; public GeoPoint geo; public String title; public String address; public String provider; public String venue_id; public String venue_type; public ReplyMarkup reply_markup; public String message; public ArrayList entities = new ArrayList<>(); public String phone_number; public String first_name; public String last_name; public String vcard; public boolean no_webpage; public int period; public static BotInlineMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { BotInlineMessage result = null; switch (constructor) { case 0x4366232e: result = new TL_botInlineMessageMediaVenue_layer77(); break; case 0x8a86659c: result = new TL_botInlineMessageMediaVenue(); break; case 0x3a8fd8b8: result = new TL_botInlineMessageMediaGeo_layer71(); break; case 0x764cf810: result = new TL_botInlineMessageMediaAuto(); break; case 0xa74b15b: result = new TL_botInlineMessageMediaAuto_layer74(); break; case 0x35edb4d4: result = new TL_botInlineMessageMediaContact_layer81(); break; case 0x18d1cdc2: result = new TL_botInlineMessageMediaContact(); break; case 0x8c7f65e2: result = new TL_botInlineMessageText(); break; case 0xb722de65: result = new TL_botInlineMessageMediaGeo(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in BotInlineMessage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_botInlineMessageMediaVenue_layer77 extends TL_botInlineMessageMediaVenue { public static int constructor = 0x4366232e; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); geo.serializeToStream(stream); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaVenue extends BotInlineMessage { public static int constructor = 0x8a86659c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); venue_type = stream.readString(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); geo.serializeToStream(stream); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); stream.writeString(venue_type); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaGeo_layer71 extends TL_botInlineMessageMediaGeo { public static int constructor = 0x3a8fd8b8; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); geo.serializeToStream(stream); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaAuto extends BotInlineMessage { public static int constructor = 0x764cf810; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 2) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(message); if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaAuto_layer74 extends TL_botInlineMessageMediaAuto { public static int constructor = 0xa74b15b; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(message); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaContact_layer81 extends TL_botInlineMessageMediaContact { public static int constructor = 0x35edb4d4; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaContact extends BotInlineMessage { public static int constructor = 0x18d1cdc2; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); vcard = stream.readString(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(vcard); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageText extends BotInlineMessage { public static int constructor = 0x8c7f65e2; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); no_webpage = (flags & 1) != 0; message = stream.readString(exception); if ((flags & 2) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = no_webpage ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeString(message); if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_botInlineMessageMediaGeo extends BotInlineMessage { public static int constructor = 0xb722de65; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); period = stream.readInt32(exception); if ((flags & 4) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); geo.serializeToStream(stream); stream.writeInt32(period); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } } } public static class TL_keyboardButtonRow extends TLObject { public static int constructor = 0x77608b83; public ArrayList buttons = new ArrayList<>(); public static TL_keyboardButtonRow TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_keyboardButtonRow.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_keyboardButtonRow", constructor)); } else { return null; } } TL_keyboardButtonRow result = new TL_keyboardButtonRow(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { KeyboardButton object = KeyboardButton.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } buttons.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = buttons.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { buttons.get(a).serializeToStream(stream); } } } public static abstract class Bool extends TLObject { public static Bool TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Bool result = null; switch (constructor) { case 0x997275b5: result = new TL_boolTrue(); break; case 0xbc799737: result = new TL_boolFalse(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Bool", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_boolTrue extends Bool { public static int constructor = 0x997275b5; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_boolFalse extends Bool { public static int constructor = 0xbc799737; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputAppEvent extends TLObject { public static int constructor = 0x1d1b1245; public double time; public String type; public long peer; public JSONValue data; public static TL_inputAppEvent TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputAppEvent.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputAppEvent", constructor)); } else { return null; } } TL_inputAppEvent result = new TL_inputAppEvent(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { time = stream.readDouble(exception); type = stream.readString(exception); peer = stream.readInt64(exception); data = JSONValue.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(time); stream.writeString(type); stream.writeInt64(peer); data.serializeToStream(stream); } } public static class TL_auth_exportedAuthorization extends TLObject { public static int constructor = 0xdf969c2d; public int id; public byte[] bytes; public static TL_auth_exportedAuthorization TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_auth_exportedAuthorization.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_auth_exportedAuthorization", constructor)); } else { return null; } } TL_auth_exportedAuthorization result = new TL_auth_exportedAuthorization(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); bytes = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeByteArray(bytes); } } public static abstract class WebPage extends TLObject { public int flags; public long id; public String url; public String display_url; public int hash; public String type; public String site_name; public String title; public String description; public Photo photo; public String embed_url; public String embed_type; public int embed_width; public int embed_height; public int duration; public String author; public Document document; public Page cached_page; public int date; public static WebPage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { WebPage result = null; switch (constructor) { case 0x5f07b4bc: result = new TL_webPage(); break; case 0xa31ea0b5: result = new TL_webPage_old(); break; case 0xeb1477e8: result = new TL_webPageEmpty(); break; case 0xd41a5167: result = new TL_webPageUrlPending(); break; case 0xc586da1c: result = new TL_webPagePending(); break; case 0x85849473: result = new TL_webPageNotModified(); break; case 0xca820ed7: result = new TL_webPage_layer58(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in WebPage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_webPage extends WebPage { public static int constructor = 0x5f07b4bc; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); url = stream.readString(exception); display_url = stream.readString(exception); hash = stream.readInt32(exception); if ((flags & 1) != 0) { type = stream.readString(exception); } if ((flags & 2) != 0) { site_name = stream.readString(exception); } if ((flags & 4) != 0) { title = stream.readString(exception); } if ((flags & 8) != 0) { description = stream.readString(exception); } if ((flags & 16) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 32) != 0) { embed_url = stream.readString(exception); } if ((flags & 32) != 0) { embed_type = stream.readString(exception); } if ((flags & 64) != 0) { embed_width = stream.readInt32(exception); } if ((flags & 64) != 0) { embed_height = stream.readInt32(exception); } if ((flags & 128) != 0) { duration = stream.readInt32(exception); } if ((flags & 256) != 0) { author = stream.readString(exception); } if ((flags & 512) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 1024) != 0) { cached_page = Page.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeString(url); stream.writeString(display_url); stream.writeInt32(hash); if ((flags & 1) != 0) { stream.writeString(type); } if ((flags & 2) != 0) { stream.writeString(site_name); } if ((flags & 4) != 0) { stream.writeString(title); } if ((flags & 8) != 0) { stream.writeString(description); } if ((flags & 16) != 0) { photo.serializeToStream(stream); } if ((flags & 32) != 0) { stream.writeString(embed_url); } if ((flags & 32) != 0) { stream.writeString(embed_type); } if ((flags & 64) != 0) { stream.writeInt32(embed_width); } if ((flags & 64) != 0) { stream.writeInt32(embed_height); } if ((flags & 128) != 0) { stream.writeInt32(duration); } if ((flags & 256) != 0) { stream.writeString(author); } if ((flags & 512) != 0) { document.serializeToStream(stream); } if ((flags & 1024) != 0) { cached_page.serializeToStream(stream); } } } public static class TL_webPage_old extends TL_webPage { public static int constructor = 0xa31ea0b5; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); url = stream.readString(exception); display_url = stream.readString(exception); if ((flags & 1) != 0) { type = stream.readString(exception); } if ((flags & 2) != 0) { site_name = stream.readString(exception); } if ((flags & 4) != 0) { title = stream.readString(exception); } if ((flags & 8) != 0) { description = stream.readString(exception); } if ((flags & 16) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 32) != 0) { embed_url = stream.readString(exception); } if ((flags & 32) != 0) { embed_type = stream.readString(exception); } if ((flags & 64) != 0) { embed_width = stream.readInt32(exception); } if ((flags & 64) != 0) { embed_height = stream.readInt32(exception); } if ((flags & 128) != 0) { duration = stream.readInt32(exception); } if ((flags & 256) != 0) { author = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeString(url); stream.writeString(display_url); if ((flags & 1) != 0) { stream.writeString(type); } if ((flags & 2) != 0) { stream.writeString(site_name); } if ((flags & 4) != 0) { stream.writeString(title); } if ((flags & 8) != 0) { stream.writeString(description); } if ((flags & 16) != 0) { photo.serializeToStream(stream); } if ((flags & 32) != 0) { stream.writeString(embed_url); } if ((flags & 32) != 0) { stream.writeString(embed_type); } if ((flags & 64) != 0) { stream.writeInt32(embed_width); } if ((flags & 64) != 0) { stream.writeInt32(embed_height); } if ((flags & 128) != 0) { stream.writeInt32(duration); } if ((flags & 256) != 0) { stream.writeString(author); } } } public static class TL_webPageEmpty extends WebPage { public static int constructor = 0xeb1477e8; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static class TL_webPageUrlPending extends WebPage { public static int constructor = 0xd41a5167; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); } } public static class TL_webPagePending extends WebPage { public static int constructor = 0xc586da1c; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(date); } } public static class TL_webPageNotModified extends WebPage { public static int constructor = 0x85849473; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_webPage_layer58 extends TL_webPage { public static int constructor = 0xca820ed7; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); url = stream.readString(exception); display_url = stream.readString(exception); if ((flags & 1) != 0) { type = stream.readString(exception); } if ((flags & 2) != 0) { site_name = stream.readString(exception); } if ((flags & 4) != 0) { title = stream.readString(exception); } if ((flags & 8) != 0) { description = stream.readString(exception); } if ((flags & 16) != 0) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 32) != 0) { embed_url = stream.readString(exception); } if ((flags & 32) != 0) { embed_type = stream.readString(exception); } if ((flags & 64) != 0) { embed_width = stream.readInt32(exception); } if ((flags & 64) != 0) { embed_height = stream.readInt32(exception); } if ((flags & 128) != 0) { duration = stream.readInt32(exception); } if ((flags & 256) != 0) { author = stream.readString(exception); } if ((flags & 512) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeString(url); stream.writeString(display_url); if ((flags & 1) != 0) { stream.writeString(type); } if ((flags & 2) != 0) { stream.writeString(site_name); } if ((flags & 4) != 0) { stream.writeString(title); } if ((flags & 8) != 0) { stream.writeString(description); } if ((flags & 16) != 0) { photo.serializeToStream(stream); } if ((flags & 32) != 0) { stream.writeString(embed_url); } if ((flags & 32) != 0) { stream.writeString(embed_type); } if ((flags & 64) != 0) { stream.writeInt32(embed_width); } if ((flags & 64) != 0) { stream.writeInt32(embed_height); } if ((flags & 128) != 0) { stream.writeInt32(duration); } if ((flags & 256) != 0) { stream.writeString(author); } if ((flags & 512) != 0) { document.serializeToStream(stream); } } } public static abstract class messages_FeaturedStickers extends TLObject { public int hash; public ArrayList sets = new ArrayList<>(); public ArrayList unread = new ArrayList<>(); public static messages_FeaturedStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_FeaturedStickers result = null; switch (constructor) { case 0xf89d88e5: result = new TL_messages_featuredStickers(); break; case 0x4ede3cf: result = new TL_messages_featuredStickersNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_FeaturedStickers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_featuredStickers extends messages_FeaturedStickers { public static int constructor = 0xf89d88e5; public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sets.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { unread.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = sets.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sets.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = unread.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(unread.get(a)); } } } public static class TL_messages_featuredStickersNotModified extends messages_FeaturedStickers { public static int constructor = 0x4ede3cf; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class SecureValueError extends TLObject { public static SecureValueError TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecureValueError result = null; switch (constructor) { case 0x7a700873: result = new TL_secureValueErrorFile(); break; case 0xbe3dfa: result = new TL_secureValueErrorFrontSide(); break; case 0x666220e9: result = new TL_secureValueErrorFiles(); break; case 0x868a2aa5: result = new TL_secureValueErrorReverseSide(); break; case 0xa1144770: result = new TL_secureValueErrorTranslationFile(); break; case 0x869d758f: result = new TL_secureValueError(); break; case 0xe8a40bd9: result = new TL_secureValueErrorData(); break; case 0x34636dd8: result = new TL_secureValueErrorTranslationFiles(); break; case 0xe537ced6: result = new TL_secureValueErrorSelfie(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecureValueError", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_secureValueErrorFile extends SecureValueError { public static int constructor = 0x7a700873; public SecureValueType type; public byte[] file_hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); file_hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(file_hash); stream.writeString(text); } } public static class TL_secureValueErrorFrontSide extends SecureValueError { public static int constructor = 0xbe3dfa; public SecureValueType type; public byte[] file_hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); file_hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(file_hash); stream.writeString(text); } } public static class TL_secureValueErrorFiles extends SecureValueError { public static int constructor = 0x666220e9; public SecureValueType type; public ArrayList file_hash = new ArrayList<>(); public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { file_hash.add(stream.readByteArray(exception)); } text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = file_hash.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeByteArray(file_hash.get(a)); } stream.writeString(text); } } public static class TL_secureValueErrorReverseSide extends SecureValueError { public static int constructor = 0x868a2aa5; public SecureValueType type; public byte[] file_hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); file_hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(file_hash); stream.writeString(text); } } public static class TL_secureValueErrorTranslationFile extends SecureValueError { public static int constructor = 0xa1144770; public SecureValueType type; public byte[] file_hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); file_hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(file_hash); stream.writeString(text); } } public static class TL_secureValueError extends SecureValueError { public static int constructor = 0x869d758f; public SecureValueType type; public byte[] hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(hash); stream.writeString(text); } } public static class TL_secureValueErrorData extends SecureValueError { public static int constructor = 0xe8a40bd9; public SecureValueType type; public byte[] data_hash; public String field; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); data_hash = stream.readByteArray(exception); field = stream.readString(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(data_hash); stream.writeString(field); stream.writeString(text); } } public static class TL_secureValueErrorTranslationFiles extends SecureValueError { public static int constructor = 0x34636dd8; public SecureValueType type; public ArrayList file_hash = new ArrayList<>(); public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { file_hash.add(stream.readByteArray(exception)); } text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = file_hash.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeByteArray(file_hash.get(a)); } stream.writeString(text); } } public static class TL_secureValueErrorSelfie extends SecureValueError { public static int constructor = 0xe537ced6; public SecureValueType type; public byte[] file_hash; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); file_hash = stream.readByteArray(exception); text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeByteArray(file_hash); stream.writeString(text); } } public static class TL_secureValue extends TLObject { public static int constructor = 0x187fa0ca; public int flags; public SecureValueType type; public TL_secureData data; public SecureFile front_side; public SecureFile reverse_side; public SecureFile selfie; public ArrayList translation = new ArrayList<>(); public ArrayList files = new ArrayList<>(); public SecurePlainData plain_data; public byte[] hash; public static TL_secureValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_secureValue.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_secureValue", constructor)); } else { return null; } } TL_secureValue result = new TL_secureValue(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); type = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { data = TL_secureData.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { front_side = SecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { reverse_side = SecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 8) != 0) { selfie = SecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureFile object = SecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } translation.add(object); } } if ((flags & 16) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureFile object = SecureFile.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } files.add(object); } } if ((flags & 32) != 0) { plain_data = SecurePlainData.TLdeserialize(stream, stream.readInt32(exception), exception); } hash = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); type.serializeToStream(stream); if ((flags & 1) != 0) { data.serializeToStream(stream); } if ((flags & 2) != 0) { front_side.serializeToStream(stream); } if ((flags & 4) != 0) { reverse_side.serializeToStream(stream); } if ((flags & 8) != 0) { selfie.serializeToStream(stream); } if ((flags & 64) != 0) { stream.writeInt32(0x1cb5c415); int count = translation.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { translation.get(a).serializeToStream(stream); } } if ((flags & 16) != 0) { stream.writeInt32(0x1cb5c415); int count = files.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { files.get(a).serializeToStream(stream); } } if ((flags & 32) != 0) { plain_data.serializeToStream(stream); } stream.writeByteArray(hash); } } public static class TL_phone_groupCall extends TLObject { public static int constructor = 0x6737ffb7; public GroupCall call; public ArrayList participants = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_phone_groupCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_phone_groupCall.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_phone_groupCall", constructor)); } else { return null; } } TL_phone_groupCall result = new TL_phone_groupCall(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { call = GroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { GroupCallParticipant object = GroupCallParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } participants.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = participants.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { participants.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class PhoneCallDiscardReason extends TLObject { public byte[] encrypted_key; public static PhoneCallDiscardReason TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PhoneCallDiscardReason result = null; switch (constructor) { case 0x57adc690: result = new TL_phoneCallDiscardReasonHangup(); break; case 0xfaf7e8c9: result = new TL_phoneCallDiscardReasonBusy(); break; case 0xafe2b839: result = new TL_phoneCallDiscardReasonAllowGroupCall(); break; case 0x85e42301: result = new TL_phoneCallDiscardReasonMissed(); break; case 0xe095c1a0: result = new TL_phoneCallDiscardReasonDisconnect(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PhoneCallDiscardReason", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_phoneCallDiscardReasonHangup extends PhoneCallDiscardReason { public static int constructor = 0x57adc690; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_phoneCallDiscardReasonBusy extends PhoneCallDiscardReason { public static int constructor = 0xfaf7e8c9; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_phoneCallDiscardReasonAllowGroupCall extends PhoneCallDiscardReason { public static int constructor = 0xafe2b839; public void readParams(AbstractSerializedData stream, boolean exception) { encrypted_key = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(encrypted_key); } } public static class TL_phoneCallDiscardReasonMissed extends PhoneCallDiscardReason { public static int constructor = 0x85e42301; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_phoneCallDiscardReasonDisconnect extends PhoneCallDiscardReason { public static int constructor = 0xe095c1a0; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_passwordRecovery extends TLObject { public static int constructor = 0x137948a5; public String email_pattern; public static TL_auth_passwordRecovery TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_auth_passwordRecovery.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_auth_passwordRecovery", constructor)); } else { return null; } } TL_auth_passwordRecovery result = new TL_auth_passwordRecovery(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { email_pattern = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(email_pattern); } } public static class TL_botCommand extends TLObject { public static int constructor = 0xc27ac8c7; public String command; public String description; public static TL_botCommand TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_botCommand.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_botCommand", constructor)); } else { return null; } } TL_botCommand result = new TL_botCommand(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { command = stream.readString(exception); description = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(command); stream.writeString(description); } } public static abstract class InputNotifyPeer extends TLObject { public static InputNotifyPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputNotifyPeer result = null; switch (constructor) { case 0x4a95e84e: result = new TL_inputNotifyChats(); break; case 0xb8bc5b0c: result = new TL_inputNotifyPeer(); break; case 0x193b4417: result = new TL_inputNotifyUsers(); break; case 0xb1db7c7e: result = new TL_inputNotifyBroadcasts(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputNotifyPeer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputNotifyChats extends InputNotifyPeer { public static int constructor = 0x4a95e84e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputNotifyPeer extends InputNotifyPeer { public static int constructor = 0xb8bc5b0c; public InputPeer peer; public void readParams(AbstractSerializedData stream, boolean exception) { peer = InputPeer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_inputNotifyUsers extends InputNotifyPeer { public static int constructor = 0x193b4417; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputNotifyBroadcasts extends InputNotifyPeer { public static int constructor = 0xb1db7c7e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class InputFileLocation extends TLObject { public long id; public long access_hash; public long volume_id; public int local_id; public long secret; public byte[] file_reference; public static InputFileLocation TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputFileLocation result = null; switch (constructor) { case 0xcbc7ee28: result = new TL_inputSecureFileLocation(); break; case 0xf5235d55: result = new TL_inputEncryptedFileLocation(); break; case 0x196683d9: result = new TL_inputDocumentFileLocation(); break; case 0xdfdaabe1: result = new TL_inputFileLocation(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputFileLocation", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputSecureFileLocation extends InputFileLocation { public static int constructor = 0xcbc7ee28; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_inputEncryptedFileLocation extends InputFileLocation { public static int constructor = 0xf5235d55; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_inputDocumentFileLocation extends InputFileLocation { public static int constructor = 0x196683d9; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); } } public static class TL_inputFileLocation extends InputFileLocation { public static int constructor = 0xdfdaabe1; public void readParams(AbstractSerializedData stream, boolean exception) { volume_id = stream.readInt64(exception); local_id = stream.readInt32(exception); secret = stream.readInt64(exception); file_reference = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(volume_id); stream.writeInt32(local_id); stream.writeInt64(secret); stream.writeByteArray(file_reference); } } public static class TL_photos_photo extends TLObject { public static int constructor = 0x20212ca8; public Photo photo; public ArrayList users = new ArrayList<>(); public static TL_photos_photo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_photos_photo.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_photos_photo", constructor)); } else { return null; } } TL_photos_photo result = new TL_photos_photo(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class help_TermsOfServiceUpdate extends TLObject { public static help_TermsOfServiceUpdate TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_TermsOfServiceUpdate result = null; switch (constructor) { case 0x28ecf961: result = new TL_help_termsOfServiceUpdate(); break; case 0xe3309f7f: result = new TL_help_termsOfServiceUpdateEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_TermsOfServiceUpdate", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_termsOfServiceUpdate extends help_TermsOfServiceUpdate { public static int constructor = 0x28ecf961; public int expires; public TL_help_termsOfService terms_of_service; public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); terms_of_service = TL_help_termsOfService.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); terms_of_service.serializeToStream(stream); } } public static class TL_help_termsOfServiceUpdateEmpty extends help_TermsOfServiceUpdate { public static int constructor = 0xe3309f7f; public int expires; public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); } } public static abstract class PhoneCall extends TLObject { public long id; public long access_hash; public int date; public int admin_id; public int participant_id; public byte[] g_b; public TL_phoneCallProtocol protocol; public int flags; public boolean p2p_allowed; public byte[] g_a_or_b; public long key_fingerprint; public TL_phoneConnection connection; public ArrayList alternative_connections = new ArrayList<>(); public int start_date; public byte[] g_a_hash; public int receive_date; public boolean need_rating; public boolean need_debug; public PhoneCallDiscardReason reason; public int duration; public static PhoneCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PhoneCall result = null; switch (constructor) { case 0x6d003d3f: result = new TL_phoneCallAccepted(); break; case 0xe6f9ddf3: result = new TL_phoneCall(); break; case 0x83761ce4: result = new TL_phoneCallRequested(); break; case 0xffe6ab67: result = new TL_phoneCall_layer86(); break; case 0x1b8f4ad1: result = new TL_phoneCallWaiting(); break; case 0x50ca4de1: result = new TL_phoneCallDiscarded(); break; case 0x5366c915: result = new TL_phoneCallEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PhoneCall", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_phoneCallAccepted extends PhoneCall { public static int constructor = 0x6d003d3f; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_b = stream.readByteArray(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_b); protocol.serializeToStream(stream); } } public static class TL_phoneCall extends PhoneCall { public static int constructor = 0xe6f9ddf3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); p2p_allowed = (flags & 32) != 0; id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a_or_b = stream.readByteArray(exception); key_fingerprint = stream.readInt64(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); connection = TL_phoneConnection.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_phoneConnection object = TL_phoneConnection.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } alternative_connections.add(object); } start_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = p2p_allowed ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a_or_b); stream.writeInt64(key_fingerprint); protocol.serializeToStream(stream); connection.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = alternative_connections.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { alternative_connections.get(a).serializeToStream(stream); } stream.writeInt32(start_date); } } public static class TL_phoneCallRequested extends PhoneCall { public static int constructor = 0x83761ce4; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a_hash = stream.readByteArray(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a_hash); protocol.serializeToStream(stream); } } public static class TL_phoneCall_layer86 extends TL_phoneCall { public static int constructor = 0xffe6ab67; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a_or_b = stream.readByteArray(exception); key_fingerprint = stream.readInt64(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); connection = TL_phoneConnection.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_phoneConnection object = TL_phoneConnection.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } alternative_connections.add(object); } start_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a_or_b); stream.writeInt64(key_fingerprint); protocol.serializeToStream(stream); connection.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = alternative_connections.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { alternative_connections.get(a).serializeToStream(stream); } stream.writeInt32(start_date); } } public static class TL_phoneCallWaiting extends PhoneCall { public static int constructor = 0x1b8f4ad1; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); protocol = TL_phoneCallProtocol.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { receive_date = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); protocol.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(receive_date); } } } public static class TL_phoneCallDiscarded extends PhoneCall { public static int constructor = 0x50ca4de1; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); need_rating = (flags & 4) != 0; need_debug = (flags & 8) != 0; id = stream.readInt64(exception); if ((flags & 1) != 0) { reason = PhoneCallDiscardReason.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { duration = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = need_rating ? (flags | 4) : (flags &~ 4); flags = need_debug ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt64(id); if ((flags & 1) != 0) { reason.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeInt32(duration); } } } public static class TL_phoneCallEmpty extends PhoneCall { public static int constructor = 0x5366c915; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static abstract class User extends TLObject { public int id; public String first_name; public String last_name; public String username; public long access_hash; public String phone; public UserProfilePhoto photo; public UserStatus status; public int flags; public boolean self; public boolean contact; public boolean mutual_contact; public boolean deleted; public boolean bot; public boolean bot_chat_history; public boolean bot_nochats; public boolean verified; public boolean restricted; public boolean min; public boolean bot_inline_geo; public boolean support; public int bot_info_version; public String restriction_reason; public String bot_inline_placeholder; public String lang_code; public boolean inactive; public boolean explicit_content; public static User TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { User result = null; switch (constructor) { case 0xcab35e18: result = new TL_userContact_old2(); break; case 0xf2fb8319: result = new TL_userContact_old(); break; case 0x2e13f4c3: result = new TL_user(); break; case 0x720535ec: result = new TL_userSelf_old(); break; case 0x1c60e608: result = new TL_userSelf_old3(); break; case 0xd6016d7a: result = new TL_userDeleted_old2(); break; case 0x200250ba: result = new TL_userEmpty(); break; case 0x22e8ceb0: result = new TL_userRequest_old(); break; case 0x5214c89d: result = new TL_userForeign_old(); break; case 0x75cf7a8: result = new TL_userForeign_old2(); break; case 0xd9ccc4ef: result = new TL_userRequest_old2(); break; case 0xb29ad7cc: result = new TL_userDeleted_old(); break; case 0xd10d979a: result = new TL_user_layer65(); break; case 0x22e49072: result = new TL_user_old(); break; case 0x7007b451: result = new TL_userSelf_old2(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in User", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_userContact_old2 extends User { public static int constructor = 0xcab35e18; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); access_hash = stream.readInt64(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); stream.writeInt64(access_hash); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userContact_old extends TL_userContact_old2 { public static int constructor = 0xf2fb8319; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); access_hash = stream.readInt64(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeInt64(access_hash); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_user extends User { public static int constructor = 0x2e13f4c3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); self = (flags & 1024) != 0; contact = (flags & 2048) != 0; mutual_contact = (flags & 4096) != 0; deleted = (flags & 8192) != 0; bot = (flags & 16384) != 0; bot_chat_history = (flags & 32768) != 0; bot_nochats = (flags & 65536) != 0; verified = (flags & 131072) != 0; restricted = (flags & 262144) != 0; min = (flags & 1048576) != 0; bot_inline_geo = (flags & 2097152) != 0; support = (flags & 8388608) != 0; id = stream.readInt32(exception); if ((flags & 1) != 0) { access_hash = stream.readInt64(exception); } if ((flags & 2) != 0) { first_name = stream.readString(exception); } if ((flags & 4) != 0) { last_name = stream.readString(exception); } if ((flags & 8) != 0) { username = stream.readString(exception); } if ((flags & 16) != 0) { phone = stream.readString(exception); } if ((flags & 32) != 0) { photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 16384) != 0) { bot_info_version = stream.readInt32(exception); } if ((flags & 262144) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 524288) != 0) { bot_inline_placeholder = stream.readString(exception); } if ((flags & 4194304) != 0) { lang_code = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = self ? (flags | 1024) : (flags &~ 1024); flags = contact ? (flags | 2048) : (flags &~ 2048); flags = mutual_contact ? (flags | 4096) : (flags &~ 4096); flags = deleted ? (flags | 8192) : (flags &~ 8192); flags = bot ? (flags | 16384) : (flags &~ 16384); flags = bot_chat_history ? (flags | 32768) : (flags &~ 32768); flags = bot_nochats ? (flags | 65536) : (flags &~ 65536); flags = verified ? (flags | 131072) : (flags &~ 131072); flags = restricted ? (flags | 262144) : (flags &~ 262144); flags = min ? (flags | 1048576) : (flags &~ 1048576); flags = bot_inline_geo ? (flags | 2097152) : (flags &~ 2097152); flags = support ? (flags | 8388608) : (flags &~ 8388608); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 1) != 0) { stream.writeInt64(access_hash); } if ((flags & 2) != 0) { stream.writeString(first_name); } if ((flags & 4) != 0) { stream.writeString(last_name); } if ((flags & 8) != 0) { stream.writeString(username); } if ((flags & 16) != 0) { stream.writeString(phone); } if ((flags & 32) != 0) { photo.serializeToStream(stream); } if ((flags & 64) != 0) { status.serializeToStream(stream); } if ((flags & 16384) != 0) { stream.writeInt32(bot_info_version); } if ((flags & 262144) != 0) { stream.writeString(restriction_reason); } if ((flags & 524288) != 0) { stream.writeString(bot_inline_placeholder); } if ((flags & 4194304) != 0) { stream.writeString(lang_code); } } } public static class TL_userSelf_old extends TL_userSelf_old3 { public static int constructor = 0x720535ec; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); inactive = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); stream.writeBool(inactive); } } public static class TL_userSelf_old3 extends User { public static int constructor = 0x1c60e608; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userDeleted_old2 extends User { public static int constructor = 0xd6016d7a; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); } } public static class TL_userEmpty extends User { public static int constructor = 0x200250ba; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); } } public static class TL_userRequest_old extends TL_userRequest_old2 { public static int constructor = 0x22e8ceb0; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); access_hash = stream.readInt64(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeInt64(access_hash); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userForeign_old extends TL_userForeign_old2 { public static int constructor = 0x5214c89d; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); access_hash = stream.readInt64(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeInt64(access_hash); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userForeign_old2 extends User { public static int constructor = 0x75cf7a8; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); access_hash = stream.readInt64(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); stream.writeInt64(access_hash); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userRequest_old2 extends User { public static int constructor = 0xd9ccc4ef; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); access_hash = stream.readInt64(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); stream.writeInt64(access_hash); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); } } public static class TL_userDeleted_old extends TL_userDeleted_old2 { public static int constructor = 0xb29ad7cc; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); } } public static class TL_user_layer65 extends TL_user { public static int constructor = 0xd10d979a; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); self = (flags & 1024) != 0; contact = (flags & 2048) != 0; mutual_contact = (flags & 4096) != 0; deleted = (flags & 8192) != 0; bot = (flags & 16384) != 0; bot_chat_history = (flags & 32768) != 0; bot_nochats = (flags & 65536) != 0; verified = (flags & 131072) != 0; restricted = (flags & 262144) != 0; min = (flags & 1048576) != 0; bot_inline_geo = (flags & 2097152) != 0; id = stream.readInt32(exception); if ((flags & 1) != 0) { access_hash = stream.readInt64(exception); } if ((flags & 2) != 0) { first_name = stream.readString(exception); } if ((flags & 4) != 0) { last_name = stream.readString(exception); } if ((flags & 8) != 0) { username = stream.readString(exception); } if ((flags & 16) != 0) { phone = stream.readString(exception); } if ((flags & 32) != 0) { photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 16384) != 0) { bot_info_version = stream.readInt32(exception); } if ((flags & 262144) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 524288) != 0) { bot_inline_placeholder = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = self ? (flags | 1024) : (flags &~ 1024); flags = contact ? (flags | 2048) : (flags &~ 2048); flags = mutual_contact ? (flags | 4096) : (flags &~ 4096); flags = deleted ? (flags | 8192) : (flags &~ 8192); flags = bot ? (flags | 16384) : (flags &~ 16384); flags = bot_chat_history ? (flags | 32768) : (flags &~ 32768); flags = bot_nochats ? (flags | 65536) : (flags &~ 65536); flags = verified ? (flags | 131072) : (flags &~ 131072); flags = restricted ? (flags | 262144) : (flags &~ 262144); flags = min ? (flags | 1048576) : (flags &~ 1048576); flags = bot_inline_geo ? (flags | 2097152) : (flags &~ 2097152); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 1) != 0) { stream.writeInt64(access_hash); } if ((flags & 2) != 0) { stream.writeString(first_name); } if ((flags & 4) != 0) { stream.writeString(last_name); } if ((flags & 8) != 0) { stream.writeString(username); } if ((flags & 16) != 0) { stream.writeString(phone); } if ((flags & 32) != 0) { photo.serializeToStream(stream); } if ((flags & 64) != 0) { status.serializeToStream(stream); } if ((flags & 16384) != 0) { stream.writeInt32(bot_info_version); } if ((flags & 262144) != 0) { stream.writeString(restriction_reason); } if ((flags & 524288) != 0) { stream.writeString(bot_inline_placeholder); } } } public static class TL_user_old extends TL_user { public static int constructor = 0x22e49072; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); self = (flags & 1024) != 0; contact = (flags & 2048) != 0; mutual_contact = (flags & 4096) != 0; deleted = (flags & 8192) != 0; bot = (flags & 16384) != 0; bot_chat_history = (flags & 32768) != 0; bot_nochats = (flags & 65536) != 0; verified = (flags & 131072) != 0; explicit_content = (flags & 262144) != 0; id = stream.readInt32(exception); if ((flags & 1) != 0) { access_hash = stream.readInt64(exception); } if ((flags & 2) != 0) { first_name = stream.readString(exception); } if ((flags & 4) != 0) { last_name = stream.readString(exception); } if ((flags & 8) != 0) { username = stream.readString(exception); } if ((flags & 16) != 0) { phone = stream.readString(exception); } if ((flags & 32) != 0) { photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 16384) != 0) { bot_info_version = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = self ? (flags | 1024) : (flags &~ 1024); flags = contact ? (flags | 2048) : (flags &~ 2048); flags = mutual_contact ? (flags | 4096) : (flags &~ 4096); flags = deleted ? (flags | 8192) : (flags &~ 8192); flags = bot ? (flags | 16384) : (flags &~ 16384); flags = bot_chat_history ? (flags | 32768) : (flags &~ 32768); flags = bot_nochats ? (flags | 65536) : (flags &~ 65536); flags = verified ? (flags | 131072) : (flags &~ 131072); flags = explicit_content ? (flags | 262144) : (flags &~ 262144); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 1) != 0) { stream.writeInt64(access_hash); } if ((flags & 2) != 0) { stream.writeString(first_name); } if ((flags & 4) != 0) { stream.writeString(last_name); } if ((flags & 8) != 0) { stream.writeString(username); } if ((flags & 16) != 0) { stream.writeString(phone); } if ((flags & 32) != 0) { photo.serializeToStream(stream); } if ((flags & 64) != 0) { status.serializeToStream(stream); } if ((flags & 16384) != 0) { stream.writeInt32(bot_info_version); } } } public static class TL_userSelf_old2 extends TL_userSelf_old3 { public static int constructor = 0x7007b451; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); phone = stream.readString(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); inactive = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); stream.writeString(phone); photo.serializeToStream(stream); status.serializeToStream(stream); stream.writeBool(inactive); } } public static abstract class RecentMeUrl extends TLObject { public String url; public int chat_id; public StickerSetCovered set; public ChatInvite chat_invite; public int user_id; public static RecentMeUrl TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { RecentMeUrl result = null; switch (constructor) { case 0xa01b22f9: result = new TL_recentMeUrlChat(); break; case 0xbc0a57dc: result = new TL_recentMeUrlStickerSet(); break; case 0x46e1d13d: result = new TL_recentMeUrlUnknown(); break; case 0xeb49081d: result = new TL_recentMeUrlChatInvite(); break; case 0x8dbc3336: result = new TL_recentMeUrlUser(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in RecentMeUrl", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_recentMeUrlChat extends RecentMeUrl { public static int constructor = 0xa01b22f9; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt32(chat_id); } } public static class TL_recentMeUrlStickerSet extends RecentMeUrl { public static int constructor = 0xbc0a57dc; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); set = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); set.serializeToStream(stream); } } public static class TL_recentMeUrlUnknown extends RecentMeUrl { public static int constructor = 0x46e1d13d; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); } } public static class TL_recentMeUrlChatInvite extends RecentMeUrl { public static int constructor = 0xeb49081d; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); chat_invite = ChatInvite.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); chat_invite.serializeToStream(stream); } } public static class TL_recentMeUrlUser extends RecentMeUrl { public static int constructor = 0x8dbc3336; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt32(user_id); } } public static class TL_messages_highScores extends TLObject { public static int constructor = 0x9a3bfd99; public ArrayList scores = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_messages_highScores TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_highScores.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_highScores", constructor)); } else { return null; } } TL_messages_highScores result = new TL_messages_highScores(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_highScore object = TL_highScore.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } scores.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = scores.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { scores.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_phone_phoneCall extends TLObject { public static int constructor = 0xec82e140; public PhoneCall phone_call; public ArrayList users = new ArrayList<>(); public static TL_phone_phoneCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_phone_phoneCall.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_phone_phoneCall", constructor)); } else { return null; } } TL_phone_phoneCall result = new TL_phone_phoneCall(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { phone_call = PhoneCall.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); phone_call.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class ChannelParticipantsFilter extends TLObject { public String q; public static ChannelParticipantsFilter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChannelParticipantsFilter result = null; switch (constructor) { case 0xbb6ae88d: result = new TL_channelParticipantsContacts(); break; case 0xb4608969: result = new TL_channelParticipantsAdmins(); break; case 0xa3b54985: result = new TL_channelParticipantsKicked(); break; case 0x656ac4b: result = new TL_channelParticipantsSearch(); break; case 0xb0d1865b: result = new TL_channelParticipantsBots(); break; case 0x1427a5e1: result = new TL_channelParticipantsBanned(); break; case 0xde3f3c79: result = new TL_channelParticipantsRecent(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChannelParticipantsFilter", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_channelParticipantsContacts extends ChannelParticipantsFilter { public static int constructor = 0xbb6ae88d; public void readParams(AbstractSerializedData stream, boolean exception) { q = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); } } public static class TL_channelParticipantsAdmins extends ChannelParticipantsFilter { public static int constructor = 0xb4608969; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channelParticipantsKicked extends ChannelParticipantsFilter { public static int constructor = 0xa3b54985; public void readParams(AbstractSerializedData stream, boolean exception) { q = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); } } public static class TL_channelParticipantsSearch extends ChannelParticipantsFilter { public static int constructor = 0x656ac4b; public void readParams(AbstractSerializedData stream, boolean exception) { q = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); } } public static class TL_channelParticipantsBots extends ChannelParticipantsFilter { public static int constructor = 0xb0d1865b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channelParticipantsBanned extends ChannelParticipantsFilter { public static int constructor = 0x1427a5e1; public void readParams(AbstractSerializedData stream, boolean exception) { q = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); } } public static class TL_channelParticipantsRecent extends ChannelParticipantsFilter { public static int constructor = 0xde3f3c79; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class MessageAction extends TLObject { public String title; public String address; public DecryptedMessageAction encryptedAction; public String message; public ArrayList users = new ArrayList<>(); public TL_inputGroupCall call; public int channel_id; public Photo photo; public int chat_id; public int user_id; public UserProfilePhoto newUserPhoto; public int inviter_id; public int ttl; public int flags; public long call_id; public PhoneCallDiscardReason reason; public int duration; public String currency; public long total_amount; public long game_id; public int score; public static MessageAction TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { MessageAction result = null; switch (constructor) { case 0x555555F5: result = new TL_messageActionLoginUnknownLocation(); break; case 0x555555F7: result = new TL_messageEncryptedAction(); break; case 0xfae69f56: result = new TL_messageActionCustomAction(); break; case 0xa6638b9a: result = new TL_messageActionChatCreate(); break; case 0x51bdb021: result = new TL_messageActionChatMigrateTo(); break; case 0x7a0d7f42: result = new TL_messageActionGroupCall(); break; case 0x4792929b: result = new TL_messageActionScreenshotTaken(); break; case 0x9fbab604: result = new TL_messageActionHistoryClear(); break; case 0x7fcb13a8: result = new TL_messageActionChatEditPhoto(); break; case 0xb055eaee: result = new TL_messageActionChannelMigrateFrom(); break; case 0x488a7337: result = new TL_messageActionChatAddUser(); break; case 0xb2ae9b0c: result = new TL_messageActionChatDeleteUser(); break; case 0x55555557: result = new TL_messageActionCreatedBroadcastList(); break; case 0x55555550: result = new TL_messageActionUserJoined(); break; case 0x55555551: result = new TL_messageActionUserUpdatedPhoto(); break; case 0x5e3cfc4b: result = new TL_messageActionChatAddUser_old(); break; case 0x55555552: result = new TL_messageActionTTLChange(); break; case 0xd95c6154: result = new TL_messageActionSecureValuesSent(); break; case 0xf89cf5e8: result = new TL_messageActionChatJoinedByLink(); break; case 0xf3f25f76: result = new TL_messageActionContactSignUp(); break; case 0x95d2ac92: result = new TL_messageActionChannelCreate(); break; case 0x94bd38ed: result = new TL_messageActionPinMessage(); break; case 0x95e3fbef: result = new TL_messageActionChatDeletePhoto(); break; case 0x80e11a7f: result = new TL_messageActionPhoneCall(); break; case 0xb5a1ce5a: result = new TL_messageActionChatEditTitle(); break; case 0xabe9affe: result = new TL_messageActionBotAllowed(); break; case 0x40699cd0: result = new TL_messageActionPaymentSent(); break; case 0xb6aef7b0: result = new TL_messageActionEmpty(); break; case 0x92a72876: result = new TL_messageActionGameScore(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessageAction", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messageActionLoginUnknownLocation extends MessageAction { public static int constructor = 0x555555F5; public void readParams(AbstractSerializedData stream, boolean exception) { title = stream.readString(exception); address = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(title); stream.writeString(address); } } public static class TL_messageEncryptedAction extends MessageAction { public static int constructor = 0x555555F7; public void readParams(AbstractSerializedData stream, boolean exception) { encryptedAction = DecryptedMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); encryptedAction.serializeToStream(stream); } } public static class TL_messageActionCustomAction extends MessageAction { public static int constructor = 0xfae69f56; public void readParams(AbstractSerializedData stream, boolean exception) { message = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(message); } } public static class TL_messageActionChatCreate extends MessageAction { public static int constructor = 0xa6638b9a; public void readParams(AbstractSerializedData stream, boolean exception) { title = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { users.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(title); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(users.get(a)); } } } public static class TL_messageActionGroupCall extends MessageAction { public static int constructor = 0x7a0d7f42; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); call = TL_inputGroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { duration = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); call.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(duration); } } } public static class TL_messageActionChatMigrateTo extends MessageAction { public static int constructor = 0x51bdb021; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); } } public static class TL_messageActionHistoryClear extends MessageAction { public static int constructor = 0x9fbab604; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionChatEditPhoto extends MessageAction { public static int constructor = 0x7fcb13a8; public void readParams(AbstractSerializedData stream, boolean exception) { photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo.serializeToStream(stream); } } public static class TL_messageActionScreenshotTaken extends MessageAction { public static int constructor = 0x4792929b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionChannelMigrateFrom extends MessageAction { public static int constructor = 0xb055eaee; public void readParams(AbstractSerializedData stream, boolean exception) { title = stream.readString(exception); chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(title); stream.writeInt32(chat_id); } } public static class TL_messageActionChatAddUser extends MessageAction { public static int constructor = 0x488a7337; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { users.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(users.get(a)); } } } public static class TL_messageActionChatDeleteUser extends MessageAction { public static int constructor = 0xb2ae9b0c; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_messageActionCreatedBroadcastList extends MessageAction { public static int constructor = 0x55555557; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionUserJoined extends MessageAction { public static int constructor = 0x55555550; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionUserUpdatedPhoto extends MessageAction { public static int constructor = 0x55555551; public void readParams(AbstractSerializedData stream, boolean exception) { newUserPhoto = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); newUserPhoto.serializeToStream(stream); } } public static class TL_messageActionContactSignUp extends MessageAction { public static int constructor = 0xf3f25f76; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionChatAddUser_old extends TL_messageActionChatAddUser { public static int constructor = 0x5e3cfc4b; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_messageActionTTLChange extends MessageAction { public static int constructor = 0x55555552; public void readParams(AbstractSerializedData stream, boolean exception) { ttl = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(ttl); } } public static class TL_messageActionChatJoinedByLink extends MessageAction { public static int constructor = 0xf89cf5e8; public void readParams(AbstractSerializedData stream, boolean exception) { inviter_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(inviter_id); } } public static class TL_messageActionChannelCreate extends MessageAction { public static int constructor = 0x95d2ac92; public void readParams(AbstractSerializedData stream, boolean exception) { title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(title); } } public static class TL_messageActionSecureValuesSent extends MessageAction { public static int constructor = 0xd95c6154; public ArrayList types = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureValueType object = SecureValueType.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } types.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = types.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { types.get(a).serializeToStream(stream); } } } public static class TL_messageActionPinMessage extends MessageAction { public static int constructor = 0x94bd38ed; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionChatDeletePhoto extends MessageAction { public static int constructor = 0x95e3fbef; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionPhoneCall extends MessageAction { public static int constructor = 0x80e11a7f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); call_id = stream.readInt64(exception); if ((flags & 1) != 0) { reason = PhoneCallDiscardReason.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2) != 0) { duration = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(call_id); if ((flags & 1) != 0) { reason.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeInt32(duration); } } } public static class TL_messageActionChatEditTitle extends MessageAction { public static int constructor = 0xb5a1ce5a; public void readParams(AbstractSerializedData stream, boolean exception) { title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(title); } } public static class TL_messageActionPaymentSent extends MessageAction { public static int constructor = 0x40699cd0; public void readParams(AbstractSerializedData stream, boolean exception) { currency = stream.readString(exception); total_amount = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(currency); stream.writeInt64(total_amount); } } public static class TL_messageActionBotAllowed extends MessageAction { public static int constructor = 0xabe9affe; public String domain; public void readParams(AbstractSerializedData stream, boolean exception) { domain = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(domain); } } public static class TL_messageActionEmpty extends MessageAction { public static int constructor = 0xb6aef7b0; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messageActionGameScore extends MessageAction { public static int constructor = 0x92a72876; public void readParams(AbstractSerializedData stream, boolean exception) { game_id = stream.readInt64(exception); score = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(game_id); stream.writeInt32(score); } } public static abstract class ReportReason extends TLObject { public static ReportReason TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ReportReason result = null; switch (constructor) { case 0xe1746d0a: result = new TL_inputReportReasonOther(); break; case 0x9b89f93a: result = new TL_inputReportReasonCopyright(); break; case 0x58dbcab8: result = new TL_inputReportReasonSpam(); break; case 0x1e22c78d: result = new TL_inputReportReasonViolence(); break; case 0xadf44ee3: result = new TL_inputReportReasonChildAbuse(); break; case 0x2e59d922: result = new TL_inputReportReasonPornography(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ReportReason", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputReportReasonOther extends ReportReason { public static int constructor = 0xe1746d0a; public String text; public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); } } public static class TL_inputReportReasonCopyright extends ReportReason { public static int constructor = 0x9b89f93a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputReportReasonSpam extends ReportReason { public static int constructor = 0x58dbcab8; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputReportReasonViolence extends ReportReason { public static int constructor = 0x1e22c78d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputReportReasonChildAbuse extends ReportReason { public static int constructor = 0xadf44ee3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputReportReasonPornography extends ReportReason { public static int constructor = 0x2e59d922; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_archivedStickers extends TLObject { public static int constructor = 0x4fcba9c8; public int count; public ArrayList sets = new ArrayList<>(); public static TL_messages_archivedStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_archivedStickers.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_archivedStickers", constructor)); } else { return null; } } TL_messages_archivedStickers result = new TL_messages_archivedStickers(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sets.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = sets.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sets.get(a).serializeToStream(stream); } } } public static class TL_chatLocated extends TLObject { public static int constructor = 0x3631cf4c; public int chat_id; public int distance; public static TL_chatLocated TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_chatLocated.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_chatLocated", constructor)); } else { return null; } } TL_chatLocated result = new TL_chatLocated(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); distance = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(distance); } } public static abstract class DecryptedMessage extends TLObject { public long random_id; public int ttl; public String message; public DecryptedMessageMedia media; public DecryptedMessageAction action; public byte[] random_bytes; public int flags; public ArrayList entities = new ArrayList<>(); public String via_bot_name; public long reply_to_random_id; public long grouped_id; public static DecryptedMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DecryptedMessage result = null; switch (constructor) { case 0x204d3878: result = new TL_decryptedMessage_layer17(); break; case 0x73164160: result = new TL_decryptedMessageService(); break; case 0xaa48327d: result = new TL_decryptedMessageService_layer8(); break; case 0x1f814f1f: result = new TL_decryptedMessage_layer8(); break; case 0x91cc4674: result = new TL_decryptedMessage(); break; case 0x36b091de: result = new TL_decryptedMessage_layer45(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DecryptedMessage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_decryptedMessage_layer17 extends TL_decryptedMessage { public static int constructor = 0x204d3878; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); ttl = stream.readInt32(exception); message = stream.readString(exception); media = DecryptedMessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); stream.writeInt32(ttl); stream.writeString(message); media.serializeToStream(stream); } } public static class TL_decryptedMessageService extends DecryptedMessage { public static int constructor = 0x73164160; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); action = DecryptedMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); action.serializeToStream(stream); } } public static class TL_decryptedMessageService_layer8 extends TL_decryptedMessageService { public static int constructor = 0xaa48327d; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); random_bytes = stream.readByteArray(exception); action = DecryptedMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); stream.writeByteArray(random_bytes); action.serializeToStream(stream); } } public static class TL_decryptedMessage_layer8 extends TL_decryptedMessage { public static int constructor = 0x1f814f1f; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); random_bytes = stream.readByteArray(exception); message = stream.readString(exception); media = DecryptedMessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); stream.writeByteArray(random_bytes); stream.writeString(message); media.serializeToStream(stream); } } public static class TL_decryptedMessage extends DecryptedMessage { public static int constructor = 0x91cc4674; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); random_id = stream.readInt64(exception); ttl = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = DecryptedMessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 2048) != 0) { via_bot_name = stream.readString(exception); } if ((flags & 8) != 0) { reply_to_random_id = stream.readInt64(exception); } if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(random_id); stream.writeInt32(ttl); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 2048) != 0) { stream.writeString(via_bot_name); } if ((flags & 8) != 0) { stream.writeInt64(reply_to_random_id); } if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } } } public static class TL_decryptedMessage_layer45 extends TL_decryptedMessage { public static int constructor = 0x36b091de; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); random_id = stream.readInt64(exception); ttl = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = DecryptedMessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 2048) != 0) { via_bot_name = stream.readString(exception); } if ((flags & 8) != 0) { reply_to_random_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(random_id); stream.writeInt32(ttl); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 2048) != 0) { stream.writeString(via_bot_name); } if ((flags & 8) != 0) { stream.writeInt64(reply_to_random_id); } } } public static class TL_invoice extends TLObject { public static int constructor = 0xc30aa358; public int flags; public boolean test; public boolean name_requested; public boolean phone_requested; public boolean email_requested; public boolean shipping_address_requested; public boolean flexible; public boolean phone_to_provider; public boolean email_to_provider; public String currency; public ArrayList prices = new ArrayList<>(); public static TL_invoice TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_invoice.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_invoice", constructor)); } else { return null; } } TL_invoice result = new TL_invoice(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); test = (flags & 1) != 0; name_requested = (flags & 2) != 0; phone_requested = (flags & 4) != 0; email_requested = (flags & 8) != 0; shipping_address_requested = (flags & 16) != 0; flexible = (flags & 32) != 0; phone_to_provider = (flags & 64) != 0; email_to_provider = (flags & 128) != 0; currency = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_labeledPrice object = TL_labeledPrice.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } prices.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = test ? (flags | 1) : (flags &~ 1); flags = name_requested ? (flags | 2) : (flags &~ 2); flags = phone_requested ? (flags | 4) : (flags &~ 4); flags = email_requested ? (flags | 8) : (flags &~ 8); flags = shipping_address_requested ? (flags | 16) : (flags &~ 16); flags = flexible ? (flags | 32) : (flags &~ 32); flags = phone_to_provider ? (flags | 64) : (flags &~ 64); flags = email_to_provider ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); stream.writeString(currency); stream.writeInt32(0x1cb5c415); int count = prices.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { prices.get(a).serializeToStream(stream); } } } public static abstract class account_WallPapers extends TLObject { public static account_WallPapers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { account_WallPapers result = null; switch (constructor) { case 0x1c199183: result = new TL_account_wallPapersNotModified(); break; case 0x702b65a9: result = new TL_account_wallPapers(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in account_WallPapers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_account_wallPapersNotModified extends account_WallPapers { public static int constructor = 0x1c199183; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_wallPapers extends account_WallPapers { public static int constructor = 0x702b65a9; public int hash; public ArrayList wallpapers = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { WallPaper object = WallPaper.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } wallpapers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = wallpapers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { wallpapers.get(a).serializeToStream(stream); } } } public static class TL_inputWebDocument extends TLObject { public static int constructor = 0x9bed434d; public String url; public int size; public String mime_type; public ArrayList attributes = new ArrayList<>(); public static TL_inputWebDocument TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputWebDocument.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputWebDocument", constructor)); } else { return null; } } TL_inputWebDocument result = new TL_inputWebDocument(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); size = stream.readInt32(exception); mime_type = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt32(size); stream.writeString(mime_type); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static abstract class Video extends TLObject { public long id; public long access_hash; public int user_id; public int date; public int duration; public int size; public PhotoSize thumb; public int dc_id; public int w; public int h; public String mime_type; public String caption; public byte[] key; public byte[] iv; public static Video TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Video result = null; switch (constructor) { case 0xee9f4a4d: result = new TL_video_old3(); break; case 0xf72887d3: result = new TL_video_layer45(); break; case 0x55555553: result = new TL_videoEncrypted(); break; case 0x5a04a49f: result = new TL_video_old(); break; case 0x388fa391: result = new TL_video_old2(); break; case 0xc10658a8: result = new TL_videoEmpty_layer45(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Video", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_video_old3 extends TL_video_layer45 { public static int constructor = 0xee9f4a4d; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeInt32(duration); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_video_layer45 extends Video { public static int constructor = 0xf72887d3; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_videoEncrypted extends TL_video_layer45 { public static int constructor = 0x55555553; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); caption = stream.readString(exception); duration = stream.readInt32(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(caption); stream.writeInt32(duration); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(w); stream.writeInt32(h); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_video_old extends TL_video_layer45 { public static int constructor = 0x5a04a49f; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); caption = stream.readString(exception); duration = stream.readInt32(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(caption); stream.writeInt32(duration); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_video_old2 extends TL_video_layer45 { public static int constructor = 0x388fa391; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); caption = stream.readString(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(caption); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(w); stream.writeInt32(h); } } public static class TL_videoEmpty_layer45 extends Video { public static int constructor = 0xc10658a8; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static abstract class InputPaymentCredentials extends TLObject { public int flags; public boolean save; public TL_dataJSON data; public TL_dataJSON payment_token; public String google_transaction_id; public String id; public byte[] tmp_password; public static InputPaymentCredentials TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPaymentCredentials result = null; switch (constructor) { case 0x3417d728: result = new TL_inputPaymentCredentials(); break; case 0xca05d50e: result = new TL_inputPaymentCredentialsAndroidPay(); break; case 0xc10eb2cf: result = new TL_inputPaymentCredentialsSaved(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPaymentCredentials", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputPaymentCredentials extends InputPaymentCredentials { public static int constructor = 0x3417d728; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); save = (flags & 1) != 0; data = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = save ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); data.serializeToStream(stream); } } public static class TL_inputPaymentCredentialsAndroidPay extends InputPaymentCredentials { public static int constructor = 0xca05d50e; public void readParams(AbstractSerializedData stream, boolean exception) { payment_token = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); google_transaction_id = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); payment_token.serializeToStream(stream); stream.writeString(google_transaction_id); } } public static class TL_inputPaymentCredentialsSaved extends InputPaymentCredentials { public static int constructor = 0xc10eb2cf; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readString(exception); tmp_password = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(id); stream.writeByteArray(tmp_password); } } public static class TL_exportedMessageLink extends TLObject { public static int constructor = 0x5dab1af4; public String link; public String html; public static TL_exportedMessageLink TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_exportedMessageLink.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_exportedMessageLink", constructor)); } else { return null; } } TL_exportedMessageLink result = new TL_exportedMessageLink(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { link = stream.readString(exception); html = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(link); stream.writeString(html); } } public static abstract class TopPeerCategory extends TLObject { public static TopPeerCategory TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { TopPeerCategory result = null; switch (constructor) { case 0x637b7ed: result = new TL_topPeerCategoryCorrespondents(); break; case 0xbd17a14a: result = new TL_topPeerCategoryGroups(); break; case 0x148677e2: result = new TL_topPeerCategoryBotsInline(); break; case 0x161d9628: result = new TL_topPeerCategoryChannels(); break; case 0x1e76a78c: result = new TL_topPeerCategoryPhoneCalls(); break; case 0xab661b5b: result = new TL_topPeerCategoryBotsPM(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in TopPeerCategory", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_topPeerCategoryCorrespondents extends TopPeerCategory { public static int constructor = 0x637b7ed; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_topPeerCategoryGroups extends TopPeerCategory { public static int constructor = 0xbd17a14a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_topPeerCategoryBotsInline extends TopPeerCategory { public static int constructor = 0x148677e2; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_topPeerCategoryChannels extends TopPeerCategory { public static int constructor = 0x161d9628; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_topPeerCategoryPhoneCalls extends TopPeerCategory { public static int constructor = 0x1e76a78c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_topPeerCategoryBotsPM extends TopPeerCategory { public static int constructor = 0xab661b5b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contactBlocked extends TLObject { public static int constructor = 0x561bc879; public int user_id; public int date; public static TL_contactBlocked TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contactBlocked.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contactBlocked", constructor)); } else { return null; } } TL_contactBlocked result = new TL_contactBlocked(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(date); } } public static class TL_payments_validatedRequestedInfo extends TLObject { public static int constructor = 0xd1451883; public int flags; public String id; public ArrayList shipping_options = new ArrayList<>(); public static TL_payments_validatedRequestedInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_payments_validatedRequestedInfo.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_payments_validatedRequestedInfo", constructor)); } else { return null; } } TL_payments_validatedRequestedInfo result = new TL_payments_validatedRequestedInfo(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { id = stream.readString(exception); } if ((flags & 2) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_shippingOption object = TL_shippingOption.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } shipping_options.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeString(id); } if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = shipping_options.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { shipping_options.get(a).serializeToStream(stream); } } } } public static class TL_jsonObjectValue extends TLObject { public static int constructor = 0xc0de1bd9; public String key; public JSONValue value; public static TL_jsonObjectValue TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_jsonObjectValue.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_jsonObjectValue", constructor)); } else { return null; } } TL_jsonObjectValue result = new TL_jsonObjectValue(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { key = stream.readString(exception); value = JSONValue.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(key); value.serializeToStream(stream); } } public static class TL_shippingOption extends TLObject { public static int constructor = 0xb6213cdf; public String id; public String title; public ArrayList prices = new ArrayList<>(); public static TL_shippingOption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_shippingOption.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_shippingOption", constructor)); } else { return null; } } TL_shippingOption result = new TL_shippingOption(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readString(exception); title = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_labeledPrice object = TL_labeledPrice.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } prices.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(id); stream.writeString(title); stream.writeInt32(0x1cb5c415); int count = prices.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { prices.get(a).serializeToStream(stream); } } } public static abstract class InputDocument extends TLObject { public long id; public long access_hash; public byte[] file_reference; public static InputDocument TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputDocument result = null; switch (constructor) { case 0x72f0eaae: result = new TL_inputDocumentEmpty(); break; case 0x1abfb575: result = new TL_inputDocument(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputDocument", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputDocumentEmpty extends InputDocument { public static int constructor = 0x72f0eaae; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputDocument extends InputDocument { public static int constructor = 0x1abfb575; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); } } public static abstract class SecureValueType extends TLObject { public static SecureValueType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecureValueType result = null; switch (constructor) { case 0xcbe31e26: result = new TL_secureValueTypeAddress(); break; case 0x99e3806a: result = new TL_secureValueTypePassportRegistration(); break; case 0xa0d0744b: result = new TL_secureValueTypeIdentityCard(); break; case 0xfc36954e: result = new TL_secureValueTypeUtilityBill(); break; case 0x89137c0d: result = new TL_secureValueTypeBankStatement(); break; case 0x8e3ca7ee: result = new TL_secureValueTypeEmail(); break; case 0x9d2a81e3: result = new TL_secureValueTypePersonalDetails(); break; case 0xea02ec33: result = new TL_secureValueTypeTemporaryRegistration(); break; case 0x3dac6a00: result = new TL_secureValueTypePassport(); break; case 0x8b883488: result = new TL_secureValueTypeRentalAgreement(); break; case 0x6e425c4: result = new TL_secureValueTypeDriverLicense(); break; case 0xb320aadb: result = new TL_secureValueTypePhone(); break; case 0x99a48f23: result = new TL_secureValueTypeInternalPassport(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecureValueType", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_secureValueTypeAddress extends SecureValueType { public static int constructor = 0xcbe31e26; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypePassportRegistration extends SecureValueType { public static int constructor = 0x99e3806a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeIdentityCard extends SecureValueType { public static int constructor = 0xa0d0744b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeUtilityBill extends SecureValueType { public static int constructor = 0xfc36954e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeBankStatement extends SecureValueType { public static int constructor = 0x89137c0d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeEmail extends SecureValueType { public static int constructor = 0x8e3ca7ee; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypePersonalDetails extends SecureValueType { public static int constructor = 0x9d2a81e3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeTemporaryRegistration extends SecureValueType { public static int constructor = 0xea02ec33; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypePassport extends SecureValueType { public static int constructor = 0x3dac6a00; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeRentalAgreement extends SecureValueType { public static int constructor = 0x8b883488; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeDriverLicense extends SecureValueType { public static int constructor = 0x6e425c4; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypePhone extends SecureValueType { public static int constructor = 0xb320aadb; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureValueTypeInternalPassport extends SecureValueType { public static int constructor = 0x99a48f23; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_affectedHistory extends TLObject { public static int constructor = 0xb45c69d1; public int pts; public int pts_count; public int offset; public static TL_messages_affectedHistory TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_affectedHistory.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_affectedHistory", constructor)); } else { return null; } } TL_messages_affectedHistory result = new TL_messages_affectedHistory(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); offset = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pts); stream.writeInt32(pts_count); stream.writeInt32(offset); } } public static abstract class Document extends TLObject { public int flags; public long id; public long access_hash; public byte[] file_reference; public int user_id; public int date; public String file_name; public String mime_type; public int size; public ArrayList thumbs = new ArrayList<>(); public int version; public int dc_id; public byte[] key; public byte[] iv; public ArrayList attributes = new ArrayList<>(); public static Document TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Document result = null; switch (constructor) { case 0x9ba29cc1: result = new TL_document(); break; case 0x59534e4c: result = new TL_document_layer92(); break; case 0x87232bc7: result = new TL_document_layer82(); break; case 0x55555556: result = new TL_documentEncrypted_old(); break; case 0x9efc6326: result = new TL_document_old(); break; case 0x36f8c871: result = new TL_documentEmpty(); break; case 0x55555558: result = new TL_documentEncrypted(); break; case 0xf9a39f4f: result = new TL_document_layer53(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Document", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_document_layer92 extends TLRPC.TL_document { public static int constructor = 0x59534e4c; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static class TL_document_layer82 extends TL_document { public static int constructor = 0x87232bc7; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(0); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static class TL_documentEncrypted_old extends TL_document { public static int constructor = 0x55555556; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); file_name = stream.readString(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(file_name); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_document extends Document { public static int constructor = 0x9ba29cc1; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); if ((flags & 1) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } thumbs.add(object); } } dc_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); if ((flags & 1) != 0) { stream.writeInt32(0x1cb5c415); int count = thumbs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { thumbs.get(a).serializeToStream(stream); } } stream.writeInt32(dc_id); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static class TL_document_old extends TL_document { public static int constructor = 0x9efc6326; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); file_name = stream.readString(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(file_name); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); } } public static class TL_documentEmpty extends Document { public static int constructor = 0x36f8c871; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static class TL_documentEncrypted extends Document { public static int constructor = 0x55555558; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_document_layer53 extends TL_document { public static int constructor = 0xf9a39f4f; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumbs.add(PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception)); dc_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); thumbs.get(0).serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static abstract class PasswordKdfAlgo extends TLObject { public static PasswordKdfAlgo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PasswordKdfAlgo result = null; switch (constructor) { case 0xd45ab096: result = new TL_passwordKdfAlgoUnknown(); break; case 0x3a912d4a: result = new TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PasswordKdfAlgo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_passwordKdfAlgoUnknown extends PasswordKdfAlgo { public static int constructor = 0xd45ab096; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow extends PasswordKdfAlgo { public static int constructor = 0x3a912d4a; public byte[] salt1; public byte[] salt2; public int g; public byte[] p; public void readParams(AbstractSerializedData stream, boolean exception) { salt1 = stream.readByteArray(exception); salt2 = stream.readByteArray(exception); g = stream.readInt32(exception); p = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(salt1); stream.writeByteArray(salt2); stream.writeInt32(g); stream.writeByteArray(p); } } public static abstract class ContactLink extends TLObject { public static ContactLink TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ContactLink result = null; switch (constructor) { case 0xfeedd3ad: result = new TL_contactLinkNone(); break; case 0xd502c2d0: result = new TL_contactLinkContact(); break; case 0x268f3f59: result = new TL_contactLinkHasPhone(); break; case 0x5f4f9247: result = new TL_contactLinkUnknown(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ContactLink", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_contactLinkNone extends ContactLink { public static int constructor = 0xfeedd3ad; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contactLinkContact extends ContactLink { public static int constructor = 0xd502c2d0; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contactLinkHasPhone extends ContactLink { public static int constructor = 0x268f3f59; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contactLinkUnknown extends ContactLink { public static int constructor = 0x5f4f9247; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class PageBlock extends TLObject { public boolean first; //custom public boolean bottom; //custom public int level; //custom public int mid; //custom public int groupId; //custom public PhotoSize thumb; //custom public static PageBlock TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PageBlock result = null; switch (constructor) { case 0x9a8ae1e1: result = new TL_pageBlockOrderedList(); break; case 0xd9d71866: result = new TL_pageBlockVideo_layer82(); break; case 0xf259a80b: result = new TL_pageBlockEmbedPost(); break; case 0x467a0766: result = new TL_pageBlockParagraph(); break; case 0x1e148390: result = new TL_pageBlockKicker(); break; case 0x48870999: result = new TL_pageBlockFooter(); break; case 0xbfd064ec: result = new TL_pageBlockHeader(); break; case 0xc070d93e: result = new TL_pageBlockPreformatted(); break; case 0x16115a96: result = new TL_pageBlockRelatedArticles(); break; case 0xf12bb6e1: result = new TL_pageBlockSubheader(); break; case 0x31f9590: result = new TL_pageBlockSlideshow(); break; case 0xce0d37b0: result = new TL_pageBlockAnchor(); break; case 0xa44f3ef6: result = new TL_pageBlockMap(); break; case 0xdb20b188: result = new TL_pageBlockDivider(); break; case 0x1759c560: result = new TL_pageBlockPhoto(); break; case 0xe4e88011: result = new TL_pageBlockList(); break; case 0x13567e8a: result = new TL_pageBlockUnsupported(); break; case 0x65a0fa4d: result = new TL_pageBlockCollage(); break; case 0x3d5b64f2: result = new TL_pageBlockAuthorDate_layer60(); break; case 0x3a58c7f4: result = new TL_pageBlockList_layer82(); break; case 0xa8718dc5: result = new TL_pageBlockEmbed(); break; case 0x130c8963: result = new TL_pageBlockSlideshow_layer82(); break; case 0x8ffa9a1f: result = new TL_pageBlockSubtitle(); break; case 0x263d7c26: result = new TL_pageBlockBlockquote(); break; case 0x76768bed: result = new TL_pageBlockDetails(); break; case 0xef1751b5: result = new TL_pageBlockChannel(); break; case 0x7c8fe7b6: result = new TL_pageBlockVideo(); break; case 0xd935d8fb: result = new TL_pageBlockEmbed_layer60(); break; case 0x4f4456d3: result = new TL_pageBlockPullquote(); break; case 0x804361ea: result = new TL_pageBlockAudio(); break; case 0xbf4dea82: result = new TL_pageBlockTable(); break; case 0xe9c69982: result = new TL_pageBlockPhoto_layer82(); break; case 0x70abc3fd: result = new TL_pageBlockTitle(); break; case 0x292c7be9: result = new TL_pageBlockEmbedPost_layer82(); break; case 0x8b31c4f: result = new TL_pageBlockCollage_layer82(); break; case 0x31b81a7f: result = new TL_pageBlockAudio_layer82(); break; case 0x39f23300: result = new TL_pageBlockCover(); break; case 0xcde200d1: result = new TL_pageBlockEmbed_layer82(); break; case 0xbaafe5e0: result = new TL_pageBlockAuthorDate(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PageBlock", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_pageBlockOrderedList extends PageBlock { public static int constructor = 0x9a8ae1e1; public ArrayList items = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageListOrderedItem object = PageListOrderedItem.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } } } public static class TL_pageBlockEmbedPost extends PageBlock { public static int constructor = 0xf259a80b; public String url; public long webpage_id; public long author_photo_id; public String author; public int date; public ArrayList blocks = new ArrayList<>(); public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); webpage_id = stream.readInt64(exception); author_photo_id = stream.readInt64(exception); author = stream.readString(exception); date = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt64(webpage_id); stream.writeInt64(author_photo_id); stream.writeString(author); stream.writeInt32(date); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } caption.serializeToStream(stream); } } public static class TL_pageBlockParagraph extends PageBlock { public static int constructor = 0x467a0766; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockKicker extends PageBlock { public static int constructor = 0x1e148390; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockFooter extends PageBlock { public static int constructor = 0x48870999; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockHeader extends PageBlock { public static int constructor = 0xbfd064ec; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockPreformatted extends PageBlock { public static int constructor = 0xc070d93e; public RichText text; public String language; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); language = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); stream.writeString(language); } } public static class TL_pageBlockRelatedArticles extends PageBlock { public static int constructor = 0x16115a96; public RichText title; public ArrayList articles = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { title = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_pageRelatedArticle object = TL_pageRelatedArticle.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } articles.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); title.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = articles.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { articles.get(a).serializeToStream(stream); } } } public static class TL_pageBlockSubheader extends PageBlock { public static int constructor = 0xf12bb6e1; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockSlideshow extends PageBlock { public static int constructor = 0x31f9590; public ArrayList items = new ArrayList<>(); public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } caption.serializeToStream(stream); } } public static class TL_pageBlockAnchor extends PageBlock { public static int constructor = 0xce0d37b0; public String name; public void readParams(AbstractSerializedData stream, boolean exception) { name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(name); } } public static class TL_pageBlockMap extends PageBlock { public static int constructor = 0xa44f3ef6; public GeoPoint geo; public int zoom; public int w; public int h; public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); zoom = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo.serializeToStream(stream); stream.writeInt32(zoom); stream.writeInt32(w); stream.writeInt32(h); caption.serializeToStream(stream); } } public static class TL_pageBlockDivider extends PageBlock { public static int constructor = 0xdb20b188; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_pageBlockPhoto extends PageBlock { public static int constructor = 0x1759c560; public int flags; public long photo_id; public TL_pageCaption caption; public String url; public long webpage_id; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); photo_id = stream.readInt64(exception); caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { url = stream.readString(exception); } if ((flags & 1) != 0) { webpage_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(photo_id); caption.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeString(url); } if ((flags & 1) != 0) { stream.writeInt64(webpage_id); } } } public static class TL_pageBlockList extends PageBlock { public static int constructor = 0xe4e88011; public boolean ordered; public ArrayList items = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageListItem object = PageListItem.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } } } public static class TL_pageBlockUnsupported extends PageBlock { public static int constructor = 0x13567e8a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_pageBlockCollage extends PageBlock { public static int constructor = 0x65a0fa4d; public ArrayList items = new ArrayList<>(); public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } caption.serializeToStream(stream); } } public static class TL_pageBlockEmbed extends PageBlock { public static int constructor = 0xa8718dc5; public int flags; public boolean full_width; public boolean allow_scrolling; public String url; public String html; public long poster_photo_id; public int w; public int h; public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); full_width = (flags & 1) != 0; allow_scrolling = (flags & 8) != 0; if ((flags & 2) != 0) { url = stream.readString(exception); } if ((flags & 4) != 0) { html = stream.readString(exception); } if ((flags & 16) != 0) { poster_photo_id = stream.readInt64(exception); } if ((flags & 32) != 0) { w = stream.readInt32(exception); } if ((flags & 32) != 0) { h = stream.readInt32(exception); } caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = full_width ? (flags | 1) : (flags &~ 1); flags = allow_scrolling ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); if ((flags & 2) != 0) { stream.writeString(url); } if ((flags & 4) != 0) { stream.writeString(html); } if ((flags & 16) != 0) { stream.writeInt64(poster_photo_id); } if ((flags & 32) != 0) { stream.writeInt32(w); } if ((flags & 32) != 0) { stream.writeInt32(h); } caption.serializeToStream(stream); } } public static class TL_pageBlockSubtitle extends PageBlock { public static int constructor = 0x8ffa9a1f; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockBlockquote extends PageBlock { public static int constructor = 0x263d7c26; public RichText text; public RichText caption; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); caption.serializeToStream(stream); } } public static class TL_pageBlockDetails extends PageBlock { public static int constructor = 0x76768bed; public int flags; public boolean open; public ArrayList blocks = new ArrayList<>(); public RichText title; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); open = (flags & 1) != 0; int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } title = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = open ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } title.serializeToStream(stream); } } public static class TL_pageBlockChannel extends PageBlock { public static int constructor = 0xef1751b5; public Chat channel; public void readParams(AbstractSerializedData stream, boolean exception) { channel = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); } } public static class TL_pageBlockVideo extends PageBlock { public static int constructor = 0x7c8fe7b6; public int flags; public boolean autoplay; public boolean loop; public long video_id; public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); autoplay = (flags & 1) != 0; loop = (flags & 2) != 0; video_id = stream.readInt64(exception); caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = autoplay ? (flags | 1) : (flags &~ 1); flags = loop ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt64(video_id); caption.serializeToStream(stream); } } public static class TL_pageBlockEmbed_layer60 extends TL_pageBlockEmbed { public static int constructor = 0xd935d8fb; public int flags; public boolean full_width; public boolean allow_scrolling; public String url; public String html; public int w; public int h; public RichText caption; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); full_width = (flags & 1) != 0; allow_scrolling = (flags & 8) != 0; if ((flags & 2) != 0) { url = stream.readString(exception); } if ((flags & 4) != 0) { html = stream.readString(exception); } w = stream.readInt32(exception); h = stream.readInt32(exception); caption = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = full_width ? (flags | 1) : (flags &~ 1); flags = allow_scrolling ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); if ((flags & 2) != 0) { stream.writeString(url); } if ((flags & 4) != 0) { stream.writeString(html); } stream.writeInt32(w); stream.writeInt32(h); caption.serializeToStream(stream); } } public static class TL_pageBlockPullquote extends PageBlock { public static int constructor = 0x4f4456d3; public RichText text; public RichText caption; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); caption.serializeToStream(stream); } } public static class TL_pageBlockAudio extends PageBlock { public static int constructor = 0x804361ea; public long audio_id; public TL_pageCaption caption; public void readParams(AbstractSerializedData stream, boolean exception) { audio_id = stream.readInt64(exception); caption = TL_pageCaption.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(audio_id); caption.serializeToStream(stream); } } public static class TL_pageBlockTable extends PageBlock { public static int constructor = 0xbf4dea82; public int flags; public boolean bordered; public boolean striped; public RichText title; public ArrayList rows = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); bordered = (flags & 1) != 0; striped = (flags & 2) != 0; title = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_pageTableRow object = TL_pageTableRow.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } rows.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = bordered ? (flags | 1) : (flags &~ 1); flags = striped ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); title.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = rows.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rows.get(a).serializeToStream(stream); } } } public static class TL_pageBlockTitle extends PageBlock { public static int constructor = 0x70abc3fd; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_pageBlockCover extends PageBlock { public static int constructor = 0x39f23300; public PageBlock cover; public void readParams(AbstractSerializedData stream, boolean exception) { cover = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); cover.serializeToStream(stream); } } public static class TL_pageBlockAuthorDate extends PageBlock { public static int constructor = 0xbaafe5e0; public RichText author; public int published_date; public void readParams(AbstractSerializedData stream, boolean exception) { author = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); published_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); author.serializeToStream(stream); stream.writeInt32(published_date); } } public static abstract class InputPrivacyRule extends TLObject { public ArrayList users = new ArrayList<>(); public static InputPrivacyRule TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPrivacyRule result = null; switch (constructor) { case 0x90110467: result = new TL_inputPrivacyValueDisallowUsers(); break; case 0xd66b66c9: result = new TL_inputPrivacyValueDisallowAll(); break; case 0xba52007: result = new TL_inputPrivacyValueDisallowContacts(); break; case 0x184b35ce: result = new TL_inputPrivacyValueAllowAll(); break; case 0xd09e07b: result = new TL_inputPrivacyValueAllowContacts(); break; case 0x131cc67f: result = new TL_inputPrivacyValueAllowUsers(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPrivacyRule", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputPrivacyValueDisallowUsers extends InputPrivacyRule { public static int constructor = 0x90110467; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputUser object = InputUser.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_inputPrivacyValueDisallowAll extends InputPrivacyRule { public static int constructor = 0xd66b66c9; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyValueDisallowContacts extends InputPrivacyRule { public static int constructor = 0xba52007; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyValueAllowAll extends InputPrivacyRule { public static int constructor = 0x184b35ce; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyValueAllowContacts extends InputPrivacyRule { public static int constructor = 0xd09e07b; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPrivacyValueAllowUsers extends InputPrivacyRule { public static int constructor = 0x131cc67f; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputUser object = InputUser.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_maskCoords extends TLObject { public static int constructor = 0xaed6dbb2; public int n; public double x; public double y; public double zoom; public static TL_maskCoords TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_maskCoords.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_maskCoords", constructor)); } else { return null; } } TL_maskCoords result = new TL_maskCoords(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { n = stream.readInt32(exception); x = stream.readDouble(exception); y = stream.readDouble(exception); zoom = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(n); stream.writeDouble(x); stream.writeDouble(y); stream.writeDouble(zoom); } } public static class TL_highScore extends TLObject { public static int constructor = 0x58fffcd0; public int pos; public int user_id; public int score; public static TL_highScore TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_highScore.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_highScore", constructor)); } else { return null; } } TL_highScore result = new TL_highScore(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { pos = stream.readInt32(exception); user_id = stream.readInt32(exception); score = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pos); stream.writeInt32(user_id); stream.writeInt32(score); } } public static abstract class InputMedia extends TLObject { public String phone_number; public String first_name; public String last_name; public String vcard; public int flags; public int ttl_seconds; public String url; public String q; public InputGeoPoint geo_point; public InputFile file; public ArrayList stickers = new ArrayList<>(); public String title; public String address; public String provider; public String venue_id; public String venue_type; public int period; public boolean nosound_video; public boolean stopped; public InputFile thumb; public String mime_type; public ArrayList attributes = new ArrayList<>(); public static InputMedia TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputMedia result = null; switch (constructor) { case 0xf8ab7dfb: result = new TL_inputMediaContact(); break; case 0x23ab23d2: result = new TL_inputMediaDocument(); break; case 0xd33f43f3: result = new TL_inputMediaGame(); break; case 0x4843b0fd: result = new TL_inputMediaGifExternal(); break; case 0xf9c44144: result = new TL_inputMediaGeoPoint(); break; case 0xfb52dc99: result = new TL_inputMediaDocumentExternal(); break; case 0x9664f57f: result = new TL_inputMediaEmpty(); break; case 0x6b3765b: result = new TL_inputMediaPoll(); break; case 0x1e287d04: result = new TL_inputMediaUploadedPhoto(); break; case 0xc13d1c11: result = new TL_inputMediaVenue(); break; case 0xce4e82fd: result = new TL_inputMediaGeoLive(); break; case 0x5b38c6c1: result = new TL_inputMediaUploadedDocument(); break; case 0xe5bbfe1a: result = new TL_inputMediaPhotoExternal(); break; case 0xb3ba0635: result = new TL_inputMediaPhoto(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputMedia", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputMediaContact extends InputMedia { public static int constructor = 0xf8ab7dfb; public void readParams(AbstractSerializedData stream, boolean exception) { phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); vcard = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(vcard); } } public static class TL_inputMediaDocument extends InputMedia { public static int constructor = 0x23ab23d2; public InputDocument id; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = InputDocument.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); id.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_inputMediaGame extends InputMedia { public static int constructor = 0xd33f43f3; public InputGame id; public void readParams(AbstractSerializedData stream, boolean exception) { id = InputGame.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_inputMediaGifExternal extends InputMedia { public static int constructor = 0x4843b0fd; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); q = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeString(q); } } public static class TL_inputMediaGeoPoint extends InputMedia { public static int constructor = 0xf9c44144; public void readParams(AbstractSerializedData stream, boolean exception) { geo_point = InputGeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo_point.serializeToStream(stream); } } public static class TL_inputMediaDocumentExternal extends InputMedia { public static int constructor = 0xfb52dc99; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); url = stream.readString(exception); if ((flags & 1) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(url); if ((flags & 1) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_inputMediaEmpty extends InputMedia { public static int constructor = 0x9664f57f; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMediaPoll extends InputMedia { public static int constructor = 0x6b3765b; public TL_poll poll; public void readParams(AbstractSerializedData stream, boolean exception) { poll = TL_poll.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); poll.serializeToStream(stream); } } public static class TL_inputMediaUploadedPhoto extends InputMedia { public static int constructor = 0x1e287d04; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); file = InputFile.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputDocument object = InputDocument.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } stickers.add(object); } } if ((flags & 2) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); file.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(0x1cb5c415); int count = stickers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stickers.get(a).serializeToStream(stream); } } if ((flags & 2) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_inputMediaVenue extends InputMedia { public static int constructor = 0xc13d1c11; public void readParams(AbstractSerializedData stream, boolean exception) { geo_point = InputGeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); venue_type = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo_point.serializeToStream(stream); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); stream.writeString(venue_type); } } public static class TL_inputMediaGeoLive extends InputMedia { public static int constructor = 0xce4e82fd; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); stopped = (flags & 1) != 0; geo_point = InputGeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2) != 0) { period = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = stopped ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); geo_point.serializeToStream(stream); if ((flags & 2) != 0) { stream.writeInt32(period); } } } public static class TL_inputMediaUploadedDocument extends InputMedia { public static int constructor = 0x5b38c6c1; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); nosound_video = (flags & 8) != 0; file = InputFile.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { thumb = InputFile.TLdeserialize(stream, stream.readInt32(exception), exception); } mime_type = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } if ((flags & 1) != 0) { magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { InputDocument object = InputDocument.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } stickers.add(object); } } if ((flags & 2) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = nosound_video ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); file.serializeToStream(stream); if ((flags & 4) != 0) { thumb.serializeToStream(stream); } stream.writeString(mime_type); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } if ((flags & 1) != 0) { stream.writeInt32(0x1cb5c415); count = stickers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stickers.get(a).serializeToStream(stream); } } if ((flags & 2) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_inputMediaPhotoExternal extends InputMedia { public static int constructor = 0xe5bbfe1a; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); url = stream.readString(exception); if ((flags & 1) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(url); if ((flags & 1) != 0) { stream.writeInt32(ttl_seconds); } } } public static class TL_inputMediaPhoto extends InputMedia { public static int constructor = 0xb3ba0635; public InputPhoto id; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = InputPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { ttl_seconds = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); id.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(ttl_seconds); } } } public static abstract class StickerSetCovered extends TLObject { public StickerSet set; public ArrayList covers = new ArrayList<>(); public Document cover; public static StickerSetCovered TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { StickerSetCovered result = null; switch (constructor) { case 0x3407e51b: result = new TL_stickerSetMultiCovered(); break; case 0x6410a5d2: result = new TL_stickerSetCovered(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in StickerSetCovered", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_stickerSetMultiCovered extends StickerSetCovered { public static int constructor = 0x3407e51b; public void readParams(AbstractSerializedData stream, boolean exception) { set = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } covers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); set.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = covers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { covers.get(a).serializeToStream(stream); } } } public static class TL_stickerSetCovered extends StickerSetCovered { public static int constructor = 0x6410a5d2; public void readParams(AbstractSerializedData stream, boolean exception) { set = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); cover = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); set.serializeToStream(stream); cover.serializeToStream(stream); } } public static abstract class EncryptedMessage extends TLObject { public long random_id; public int chat_id; public int date; public byte[] bytes; public EncryptedFile file; public static EncryptedMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { EncryptedMessage result = null; switch (constructor) { case 0x23734b06: result = new TL_encryptedMessageService(); break; case 0xed18c118: result = new TL_encryptedMessage(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in EncryptedMessage", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_encryptedMessageService extends EncryptedMessage { public static int constructor = 0x23734b06; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); chat_id = stream.readInt32(exception); date = stream.readInt32(exception); bytes = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); stream.writeInt32(chat_id); stream.writeInt32(date); stream.writeByteArray(bytes); } } public static class TL_encryptedMessage extends EncryptedMessage { public static int constructor = 0xed18c118; public void readParams(AbstractSerializedData stream, boolean exception) { random_id = stream.readInt64(exception); chat_id = stream.readInt32(exception); date = stream.readInt32(exception); bytes = stream.readByteArray(exception); file = EncryptedFile.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(random_id); stream.writeInt32(chat_id); stream.writeInt32(date); stream.writeByteArray(bytes); file.serializeToStream(stream); } } public static abstract class InputStickerSet extends TLObject { public long id; public long access_hash; public String short_name; public static InputStickerSet TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputStickerSet result = null; switch (constructor) { case 0xffb62b95: result = new TL_inputStickerSetEmpty(); break; case 0x9de7a269: result = new TL_inputStickerSetID(); break; case 0x861cc8a0: result = new TL_inputStickerSetShortName(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputStickerSet", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputStickerSetEmpty extends InputStickerSet { public static int constructor = 0xffb62b95; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputStickerSetID extends InputStickerSet { public static int constructor = 0x9de7a269; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_inputStickerSetShortName extends InputStickerSet { public static int constructor = 0x861cc8a0; public void readParams(AbstractSerializedData stream, boolean exception) { short_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(short_name); } } public static class TL_channelAdminLogEventsFilter extends TLObject { public static int constructor = 0xea107ae4; public int flags; public boolean join; public boolean leave; public boolean invite; public boolean ban; public boolean unban; public boolean kick; public boolean unkick; public boolean promote; public boolean demote; public boolean info; public boolean settings; public boolean pinned; public boolean edit; public boolean delete; public static TL_channelAdminLogEventsFilter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channelAdminLogEventsFilter.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channelAdminLogEventsFilter", constructor)); } else { return null; } } TL_channelAdminLogEventsFilter result = new TL_channelAdminLogEventsFilter(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); join = (flags & 1) != 0; leave = (flags & 2) != 0; invite = (flags & 4) != 0; ban = (flags & 8) != 0; unban = (flags & 16) != 0; kick = (flags & 32) != 0; unkick = (flags & 64) != 0; promote = (flags & 128) != 0; demote = (flags & 256) != 0; info = (flags & 512) != 0; settings = (flags & 1024) != 0; pinned = (flags & 2048) != 0; edit = (flags & 4096) != 0; delete = (flags & 8192) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = join ? (flags | 1) : (flags &~ 1); flags = leave ? (flags | 2) : (flags &~ 2); flags = invite ? (flags | 4) : (flags &~ 4); flags = ban ? (flags | 8) : (flags &~ 8); flags = unban ? (flags | 16) : (flags &~ 16); flags = kick ? (flags | 32) : (flags &~ 32); flags = unkick ? (flags | 64) : (flags &~ 64); flags = promote ? (flags | 128) : (flags &~ 128); flags = demote ? (flags | 256) : (flags &~ 256); flags = info ? (flags | 512) : (flags &~ 512); flags = settings ? (flags | 1024) : (flags &~ 1024); flags = pinned ? (flags | 2048) : (flags &~ 2048); flags = edit ? (flags | 4096) : (flags &~ 4096); flags = delete ? (flags | 8192) : (flags &~ 8192); stream.writeInt32(flags); } } public static abstract class UserStatus extends TLObject { public int expires; public static UserStatus TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { UserStatus result = null; switch (constructor) { case 0x8c703f: result = new TL_userStatusOffline(); break; case 0x7bf09fc: result = new TL_userStatusLastWeek(); break; case 0x9d05049: result = new TL_userStatusEmpty(); break; case 0x77ebc742: result = new TL_userStatusLastMonth(); break; case 0xedb93949: result = new TL_userStatusOnline(); break; case 0xe26f42f1: result = new TL_userStatusRecently(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in UserStatus", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_userStatusOffline extends UserStatus { public static int constructor = 0x8c703f; public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); } } public static class TL_userStatusLastWeek extends UserStatus { public static int constructor = 0x7bf09fc; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_userStatusEmpty extends UserStatus { public static int constructor = 0x9d05049; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_userStatusLastMonth extends UserStatus { public static int constructor = 0x77ebc742; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_userStatusOnline extends UserStatus { public static int constructor = 0xedb93949; public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); } } public static class TL_userStatusRecently extends UserStatus { public static int constructor = 0xe26f42f1; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_messageEditData extends TLObject { public static int constructor = 0x26b5dde6; public int flags; public boolean caption; public static TL_messages_messageEditData TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_messageEditData.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_messageEditData", constructor)); } else { return null; } } TL_messages_messageEditData result = new TL_messages_messageEditData(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); caption = (flags & 1) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = caption ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); } } public static abstract class help_ProxyData extends TLObject { public static help_ProxyData TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_ProxyData result = null; switch (constructor) { case 0xe09e1fb8: result = new TL_help_proxyDataEmpty(); break; case 0x2bf7ee23: result = new TL_help_proxyDataPromo(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_ProxyData", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_proxyDataEmpty extends help_ProxyData { public static int constructor = 0xe09e1fb8; public int expires; public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); } } public static class TL_help_proxyDataPromo extends help_ProxyData { public static int constructor = 0x2bf7ee23; public int expires; public Peer peer; public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { expires = stream.readInt32(exception); peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(expires); peer.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_contacts_importedContacts extends TLObject { public static int constructor = 0x77d01c3b; public ArrayList imported = new ArrayList<>(); public ArrayList popular_invites = new ArrayList<>(); public ArrayList retry_contacts = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_contacts_importedContacts TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contacts_importedContacts.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contacts_importedContacts", constructor)); } else { return null; } } TL_contacts_importedContacts result = new TL_contacts_importedContacts(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_importedContact object = TL_importedContact.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } imported.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_popularContact object = TL_popularContact.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } popular_invites.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { retry_contacts.add(stream.readInt64(exception)); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = imported.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { imported.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = popular_invites.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { popular_invites.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = retry_contacts.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(retry_contacts.get(a)); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_inlineBotSwitchPM extends TLObject { public static int constructor = 0x3c20629f; public String text; public String start_param; public static TL_inlineBotSwitchPM TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inlineBotSwitchPM.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inlineBotSwitchPM", constructor)); } else { return null; } } TL_inlineBotSwitchPM result = new TL_inlineBotSwitchPM(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { text = stream.readString(exception); start_param = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(text); stream.writeString(start_param); } } public static abstract class Update extends TLObject { public static Update TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Update result = null; switch (constructor) { case 0xaca1657b: result = new TL_updateMessagePoll(); break; case 0x4c43da18: result = new TL_updateUserPinnedMessage(); break; case 0xa20db0e5: result = new TL_updateDeleteMessages(); break; case 0x571d2742: result = new TL_updateReadFeaturedStickers(); break; case 0x1710f156: result = new TL_updateEncryptedChatTyping(); break; case 0x62ba04d9: result = new TL_updateNewChannelMessage(); break; case 0x2f2f21bf: result = new TL_updateReadHistoryOutbox(); break; case 0x19d27f3c: result = new TL_updateDialogPinned(); break; case 0x12b9417b: result = new TL_updateUserPhone(); break; case 0x4e90bfd6: result = new TL_updateMessageID(); break; case 0x57eaec8: result = new TL_updateGroupCallParticipant(); break; case 0x25d6c9c7: result = new TL_updateReadChannelOutbox(); break; case 0x43ae3dec: result = new TL_updateStickerSets(); break; case 0x1f2b0afd: result = new TL_updateNewMessage(); break; case 0x12bcbd9a: result = new TL_updateNewEncryptedMessage(); break; case 0x1bfbd823: result = new TL_updateUserStatus(); break; case 0x98a12b4b: result = new TL_updateChannelMessageViews(); break; case 0xbec268ef: result = new TL_updateNotifySettings(); break; case 0x6e5f8c22: result = new TL_updateChatParticipantDelete(); break; case 0xe10db349: result = new TL_updateChatPinnedMessage(); break; case 0xe40370a3: result = new TL_updateEditMessage(); break; case 0x7f891213: result = new TL_updateWebPage(); break; case 0xe511996d: result = new TL_updateFavedStickers(); break; case 0xea4b0e5c: result = new TL_updateChatParticipantAdd(); break; case 0x9a65ea1f: result = new TL_updateChatUserTyping(); break; case 0xb4a2e88d: result = new TL_updateEncryption(); break; case 0x85fe86ed: result = new TL_updateGroupCall(); break; case 0xeb0467fb: result = new TL_updateChannelTooLong(); break; case 0x5c486927: result = new TL_updateUserTyping(); break; case 0xebe46819: result = new TL_updateServiceNotification(); break; case 0x98592475: result = new TL_updateChannelPinnedMessage(); break; case 0x56022f4d: result = new TL_updateLangPack(); break; case 0xb6901959: result = new TL_updateChatParticipantAdmin(); break; case 0x89893b45: result = new TL_updateChannelReadMessagesContents(); break; case 0xee3b272a: result = new TL_updatePrivacy(); break; case 0xa229dd06: result = new TL_updateConfig(); break; case 0xee2bb969: result = new TL_updateDraftMessage(); break; case 0xa7332b73: result = new TL_updateUserName(); break; case 0x70db6837: result = new TL_updateChannelAvailableMessages(); break; case 0xe16459c3: result = new TL_updateDialogUnreadMark(); break; case 0xab0f6b1e: result = new TL_updatePhoneCall(); break; case 0xea4cb65b: result = new TL_updatePinnedDialogs(); break; case 0x9a422c20: result = new TL_updateRecentStickers(); break; case 0x9961fd5c: result = new TL_updateReadHistoryInbox(); break; case 0x9d2e67c5: result = new TL_updateContactLink(); break; case 0x9375341e: result = new TL_updateSavedGifs(); break; case 0x7084a7be: result = new TL_updateContactsReset(); break; case 0xb6d45656: result = new TL_updateChannel(); break; case 0x40771900: result = new TL_updateChannelWebPage(); break; case 0xc37521c9: result = new TL_updateDeleteChannelMessages(); break; case 0x95313b0c: result = new TL_updateUserPhoto(); break; case 0x8e5e9873: result = new TL_updateDcOptions(); break; case 0x1b3f4df7: result = new TL_updateEditChannelMessage(); break; case 0x80ece81a: result = new TL_updateUserBlocked(); break; case 0x688a30aa: result = new TL_updateNewStickerSet(); break; case 0x46560264: result = new TL_updateLangPackTooLong(); break; case 0x38fe25b7: result = new TL_updateEncryptedMessagesRead(); break; case 0xbb2d201: result = new TL_updateStickerSetsOrder(); break; case 0x4214f37f: result = new TL_updateReadChannelInbox(); break; case 0x68c13933: result = new TL_updateReadMessagesContents(); break; case 0x7761198: result = new TL_updateChatParticipants(); break; case 0x54c01850: result = new TL_updateChatDefaultBannedRights(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Update", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_updateUserPinnedMessage extends Update { public static int constructor = 0x4c43da18; public int user_id; public int id; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(id); } } public static class TL_updateDeleteMessages extends Update { public static int constructor = 0xa20db0e5; public ArrayList messages = new ArrayList<>(); public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { messages.add(stream.readInt32(exception)); } pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(messages.get(a)); } stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateReadFeaturedStickers extends Update { public static int constructor = 0x571d2742; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateEncryptedChatTyping extends Update { public static int constructor = 0x1710f156; public int chat_id; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_updateNewChannelMessage extends Update { public static int constructor = 0x62ba04d9; public Message message; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateReadHistoryOutbox extends Update { public static int constructor = 0x2f2f21bf; public Peer peer; public int max_id; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); max_id = stream.readInt32(exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(max_id); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateDialogPinned extends Update { public static int constructor = 0x19d27f3c; public int flags; public boolean pinned; public DialogPeer peer; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); pinned = (flags & 1) != 0; peer = DialogPeer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = pinned ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); } } public static class TL_updateUserPhone extends Update { public static int constructor = 0x12b9417b; public int user_id; public String phone; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); phone = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeString(phone); } } public static class TL_updateMessageID extends Update { public static int constructor = 0x4e90bfd6; public int id; public long random_id; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); random_id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(random_id); } } public static class TL_updateGroupCallParticipant extends Update { public static int constructor = 0x57eaec8; public TL_inputGroupCall call; public GroupCallParticipant participant; public void readParams(AbstractSerializedData stream, boolean exception) { call = TL_inputGroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); participant = GroupCallParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); participant.serializeToStream(stream); } } public static class TL_updateReadChannelOutbox extends Update { public static int constructor = 0x25d6c9c7; public int channel_id; public int max_id; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); max_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(max_id); } } public static class TL_updateStickerSets extends Update { public static int constructor = 0x43ae3dec; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateNewMessage extends Update { public static int constructor = 0x1f2b0afd; public Message message; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateNewEncryptedMessage extends Update { public static int constructor = 0x12bcbd9a; public EncryptedMessage message; public int qts; public void readParams(AbstractSerializedData stream, boolean exception) { message = EncryptedMessage.TLdeserialize(stream, stream.readInt32(exception), exception); qts = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); stream.writeInt32(qts); } } public static class TL_updateUserStatus extends Update { public static int constructor = 0x1bfbd823; public int user_id; public UserStatus status; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); status = UserStatus.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); status.serializeToStream(stream); } } public static class TL_updateChannelMessageViews extends Update { public static int constructor = 0x98a12b4b; public int channel_id; public int id; public int views; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); id = stream.readInt32(exception); views = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(id); stream.writeInt32(views); } } public static class TL_updateNotifySettings extends Update { public static int constructor = 0xbec268ef; public NotifyPeer peer; public PeerNotifySettings notify_settings; public void readParams(AbstractSerializedData stream, boolean exception) { peer = NotifyPeer.TLdeserialize(stream, stream.readInt32(exception), exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); notify_settings.serializeToStream(stream); } } public static class TL_updateChatParticipantDelete extends Update { public static int constructor = 0x6e5f8c22; public int chat_id; public int user_id; public int version; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); user_id = stream.readInt32(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(user_id); stream.writeInt32(version); } } public static class TL_updateChatPinnedMessage extends Update { public static int constructor = 0xe10db349; public int chat_id; public int id; public int version; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); id = stream.readInt32(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(id); stream.writeInt32(version); } } public static class TL_updateEditMessage extends Update { public static int constructor = 0xe40370a3; public Message message; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateWebPage extends Update { public static int constructor = 0x7f891213; public WebPage webpage; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { webpage = WebPage.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); webpage.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateFavedStickers extends Update { public static int constructor = 0xe511996d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateChatParticipantAdd extends Update { public static int constructor = 0xea4b0e5c; public int chat_id; public int user_id; public int inviter_id; public int date; public int version; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); stream.writeInt32(version); } } public static class TL_updateMessagePoll extends Update { public static int constructor = 0xaca1657b; public int flags; public long poll_id; public TL_poll poll; public TL_pollResults results; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); poll_id = stream.readInt64(exception); if ((flags & 1) != 0) { poll = TL_poll.TLdeserialize(stream, stream.readInt32(exception), exception); } results = TL_pollResults.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(poll_id); if ((flags & 1) != 0) { poll.serializeToStream(stream); } results.serializeToStream(stream); } } public static class TL_updateChatUserTyping extends Update { public static int constructor = 0x9a65ea1f; public int chat_id; public int user_id; public SendMessageAction action; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); user_id = stream.readInt32(exception); action = SendMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(user_id); action.serializeToStream(stream); } } public static class TL_updateEncryption extends Update { public static int constructor = 0xb4a2e88d; public EncryptedChat chat; public int date; public void readParams(AbstractSerializedData stream, boolean exception) { chat = EncryptedChat.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); chat.serializeToStream(stream); stream.writeInt32(date); } } public static class TL_updateGroupCall extends Update { public static int constructor = 0x85fe86ed; public GroupCall call; public void readParams(AbstractSerializedData stream, boolean exception) { call = GroupCall.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); } } public static class TL_updateChannelTooLong extends Update { public static int constructor = 0xeb0467fb; public int flags; public int channel_id; public int pts; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); channel_id = stream.readInt32(exception); if ((flags & 1) != 0) { pts = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(channel_id); if ((flags & 1) != 0) { stream.writeInt32(pts); } } } public static class TL_updateUserTyping extends Update { public static int constructor = 0x5c486927; public int user_id; public SendMessageAction action; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); action = SendMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); action.serializeToStream(stream); } } public static class TL_updateServiceNotification extends Update { public static int constructor = 0xebe46819; public int flags; public boolean popup; public int inbox_date; public String type; public String message; public MessageMedia media; public ArrayList entities = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); popup = (flags & 1) != 0; if ((flags & 2) != 0) { inbox_date = stream.readInt32(exception); } type = stream.readString(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = popup ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); if ((flags & 2) != 0) { stream.writeInt32(inbox_date); } stream.writeString(type); stream.writeString(message); media.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } public static class TL_updateChannelPinnedMessage extends Update { public static int constructor = 0x98592475; public int channel_id; public int id; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(id); } } public static class TL_updateLangPack extends Update { public static int constructor = 0x56022f4d; public TL_langPackDifference difference; public void readParams(AbstractSerializedData stream, boolean exception) { difference = TL_langPackDifference.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); difference.serializeToStream(stream); } } public static class TL_updateChatParticipantAdmin extends Update { public static int constructor = 0xb6901959; public int chat_id; public int user_id; public boolean is_admin; public int version; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); user_id = stream.readInt32(exception); is_admin = stream.readBool(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(user_id); stream.writeBool(is_admin); stream.writeInt32(version); } } public static class TL_updateChannelReadMessagesContents extends Update { public static int constructor = 0x89893b45; public int channel_id; public ArrayList messages = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { messages.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(messages.get(a)); } } } public static class TL_updatePrivacy extends Update { public static int constructor = 0xee3b272a; public PrivacyKey key; public ArrayList rules = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { key = PrivacyKey.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PrivacyRule object = PrivacyRule.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } rules.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); key.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = rules.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rules.get(a).serializeToStream(stream); } } } public static class TL_updateConfig extends Update { public static int constructor = 0xa229dd06; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateDraftMessage extends Update { public static int constructor = 0xee2bb969; public Peer peer; public DraftMessage draft; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); draft = DraftMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); draft.serializeToStream(stream); } } public static class TL_updateUserName extends Update { public static int constructor = 0xa7332b73; public int user_id; public String first_name; public String last_name; public String username; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); username = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeString(first_name); stream.writeString(last_name); stream.writeString(username); } } public static class TL_updateChannelAvailableMessages extends Update { public static int constructor = 0x70db6837; public int channel_id; public int available_min_id; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); available_min_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(available_min_id); } } public static class TL_updateDialogUnreadMark extends Update { public static int constructor = 0xe16459c3; public int flags; public boolean unread; public DialogPeer peer; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; peer = DialogPeer.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); } } public static class TL_updatePhoneCall extends Update { public static int constructor = 0xab0f6b1e; public PhoneCall phone_call; public void readParams(AbstractSerializedData stream, boolean exception) { phone_call = PhoneCall.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); phone_call.serializeToStream(stream); } } public static class TL_updatePinnedDialogs extends Update { public static int constructor = 0xea4cb65b; public int flags; public ArrayList order = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DialogPeer object = DialogPeer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } order.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(0x1cb5c415); int count = order.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { order.get(a).serializeToStream(stream); } } } } public static class TL_updateRecentStickers extends Update { public static int constructor = 0x9a422c20; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateReadHistoryInbox extends Update { public static int constructor = 0x9961fd5c; public Peer peer; public int max_id; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); max_id = stream.readInt32(exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(max_id); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateContactLink extends Update { public static int constructor = 0x9d2e67c5; public int user_id; public ContactLink my_link; public ContactLink foreign_link; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); my_link = ContactLink.TLdeserialize(stream, stream.readInt32(exception), exception); foreign_link = ContactLink.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); my_link.serializeToStream(stream); foreign_link.serializeToStream(stream); } } public static class TL_updateSavedGifs extends Update { public static int constructor = 0x9375341e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateContactsReset extends Update { public static int constructor = 0x7084a7be; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updateChannel extends Update { public static int constructor = 0xb6d45656; public int channel_id; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); } } public static class TL_updateChannelWebPage extends Update { public static int constructor = 0x40771900; public int channel_id; public WebPage webpage; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); webpage = WebPage.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); webpage.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateDeleteChannelMessages extends Update { public static int constructor = 0xc37521c9; public int channel_id; public ArrayList messages = new ArrayList<>(); public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { messages.add(stream.readInt32(exception)); } pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(messages.get(a)); } stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateUserPhoto extends Update { public static int constructor = 0x95313b0c; public int user_id; public int date; public UserProfilePhoto photo; public boolean previous; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); date = stream.readInt32(exception); photo = UserProfilePhoto.TLdeserialize(stream, stream.readInt32(exception), exception); previous = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(date); photo.serializeToStream(stream); stream.writeBool(previous); } } public static class TL_updateDcOptions extends Update { public static int constructor = 0x8e5e9873; public ArrayList dc_options = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_dcOption object = TL_dcOption.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } dc_options.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = dc_options.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { dc_options.get(a).serializeToStream(stream); } } } public static class TL_updateEditChannelMessage extends Update { public static int constructor = 0x1b3f4df7; public Message message; public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateUserBlocked extends Update { public static int constructor = 0x80ece81a; public int user_id; public boolean blocked; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); blocked = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeBool(blocked); } } public static class TL_updateNewStickerSet extends Update { public static int constructor = 0x688a30aa; public TL_messages_stickerSet stickerset; public void readParams(AbstractSerializedData stream, boolean exception) { stickerset = TL_messages_stickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stickerset.serializeToStream(stream); } } public static class TL_updateLangPackTooLong extends Update { public static int constructor = 0x46560264; public String lang_code; public void readParams(AbstractSerializedData stream, boolean exception) { lang_code = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(lang_code); } } public static class TL_updateEncryptedMessagesRead extends Update { public static int constructor = 0x38fe25b7; public int chat_id; public int max_date; public int date; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); max_date = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(max_date); stream.writeInt32(date); } } public static class TL_updateStickerSetsOrder extends Update { public static int constructor = 0xbb2d201; public int flags; public boolean masks; public ArrayList order = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); masks = (flags & 1) != 0; int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { order.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = masks ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = order.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(order.get(a)); } } } public static class TL_updateReadChannelInbox extends Update { public static int constructor = 0x4214f37f; public int channel_id; public int max_id; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); max_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt32(max_id); } } public static class TL_updateReadMessagesContents extends Update { public static int constructor = 0x68c13933; public ArrayList messages = new ArrayList<>(); public int pts; public int pts_count; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { messages.add(stream.readInt32(exception)); } pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(messages.get(a)); } stream.writeInt32(pts); stream.writeInt32(pts_count); } } public static class TL_updateChatParticipants extends Update { public static int constructor = 0x7761198; public ChatParticipants participants; public void readParams(AbstractSerializedData stream, boolean exception) { participants = ChatParticipants.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); participants.serializeToStream(stream); } } public static class TL_updateChatDefaultBannedRights extends Update { public static int constructor = 0x54c01850; public Peer peer; public TL_chatBannedRights default_banned_rights; public int version; public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); default_banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); default_banned_rights.serializeToStream(stream); stream.writeInt32(version); } } public static class TL_receivedNotifyMessage extends TLObject { public static int constructor = 0xa384b779; public int id; public int flags; public static TL_receivedNotifyMessage TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_receivedNotifyMessage.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_receivedNotifyMessage", constructor)); } else { return null; } } TL_receivedNotifyMessage result = new TL_receivedNotifyMessage(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); flags = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt32(flags); } } public static abstract class InputEncryptedFile extends TLObject { public long id; public long access_hash; public int parts; public int key_fingerprint; public String md5_checksum; public static InputEncryptedFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputEncryptedFile result = null; switch (constructor) { case 0x5a17b5e5: result = new TL_inputEncryptedFile(); break; case 0x2dc173c8: result = new TL_inputEncryptedFileBigUploaded(); break; case 0x1837c364: result = new TL_inputEncryptedFileEmpty(); break; case 0x64bd0306: result = new TL_inputEncryptedFileUploaded(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputEncryptedFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputEncryptedFile extends InputEncryptedFile { public static int constructor = 0x5a17b5e5; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_inputEncryptedFileBigUploaded extends InputEncryptedFile { public static int constructor = 0x2dc173c8; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); parts = stream.readInt32(exception); key_fingerprint = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(parts); stream.writeInt32(key_fingerprint); } } public static class TL_inputEncryptedFileEmpty extends InputEncryptedFile { public static int constructor = 0x1837c364; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputEncryptedFileUploaded extends InputEncryptedFile { public static int constructor = 0x64bd0306; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); parts = stream.readInt32(exception); md5_checksum = stream.readString(exception); key_fingerprint = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(parts); stream.writeString(md5_checksum); stream.writeInt32(key_fingerprint); } } public static abstract class messages_AllStickers extends TLObject { public String hash; public ArrayList sets = new ArrayList<>(); public ArrayList packs = new ArrayList<>(); public ArrayList documents = new ArrayList<>(); public static messages_AllStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_AllStickers result = null; switch (constructor) { case 0xedfd405f: result = new TL_messages_allStickers(); break; case 0xe86602c3: result = new TL_messages_allStickersNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_AllStickers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_allStickers extends messages_AllStickers { public static int constructor = 0xedfd405f; public int hash; public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { StickerSet object = StickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sets.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = sets.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sets.get(a).serializeToStream(stream); } } } public static class TL_messages_allStickersNotModified extends messages_AllStickers { public static int constructor = 0xe86602c3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class DecryptedMessageAction extends TLObject { public int ttl_seconds; public int layer; public ArrayList random_ids = new ArrayList<>(); public long exchange_id; public long key_fingerprint; public SendMessageAction action; public byte[] g_b; public int start_seq_no; public int end_seq_no; public byte[] g_a; public static DecryptedMessageAction TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DecryptedMessageAction result = null; switch (constructor) { case 0xa1733aec: result = new TL_decryptedMessageActionSetMessageTTL(); break; case 0xf3048883: result = new TL_decryptedMessageActionNotifyLayer(); break; case 0x65614304: result = new TL_decryptedMessageActionDeleteMessages(); break; case 0xec2e0b9b: result = new TL_decryptedMessageActionCommitKey(); break; case 0xdd05ec6b: result = new TL_decryptedMessageActionAbortKey(); break; case 0x6719e45c: result = new TL_decryptedMessageActionFlushHistory(); break; case 0xccb27641: result = new TL_decryptedMessageActionTyping(); break; case 0x6fe1735b: result = new TL_decryptedMessageActionAcceptKey(); break; case 0xc4f40be: result = new TL_decryptedMessageActionReadMessages(); break; case 0x511110b0: result = new TL_decryptedMessageActionResend(); break; case 0xf3c9611b: result = new TL_decryptedMessageActionRequestKey(); break; case 0x8ac1f475: result = new TL_decryptedMessageActionScreenshotMessages(); break; case 0xa82fdd63: result = new TL_decryptedMessageActionNoop(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DecryptedMessageAction", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_decryptedMessageActionSetMessageTTL extends DecryptedMessageAction { public static int constructor = 0xa1733aec; public void readParams(AbstractSerializedData stream, boolean exception) { ttl_seconds = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(ttl_seconds); } } public static class TL_decryptedMessageActionNotifyLayer extends DecryptedMessageAction { public static int constructor = 0xf3048883; public void readParams(AbstractSerializedData stream, boolean exception) { layer = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(layer); } } public static class TL_decryptedMessageActionDeleteMessages extends DecryptedMessageAction { public static int constructor = 0x65614304; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { random_ids.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = random_ids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(random_ids.get(a)); } } } public static class TL_decryptedMessageActionCommitKey extends DecryptedMessageAction { public static int constructor = 0xec2e0b9b; public void readParams(AbstractSerializedData stream, boolean exception) { exchange_id = stream.readInt64(exception); key_fingerprint = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(exchange_id); stream.writeInt64(key_fingerprint); } } public static class TL_decryptedMessageActionAbortKey extends DecryptedMessageAction { public static int constructor = 0xdd05ec6b; public void readParams(AbstractSerializedData stream, boolean exception) { exchange_id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(exchange_id); } } public static class TL_decryptedMessageActionFlushHistory extends DecryptedMessageAction { public static int constructor = 0x6719e45c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_decryptedMessageActionTyping extends DecryptedMessageAction { public static int constructor = 0xccb27641; public void readParams(AbstractSerializedData stream, boolean exception) { action = SendMessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); action.serializeToStream(stream); } } public static class TL_decryptedMessageActionAcceptKey extends DecryptedMessageAction { public static int constructor = 0x6fe1735b; public void readParams(AbstractSerializedData stream, boolean exception) { exchange_id = stream.readInt64(exception); g_b = stream.readByteArray(exception); key_fingerprint = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(exchange_id); stream.writeByteArray(g_b); stream.writeInt64(key_fingerprint); } } public static class TL_decryptedMessageActionReadMessages extends DecryptedMessageAction { public static int constructor = 0xc4f40be; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { random_ids.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = random_ids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(random_ids.get(a)); } } } public static class TL_decryptedMessageActionResend extends DecryptedMessageAction { public static int constructor = 0x511110b0; public void readParams(AbstractSerializedData stream, boolean exception) { start_seq_no = stream.readInt32(exception); end_seq_no = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(start_seq_no); stream.writeInt32(end_seq_no); } } public static class TL_decryptedMessageActionRequestKey extends DecryptedMessageAction { public static int constructor = 0xf3c9611b; public void readParams(AbstractSerializedData stream, boolean exception) { exchange_id = stream.readInt64(exception); g_a = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(exchange_id); stream.writeByteArray(g_a); } } public static class TL_decryptedMessageActionScreenshotMessages extends DecryptedMessageAction { public static int constructor = 0x8ac1f475; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { random_ids.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = random_ids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(random_ids.get(a)); } } } public static class TL_decryptedMessageActionNoop extends DecryptedMessageAction { public static int constructor = 0xa82fdd63; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class InputCheckPasswordSRP extends TLObject { public static InputCheckPasswordSRP TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputCheckPasswordSRP result = null; switch (constructor) { case 0x9880f658: result = new TL_inputCheckPasswordEmpty(); break; case 0xd27ff082: result = new TL_inputCheckPasswordSRP(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputCheckPasswordSRP", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputCheckPasswordEmpty extends InputCheckPasswordSRP { public static int constructor = 0x9880f658; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputCheckPasswordSRP extends InputCheckPasswordSRP { public static int constructor = 0xd27ff082; public long srp_id; public byte[] A; public byte[] M1; public void readParams(AbstractSerializedData stream, boolean exception) { srp_id = stream.readInt64(exception); A = stream.readByteArray(exception); M1 = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(srp_id); stream.writeByteArray(A); stream.writeByteArray(M1); } } public static class TL_account_password extends TLObject { public static int constructor = 0xad2641f8; public int flags; public boolean has_recovery; public boolean has_secure_values; public boolean has_password; public PasswordKdfAlgo current_algo; public byte[] srp_B; public long srp_id; public String hint; public String email_unconfirmed_pattern; public PasswordKdfAlgo new_algo; public SecurePasswordKdfAlgo new_secure_algo; public byte[] secure_random; public static TL_account_password TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_password.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_password", constructor)); } else { return null; } } TL_account_password result = new TL_account_password(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); has_recovery = (flags & 1) != 0; has_secure_values = (flags & 2) != 0; has_password = (flags & 4) != 0; if ((flags & 4) != 0) { current_algo = PasswordKdfAlgo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 4) != 0) { srp_B = stream.readByteArray(exception); } if ((flags & 4) != 0) { srp_id = stream.readInt64(exception); } if ((flags & 8) != 0) { hint = stream.readString(exception); } if ((flags & 16) != 0) { email_unconfirmed_pattern = stream.readString(exception); } new_algo = PasswordKdfAlgo.TLdeserialize(stream, stream.readInt32(exception), exception); new_secure_algo = SecurePasswordKdfAlgo.TLdeserialize(stream, stream.readInt32(exception), exception); secure_random = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = has_recovery ? (flags | 1) : (flags &~ 1); flags = has_secure_values ? (flags | 2) : (flags &~ 2); flags = has_password ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); if ((flags & 4) != 0) { current_algo.serializeToStream(stream); } if ((flags & 4) != 0) { stream.writeByteArray(srp_B); } if ((flags & 4) != 0) { stream.writeInt64(srp_id); } if ((flags & 8) != 0) { stream.writeString(hint); } if ((flags & 16) != 0) { stream.writeString(email_unconfirmed_pattern); } new_algo.serializeToStream(stream); new_secure_algo.serializeToStream(stream); stream.writeByteArray(secure_random); } } public static abstract class UserProfilePhoto extends TLObject { public long photo_id; public FileLocation photo_small; public FileLocation photo_big; public static UserProfilePhoto TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { UserProfilePhoto result = null; switch (constructor) { case 0x4f11bae1: result = new TL_userProfilePhotoEmpty(); break; case 0xd559d8c8: result = new TL_userProfilePhoto(); break; case 0x990d1493: result = new TL_userProfilePhoto_old(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in UserProfilePhoto", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_userProfilePhotoEmpty extends UserProfilePhoto { public static int constructor = 0x4f11bae1; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_userProfilePhoto extends UserProfilePhoto { public static int constructor = 0xd559d8c8; public void readParams(AbstractSerializedData stream, boolean exception) { photo_id = stream.readInt64(exception); photo_small = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); photo_big = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(photo_id); photo_small.serializeToStream(stream); photo_big.serializeToStream(stream); } } public static class TL_userProfilePhoto_old extends TL_userProfilePhoto { public static int constructor = 0x990d1493; public void readParams(AbstractSerializedData stream, boolean exception) { photo_small = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); photo_big = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); photo_small.serializeToStream(stream); photo_big.serializeToStream(stream); } } public static abstract class MessageEntity extends TLObject { public int offset; public int length; public String url; public String language; public static MessageEntity TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { MessageEntity result = null; switch (constructor) { case 0x76a6d327: result = new TL_messageEntityTextUrl(); break; case 0x6cef8ac7: result = new TL_messageEntityBotCommand(); break; case 0x64e475c2: result = new TL_messageEntityEmail(); break; case 0x73924be0: result = new TL_messageEntityPre(); break; case 0xbb92ba95: result = new TL_messageEntityUnknown(); break; case 0x6ed02538: result = new TL_messageEntityUrl(); break; case 0x826f8b60: result = new TL_messageEntityItalic(); break; case 0xfa04579d: result = new TL_messageEntityMention(); break; case 0x352dca58: result = new TL_messageEntityMentionName(); break; case 0x208e68c9: result = new TL_inputMessageEntityMentionName(); break; case 0x4c4e743f: result = new TL_messageEntityCashtag(); break; case 0xbd610bc9: result = new TL_messageEntityBold(); break; case 0x6f635b0d: result = new TL_messageEntityHashtag(); break; case 0x28a20571: result = new TL_messageEntityCode(); break; case 0x9b69e34b: result = new TL_messageEntityPhone(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessageEntity", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messageEntityTextUrl extends MessageEntity { public static int constructor = 0x76a6d327; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); stream.writeString(url); } } public static class TL_messageEntityBotCommand extends MessageEntity { public static int constructor = 0x6cef8ac7; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityEmail extends MessageEntity { public static int constructor = 0x64e475c2; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityPre extends MessageEntity { public static int constructor = 0x73924be0; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); language = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); stream.writeString(language); } } public static class TL_messageEntityUnknown extends MessageEntity { public static int constructor = 0xbb92ba95; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityUrl extends MessageEntity { public static int constructor = 0x6ed02538; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityItalic extends MessageEntity { public static int constructor = 0x826f8b60; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityMention extends MessageEntity { public static int constructor = 0xfa04579d; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityMentionName extends MessageEntity { public static int constructor = 0x352dca58; public int user_id; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); stream.writeInt32(user_id); } } public static class TL_inputMessageEntityMentionName extends MessageEntity { public static int constructor = 0x208e68c9; public InputUser user_id; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); user_id = InputUser.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); user_id.serializeToStream(stream); } } public static class TL_messageEntityCashtag extends MessageEntity { public static int constructor = 0x4c4e743f; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityBold extends MessageEntity { public static int constructor = 0xbd610bc9; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityHashtag extends MessageEntity { public static int constructor = 0x6f635b0d; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityCode extends MessageEntity { public static int constructor = 0x28a20571; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static class TL_messageEntityPhone extends MessageEntity { public static int constructor = 0x9b69e34b; public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(length); } } public static abstract class Photo extends TLObject { public int flags; public boolean has_stickers; public long id; public long access_hash; public byte[] file_reference; public int user_id; public int date; public String caption; public GeoPoint geo; public ArrayList sizes = new ArrayList<>(); public static Photo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Photo result = null; switch (constructor) { case 0x22b56751: result = new TL_photo_old(); break; case 0x9c477dd8: result = new TL_photo(); break; case 0xc3838076: result = new TL_photo_old2(); break; case 0xcded42fe: result = new TL_photo_layer55(); break; case 0x9288dd29: result = new TL_photo_layer82(); break; case 0x2331b22d: result = new TL_photoEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Photo", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_photo_old extends TL_photo { public static int constructor = 0x22b56751; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); caption = stream.readString(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sizes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeString(caption); geo.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = sizes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sizes.get(a).serializeToStream(stream); } } } public static class TL_photo extends Photo { public static int constructor = 0x9c477dd8; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); has_stickers = (flags & 1) != 0; id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); date = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sizes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = has_stickers ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); stream.writeInt32(date); stream.writeInt32(0x1cb5c415); int count = sizes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sizes.get(a).serializeToStream(stream); } } } public static class TL_photo_old2 extends TL_photo { public static int constructor = 0xc3838076; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); user_id = stream.readInt32(exception); date = stream.readInt32(exception); geo = GeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sizes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(user_id); stream.writeInt32(date); geo.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = sizes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sizes.get(a).serializeToStream(stream); } } } public static class TL_photo_layer55 extends TL_photo { public static int constructor = 0xcded42fe; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sizes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(0x1cb5c415); int count = sizes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sizes.get(a).serializeToStream(stream); } } } public static class TL_photo_layer82 extends TL_photo { public static int constructor = 0x9288dd29; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); has_stickers = (flags & 1) != 0; id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PhotoSize object = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sizes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = has_stickers ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(0x1cb5c415); int count = sizes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sizes.get(a).serializeToStream(stream); } } } public static class TL_photoEmpty extends Photo { public static int constructor = 0x2331b22d; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); } } public static class TL_encryptedChatRequested_old extends TL_encryptedChatRequested { public static int constructor = 0xfda9a7b7; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a = stream.readByteArray(exception); nonce = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a); stream.writeByteArray(nonce); } } public static class TL_encryptedChatRequested extends EncryptedChat { public static int constructor = 0xc878527e; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a); } } public static class TL_encryptedChat extends EncryptedChat { public static int constructor = 0xfa56ce36; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a_or_b = stream.readByteArray(exception); key_fingerprint = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a_or_b); stream.writeInt64(key_fingerprint); } } public static class TL_encryptedChat_old extends TL_encryptedChat { public static int constructor = 0x6601d14f; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); g_a_or_b = stream.readByteArray(exception); nonce = stream.readByteArray(exception); key_fingerprint = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); stream.writeByteArray(g_a_or_b); stream.writeByteArray(nonce); stream.writeInt64(key_fingerprint); } } public static class TL_encryptedChatEmpty extends EncryptedChat { public static int constructor = 0xab7ec0a0; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); } } public static class TL_encryptedChatWaiting extends EncryptedChat { public static int constructor = 0x3bf703dc; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); admin_id = stream.readInt32(exception); participant_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeInt32(admin_id); stream.writeInt32(participant_id); } } public static class TL_encryptedChatDiscarded extends EncryptedChat { public static int constructor = 0x13d6dd27; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); } } public static abstract class messages_FoundStickerSets extends TLObject { public static messages_FoundStickerSets TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_FoundStickerSets result = null; switch (constructor) { case 0xd54b65d: result = new TL_messages_foundStickerSetsNotModified(); break; case 0x5108d648: result = new TL_messages_foundStickerSets(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_FoundStickerSets", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_foundStickerSetsNotModified extends messages_FoundStickerSets { public static int constructor = 0xd54b65d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_foundStickerSets extends messages_FoundStickerSets { public static int constructor = 0x5108d648; public int hash; public ArrayList sets = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } sets.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = sets.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { sets.get(a).serializeToStream(stream); } } } public static class TL_contact extends TLObject { public static int constructor = 0xf911c994; public int user_id; public boolean mutual; public static TL_contact TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contact.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contact", constructor)); } else { return null; } } TL_contact result = new TL_contact(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); mutual = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeBool(mutual); } } public static class TL_groupCallConnection extends TLObject { public static int constructor = 0x40732163; public long id; public String ip; public String ipv6; public int port; public static TL_groupCallConnection TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_groupCallConnection.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_groupCallConnection", constructor)); } else { return null; } } TL_groupCallConnection result = new TL_groupCallConnection(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); ip = stream.readString(exception); ipv6 = stream.readString(exception); port = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeString(ip); stream.writeString(ipv6); stream.writeInt32(port); } } public static class TL_secureData extends TLObject { public static int constructor = 0x8aeabec3; public byte[] data; public byte[] data_hash; public byte[] secret; public static TL_secureData TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_secureData.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_secureData", constructor)); } else { return null; } } TL_secureData result = new TL_secureData(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { data = stream.readByteArray(exception); data_hash = stream.readByteArray(exception); secret = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(data); stream.writeByteArray(data_hash); stream.writeByteArray(secret); } } public static class TL_config extends TLObject { public static int constructor = 0xe6ca25f6; public int flags; public boolean phonecalls_enabled; public boolean default_p2p_contacts; public boolean preload_featured_stickers; public boolean ignore_phone_entities; public boolean revoke_pm_inbox; public boolean blocked_mode; public boolean pfs_enabled; public int date; public int expires; public boolean test_mode; public int this_dc; public ArrayList dc_options = new ArrayList<>(); public String dc_txt_domain_name; public int chat_size_max; public int megagroup_size_max; public int forwarded_count_max; public int online_update_period_ms; public int offline_blur_timeout_ms; public int offline_idle_timeout_ms; public int online_cloud_timeout_ms; public int notify_cloud_delay_ms; public int notify_default_delay_ms; public int push_chat_period_ms; public int push_chat_limit; public int saved_gifs_limit; public int edit_time_limit; public int revoke_time_limit; public int revoke_pm_time_limit; public int rating_e_decay; public int stickers_recent_limit; public int stickers_faved_limit; public int channels_read_media_period; public int tmp_sessions; public int pinned_dialogs_count_max; public int call_receive_timeout_ms; public int call_ring_timeout_ms; public int call_connect_timeout_ms; public int call_packet_timeout_ms; public String me_url_prefix; public String autoupdate_url_prefix; public String gif_search_username; public String venue_search_username; public String img_search_username; public String static_maps_provider; public int caption_length_max; public int message_length_max; public int webfile_dc_id; public String suggested_lang_code; public int lang_pack_version; public int base_lang_pack_version; public static TL_config TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_config.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_config", constructor)); } else { return null; } } TL_config result = new TL_config(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); phonecalls_enabled = (flags & 2) != 0; default_p2p_contacts = (flags & 8) != 0; preload_featured_stickers = (flags & 16) != 0; ignore_phone_entities = (flags & 32) != 0; revoke_pm_inbox = (flags & 64) != 0; blocked_mode = (flags & 256) != 0; pfs_enabled = (flags & 8192) != 0; date = stream.readInt32(exception); expires = stream.readInt32(exception); test_mode = stream.readBool(exception); this_dc = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_dcOption object = TL_dcOption.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } dc_options.add(object); } dc_txt_domain_name = stream.readString(exception); chat_size_max = stream.readInt32(exception); megagroup_size_max = stream.readInt32(exception); forwarded_count_max = stream.readInt32(exception); online_update_period_ms = stream.readInt32(exception); offline_blur_timeout_ms = stream.readInt32(exception); offline_idle_timeout_ms = stream.readInt32(exception); online_cloud_timeout_ms = stream.readInt32(exception); notify_cloud_delay_ms = stream.readInt32(exception); notify_default_delay_ms = stream.readInt32(exception); push_chat_period_ms = stream.readInt32(exception); push_chat_limit = stream.readInt32(exception); saved_gifs_limit = stream.readInt32(exception); edit_time_limit = stream.readInt32(exception); revoke_time_limit = stream.readInt32(exception); revoke_pm_time_limit = stream.readInt32(exception); rating_e_decay = stream.readInt32(exception); stickers_recent_limit = stream.readInt32(exception); stickers_faved_limit = stream.readInt32(exception); channels_read_media_period = stream.readInt32(exception); if ((flags & 1) != 0) { tmp_sessions = stream.readInt32(exception); } pinned_dialogs_count_max = stream.readInt32(exception); call_receive_timeout_ms = stream.readInt32(exception); call_ring_timeout_ms = stream.readInt32(exception); call_connect_timeout_ms = stream.readInt32(exception); call_packet_timeout_ms = stream.readInt32(exception); me_url_prefix = stream.readString(exception); if ((flags & 128) != 0) { autoupdate_url_prefix = stream.readString(exception); } if ((flags & 512) != 0) { gif_search_username = stream.readString(exception); } if ((flags & 1024) != 0) { venue_search_username = stream.readString(exception); } if ((flags & 2048) != 0) { img_search_username = stream.readString(exception); } if ((flags & 4096) != 0) { static_maps_provider = stream.readString(exception); } caption_length_max = stream.readInt32(exception); message_length_max = stream.readInt32(exception); webfile_dc_id = stream.readInt32(exception); if ((flags & 4) != 0) { suggested_lang_code = stream.readString(exception); } if ((flags & 4) != 0) { lang_pack_version = stream.readInt32(exception); } if ((flags & 4) != 0) { base_lang_pack_version = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = phonecalls_enabled ? (flags | 2) : (flags &~ 2); flags = default_p2p_contacts ? (flags | 8) : (flags &~ 8); flags = preload_featured_stickers ? (flags | 16) : (flags &~ 16); flags = ignore_phone_entities ? (flags | 32) : (flags &~ 32); flags = revoke_pm_inbox ? (flags | 64) : (flags &~ 64); flags = blocked_mode ? (flags | 256) : (flags &~ 256); flags = pfs_enabled ? (flags | 8192) : (flags &~ 8192); stream.writeInt32(flags); stream.writeInt32(date); stream.writeInt32(expires); stream.writeBool(test_mode); stream.writeInt32(this_dc); stream.writeInt32(0x1cb5c415); int count = dc_options.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { dc_options.get(a).serializeToStream(stream); } stream.writeString(dc_txt_domain_name); stream.writeInt32(chat_size_max); stream.writeInt32(megagroup_size_max); stream.writeInt32(forwarded_count_max); stream.writeInt32(online_update_period_ms); stream.writeInt32(offline_blur_timeout_ms); stream.writeInt32(offline_idle_timeout_ms); stream.writeInt32(online_cloud_timeout_ms); stream.writeInt32(notify_cloud_delay_ms); stream.writeInt32(notify_default_delay_ms); stream.writeInt32(push_chat_period_ms); stream.writeInt32(push_chat_limit); stream.writeInt32(saved_gifs_limit); stream.writeInt32(edit_time_limit); stream.writeInt32(revoke_time_limit); stream.writeInt32(revoke_pm_time_limit); stream.writeInt32(rating_e_decay); stream.writeInt32(stickers_recent_limit); stream.writeInt32(stickers_faved_limit); stream.writeInt32(channels_read_media_period); if ((flags & 1) != 0) { stream.writeInt32(tmp_sessions); } stream.writeInt32(pinned_dialogs_count_max); stream.writeInt32(call_receive_timeout_ms); stream.writeInt32(call_ring_timeout_ms); stream.writeInt32(call_connect_timeout_ms); stream.writeInt32(call_packet_timeout_ms); stream.writeString(me_url_prefix); if ((flags & 128) != 0) { stream.writeString(autoupdate_url_prefix); } if ((flags & 512) != 0) { stream.writeString(gif_search_username); } if ((flags & 1024) != 0) { stream.writeString(venue_search_username); } if ((flags & 2048) != 0) { stream.writeString(img_search_username); } if ((flags & 4096) != 0) { stream.writeString(static_maps_provider); } stream.writeInt32(caption_length_max); stream.writeInt32(message_length_max); stream.writeInt32(webfile_dc_id); if ((flags & 4) != 0) { stream.writeString(suggested_lang_code); } if ((flags & 4) != 0) { stream.writeInt32(lang_pack_version); } if ((flags & 4) != 0) { stream.writeInt32(base_lang_pack_version); } } } public static abstract class contacts_TopPeers extends TLObject { public static contacts_TopPeers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { contacts_TopPeers result = null; switch (constructor) { case 0x70b772a8: result = new TL_contacts_topPeers(); break; case 0xb52c939d: result = new TL_contacts_topPeersDisabled(); break; case 0xde266ef5: result = new TL_contacts_topPeersNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in contacts_TopPeers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_contacts_topPeers extends contacts_TopPeers { public static int constructor = 0x70b772a8; public ArrayList categories = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_topPeerCategoryPeers object = TL_topPeerCategoryPeers.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } categories.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = categories.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { categories.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_contacts_topPeersDisabled extends contacts_TopPeers { public static int constructor = 0xb52c939d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contacts_topPeersNotModified extends contacts_TopPeers { public static int constructor = 0xde266ef5; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_support extends TLObject { public static int constructor = 0x17c6b5f6; public String phone_number; public User user; public static TL_help_support TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_help_support.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_help_support", constructor)); } else { return null; } } TL_help_support result = new TL_help_support(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { phone_number = stream.readString(exception); user = User.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); user.serializeToStream(stream); } } public static class TL_account_tmpPassword extends TLObject { public static int constructor = 0xdb64fd34; public byte[] tmp_password; public int valid_until; public static TL_account_tmpPassword TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_tmpPassword.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_tmpPassword", constructor)); } else { return null; } } TL_account_tmpPassword result = new TL_account_tmpPassword(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { tmp_password = stream.readByteArray(exception); valid_until = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(tmp_password); stream.writeInt32(valid_until); } } public static abstract class messages_Chats extends TLObject { public ArrayList chats = new ArrayList<>(); public int count; public static messages_Chats TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_Chats result = null; switch (constructor) { case 0x64ff9fd5: result = new TL_messages_chats(); break; case 0x9cd81144: result = new TL_messages_chatsSlice(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_Chats", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_chats extends messages_Chats { public static int constructor = 0x64ff9fd5; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } } } public static class TL_messages_chatsSlice extends messages_Chats { public static int constructor = 0x9cd81144; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } } } public static abstract class InputChannel extends TLObject { public int channel_id; public long access_hash; public static InputChannel TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputChannel result = null; switch (constructor) { case 0xee8c1e86: result = new TL_inputChannelEmpty(); break; case 0xafeb712e: result = new TL_inputChannel(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputChannel", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputChannelEmpty extends InputChannel { public static int constructor = 0xee8c1e86; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputChannel extends InputChannel { public static int constructor = 0xafeb712e; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt64(access_hash); } } public static class TL_messageRange extends TLObject { public static int constructor = 0xae30253; public int min_id; public int max_id; public static TL_messageRange TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messageRange.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messageRange", constructor)); } else { return null; } } TL_messageRange result = new TL_messageRange(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { min_id = stream.readInt32(exception); max_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(min_id); stream.writeInt32(max_id); } } public static class TL_poll extends TLObject { public static int constructor = 0xd5529d06; public long id; public int flags; public boolean closed; public String question; public ArrayList answers = new ArrayList<>(); public static TL_poll TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_poll.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_poll", constructor)); } else { return null; } } TL_poll result = new TL_poll(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); flags = stream.readInt32(exception); closed = (flags & 1) != 0; question = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_pollAnswer object = TL_pollAnswer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } answers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); flags = closed ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeString(question); stream.writeInt32(0x1cb5c415); int count = answers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { answers.get(a).serializeToStream(stream); } } } public static abstract class messages_BotResults extends TLObject { public int flags; public boolean gallery; public long query_id; public String next_offset; public TL_inlineBotSwitchPM switch_pm; public ArrayList results = new ArrayList<>(); public int cache_time; public ArrayList users = new ArrayList<>(); public static messages_BotResults TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_BotResults result = null; switch (constructor) { case 0xccd3563d: result = new TL_messages_botResults_layer71(); break; case 0x947ca848: result = new TL_messages_botResults(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_BotResults", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_botResults_layer71 extends TL_messages_botResults { public static int constructor = 0xccd3563d; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); gallery = (flags & 1) != 0; query_id = stream.readInt64(exception); if ((flags & 2) != 0) { next_offset = stream.readString(exception); } if ((flags & 4) != 0) { switch_pm = TL_inlineBotSwitchPM.TLdeserialize(stream, stream.readInt32(exception), exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInlineResult object = BotInlineResult.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } results.add(object); } cache_time = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = gallery ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt64(query_id); if ((flags & 2) != 0) { stream.writeString(next_offset); } if ((flags & 4) != 0) { switch_pm.serializeToStream(stream); } stream.writeInt32(0x1cb5c415); int count = results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { results.get(a).serializeToStream(stream); } stream.writeInt32(cache_time); } } public static class TL_messages_botResults extends messages_BotResults { public static int constructor = 0x947ca848; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); gallery = (flags & 1) != 0; query_id = stream.readInt64(exception); if ((flags & 2) != 0) { next_offset = stream.readString(exception); } if ((flags & 4) != 0) { switch_pm = TL_inlineBotSwitchPM.TLdeserialize(stream, stream.readInt32(exception), exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { BotInlineResult object = BotInlineResult.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } results.add(object); } cache_time = stream.readInt32(exception); magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = gallery ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt64(query_id); if ((flags & 2) != 0) { stream.writeString(next_offset); } if ((flags & 4) != 0) { switch_pm.serializeToStream(stream); } stream.writeInt32(0x1cb5c415); int count = results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { results.get(a).serializeToStream(stream); } stream.writeInt32(cache_time); stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_phoneConnection extends TLObject { public static int constructor = 0x9d4c17c0; public long id; public String ip; public String ipv6; public int port; public byte[] peer_tag; public static TL_phoneConnection TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_phoneConnection.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_phoneConnection", constructor)); } else { return null; } } TL_phoneConnection result = new TL_phoneConnection(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); ip = stream.readString(exception); ipv6 = stream.readString(exception); port = stream.readInt32(exception); peer_tag = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeString(ip); stream.writeString(ipv6); stream.writeInt32(port); stream.writeByteArray(peer_tag); } } public static class TL_inputBotInlineMessageID extends TLObject { public static int constructor = 0x890c3d89; public int dc_id; public long id; public long access_hash; public static TL_inputBotInlineMessageID TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputBotInlineMessageID.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputBotInlineMessageID", constructor)); } else { return null; } } TL_inputBotInlineMessageID result = new TL_inputBotInlineMessageID(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { dc_id = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static abstract class SecurePlainData extends TLObject { public static SecurePlainData TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { SecurePlainData result = null; switch (constructor) { case 0x21ec5a5f: result = new TL_securePlainEmail(); break; case 0x7d6099dd: result = new TL_securePlainPhone(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in SecurePlainData", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_securePlainEmail extends SecurePlainData { public static int constructor = 0x21ec5a5f; public String email; public void readParams(AbstractSerializedData stream, boolean exception) { email = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(email); } } public static class TL_securePlainPhone extends SecurePlainData { public static int constructor = 0x7d6099dd; public String phone; public void readParams(AbstractSerializedData stream, boolean exception) { phone = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone); } } public static class TL_secureSecretSettings extends TLObject { public static int constructor = 0x1527bcac; public SecurePasswordKdfAlgo secure_algo; public byte[] secure_secret; public long secure_secret_id; public static TL_secureSecretSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_secureSecretSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_secureSecretSettings", constructor)); } else { return null; } } TL_secureSecretSettings result = new TL_secureSecretSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { secure_algo = SecurePasswordKdfAlgo.TLdeserialize(stream, stream.readInt32(exception), exception); secure_secret = stream.readByteArray(exception); secure_secret_id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); secure_algo.serializeToStream(stream); stream.writeByteArray(secure_secret); stream.writeInt64(secure_secret_id); } } public static class TL_messages_foundGifs extends TLObject { public static int constructor = 0x450a1c0a; public int next_offset; public ArrayList results = new ArrayList<>(); public static TL_messages_foundGifs TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_foundGifs.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_foundGifs", constructor)); } else { return null; } } TL_messages_foundGifs result = new TL_messages_foundGifs(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { next_offset = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { FoundGif object = FoundGif.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } results.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(next_offset); stream.writeInt32(0x1cb5c415); int count = results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { results.get(a).serializeToStream(stream); } } } public static abstract class updates_ChannelDifference extends TLObject { public int flags; public boolean isFinal; public int pts; public int timeout; public ArrayList new_messages = new ArrayList<>(); public ArrayList other_updates = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public int top_message; public int read_inbox_max_id; public int read_outbox_max_id; public int unread_count; public int unread_mentions_count; public ArrayList messages = new ArrayList<>(); public static updates_ChannelDifference TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { updates_ChannelDifference result = null; switch (constructor) { case 0x3e11affb: result = new TL_updates_channelDifferenceEmpty(); break; case 0x2064674e: result = new TL_updates_channelDifference(); break; case 0x6a9d7b35: result = new TL_updates_channelDifferenceTooLong(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in updates_ChannelDifference", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_updates_channelDifferenceEmpty extends updates_ChannelDifference { public static int constructor = 0x3e11affb; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); isFinal = (flags & 1) != 0; pts = stream.readInt32(exception); if ((flags & 2) != 0) { timeout = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = isFinal ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(pts); if ((flags & 2) != 0) { stream.writeInt32(timeout); } } } public static class TL_updates_channelDifference extends updates_ChannelDifference { public static int constructor = 0x2064674e; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); isFinal = (flags & 1) != 0; pts = stream.readInt32(exception); if ((flags & 2) != 0) { timeout = stream.readInt32(exception); } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } new_messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Update object = Update.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } other_updates.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = isFinal ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(pts); if ((flags & 2) != 0) { stream.writeInt32(timeout); } stream.writeInt32(0x1cb5c415); int count = new_messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { new_messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = other_updates.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { other_updates.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_updates_channelDifferenceTooLong extends updates_ChannelDifference { public static int constructor = 0x6a9d7b35; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); isFinal = (flags & 1) != 0; pts = stream.readInt32(exception); if ((flags & 2) != 0) { timeout = stream.readInt32(exception); } top_message = stream.readInt32(exception); read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); unread_mentions_count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = isFinal ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(pts); if ((flags & 2) != 0) { stream.writeInt32(timeout); } stream.writeInt32(top_message); stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); stream.writeInt32(unread_mentions_count); stream.writeInt32(0x1cb5c415); int count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class ChannelMessagesFilter extends TLObject { public int flags; public boolean exclude_new_messages; public ArrayList ranges = new ArrayList<>(); public static ChannelMessagesFilter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChannelMessagesFilter result = null; switch (constructor) { case 0x94d42ee7: result = new TL_channelMessagesFilterEmpty(); break; case 0xcd77d957: result = new TL_channelMessagesFilter(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChannelMessagesFilter", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_account_authorizationForm extends TLObject { public static int constructor = 0xad2e1cd8; public int flags; public ArrayList required_types = new ArrayList<>(); public ArrayList values = new ArrayList<>(); public ArrayList errors = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public String privacy_policy_url; public static TL_account_authorizationForm TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_authorizationForm.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_authorizationForm", constructor)); } else { return null; } } TL_account_authorizationForm result = new TL_account_authorizationForm(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureRequiredType object = SecureRequiredType.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } required_types.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_secureValue object = TL_secureValue.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } values.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { SecureValueError object = SecureValueError.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } errors.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } if ((flags & 1) != 0) { privacy_policy_url = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = required_types.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { required_types.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = values.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { values.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = errors.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { errors.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } if ((flags & 1) != 0) { stream.writeString(privacy_policy_url); } } } public static class TL_help_recentMeUrls extends TLObject { public static int constructor = 0xe0310d7; public ArrayList urls = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_help_recentMeUrls TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_help_recentMeUrls.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_help_recentMeUrls", constructor)); } else { return null; } } TL_help_recentMeUrls result = new TL_help_recentMeUrls(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { RecentMeUrl object = RecentMeUrl.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } urls.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = urls.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { urls.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_channelMessagesFilterEmpty extends ChannelMessagesFilter { public static int constructor = 0x94d42ee7; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channelMessagesFilter extends ChannelMessagesFilter { public static int constructor = 0xcd77d957; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); exclude_new_messages = (flags & 2) != 0; int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_messageRange object = TL_messageRange.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } ranges.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = exclude_new_messages ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = ranges.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { ranges.get(a).serializeToStream(stream); } } } public static class TL_contacts_resolvedPeer extends TLObject { public static int constructor = 0x7f077ad9; public Peer peer; public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_contacts_resolvedPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contacts_resolvedPeer.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contacts_resolvedPeer", constructor)); } else { return null; } } TL_contacts_resolvedPeer result = new TL_contacts_resolvedPeer(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_inputSingleMedia extends TLObject { public static int constructor = 0x1cc6e91f; public int flags; public InputMedia media; public long random_id; public String message; public ArrayList entities = new ArrayList<>(); public static TL_inputSingleMedia TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputSingleMedia.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputSingleMedia", constructor)); } else { return null; } } TL_inputSingleMedia result = new TL_inputSingleMedia(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); media = InputMedia.TLdeserialize(stream, stream.readInt32(exception), exception); random_id = stream.readInt64(exception); message = stream.readString(exception); if ((flags & 1) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); media.serializeToStream(stream); stream.writeInt64(random_id); stream.writeString(message); if ((flags & 1) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_inputPhoneCall extends TLObject { public static int constructor = 0x1e36fded; public long id; public long access_hash; public static TL_inputPhoneCall TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputPhoneCall.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputPhoneCall", constructor)); } else { return null; } } TL_inputPhoneCall result = new TL_inputPhoneCall(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static abstract class WebDocument extends TLObject { public String url; public long access_hash; public int size; public String mime_type; public ArrayList attributes = new ArrayList<>(); public static WebDocument TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { WebDocument result = null; switch (constructor) { case 0xf9c8bcc6: result = new TL_webDocumentNoProxy(); break; case 0xc61acbd8: result = new TL_webDocument_layer81(); break; case 0x1c570ed1: result = new TL_webDocument(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in WebDocument", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_webDocumentNoProxy extends WebDocument { public static int constructor = 0xf9c8bcc6; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); size = stream.readInt32(exception); mime_type = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt32(size); stream.writeString(mime_type); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static class TL_webDocument_layer81 extends TL_webDocument { public static int constructor = 0xc61acbd8; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); access_hash = stream.readInt64(exception); size = stream.readInt32(exception); mime_type = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt64(access_hash); stream.writeInt32(size); stream.writeString(mime_type); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } stream.writeInt32(0); } } public static class TL_webDocument extends WebDocument { public static int constructor = 0x1c570ed1; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); access_hash = stream.readInt64(exception); size = stream.readInt32(exception); mime_type = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt64(access_hash); stream.writeInt32(size); stream.writeString(mime_type); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static abstract class ChannelParticipant extends TLObject { public int user_id; public int kicked_by; public int date; public TL_channelBannedRights_layer92 banned_rights_layer92; public int inviter_id; public int flags; public boolean can_edit; public boolean self; public boolean left; public int promoted_by; public TL_channelAdminRights_layer92 admin_rights_layer92; public TL_chatAdminRights admin_rights; public TL_chatBannedRights banned_rights; public static ChannelParticipant TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChannelParticipant result = null; switch (constructor) { case 0x1c0facaf: result = new TL_channelParticipantBanned(); break; case 0x222c1886: result = new TL_channelParticipantBanned_layer92(); break; case 0xe3e2e1f9: result = new TL_channelParticipantCreator(); break; case 0x15ebac1d: result = new TL_channelParticipant(); break; case 0x8cc5e69a: result = new TL_channelParticipantKicked_layer67(); break; case 0xa3289a6d: result = new TL_channelParticipantSelf(); break; case 0x91057fef: result = new TL_channelParticipantModerator_layer67(); break; case 0x98192d61: result = new TL_channelParticipantEditor_layer67(); break; case 0xa82fa898: result = new TL_channelParticipantAdmin_layer92(); break; case 0x5daa6e23: result = new TL_channelParticipantAdmin(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChannelParticipant", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_channelParticipantBanned extends ChannelParticipant { public static int constructor = 0x1c0facaf; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); left = (flags & 1) != 0; user_id = stream.readInt32(exception); kicked_by = stream.readInt32(exception); date = stream.readInt32(exception); banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = left ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(user_id); stream.writeInt32(kicked_by); stream.writeInt32(date); banned_rights.serializeToStream(stream); } } public static class TL_channelParticipantCreator extends ChannelParticipant { public static int constructor = 0xe3e2e1f9; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_channelParticipant extends ChannelParticipant { public static int constructor = 0x15ebac1d; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(date); } } public static class TL_channelParticipantKicked_layer67 extends ChannelParticipant { public static int constructor = 0x8cc5e69a; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); kicked_by = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(kicked_by); stream.writeInt32(date); } } public static class TL_channelParticipantSelf extends ChannelParticipant { public static int constructor = 0xa3289a6d; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); } } public static class TL_channelParticipantModerator_layer67 extends TL_channelParticipantAdmin { public static int constructor = 0x91057fef; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); } } public static class TL_channelParticipantEditor_layer67 extends TL_channelParticipantAdmin { public static int constructor = 0x98192d61; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); } } public static class TL_channelParticipantAdmin_layer92 extends TL_channelParticipantAdmin { public static int constructor = 0xa82fa898; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_edit = (flags & 1) != 0; user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); promoted_by = stream.readInt32(exception); date = stream.readInt32(exception); admin_rights_layer92 = TL_channelAdminRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); admin_rights = Chat.mergeAdminRights(admin_rights_layer92); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_edit ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(promoted_by); stream.writeInt32(date); admin_rights_layer92.serializeToStream(stream); } } public static class TL_channelParticipantAdmin extends ChannelParticipant { public static int constructor = 0x5daa6e23; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); can_edit = (flags & 1) != 0; self = (flags & 2) != 0; user_id = stream.readInt32(exception); if ((flags & 2) != 0) { inviter_id = stream.readInt32(exception); } promoted_by = stream.readInt32(exception); date = stream.readInt32(exception); admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = can_edit ? (flags | 1) : (flags &~ 1); flags = self ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(user_id); if ((flags & 2) != 0) { stream.writeInt32(inviter_id); } stream.writeInt32(promoted_by); stream.writeInt32(date); admin_rights.serializeToStream(stream); } } public static abstract class InputStickeredMedia extends TLObject { public static InputStickeredMedia TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputStickeredMedia result = null; switch (constructor) { case 0x438865b: result = new TL_inputStickeredMediaDocument(); break; case 0x4a992157: result = new TL_inputStickeredMediaPhoto(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputStickeredMedia", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputStickeredMediaDocument extends InputStickeredMedia { public static int constructor = 0x438865b; public InputDocument id; public void readParams(AbstractSerializedData stream, boolean exception) { id = InputDocument.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_inputStickeredMediaPhoto extends InputStickeredMedia { public static int constructor = 0x4a992157; public InputPhoto id; public void readParams(AbstractSerializedData stream, boolean exception) { id = InputPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static abstract class channels_ChannelParticipants extends TLObject { public int count; public ArrayList participants = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static channels_ChannelParticipants TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { channels_ChannelParticipants result = null; switch (constructor) { case 0xf56ee2a8: result = new TL_channels_channelParticipants(); break; case 0xf0173fe9: result = new TL_channels_channelParticipantsNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in channels_ChannelParticipants", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_channels_channelParticipants extends channels_ChannelParticipants { public static int constructor = 0xf56ee2a8; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { ChannelParticipant object = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } participants.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = participants.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { participants.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_channels_channelParticipantsNotModified extends channels_ChannelParticipants { public static int constructor = 0xf0173fe9; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_wallPaperSettings extends TLObject { public static int constructor = 0xa12f40b8; public int flags; public boolean blur; public boolean motion; public int background_color; public int intensity; public static TL_wallPaperSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_wallPaperSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_wallPaperSettings", constructor)); } else { return null; } } TL_wallPaperSettings result = new TL_wallPaperSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); blur = (flags & 2) != 0; motion = (flags & 4) != 0; if ((flags & 1) != 0) { background_color = stream.readInt32(exception); } if ((flags & 8) != 0) { intensity = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = blur ? (flags | 2) : (flags &~ 2); flags = motion ? (flags | 4) : (flags &~ 4); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(background_color); } if ((flags & 8) != 0) { stream.writeInt32(intensity); } } } public static class TL_contacts_found extends TLObject { public static int constructor = 0xb3134d9d; public ArrayList my_results = new ArrayList<>(); public ArrayList results = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_contacts_found TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contacts_found.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contacts_found", constructor)); } else { return null; } } TL_contacts_found result = new TL_contacts_found(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Peer object = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } my_results.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Peer object = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } results.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = my_results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { my_results.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = results.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { results.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static abstract class ChatParticipants extends TLObject { public int flags; public int chat_id; public ChatParticipant self_participant; public ArrayList participants = new ArrayList<>(); public int version; public int admin_id; public static ChatParticipants TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatParticipants result = null; switch (constructor) { case 0xfc900c2b: result = new TL_chatParticipantsForbidden(); break; case 0x3f460fed: result = new TL_chatParticipants(); break; case 0x7841b415: result = new TL_chatParticipants_old(); break; case 0xfd2bb8a: result = new TL_chatParticipantsForbidden_old(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChatParticipants", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_chatParticipantsForbidden extends ChatParticipants { public static int constructor = 0xfc900c2b; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); chat_id = stream.readInt32(exception); if ((flags & 1) != 0) { self_participant = ChatParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(chat_id); if ((flags & 1) != 0) { self_participant.serializeToStream(stream); } } } public static class TL_chatParticipants extends ChatParticipants { public static int constructor = 0x3f460fed; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { ChatParticipant object = ChatParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } participants.add(object); } version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(0x1cb5c415); int count = participants.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { participants.get(a).serializeToStream(stream); } stream.writeInt32(version); } } public static class TL_chatParticipants_old extends TL_chatParticipants { public static int constructor = 0x7841b415; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); admin_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { ChatParticipant object = ChatParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } participants.add(object); } version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt32(admin_id); stream.writeInt32(0x1cb5c415); int count = participants.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { participants.get(a).serializeToStream(stream); } stream.writeInt32(version); } } public static class TL_chatParticipantsForbidden_old extends TL_chatParticipantsForbidden { public static int constructor = 0xfd2bb8a; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_game extends TLObject { public static int constructor = 0xbdf9653b; public int flags; public long id; public long access_hash; public String short_name; public String title; public String description; public Photo photo; public Document document; public static TL_game TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_game.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_game", constructor)); } else { return null; } } TL_game result = new TL_game(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); id = stream.readInt64(exception); access_hash = stream.readInt64(exception); short_name = stream.readString(exception); title = stream.readString(exception); description = stream.readString(exception); photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeString(short_name); stream.writeString(title); stream.writeString(description); photo.serializeToStream(stream); if ((flags & 1) != 0) { document.serializeToStream(stream); } } } public static abstract class DecryptedMessageMedia extends TLObject { public int duration; public String mime_type; public int size; public byte[] key; public byte[] iv; public double lat; public double _long; public String phone_number; public String first_name; public String last_name; public int user_id; public int thumb_w; public int thumb_h; public ArrayList attributes = new ArrayList<>(); public String caption; public String url; public int w; public int h; public String file_name; public String title; public String address; public String provider; public String venue_id; public long id; public long access_hash; public int date; public int dc_id; public static DecryptedMessageMedia TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { DecryptedMessageMedia result = null; switch (constructor) { case 0x57e0a9cb: result = new TL_decryptedMessageMediaAudio(); break; case 0x35480a59: result = new TL_decryptedMessageMediaGeoPoint(); break; case 0x588a0a97: result = new TL_decryptedMessageMediaContact(); break; case 0x89f5c4a: result = new TL_decryptedMessageMediaEmpty(); break; case 0x7afe8ae2: result = new TL_decryptedMessageMediaDocument(); break; case 0xe50511d8: result = new TL_decryptedMessageMediaWebPage(); break; case 0xf1fa8d78: result = new TL_decryptedMessageMediaPhoto(); break; case 0x970c8c0e: result = new TL_decryptedMessageMediaVideo(); break; case 0xb095434b: result = new TL_decryptedMessageMediaDocument_layer8(); break; case 0x4cee6ef3: result = new TL_decryptedMessageMediaVideo_layer8(); break; case 0x8a0df56f: result = new TL_decryptedMessageMediaVenue(); break; case 0xfa95b0dd: result = new TL_decryptedMessageMediaExternalDocument(); break; case 0x524a415d: result = new TL_decryptedMessageMediaVideo_layer17(); break; case 0x6080758f: result = new TL_decryptedMessageMediaAudio_layer8(); break; case 0x32798a8c: result = new TL_decryptedMessageMediaPhoto_layer8(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in DecryptedMessageMedia", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_decryptedMessageMediaAudio extends DecryptedMessageMedia { public static int constructor = 0x57e0a9cb; public void readParams(AbstractSerializedData stream, boolean exception) { duration = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_decryptedMessageMediaGeoPoint extends DecryptedMessageMedia { public static int constructor = 0x35480a59; public void readParams(AbstractSerializedData stream, boolean exception) { lat = stream.readDouble(exception); _long = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(lat); stream.writeDouble(_long); } } public static class TL_decryptedMessageMediaContact extends DecryptedMessageMedia { public static int constructor = 0x588a0a97; public void readParams(AbstractSerializedData stream, boolean exception) { phone_number = stream.readString(exception); first_name = stream.readString(exception); last_name = stream.readString(exception); user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(first_name); stream.writeString(last_name); stream.writeInt32(user_id); } } public static class TL_decryptedMessageMediaEmpty extends DecryptedMessageMedia { public static int constructor = 0x89f5c4a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_decryptedMessageMediaDocument extends DecryptedMessageMedia { public static int constructor = 0x7afe8ae2; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } caption = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeString(mime_type); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } stream.writeString(caption); } } public static class TL_decryptedMessageMediaWebPage extends DecryptedMessageMedia { public static int constructor = 0xe50511d8; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); } } public static class TL_decryptedMessageMediaPhoto extends DecryptedMessageMedia { public static int constructor = 0xf1fa8d78; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); caption = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); stream.writeString(caption); } } public static class TL_decryptedMessageMediaVideo extends DecryptedMessageMedia { public static int constructor = 0x970c8c0e; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); caption = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); stream.writeString(caption); } } public static class TL_decryptedMessageMediaDocument_layer8 extends TL_decryptedMessageMediaDocument { public static int constructor = 0xb095434b; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); file_name = stream.readString(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeString(file_name); stream.writeString(mime_type); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_decryptedMessageMediaVideo_layer8 extends TL_decryptedMessageMediaVideo { public static int constructor = 0x4cee6ef3; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); duration = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeInt32(duration); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_decryptedMessageMediaVenue extends DecryptedMessageMedia { public static int constructor = 0x8a0df56f; public void readParams(AbstractSerializedData stream, boolean exception) { lat = stream.readDouble(exception); _long = stream.readDouble(exception); title = stream.readString(exception); address = stream.readString(exception); provider = stream.readString(exception); venue_id = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeDouble(lat); stream.writeDouble(_long); stream.writeString(title); stream.writeString(address); stream.writeString(provider); stream.writeString(venue_id); } } public static class TL_decryptedMessageMediaExternalDocument extends DecryptedMessageMedia { public static int constructor = 0xfa95b0dd; public PhotoSize thumb; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); date = stream.readInt32(exception); mime_type = stream.readString(exception); size = stream.readInt32(exception); thumb = PhotoSize.TLdeserialize(stream, stream.readInt32(exception), exception); dc_id = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { DocumentAttribute object = DocumentAttribute.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } attributes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeInt32(date); stream.writeString(mime_type); stream.writeInt32(size); thumb.serializeToStream(stream); stream.writeInt32(dc_id); stream.writeInt32(0x1cb5c415); int count = attributes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { attributes.get(a).serializeToStream(stream); } } } public static class TL_decryptedMessageMediaVideo_layer17 extends TL_decryptedMessageMediaVideo { public static int constructor = 0x524a415d; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); duration = stream.readInt32(exception); mime_type = stream.readString(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeInt32(duration); stream.writeString(mime_type); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_decryptedMessageMediaAudio_layer8 extends TL_decryptedMessageMediaAudio { public static int constructor = 0x6080758f; public void readParams(AbstractSerializedData stream, boolean exception) { duration = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(duration); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_decryptedMessageMediaPhoto_layer8 extends TL_decryptedMessageMediaPhoto { public static int constructor = 0x32798a8c; public byte[] thumb; public void readParams(AbstractSerializedData stream, boolean exception) { thumb = stream.readByteArray(exception); thumb_w = stream.readInt32(exception); thumb_h = stream.readInt32(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(thumb); stream.writeInt32(thumb_w); stream.writeInt32(thumb_h); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static class TL_account_autoDownloadSettings extends TLObject { public static int constructor = 0x63cacf26; public TL_autoDownloadSettings low; public TL_autoDownloadSettings medium; public TL_autoDownloadSettings high; public static TL_account_autoDownloadSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_autoDownloadSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_autoDownloadSettings", constructor)); } else { return null; } } TL_account_autoDownloadSettings result = new TL_account_autoDownloadSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { low = TL_autoDownloadSettings.TLdeserialize(stream, stream.readInt32(exception), exception); medium = TL_autoDownloadSettings.TLdeserialize(stream, stream.readInt32(exception), exception); high = TL_autoDownloadSettings.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); low.serializeToStream(stream); medium.serializeToStream(stream); high.serializeToStream(stream); } } public static abstract class ChatParticipant extends TLObject { public int user_id; public int inviter_id; public int date; public static ChatParticipant TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChatParticipant result = null; switch (constructor) { case 0xc8d7493e: result = new TL_chatParticipant(); break; case 0xda13538a: result = new TL_chatParticipantCreator(); break; case 0xe2d6e436: result = new TL_chatParticipantAdmin(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChatParticipant", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_chatParticipant extends ChatParticipant { public static int constructor = 0xc8d7493e; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); } } public static class TL_chatParticipantCreator extends ChatParticipant { public static int constructor = 0xda13538a; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_chatParticipantAdmin extends ChatParticipant { public static int constructor = 0xe2d6e436; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); } } public static class TL_webAuthorization extends TLObject { public static int constructor = 0xcac943f2; public long hash; public int bot_id; public String domain; public String browser; public String platform; public int date_created; public int date_active; public String ip; public String region; public static TL_webAuthorization TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_webAuthorization.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_webAuthorization", constructor)); } else { return null; } } TL_webAuthorization result = new TL_webAuthorization(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt64(exception); bot_id = stream.readInt32(exception); domain = stream.readString(exception); browser = stream.readString(exception); platform = stream.readString(exception); date_created = stream.readInt32(exception); date_active = stream.readInt32(exception); ip = stream.readString(exception); region = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(hash); stream.writeInt32(bot_id); stream.writeString(domain); stream.writeString(browser); stream.writeString(platform); stream.writeInt32(date_created); stream.writeInt32(date_active); stream.writeString(ip); stream.writeString(region); } } public static abstract class InputSecureFile extends TLObject { public static InputSecureFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputSecureFile result = null; switch (constructor) { case 0x3334b0f0: result = new TL_inputSecureFileUploaded(); break; case 0x5367e5be: result = new TL_inputSecureFile(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputSecureFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputSecureFileUploaded extends InputSecureFile { public static int constructor = 0x3334b0f0; public long id; public int parts; public String md5_checksum; public byte[] file_hash; public byte[] secret; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); parts = stream.readInt32(exception); md5_checksum = stream.readString(exception); file_hash = stream.readByteArray(exception); secret = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(parts); stream.writeString(md5_checksum); stream.writeByteArray(file_hash); stream.writeByteArray(secret); } } public static class TL_inputSecureFile extends InputSecureFile { public static int constructor = 0x5367e5be; public long id; public long access_hash; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); } } public static class TL_postAddress extends TLObject { public static int constructor = 0x1e8caaeb; public String street_line1; public String street_line2; public String city; public String state; public String country_iso2; public String post_code; public static TL_postAddress TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_postAddress.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_postAddress", constructor)); } else { return null; } } TL_postAddress result = new TL_postAddress(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { street_line1 = stream.readString(exception); street_line2 = stream.readString(exception); city = stream.readString(exception); state = stream.readString(exception); country_iso2 = stream.readString(exception); post_code = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(street_line1); stream.writeString(street_line2); stream.writeString(city); stream.writeString(state); stream.writeString(country_iso2); stream.writeString(post_code); } } public static abstract class ChannelAdminLogEventAction extends TLObject { public Message message; public String prev_value; public Message prev_message; public Message new_message; public ChannelParticipant prev_participant; public ChannelParticipant new_participant; public InputStickerSet prev_stickerset; public InputStickerSet new_stickerset; public ChannelParticipant participant; public ChatPhoto prev_photo; public ChatPhoto new_photo; public static ChannelAdminLogEventAction TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ChannelAdminLogEventAction result = null; switch (constructor) { case 0x1b7907ae: result = new TL_channelAdminLogEventActionToggleInvites(); break; case 0xe9e82c18: result = new TL_channelAdminLogEventActionUpdatePinned(); break; case 0x26ae0971: result = new TL_channelAdminLogEventActionToggleSignatures(); break; case 0x55188a2e: result = new TL_channelAdminLogEventActionChangeAbout(); break; case 0x709b2405: result = new TL_channelAdminLogEventActionEditMessage(); break; case 0xd5676710: result = new TL_channelAdminLogEventActionParticipantToggleAdmin(); break; case 0xb1c3caa7: result = new TL_channelAdminLogEventActionChangeStickerSet(); break; case 0xe6dfb825: result = new TL_channelAdminLogEventActionChangeTitle(); break; case 0x2df5fc0a: result = new TL_channelAdminLogEventActionDefaultBannedRights(); break; case 0x5f5c95f1: result = new TL_channelAdminLogEventActionTogglePreHistoryHidden(); break; case 0x8f079643: result = new TL_channelAdminLogEventActionStopPoll(); break; case 0x42e047bb: result = new TL_channelAdminLogEventActionDeleteMessage(); break; case 0xe31c34d8: result = new TL_channelAdminLogEventActionParticipantInvite(); break; case 0xf89777f2: result = new TL_channelAdminLogEventActionParticipantLeave(); break; case 0x6a4afc38: result = new TL_channelAdminLogEventActionChangeUsername(); break; case 0xb82f55c3: result = new TL_channelAdminLogEventActionChangePhoto(); break; case 0xe6d83d7e: result = new TL_channelAdminLogEventActionParticipantToggleBan(); break; case 0x183040d3: result = new TL_channelAdminLogEventActionParticipantJoin(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ChannelAdminLogEventAction", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_channelAdminLogEventActionToggleInvites extends ChannelAdminLogEventAction { public static int constructor = 0x1b7907ae; public boolean new_value; public void readParams(AbstractSerializedData stream, boolean exception) { new_value = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(new_value); } } public static class TL_channelAdminLogEventActionUpdatePinned extends ChannelAdminLogEventAction { public static int constructor = 0xe9e82c18; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionToggleSignatures extends ChannelAdminLogEventAction { public static int constructor = 0x26ae0971; public boolean new_value; public void readParams(AbstractSerializedData stream, boolean exception) { new_value = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(new_value); } } public static class TL_channelAdminLogEventActionChangeAbout extends ChannelAdminLogEventAction { public static int constructor = 0x55188a2e; public String new_value; public void readParams(AbstractSerializedData stream, boolean exception) { prev_value = stream.readString(exception); new_value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(prev_value); stream.writeString(new_value); } } public static class TL_channelAdminLogEventActionEditMessage extends ChannelAdminLogEventAction { public static int constructor = 0x709b2405; public void readParams(AbstractSerializedData stream, boolean exception) { prev_message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); new_message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_message.serializeToStream(stream); new_message.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionParticipantToggleAdmin extends ChannelAdminLogEventAction { public static int constructor = 0xd5676710; public void readParams(AbstractSerializedData stream, boolean exception) { prev_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); new_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_participant.serializeToStream(stream); new_participant.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionChangeStickerSet extends ChannelAdminLogEventAction { public static int constructor = 0xb1c3caa7; public void readParams(AbstractSerializedData stream, boolean exception) { prev_stickerset = InputStickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); new_stickerset = InputStickerSet.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_stickerset.serializeToStream(stream); new_stickerset.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionChangeTitle extends ChannelAdminLogEventAction { public static int constructor = 0xe6dfb825; public String new_value; public void readParams(AbstractSerializedData stream, boolean exception) { prev_value = stream.readString(exception); new_value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(prev_value); stream.writeString(new_value); } } public static class TL_channelAdminLogEventActionDefaultBannedRights extends ChannelAdminLogEventAction { public static int constructor = 0x2df5fc0a; public TL_chatBannedRights prev_banned_rights; public TL_chatBannedRights new_banned_rights; public void readParams(AbstractSerializedData stream, boolean exception) { prev_banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); new_banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_banned_rights.serializeToStream(stream); new_banned_rights.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionTogglePreHistoryHidden extends ChannelAdminLogEventAction { public static int constructor = 0x5f5c95f1; public boolean new_value; public void readParams(AbstractSerializedData stream, boolean exception) { new_value = stream.readBool(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(new_value); } } public static class TL_channelAdminLogEventActionStopPoll extends ChannelAdminLogEventAction { public static int constructor = 0x8f079643; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionDeleteMessage extends ChannelAdminLogEventAction { public static int constructor = 0x42e047bb; public void readParams(AbstractSerializedData stream, boolean exception) { message = Message.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); message.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionParticipantInvite extends ChannelAdminLogEventAction { public static int constructor = 0xe31c34d8; public void readParams(AbstractSerializedData stream, boolean exception) { participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); participant.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionParticipantLeave extends ChannelAdminLogEventAction { public static int constructor = 0xf89777f2; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channelAdminLogEventActionChangeUsername extends ChannelAdminLogEventAction { public static int constructor = 0x6a4afc38; public String new_value; public void readParams(AbstractSerializedData stream, boolean exception) { prev_value = stream.readString(exception); new_value = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(prev_value); stream.writeString(new_value); } } public static class TL_channelAdminLogEventActionChangePhoto extends ChannelAdminLogEventAction { public static int constructor = 0xb82f55c3; public void readParams(AbstractSerializedData stream, boolean exception) { prev_photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); new_photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_photo.serializeToStream(stream); new_photo.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionParticipantToggleBan extends ChannelAdminLogEventAction { public static int constructor = 0xe6d83d7e; public void readParams(AbstractSerializedData stream, boolean exception) { prev_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); new_participant = ChannelParticipant.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); prev_participant.serializeToStream(stream); new_participant.serializeToStream(stream); } } public static class TL_channelAdminLogEventActionParticipantJoin extends ChannelAdminLogEventAction { public static int constructor = 0x183040d3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class InputWebFileLocation extends TLObject { public static InputWebFileLocation TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputWebFileLocation result = null; switch (constructor) { case 0x9f2221c9: result = new TL_inputWebFileGeoPointLocation(); break; case 0xc239d686: result = new TL_inputWebFileLocation(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputWebFileLocation", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputWebFileGeoPointLocation extends InputWebFileLocation { public static int constructor = 0x9f2221c9; public InputGeoPoint geo_point; public long access_hash; public int w; public int h; public int zoom; public int scale; public void readParams(AbstractSerializedData stream, boolean exception) { geo_point = InputGeoPoint.TLdeserialize(stream, stream.readInt32(exception), exception); access_hash = stream.readInt64(exception); w = stream.readInt32(exception); h = stream.readInt32(exception); zoom = stream.readInt32(exception); scale = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); geo_point.serializeToStream(stream); stream.writeInt64(access_hash); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(zoom); stream.writeInt32(scale); } } public static class TL_inputWebFileLocation extends InputWebFileLocation { public static int constructor = 0xc239d686; public String url; public long access_hash; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt64(access_hash); } } public static class TL_autoDownloadSettings extends TLObject { public static int constructor = 0xd246fd47; public int flags; public boolean disabled; public boolean video_preload_large; public boolean audio_preload_next; public boolean phonecalls_less_data; public int photo_size_max; public int video_size_max; public int file_size_max; public static TL_autoDownloadSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_autoDownloadSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_autoDownloadSettings", constructor)); } else { return null; } } TL_autoDownloadSettings result = new TL_autoDownloadSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); disabled = (flags & 1) != 0; video_preload_large = (flags & 2) != 0; audio_preload_next = (flags & 4) != 0; phonecalls_less_data = (flags & 8) != 0; photo_size_max = stream.readInt32(exception); video_size_max = stream.readInt32(exception); file_size_max = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = disabled ? (flags | 1) : (flags &~ 1); flags = video_preload_large ? (flags | 2) : (flags &~ 2); flags = audio_preload_next ? (flags | 4) : (flags &~ 4); flags = phonecalls_less_data ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt32(photo_size_max); stream.writeInt32(video_size_max); stream.writeInt32(file_size_max); } } public static class TL_account_sentEmailCode extends TLObject { public static int constructor = 0x811f854f; public String email_pattern; public int length; public static TL_account_sentEmailCode TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_sentEmailCode.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_sentEmailCode", constructor)); } else { return null; } } TL_account_sentEmailCode result = new TL_account_sentEmailCode(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { email_pattern = stream.readString(exception); length = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(email_pattern); stream.writeInt32(length); } } public static class TL_channelAdminRights_layer92 extends TLObject { public static int constructor = 0x5d7ceba5; public int flags; public boolean change_info; public boolean post_messages; public boolean edit_messages; public boolean delete_messages; public boolean ban_users; public boolean invite_users; public boolean pin_messages; public boolean add_admins; public boolean manage_call; public static TL_channelAdminRights_layer92 TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channelAdminRights_layer92.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channelAdminRights_layer92", constructor)); } else { return null; } } TL_channelAdminRights_layer92 result = new TL_channelAdminRights_layer92(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); change_info = (flags & 1) != 0; post_messages = (flags & 2) != 0; edit_messages = (flags & 4) != 0; delete_messages = (flags & 8) != 0; ban_users = (flags & 16) != 0; invite_users = (flags & 32) != 0; pin_messages = (flags & 128) != 0; add_admins = (flags & 512) != 0; manage_call = (flags & 1024) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = change_info ? (flags | 1) : (flags &~ 1); flags = post_messages ? (flags | 2) : (flags &~ 2); flags = edit_messages ? (flags | 4) : (flags &~ 4); flags = delete_messages ? (flags | 8) : (flags &~ 8); flags = ban_users ? (flags | 16) : (flags &~ 16); flags = invite_users ? (flags | 32) : (flags &~ 32); flags = pin_messages ? (flags | 128) : (flags &~ 128); flags = add_admins ? (flags | 512) : (flags &~ 512); flags = manage_call ? (flags | 1024) : (flags &~ 1024); stream.writeInt32(flags); } } public static abstract class Chat extends TLObject { public int id; public String title; public int date; public int flags; public boolean creator; public boolean kicked; public boolean deactivated; public boolean left; public ChatPhoto photo; public int participants_count; public int version; public boolean broadcast; public boolean megagroup; public long access_hash; public int until_date; public boolean moderator; public boolean verified; public boolean restricted; public boolean signatures; public String username; public String restriction_reason; public boolean min; public boolean explicit_content; public TL_channelAdminRights_layer92 admin_rights_layer92; public TL_channelBannedRights_layer92 banned_rights_layer92; public TL_chatAdminRights admin_rights; public TL_chatBannedRights banned_rights; public TL_chatBannedRights default_banned_rights; public InputChannel migrated_to; public static Chat TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Chat result = null; switch (constructor) { case 0xfb0ccc41: result = new TL_chatForbidden_old(); break; case 0x7312bc48: result = new TL_chat_old2(); break; case 0x3bda1bde: result = new TL_chat(); break; case 0x289da732: result = new TL_channelForbidden(); break; case 0x8537784f: result = new TL_channelForbidden_layer67(); break; case 0x4b1b7506: result = new TL_channel_layer48(); break; case 0x2d85832c: result = new TL_channelForbidden_layer52(); break; case 0x7328bdb: result = new TL_chatForbidden(); break; case 0xa14dca52: result = new TL_channel_layer67(); break; case 0x678e9587: result = new TL_channel_old(); break; case 0x6e9c9bc7: result = new TL_chat_old(); break; case 0x9ba2d800: result = new TL_chatEmpty(); break; case 0xcb44b1c: result = new TL_channel_layer72(); break; case 0x450b7115: result = new TL_channel_layer77(); break; case 0x4df30834: result = new TL_channel(); break; case 0xc88974ac: result = new TL_channel_layer92(); break; case 0xd91cdd54: result = new TL_chat_layer92(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Chat", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } protected static TL_chatBannedRights mergeBannedRights(TL_channelBannedRights_layer92 rights) { if (rights == null) { return null; } TL_chatBannedRights newRights = new TL_chatBannedRights(); newRights.view_messages = rights.view_messages; newRights.send_messages = rights.send_messages; newRights.send_media = rights.send_media; newRights.send_stickers = rights.send_stickers; newRights.send_gifs = rights.send_gifs; newRights.send_games = rights.send_games; newRights.send_inline = rights.send_inline; newRights.embed_links = rights.embed_links; newRights.send_polls = rights.send_media; newRights.change_info = true; newRights.invite_users = true; newRights.pin_messages = true; newRights.until_date = rights.until_date; return newRights; } protected static TL_chatAdminRights mergeAdminRights(TL_channelAdminRights_layer92 rights) { if (rights == null) { return null; } TL_chatAdminRights newRights = new TL_chatAdminRights(); newRights.change_info = rights.change_info; newRights.post_messages = rights.post_messages; newRights.edit_messages = rights.edit_messages; newRights.delete_messages = rights.delete_messages; newRights.ban_users = rights.ban_users; newRights.invite_users = rights.invite_users; newRights.pin_messages = rights.pin_messages; newRights.add_admins = rights.add_admins; return newRights; } } public static class TL_chatForbidden_old extends TL_chatForbidden { public static int constructor = 0xfb0ccc41; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); title = stream.readString(exception); date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(title); stream.writeInt32(date); } } public static class TL_chat_old2 extends TL_chat { public static int constructor = 0x7312bc48; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; deactivated = (flags & 32) != 0; id = stream.readInt32(exception); title = stream.readString(exception); photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); participants_count = stream.readInt32(exception); date = stream.readInt32(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = deactivated ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(title); photo.serializeToStream(stream); stream.writeInt32(participants_count); stream.writeInt32(date); stream.writeInt32(version); } } public static class TL_chat extends Chat { public static int constructor = 0x3bda1bde; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; deactivated = (flags & 32) != 0; id = stream.readInt32(exception); title = stream.readString(exception); photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); participants_count = stream.readInt32(exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 64) != 0) { migrated_to = InputChannel.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 16384) != 0) { admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 262144) != 0) { default_banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = deactivated ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(title); photo.serializeToStream(stream); stream.writeInt32(participants_count); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 64) != 0) { migrated_to.serializeToStream(stream); } if ((flags & 16384) != 0) { admin_rights.serializeToStream(stream); } if ((flags & 262144) != 0) { default_banned_rights.serializeToStream(stream); } } } public static class TL_channelForbidden extends Chat { public static int constructor = 0x289da732; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); broadcast = (flags & 32) != 0; megagroup = (flags & 256) != 0; id = stream.readInt32(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); if ((flags & 65536) != 0) { until_date = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = megagroup ? (flags | 256) : (flags &~ 256); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeString(title); if ((flags & 65536) != 0) { stream.writeInt32(until_date); } } } public static class TL_channelForbidden_layer67 extends TL_channelForbidden { public static int constructor = 0x8537784f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); broadcast = (flags & 32) != 0; megagroup = (flags & 256) != 0; id = stream.readInt32(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = megagroup ? (flags | 256) : (flags &~ 256); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeString(title); } } public static class TL_channel_layer48 extends TL_channel { public static int constructor = 0x4b1b7506; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; moderator = (flags & 16) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; id = stream.readInt32(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = moderator ? (flags | 16) : (flags &~ 16); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } } } public static class TL_channelForbidden_layer52 extends TL_channelForbidden { public static int constructor = 0x2d85832c; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeString(title); } } public static class TL_chatForbidden extends Chat { public static int constructor = 0x7328bdb; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(title); } } public static class TL_channel_layer67 extends TL_channel { public static int constructor = 0xa14dca52; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; moderator = (flags & 16) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; min = (flags & 4096) != 0; id = stream.readInt32(exception); if ((flags & 8192) != 0) { access_hash = stream.readInt64(exception); } title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = moderator ? (flags | 16) : (flags &~ 16); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); flags = min ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 8192) != 0) { stream.writeInt64(access_hash); } stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } } } public static class TL_channel_old extends TL_channel { public static int constructor = 0x678e9587; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; moderator = (flags & 16) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; explicit_content = (flags & 512) != 0; id = stream.readInt32(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = moderator ? (flags | 16) : (flags &~ 16); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = explicit_content ? (flags | 512) : (flags &~ 512); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt64(access_hash); stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); } } public static class TL_chat_old extends TL_chat { public static int constructor = 0x6e9c9bc7; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); title = stream.readString(exception); photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); participants_count = stream.readInt32(exception); date = stream.readInt32(exception); left = stream.readBool(exception); version = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeString(title); photo.serializeToStream(stream); stream.writeInt32(participants_count); stream.writeInt32(date); stream.writeBool(left); stream.writeInt32(version); } } public static class TL_channel extends Chat { public static int constructor = 0x4df30834; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; left = (flags & 4) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; min = (flags & 4096) != 0; id = stream.readInt32(exception); if ((flags & 8192) != 0) { access_hash = stream.readInt64(exception); } title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 16384) != 0) { admin_rights = TL_chatAdminRights.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 32768) != 0) { banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 262144) != 0) { default_banned_rights = TL_chatBannedRights.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 131072) != 0) { participants_count = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = left ? (flags | 4) : (flags &~ 4); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); flags = min ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 8192) != 0) { stream.writeInt64(access_hash); } stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } if ((flags & 16384) != 0) { admin_rights.serializeToStream(stream); } if ((flags & 32768) != 0) { banned_rights.serializeToStream(stream); } if ((flags & 262144) != 0) { default_banned_rights.serializeToStream(stream); } if ((flags & 131072) != 0) { stream.writeInt32(participants_count); } } } public static class TL_channelParticipantBanned_layer92 extends TL_channelParticipantBanned { public static int constructor = 0x222c1886; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); left = (flags & 1) != 0; user_id = stream.readInt32(exception); kicked_by = stream.readInt32(exception); date = stream.readInt32(exception); banned_rights_layer92 = TL_channelBannedRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); banned_rights = Chat.mergeBannedRights(banned_rights_layer92); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = left ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(user_id); stream.writeInt32(kicked_by); stream.writeInt32(date); banned_rights_layer92.serializeToStream(stream); } } public static class TL_channel_layer77 extends TL_channel { public static int constructor = 0x450b7115; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; left = (flags & 4) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; min = (flags & 4096) != 0; id = stream.readInt32(exception); if ((flags & 8192) != 0) { access_hash = stream.readInt64(exception); } title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 16384) != 0) { admin_rights_layer92 = TL_channelAdminRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); admin_rights = mergeAdminRights(admin_rights_layer92); } if ((flags & 32768) != 0) { banned_rights_layer92 = TL_channelBannedRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); banned_rights = mergeBannedRights(banned_rights_layer92); } if ((flags & 131072) != 0) { participants_count = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = left ? (flags | 4) : (flags &~ 4); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); flags = min ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 8192) != 0) { stream.writeInt64(access_hash); } stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } if ((flags & 16384) != 0) { admin_rights_layer92.serializeToStream(stream); } if ((flags & 32768) != 0) { banned_rights_layer92.serializeToStream(stream); } if ((flags & 131072) != 0) { stream.writeInt32(participants_count); } } } public static class TL_channel_layer72 extends TL_channel { public static int constructor = 0xcb44b1c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; left = (flags & 4) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; min = (flags & 4096) != 0; id = stream.readInt32(exception); if ((flags & 8192) != 0) { access_hash = stream.readInt64(exception); } title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 16384) != 0) { admin_rights_layer92 = TL_channelAdminRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); admin_rights = mergeAdminRights(admin_rights_layer92); } if ((flags & 32768) != 0) { banned_rights_layer92 = TL_channelBannedRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); banned_rights = mergeBannedRights(banned_rights_layer92); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); flags = min ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 8192) != 0) { stream.writeInt64(access_hash); } stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } if ((flags & 16384) != 0) { admin_rights_layer92.serializeToStream(stream); } if ((flags & 32768) != 0) { banned_rights_layer92.serializeToStream(stream); } } } public static class TL_channel_layer92 extends TL_channel { public static int constructor = 0xc88974ac; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; left = (flags & 4) != 0; broadcast = (flags & 32) != 0; verified = (flags & 128) != 0; megagroup = (flags & 256) != 0; restricted = (flags & 512) != 0; signatures = (flags & 2048) != 0; min = (flags & 4096) != 0; id = stream.readInt32(exception); if ((flags & 8192) != 0) { access_hash = stream.readInt64(exception); } title = stream.readString(exception); if ((flags & 64) != 0) { username = stream.readString(exception); } photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 512) != 0) { restriction_reason = stream.readString(exception); } if ((flags & 16384) != 0) { admin_rights_layer92 = TL_channelAdminRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); admin_rights = mergeAdminRights(admin_rights_layer92); } if ((flags & 32768) != 0) { banned_rights_layer92 = TL_channelBannedRights_layer92.TLdeserialize(stream, stream.readInt32(exception), exception); banned_rights = mergeBannedRights(banned_rights_layer92); } if ((flags & 131072) != 0) { participants_count = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = left ? (flags | 4) : (flags &~ 4); flags = broadcast ? (flags | 32) : (flags &~ 32); flags = verified ? (flags | 128) : (flags &~ 128); flags = megagroup ? (flags | 256) : (flags &~ 256); flags = restricted ? (flags | 512) : (flags &~ 512); flags = signatures ? (flags | 2048) : (flags &~ 2048); flags = min ? (flags | 4096) : (flags &~ 4096); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 8192) != 0) { stream.writeInt64(access_hash); } stream.writeString(title); if ((flags & 64) != 0) { stream.writeString(username); } photo.serializeToStream(stream); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 512) != 0) { stream.writeString(restriction_reason); } if ((flags & 16384) != 0) { admin_rights_layer92.serializeToStream(stream); } if ((flags & 32768) != 0) { banned_rights_layer92.serializeToStream(stream); } if ((flags & 131072) != 0) { stream.writeInt32(participants_count); } } } public static class TL_chat_layer92 extends TL_chat { public static int constructor = 0xd91cdd54; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); creator = (flags & 1) != 0; kicked = (flags & 2) != 0; left = (flags & 4) != 0; deactivated = (flags & 32) != 0; id = stream.readInt32(exception); title = stream.readString(exception); photo = ChatPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); participants_count = stream.readInt32(exception); date = stream.readInt32(exception); version = stream.readInt32(exception); if ((flags & 64) != 0) { migrated_to = InputChannel.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = creator ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); flags = left ? (flags | 4) : (flags &~ 4); flags = deactivated ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(title); photo.serializeToStream(stream); stream.writeInt32(participants_count); stream.writeInt32(date); stream.writeInt32(version); if ((flags & 64) != 0) { migrated_to.serializeToStream(stream); } } } public static abstract class StickerSet extends TLObject { public int flags; public boolean installed; public boolean archived; public boolean official; public boolean masks; public int installed_date; public long id; public long access_hash; public String title; public String short_name; public int count; public int hash; public static StickerSet TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { StickerSet result = null; switch (constructor) { case 0xa7a43b17: result = new TL_stickerSet_old(); break; case 0x5585a139: result = new TL_stickerSet(); break; case 0xcd303b41: result = new TL_stickerSet_layer75(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in StickerSet", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_stickerSet_old extends TL_stickerSet { public static int constructor = 0xa7a43b17; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); short_name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeString(title); stream.writeString(short_name); } } public static class TL_stickerSet extends StickerSet { public static int constructor = 0x5585a139; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; if ((flags & 1) != 0) { installed_date = stream.readInt32(exception); } id = stream.readInt64(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); short_name = stream.readString(exception); count = stream.readInt32(exception); hash = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(installed_date); } stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeString(title); stream.writeString(short_name); stream.writeInt32(count); stream.writeInt32(hash); } } public static class TL_stickerSet_layer75 extends TL_stickerSet { public static int constructor = 0xcd303b41; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); installed = (flags & 1) != 0; archived = (flags & 2) != 0; official = (flags & 4) != 0; masks = (flags & 8) != 0; id = stream.readInt64(exception); access_hash = stream.readInt64(exception); title = stream.readString(exception); short_name = stream.readString(exception); count = stream.readInt32(exception); hash = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = installed ? (flags | 1) : (flags &~ 1); flags = archived ? (flags | 2) : (flags &~ 2); flags = official ? (flags | 4) : (flags &~ 4); flags = masks ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeString(title); stream.writeString(short_name); stream.writeInt32(count); stream.writeInt32(hash); } } public static abstract class storage_FileType extends TLObject { public static storage_FileType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { storage_FileType result = null; switch (constructor) { case 0xaa963b05: result = new TL_storage_fileUnknown(); break; case 0xb3cea0e4: result = new TL_storage_fileMp4(); break; case 0x1081464c: result = new TL_storage_fileWebp(); break; case 0xa4f63c0: result = new TL_storage_filePng(); break; case 0xcae1aadf: result = new TL_storage_fileGif(); break; case 0xae1e508d: result = new TL_storage_filePdf(); break; case 0x528a0677: result = new TL_storage_fileMp3(); break; case 0x7efe0e: result = new TL_storage_fileJpeg(); break; case 0x4b09ebbc: result = new TL_storage_fileMov(); break; case 0x40bc6f52: result = new TL_storage_filePartial(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in storage_FileType", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_storage_fileUnknown extends storage_FileType { public static int constructor = 0xaa963b05; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileMp4 extends storage_FileType { public static int constructor = 0xb3cea0e4; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileWebp extends storage_FileType { public static int constructor = 0x1081464c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_filePng extends storage_FileType { public static int constructor = 0xa4f63c0; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileGif extends storage_FileType { public static int constructor = 0xcae1aadf; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_filePdf extends storage_FileType { public static int constructor = 0xae1e508d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileMp3 extends storage_FileType { public static int constructor = 0x528a0677; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileJpeg extends storage_FileType { public static int constructor = 0x7efe0e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_fileMov extends storage_FileType { public static int constructor = 0x4b09ebbc; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_storage_filePartial extends storage_FileType { public static int constructor = 0x40bc6f52; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class auth_CodeType extends TLObject { public static auth_CodeType TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { auth_CodeType result = null; switch (constructor) { case 0x72a3158c: result = new TL_auth_codeTypeSms(); break; case 0x741cd3e3: result = new TL_auth_codeTypeCall(); break; case 0x226ccefb: result = new TL_auth_codeTypeFlashCall(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in auth_CodeType", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_auth_codeTypeSms extends auth_CodeType { public static int constructor = 0x72a3158c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_codeTypeCall extends auth_CodeType { public static int constructor = 0x741cd3e3; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_codeTypeFlashCall extends auth_CodeType { public static int constructor = 0x226ccefb; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class MessagesFilter extends TLObject { public int flags; public boolean missed; public static MessagesFilter TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { MessagesFilter result = null; switch (constructor) { case 0xffc86587: result = new TL_inputMessagesFilterGif(); break; case 0x3751b49e: result = new TL_inputMessagesFilterMusic(); break; case 0x3a20ecb8: result = new TL_inputMessagesFilterChatPhotos(); break; case 0x9609a51c: result = new TL_inputMessagesFilterPhotos(); break; case 0x7ef0dd87: result = new TL_inputMessagesFilterUrl(); break; case 0x9eddf188: result = new TL_inputMessagesFilterDocument(); break; case 0x56e9f0e4: result = new TL_inputMessagesFilterPhotoVideo(); break; case 0xd95e73bb: result = new TL_inputMessagesFilterPhotoVideoDocuments(); break; case 0xe7026d0d: result = new TL_inputMessagesFilterGeo(); break; case 0xc1f8e69a: result = new TL_inputMessagesFilterMyMentions(); break; case 0x7a7c17a4: result = new TL_inputMessagesFilterRoundVoice(); break; case 0xe062db83: result = new TL_inputMessagesFilterContacts(); break; case 0x50f5c392: result = new TL_inputMessagesFilterVoice(); break; case 0x9fc00e65: result = new TL_inputMessagesFilterVideo(); break; case 0x80c99768: result = new TL_inputMessagesFilterPhoneCalls(); break; case 0x57e2f66c: result = new TL_inputMessagesFilterEmpty(); break; case 0xb549da53: result = new TL_inputMessagesFilterRoundVideo(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessagesFilter", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputMessagesFilterGif extends MessagesFilter { public static int constructor = 0xffc86587; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterMusic extends MessagesFilter { public static int constructor = 0x3751b49e; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterChatPhotos extends MessagesFilter { public static int constructor = 0x3a20ecb8; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterPhotos extends MessagesFilter { public static int constructor = 0x9609a51c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterUrl extends MessagesFilter { public static int constructor = 0x7ef0dd87; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterDocument extends MessagesFilter { public static int constructor = 0x9eddf188; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterPhotoVideo extends MessagesFilter { public static int constructor = 0x56e9f0e4; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterPhotoVideoDocuments extends MessagesFilter { public static int constructor = 0xd95e73bb; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterGeo extends MessagesFilter { public static int constructor = 0xe7026d0d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterMyMentions extends MessagesFilter { public static int constructor = 0xc1f8e69a; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterRoundVoice extends MessagesFilter { public static int constructor = 0x7a7c17a4; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterVoice extends MessagesFilter { public static int constructor = 0x50f5c392; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterContacts extends MessagesFilter { public static int constructor = 0xe062db83; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterVideo extends MessagesFilter { public static int constructor = 0x9fc00e65; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterPhoneCalls extends MessagesFilter { public static int constructor = 0x80c99768; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); missed = (flags & 1) != 0; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = missed ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); } } public static class TL_inputMessagesFilterEmpty extends MessagesFilter { public static int constructor = 0x57e2f66c; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputMessagesFilterRoundVideo extends MessagesFilter { public static int constructor = 0xb549da53; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class PageListOrderedItem extends TLObject { public static PageListOrderedItem TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PageListOrderedItem result = null; switch (constructor) { case 0x5e068047: result = new TL_pageListOrderedItemText(); break; case 0x98dd8936: result = new TL_pageListOrderedItemBlocks(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PageListOrderedItem", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_pageListOrderedItemText extends PageListOrderedItem { public static int constructor = 0x5e068047; public String num; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { num = stream.readString(exception); text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(num); text.serializeToStream(stream); } } public static class TL_pageListOrderedItemBlocks extends PageListOrderedItem { public static int constructor = 0x98dd8936; public String num; public ArrayList blocks = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { num = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(num); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } } } public static class TL_messages_messageEmpty extends TLObject { public static int constructor = 0x3f4e0648; public static TL_messages_messageEmpty TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_messageEmpty.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_messageEmpty", constructor)); } else { return null; } } TL_messages_messageEmpty result = new TL_messages_messageEmpty(); result.readParams(stream, exception); return result; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_secureCredentialsEncrypted extends TLObject { public static int constructor = 0x33f0ea47; public byte[] data; public byte[] hash; public byte[] secret; public static TL_secureCredentialsEncrypted TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_secureCredentialsEncrypted.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_secureCredentialsEncrypted", constructor)); } else { return null; } } TL_secureCredentialsEncrypted result = new TL_secureCredentialsEncrypted(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { data = stream.readByteArray(exception); hash = stream.readByteArray(exception); secret = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(data); stream.writeByteArray(hash); stream.writeByteArray(secret); } } public static abstract class MessageFwdHeader extends TLObject { public int flags; public int from_id; public int date; public int channel_id; public int channel_post; public String post_author; public Peer saved_from_peer; public int saved_from_msg_id; public static MessageFwdHeader TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { MessageFwdHeader result = null; switch (constructor) { case 0xfadff4ac: result = new TL_messageFwdHeader_layer72(); break; case 0x559ebe6d: result = new TL_messageFwdHeader(); break; case 0xc786ddcb: result = new TL_messageFwdHeader_layer68(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessageFwdHeader", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messageFwdHeader_layer72 extends TL_messageFwdHeader { public static int constructor = 0xfadff4ac; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { from_id = stream.readInt32(exception); } date = stream.readInt32(exception); if ((flags & 2) != 0) { channel_id = stream.readInt32(exception); } if ((flags & 4) != 0) { channel_post = stream.readInt32(exception); } if ((flags & 8) != 0) { post_author = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(from_id); } stream.writeInt32(date); if ((flags & 2) != 0) { stream.writeInt32(channel_id); } if ((flags & 4) != 0) { stream.writeInt32(channel_post); } if ((flags & 8) != 0) { stream.writeString(post_author); } } } public static class TL_messageFwdHeader extends MessageFwdHeader { public static int constructor = 0x559ebe6d; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { from_id = stream.readInt32(exception); } date = stream.readInt32(exception); if ((flags & 2) != 0) { channel_id = stream.readInt32(exception); } if ((flags & 4) != 0) { channel_post = stream.readInt32(exception); } if ((flags & 8) != 0) { post_author = stream.readString(exception); } if ((flags & 16) != 0) { saved_from_peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 16) != 0) { saved_from_msg_id = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(from_id); } stream.writeInt32(date); if ((flags & 2) != 0) { stream.writeInt32(channel_id); } if ((flags & 4) != 0) { stream.writeInt32(channel_post); } if ((flags & 8) != 0) { stream.writeString(post_author); } if ((flags & 16) != 0) { saved_from_peer.serializeToStream(stream); } if ((flags & 16) != 0) { stream.writeInt32(saved_from_msg_id); } } } public static class TL_messageFwdHeader_layer68 extends TL_messageFwdHeader { public static int constructor = 0xc786ddcb; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { from_id = stream.readInt32(exception); } date = stream.readInt32(exception); if ((flags & 2) != 0) { channel_id = stream.readInt32(exception); } if ((flags & 4) != 0) { channel_post = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(from_id); } stream.writeInt32(date); if ((flags & 2) != 0) { stream.writeInt32(channel_id); } if ((flags & 4) != 0) { stream.writeInt32(channel_post); } } } public static abstract class FileLocation extends TLObject { public int dc_id; public long volume_id; public int local_id; public long secret; public byte[] file_reference; public byte[] key; public byte[] iv; public static FileLocation TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { FileLocation result = null; switch (constructor) { case 0x7c596b46: result = new TL_fileLocationUnavailable(); break; case 0x91d11eb: result = new TL_fileLocation(); break; case 0x53d69076: result = new TL_fileLocation_layer82(); break; case 0x55555554: result = new TL_fileEncryptedLocation(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in FileLocation", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_fileLocationUnavailable extends FileLocation { public static int constructor = 0x7c596b46; public void readParams(AbstractSerializedData stream, boolean exception) { volume_id = stream.readInt64(exception); local_id = stream.readInt32(exception); secret = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(volume_id); stream.writeInt32(local_id); stream.writeInt64(secret); } } public static class TL_fileLocation extends FileLocation { public static int constructor = 0x91d11eb; public void readParams(AbstractSerializedData stream, boolean exception) { dc_id = stream.readInt32(exception); volume_id = stream.readInt64(exception); local_id = stream.readInt32(exception); secret = stream.readInt64(exception); file_reference = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); stream.writeInt64(volume_id); stream.writeInt32(local_id); stream.writeInt64(secret); stream.writeByteArray(file_reference); } } public static class TL_fileLocation_layer82 extends TL_fileLocation { public static int constructor = 0x53d69076; public void readParams(AbstractSerializedData stream, boolean exception) { dc_id = stream.readInt32(exception); volume_id = stream.readInt64(exception); local_id = stream.readInt32(exception); secret = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); stream.writeInt64(volume_id); stream.writeInt32(local_id); stream.writeInt64(secret); } } public static class TL_fileEncryptedLocation extends FileLocation { public static int constructor = 0x55555554; public void readParams(AbstractSerializedData stream, boolean exception) { dc_id = stream.readInt32(exception); volume_id = stream.readInt64(exception); local_id = stream.readInt32(exception); secret = stream.readInt64(exception); key = stream.readByteArray(exception); iv = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); stream.writeInt64(volume_id); stream.writeInt32(local_id); stream.writeInt64(secret); stream.writeByteArray(key); stream.writeByteArray(iv); } } public static abstract class messages_SavedGifs extends TLObject { public int hash; public ArrayList gifs = new ArrayList<>(); public static messages_SavedGifs TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_SavedGifs result = null; switch (constructor) { case 0xe8025ca2: result = new TL_messages_savedGifsNotModified(); break; case 0x2e0709a5: result = new TL_messages_savedGifs(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_SavedGifs", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_savedGifsNotModified extends messages_SavedGifs { public static int constructor = 0xe8025ca2; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_savedGifs extends messages_SavedGifs { public static int constructor = 0x2e0709a5; public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } gifs.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = gifs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { gifs.get(a).serializeToStream(stream); } } } public static abstract class PhotoSize extends TLObject { public String type; public FileLocation location; public int w; public int h; public int size; public byte[] bytes; public static PhotoSize TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PhotoSize result = null; switch (constructor) { case 0x77bfb61b: result = new TL_photoSize(); break; case 0xe17e23c: result = new TL_photoSizeEmpty(); break; case 0xe0b0bc2e: result = new TL_photoStrippedSize(); break; case 0xe9a734fa: result = new TL_photoCachedSize(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PhotoSize", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_photoStrippedSize extends PhotoSize { public static int constructor = 0xe0b0bc2e; public void readParams(AbstractSerializedData stream, boolean exception) { type = stream.readString(exception); bytes = stream.readByteArray(exception); w = h = 50; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(type); stream.writeByteArray(bytes); } } public static class TL_photoSize extends PhotoSize { public static int constructor = 0x77bfb61b; public void readParams(AbstractSerializedData stream, boolean exception) { type = stream.readString(exception); location = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); w = stream.readInt32(exception); h = stream.readInt32(exception); size = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(type); location.serializeToStream(stream); stream.writeInt32(w); stream.writeInt32(h); stream.writeInt32(size); } } public static class TL_photoSizeEmpty extends PhotoSize { public static int constructor = 0xe17e23c; public void readParams(AbstractSerializedData stream, boolean exception) { type = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(type); } } public static class TL_photoCachedSize extends PhotoSize { public static int constructor = 0xe9a734fa; public void readParams(AbstractSerializedData stream, boolean exception) { type = stream.readString(exception); location = FileLocation.TLdeserialize(stream, stream.readInt32(exception), exception); w = stream.readInt32(exception); h = stream.readInt32(exception); bytes = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(type); location.serializeToStream(stream); stream.writeInt32(w); stream.writeInt32(h); stream.writeByteArray(bytes); } } public static class TL_contactFound extends TLObject { public static int constructor = 0xea879f95; public int user_id; public static TL_contactFound TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_contactFound.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_contactFound", constructor)); } else { return null; } } TL_contactFound result = new TL_contactFound(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static abstract class ExportedChatInvite extends TLObject { public String link; public static ExportedChatInvite TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { ExportedChatInvite result = null; switch (constructor) { case 0xfc2e05bc: result = new TL_chatInviteExported(); break; case 0x69df3769: result = new TL_chatInviteEmpty(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in ExportedChatInvite", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_chatInviteExported extends ExportedChatInvite { public static int constructor = 0xfc2e05bc; public void readParams(AbstractSerializedData stream, boolean exception) { link = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(link); } } public static class TL_chatInviteEmpty extends ExportedChatInvite { public static int constructor = 0x69df3769; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static abstract class InputFile extends TLObject { public long id; public int parts; public String name; public String md5_checksum; public static InputFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputFile result = null; switch (constructor) { case 0xfa4f0bb5: result = new TL_inputFileBig(); break; case 0xf52ff27f: result = new TL_inputFile(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputFileBig extends InputFile { public static int constructor = 0xfa4f0bb5; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); parts = stream.readInt32(exception); name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(parts); stream.writeString(name); } } public static class TL_inputFile extends InputFile { public static int constructor = 0xf52ff27f; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); parts = stream.readInt32(exception); name = stream.readString(exception); md5_checksum = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt32(parts); stream.writeString(name); stream.writeString(md5_checksum); } } public static class TL_account_webAuthorizations extends TLObject { public static int constructor = 0xed56c9fc; public ArrayList authorizations = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static TL_account_webAuthorizations TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_webAuthorizations.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_webAuthorizations", constructor)); } else { return null; } } TL_account_webAuthorizations result = new TL_account_webAuthorizations(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_webAuthorization object = TL_webAuthorization.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } authorizations.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = authorizations.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { authorizations.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_updates_state extends TLObject { public static int constructor = 0xa56c2a3e; public int pts; public int qts; public int date; public int seq; public int unread_count; public static TL_updates_state TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_updates_state.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_updates_state", constructor)); } else { return null; } } TL_updates_state result = new TL_updates_state(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { pts = stream.readInt32(exception); qts = stream.readInt32(exception); date = stream.readInt32(exception); seq = stream.readInt32(exception); unread_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pts); stream.writeInt32(qts); stream.writeInt32(date); stream.writeInt32(seq); stream.writeInt32(unread_count); } } public static class TL_userFull extends TLObject { public static int constructor = 0x8ea4a881; public int flags; public boolean blocked; public boolean phone_calls_available; public boolean phone_calls_private; public boolean can_pin_message; public User user; public String about; public TL_contacts_link link; public Photo profile_photo; public PeerNotifySettings notify_settings; public BotInfo bot_info; public int pinned_msg_id; public int common_chats_count; public static TL_userFull TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_userFull.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_userFull", constructor)); } else { return null; } } TL_userFull result = new TL_userFull(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); blocked = (flags & 1) != 0; phone_calls_available = (flags & 16) != 0; phone_calls_private = (flags & 32) != 0; can_pin_message = (flags & 128) != 0; user = User.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 2) != 0) { about = stream.readString(exception); } link = TL_contacts_link.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { profile_photo = Photo.TLdeserialize(stream, stream.readInt32(exception), exception); } notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { bot_info = BotInfo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 64) != 0) { pinned_msg_id = stream.readInt32(exception); } common_chats_count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = blocked ? (flags | 1) : (flags &~ 1); flags = phone_calls_available ? (flags | 16) : (flags &~ 16); flags = phone_calls_private ? (flags | 32) : (flags &~ 32); flags = can_pin_message ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); user.serializeToStream(stream); if ((flags & 2) != 0) { stream.writeString(about); } link.serializeToStream(stream); if ((flags & 4) != 0) { profile_photo.serializeToStream(stream); } notify_settings.serializeToStream(stream); if ((flags & 8) != 0) { bot_info.serializeToStream(stream); } if ((flags & 64) != 0) { stream.writeInt32(pinned_msg_id); } stream.writeInt32(common_chats_count); } } public static abstract class Updates extends TLObject { public ArrayList updates = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public int date; public int seq; public int flags; public boolean out; public boolean mentioned; public boolean media_unread; public boolean silent; public int id; public int user_id; public String message; public int pts; public int pts_count; public MessageFwdHeader fwd_from; public int via_bot_id; public int reply_to_msg_id; public ArrayList entities = new ArrayList<>(); public MessageMedia media; public Update update; public int from_id; public int chat_id; public int seq_start; public static Updates TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Updates result = null; switch (constructor) { case 0x74ae4240: result = new TL_updates(); break; case 0x914fbf11: result = new TL_updateShortMessage(); break; case 0x11f1331c: result = new TL_updateShortSentMessage(); break; case 0x78d4dec1: result = new TL_updateShort(); break; case 0x16812688: result = new TL_updateShortChatMessage(); break; case 0x725b04c3: result = new TL_updatesCombined(); break; case 0xe317af7e: result = new TL_updatesTooLong(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Updates", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_updates extends Updates { public static int constructor = 0x74ae4240; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Update object = Update.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } updates.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } date = stream.readInt32(exception); seq = stream.readInt32(exception); } } public static class TL_updateShortMessage extends Updates { public static int constructor = 0x914fbf11; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; id = stream.readInt32(exception); user_id = stream.readInt32(exception); message = stream.readString(exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); date = stream.readInt32(exception); if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } } public static class TL_updateShortSentMessage extends Updates { public static int constructor = 0x11f1331c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); out = (flags & 2) != 0; id = stream.readInt32(exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); date = stream.readInt32(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } } public static class TL_updateShort extends Updates { public static int constructor = 0x78d4dec1; public void readParams(AbstractSerializedData stream, boolean exception) { update = Update.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); } } public static class TL_updateShortChatMessage extends Updates { public static int constructor = 0x16812688; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); chat_id = stream.readInt32(exception); message = stream.readString(exception); pts = stream.readInt32(exception); pts_count = stream.readInt32(exception); date = stream.readInt32(exception); if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } } public static class TL_updatesCombined extends Updates { public static int constructor = 0x725b04c3; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Update object = Update.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } updates.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } date = stream.readInt32(exception); seq_start = stream.readInt32(exception); seq = stream.readInt32(exception); } } public static class TL_updatesTooLong extends Updates { public static int constructor = 0xe317af7e; } public static abstract class WallPaper extends TLObject { public static WallPaper TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { WallPaper result = null; switch (constructor) { case 0xa437c3ed: result = new TL_wallPaper(); break; case 0xf04f91ec: result = new TL_wallPaper_layer94(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in WallPaper", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_wallPaper extends WallPaper { public static int constructor = 0xa437c3ed; public long id; public int flags; public boolean creator; public boolean isDefault; public boolean pattern; public boolean dark; public long access_hash; public String slug; public Document document; public TL_wallPaperSettings settings; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); flags = stream.readInt32(exception); creator = (flags & 1) != 0; isDefault = (flags & 2) != 0; pattern = (flags & 8) != 0; dark = (flags & 16) != 0; access_hash = stream.readInt64(exception); slug = stream.readString(exception); document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { settings = TL_wallPaperSettings.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); flags = creator ? (flags | 1) : (flags &~ 1); flags = isDefault ? (flags | 2) : (flags &~ 2); flags = pattern ? (flags | 8) : (flags &~ 8); flags = dark ? (flags | 16) : (flags &~ 16); stream.writeInt32(flags); stream.writeInt64(access_hash); stream.writeString(slug); document.serializeToStream(stream); if ((flags & 4) != 0) { settings.serializeToStream(stream); } } } public static class TL_wallPaper_layer94 extends TL_wallPaper { public static int constructor = 0xf04f91ec; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); flags = stream.readInt32(exception); creator = (flags & 1) != 0; isDefault = (flags & 2) != 0; access_hash = stream.readInt64(exception); slug = stream.readString(exception); document = Document.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); flags = creator ? (flags | 1) : (flags &~ 1); flags = isDefault ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt64(access_hash); stream.writeString(slug); document.serializeToStream(stream); } } public static class TL_paymentSavedCredentialsCard extends TLObject { public static int constructor = 0xcdc27a1f; public String id; public String title; public static TL_paymentSavedCredentialsCard TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_paymentSavedCredentialsCard.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_paymentSavedCredentialsCard", constructor)); } else { return null; } } TL_paymentSavedCredentialsCard result = new TL_paymentSavedCredentialsCard(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readString(exception); title = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(id); stream.writeString(title); } } public static abstract class PageListItem extends TLObject { public static PageListItem TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { PageListItem result = null; switch (constructor) { case 0x25e073fc: result = new TL_pageListItemBlocks(); break; case 0xb92fb6cd: result = new TL_pageListItemText(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in PageListItem", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_pageListItemBlocks extends PageListItem { public static int constructor = 0x25e073fc; public ArrayList blocks = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } } } public static class TL_pageListItemText extends PageListItem { public static int constructor = 0xb92fb6cd; public RichText text; public void readParams(AbstractSerializedData stream, boolean exception) { text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); text.serializeToStream(stream); } } public static class TL_stickerPack extends TLObject { public static int constructor = 0x12b299d4; public String emoticon; public ArrayList documents = new ArrayList<>(); public static TL_stickerPack TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_stickerPack.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_stickerPack", constructor)); } else { return null; } } TL_stickerPack result = new TL_stickerPack(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { emoticon = stream.readString(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { documents.add(stream.readInt64(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(emoticon); stream.writeInt32(0x1cb5c415); int count = documents.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(documents.get(a)); } } } public static class TL_inputEncryptedChat extends TLObject { public static int constructor = 0xf141b5e1; public int chat_id; public long access_hash; public static TL_inputEncryptedChat TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_inputEncryptedChat.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_inputEncryptedChat", constructor)); } else { return null; } } TL_inputEncryptedChat result = new TL_inputEncryptedChat(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeInt64(access_hash); } } public static abstract class InputChatPhoto extends TLObject { public InputPhoto id; public InputFile file; public static InputChatPhoto TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputChatPhoto result = null; switch (constructor) { case 0x8953ad37: result = new TL_inputChatPhoto(); break; case 0x1ca48f57: result = new TL_inputChatPhotoEmpty(); break; case 0x927c55b4: result = new TL_inputChatUploadedPhoto(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputChatPhoto", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputChatPhoto extends InputChatPhoto { public static int constructor = 0x8953ad37; public void readParams(AbstractSerializedData stream, boolean exception) { id = InputPhoto.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_inputChatPhotoEmpty extends InputChatPhoto { public static int constructor = 0x1ca48f57; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputChatUploadedPhoto extends InputChatPhoto { public static int constructor = 0x927c55b4; public void readParams(AbstractSerializedData stream, boolean exception) { file = InputFile.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); file.serializeToStream(stream); } } public static class TL_nearestDc extends TLObject { public static int constructor = 0x8e1a1775; public String country; public int this_dc; public int nearest_dc; public static TL_nearestDc TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_nearestDc.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_nearestDc", constructor)); } else { return null; } } TL_nearestDc result = new TL_nearestDc(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { country = stream.readString(exception); this_dc = stream.readInt32(exception); nearest_dc = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(country); stream.writeInt32(this_dc); stream.writeInt32(nearest_dc); } } public static class TL_payments_savedInfo extends TLObject { public static int constructor = 0xfb8fe43c; public int flags; public boolean has_saved_credentials; public TL_paymentRequestedInfo saved_info; public static TL_payments_savedInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_payments_savedInfo.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_payments_savedInfo", constructor)); } else { return null; } } TL_payments_savedInfo result = new TL_payments_savedInfo(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); has_saved_credentials = (flags & 2) != 0; if ((flags & 1) != 0) { saved_info = TL_paymentRequestedInfo.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = has_saved_credentials ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); if ((flags & 1) != 0) { saved_info.serializeToStream(stream); } } } public static abstract class InputPhoto extends TLObject { public long id; public long access_hash; public byte[] file_reference; public static InputPhoto TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPhoto result = null; switch (constructor) { case 0x1cd7bf0d: result = new TL_inputPhotoEmpty(); break; case 0x3bb3b94a: result = new TL_inputPhoto(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPhoto", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputPhotoEmpty extends InputPhoto { public static int constructor = 0x1cd7bf0d; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPhoto extends InputPhoto { public static int constructor = 0x3bb3b94a; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt64(exception); access_hash = stream.readInt64(exception); file_reference = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(id); stream.writeInt64(access_hash); stream.writeByteArray(file_reference); } } public static class TL_importedContact extends TLObject { public static int constructor = 0xd0028438; public int user_id; public long client_id; public static TL_importedContact TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_importedContact.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_importedContact", constructor)); } else { return null; } } TL_importedContact result = new TL_importedContact(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); client_id = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt64(client_id); } } public static class TL_chatOnlines extends TLObject { public static int constructor = 0xf041e250; public int onlines; public static TL_chatOnlines TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_chatOnlines.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_chatOnlines", constructor)); } else { return null; } } TL_chatOnlines result = new TL_chatOnlines(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { onlines = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(onlines); } } public static abstract class messages_RecentStickers extends TLObject { public static messages_RecentStickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_RecentStickers result = null; switch (constructor) { case 0x22f3afb3: result = new TL_messages_recentStickers(); break; case 0xb17f890: result = new TL_messages_recentStickersNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_RecentStickers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_recentStickers extends messages_RecentStickers { public static int constructor = 0x22f3afb3; public int hash; public ArrayList packs = new ArrayList<>(); public ArrayList stickers = new ArrayList<>(); public ArrayList dates = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_stickerPack object = TL_stickerPack.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } packs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } stickers.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { dates.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = packs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { packs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = stickers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stickers.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = dates.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(dates.get(a)); } } } public static class TL_messages_recentStickersNotModified extends messages_RecentStickers { public static int constructor = 0xb17f890; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_pageRelatedArticle extends TLObject { public static int constructor = 0xb390dc08; public int flags; public String url; public long webpage_id; public String title; public String description; public long photo_id; public String author; public int published_date; public static TL_pageRelatedArticle TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pageRelatedArticle.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pageRelatedArticle", constructor)); } else { return null; } } TL_pageRelatedArticle result = new TL_pageRelatedArticle(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); url = stream.readString(exception); webpage_id = stream.readInt64(exception); if ((flags & 1) != 0) { title = stream.readString(exception); } if ((flags & 2) != 0) { description = stream.readString(exception); } if ((flags & 4) != 0) { photo_id = stream.readInt64(exception); } if ((flags & 8) != 0) { author = stream.readString(exception); } if ((flags & 16) != 0) { published_date = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(url); stream.writeInt64(webpage_id); if ((flags & 1) != 0) { stream.writeString(title); } if ((flags & 2) != 0) { stream.writeString(description); } if ((flags & 4) != 0) { stream.writeInt64(photo_id); } if ((flags & 8) != 0) { stream.writeString(author); } if ((flags & 16) != 0) { stream.writeInt32(published_date); } } } public static class TL_accountDaysTTL extends TLObject { public static int constructor = 0xb8d0afdf; public int days; public static TL_accountDaysTTL TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_accountDaysTTL.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_accountDaysTTL", constructor)); } else { return null; } } TL_accountDaysTTL result = new TL_accountDaysTTL(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { days = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(days); } } public static abstract class messages_Stickers extends TLObject { public static messages_Stickers TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_Stickers result = null; switch (constructor) { case 0xf1749a22: result = new TL_messages_stickersNotModified(); break; case 0xe4599bbd: result = new TL_messages_stickers(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_Stickers", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_stickersNotModified extends messages_Stickers { public static int constructor = 0xf1749a22; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_stickers extends messages_Stickers { public static int constructor = 0xe4599bbd; public int hash; public ArrayList stickers = new ArrayList<>(); public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Document object = Document.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } stickers.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); stream.writeInt32(0x1cb5c415); int count = stickers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stickers.get(a).serializeToStream(stream); } } } public static abstract class InputPeer extends TLObject { public int user_id; public long access_hash; public int chat_id; public int channel_id; public static InputPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { InputPeer result = null; switch (constructor) { case 0x7b8e7de6: result = new TL_inputPeerUser(); break; case 0x179be863: result = new TL_inputPeerChat(); break; case 0x7f3b18ea: result = new TL_inputPeerEmpty(); break; case 0x7da07ec9: result = new TL_inputPeerSelf(); break; case 0x20adaef8: result = new TL_inputPeerChannel(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in InputPeer", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_inputPeerUser extends InputPeer { public static int constructor = 0x7b8e7de6; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeInt64(access_hash); } } public static class TL_inputPeerChat extends InputPeer { public static int constructor = 0x179be863; public void readParams(AbstractSerializedData stream, boolean exception) { chat_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_inputPeerEmpty extends InputPeer { public static int constructor = 0x7f3b18ea; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPeerSelf extends InputPeer { public static int constructor = 0x7da07ec9; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_inputPeerChannel extends InputPeer { public static int constructor = 0x20adaef8; public void readParams(AbstractSerializedData stream, boolean exception) { channel_id = stream.readInt32(exception); access_hash = stream.readInt64(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(channel_id); stream.writeInt64(access_hash); } } public static abstract class help_PassportConfig extends TLObject { public static help_PassportConfig TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { help_PassportConfig result = null; switch (constructor) { case 0xbfb9f457: result = new TL_help_passportConfigNotModified(); break; case 0xa098d6af: result = new TL_help_passportConfig(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in help_PassportConfig", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_help_passportConfigNotModified extends help_PassportConfig { public static int constructor = 0xbfb9f457; public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_passportConfig extends help_PassportConfig { public static int constructor = 0xa098d6af; public int hash; public TL_dataJSON countries_langs; public void readParams(AbstractSerializedData stream, boolean exception) { hash = stream.readInt32(exception); countries_langs = TL_dataJSON.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); countries_langs.serializeToStream(stream); } } public static class TL_account_passwordInputSettings extends TLObject { public static int constructor = 0xc23727c9; public int flags; public PasswordKdfAlgo new_algo; public byte[] new_password_hash; public String hint; public String email; public TL_secureSecretSettings new_secure_settings; public static TL_account_passwordInputSettings TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_passwordInputSettings.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_passwordInputSettings", constructor)); } else { return null; } } TL_account_passwordInputSettings result = new TL_account_passwordInputSettings(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { new_algo = PasswordKdfAlgo.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 1) != 0) { new_password_hash = stream.readByteArray(exception); } if ((flags & 1) != 0) { hint = stream.readString(exception); } if ((flags & 2) != 0) { email = stream.readString(exception); } if ((flags & 4) != 0) { new_secure_settings = TL_secureSecretSettings.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { new_algo.serializeToStream(stream); } if ((flags & 1) != 0) { stream.writeByteArray(new_password_hash); } if ((flags & 1) != 0) { stream.writeString(hint); } if ((flags & 2) != 0) { stream.writeString(email); } if ((flags & 4) != 0) { new_secure_settings.serializeToStream(stream); } } } public static class TL_dcOption extends TLObject { public static int constructor = 0x18b7a10d; public int flags; public boolean ipv6; public boolean media_only; public boolean tcpo_only; public boolean cdn; public boolean isStatic; public int id; public String ip_address; public int port; public byte[] secret; public static TL_dcOption TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_dcOption.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_dcOption", constructor)); } else { return null; } } TL_dcOption result = new TL_dcOption(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); ipv6 = (flags & 1) != 0; media_only = (flags & 2) != 0; tcpo_only = (flags & 4) != 0; cdn = (flags & 8) != 0; isStatic = (flags & 16) != 0; id = stream.readInt32(exception); ip_address = stream.readString(exception); port = stream.readInt32(exception); if ((flags & 1024) != 0) { secret = stream.readByteArray(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = ipv6 ? (flags | 1) : (flags &~ 1); flags = media_only ? (flags | 2) : (flags &~ 2); flags = tcpo_only ? (flags | 4) : (flags &~ 4); flags = cdn ? (flags | 8) : (flags &~ 8); flags = isStatic ? (flags | 16) : (flags &~ 16); stream.writeInt32(flags); stream.writeInt32(id); stream.writeString(ip_address); stream.writeInt32(port); if ((flags & 1024) != 0) { stream.writeByteArray(secret); } } } public static class TL_pageTableRow extends TLObject { public static int constructor = 0xe0c0c5e5; public ArrayList cells = new ArrayList<>(); public static TL_pageTableRow TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_pageTableRow.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_pageTableRow", constructor)); } else { return null; } } TL_pageTableRow result = new TL_pageTableRow(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_pageTableCell object = TL_pageTableCell.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } cells.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = cells.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { cells.get(a).serializeToStream(stream); } } } public static class TL_decryptedMessageLayer extends TLObject { public static int constructor = 0x1be31789; public byte[] random_bytes; public int layer; public int in_seq_no; public int out_seq_no; public DecryptedMessage message; public static TL_decryptedMessageLayer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_decryptedMessageLayer.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_decryptedMessageLayer", constructor)); } else { return null; } } TL_decryptedMessageLayer result = new TL_decryptedMessageLayer(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { random_bytes = stream.readByteArray(exception); layer = stream.readInt32(exception); in_seq_no = stream.readInt32(exception); out_seq_no = stream.readInt32(exception); message = DecryptedMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(random_bytes); stream.writeInt32(layer); stream.writeInt32(in_seq_no); stream.writeInt32(out_seq_no); message.serializeToStream(stream); } } public static abstract class GroupCallParticipant extends TLObject { public int user_id; public byte[] member_tag_hash; public byte[] streams; public int flags; public boolean readonly; public int date; public int inviter_id; public TL_inputPhoneCall phone_call; public static GroupCallParticipant TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { GroupCallParticipant result = null; switch (constructor) { case 0x419b0df2: result = new TL_groupCallParticipantLeft(); break; case 0x4f0b39b8: result = new TL_groupCallParticipantAdmin(); break; case 0x589db397: result = new TL_groupCallParticipant(); break; case 0x377496f0: result = new TL_groupCallParticipantInvited(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in GroupCallParticipant", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_groupCallParticipantLeft extends GroupCallParticipant { public static int constructor = 0x419b0df2; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); } } public static class TL_groupCallParticipantAdmin extends GroupCallParticipant { public static int constructor = 0x4f0b39b8; public void readParams(AbstractSerializedData stream, boolean exception) { user_id = stream.readInt32(exception); member_tag_hash = stream.readByteArray(exception); streams = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(user_id); stream.writeByteArray(member_tag_hash); stream.writeByteArray(streams); } } public static class TL_groupCallParticipant extends GroupCallParticipant { public static int constructor = 0x589db397; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); readonly = (flags & 1) != 0; user_id = stream.readInt32(exception); date = stream.readInt32(exception); member_tag_hash = stream.readByteArray(exception); streams = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = readonly ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(user_id); stream.writeInt32(date); stream.writeByteArray(member_tag_hash); stream.writeByteArray(streams); } } public static class TL_groupCallParticipantInvited extends GroupCallParticipant { public static int constructor = 0x377496f0; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); user_id = stream.readInt32(exception); inviter_id = stream.readInt32(exception); date = stream.readInt32(exception); if ((flags & 1) != 0) { phone_call = TL_inputPhoneCall.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(user_id); stream.writeInt32(inviter_id); stream.writeInt32(date); if ((flags & 1) != 0) { phone_call.serializeToStream(stream); } } } public static class TL_fileHash extends TLObject { public static int constructor = 0x6242c773; public int offset; public int limit; public byte[] hash; public static TL_fileHash TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_fileHash.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_fileHash", constructor)); } else { return null; } } TL_fileHash result = new TL_fileHash(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { offset = stream.readInt32(exception); limit = stream.readInt32(exception); hash = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(limit); stream.writeByteArray(hash); } } public static class TL_messages_peerDialogs extends TLObject { public static int constructor = 0x3371c354; public ArrayList dialogs = new ArrayList<>(); public ArrayList messages = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public TL_updates_state state; public static TL_messages_peerDialogs TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_peerDialogs.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_peerDialogs", constructor)); } else { return null; } } TL_messages_peerDialogs result = new TL_messages_peerDialogs(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_dialog object = TL_dialog.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } dialogs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } state = TL_updates_state.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = dialogs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { dialogs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } state.serializeToStream(stream); } } public static class TL_topPeer extends TLObject { public static int constructor = 0xedcdc05b; public Peer peer; public double rating; public static TL_topPeer TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_topPeer.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_topPeer", constructor)); } else { return null; } } TL_topPeer result = new TL_topPeer(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); rating = stream.readDouble(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeDouble(rating); } } public static abstract class messages_Dialogs extends TLObject { public int count; public ArrayList dialogs = new ArrayList<>(); public ArrayList messages = new ArrayList<>(); public ArrayList chats = new ArrayList<>(); public ArrayList users = new ArrayList<>(); public static messages_Dialogs TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { messages_Dialogs result = null; switch (constructor) { case 0x15ba6c40: result = new TL_messages_dialogs(); break; case 0x71e094f3: result = new TL_messages_dialogsSlice(); break; case 0xf0e3e596: result = new TL_messages_dialogsNotModified(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in messages_Dialogs", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_messages_dialogs extends messages_Dialogs { public static int constructor = 0x15ba6c40; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_dialog object = TL_dialog.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } dialogs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = dialogs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { dialogs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_messages_dialogsSlice extends messages_Dialogs { public static int constructor = 0x71e094f3; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_dialog object = TL_dialog.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } dialogs.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Message object = Message.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } messages.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { Chat object = Chat.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } chats.add(object); } magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } count = stream.readInt32(exception); for (int a = 0; a < count; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } users.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); stream.writeInt32(0x1cb5c415); int count = dialogs.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { dialogs.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = messages.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { messages.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = chats.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { chats.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_messages_dialogsNotModified extends messages_Dialogs { public static int constructor = 0xf0e3e596; public void readParams(AbstractSerializedData stream, boolean exception) { count = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(count); } } public static class TL_account_authorizations extends TLObject { public static int constructor = 0x1250abde; public ArrayList authorizations = new ArrayList<>(); public static TL_account_authorizations TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_account_authorizations.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_account_authorizations", constructor)); } else { return null; } } TL_account_authorizations result = new TL_account_authorizations(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_authorization object = TL_authorization.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } authorizations.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = authorizations.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { authorizations.get(a).serializeToStream(stream); } } } public static class TL_paymentRequestedInfo extends TLObject { public static int constructor = 0x909c3f94; public int flags; public String name; public String phone; public String email; public TL_postAddress shipping_address; public static TL_paymentRequestedInfo TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_paymentRequestedInfo.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_paymentRequestedInfo", constructor)); } else { return null; } } TL_paymentRequestedInfo result = new TL_paymentRequestedInfo(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); if ((flags & 1) != 0) { name = stream.readString(exception); } if ((flags & 2) != 0) { phone = stream.readString(exception); } if ((flags & 4) != 0) { email = stream.readString(exception); } if ((flags & 8) != 0) { shipping_address = TL_postAddress.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeString(name); } if ((flags & 2) != 0) { stream.writeString(phone); } if ((flags & 4) != 0) { stream.writeString(email); } if ((flags & 8) != 0) { shipping_address.serializeToStream(stream); } } } public static class TL_auth_checkPhone extends TLObject { public static int constructor = 0x6fe51dfb; public String phone_number; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_checkedPhone.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); } } public static class TL_auth_sendCode extends TLObject { public static int constructor = 0xa677244f; public String phone_number; public int api_id; public String api_hash; public TL_codeSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_sentCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeInt32(api_id); stream.writeString(api_hash); settings.serializeToStream(stream); } } public static class TL_auth_signUp extends TLObject { public static int constructor = 0x1b067634; public String phone_number; public String phone_code_hash; public String phone_code; public String first_name; public String last_name; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_authorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); stream.writeString(phone_code); stream.writeString(first_name); stream.writeString(last_name); } } public static class TL_auth_signIn extends TLObject { public static int constructor = 0xbcd51581; public String phone_number; public String phone_code_hash; public String phone_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_authorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); stream.writeString(phone_code); } } public static class TL_auth_logOut extends TLObject { public static int constructor = 0x5717da40; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_resetAuthorizations extends TLObject { public static int constructor = 0x9fab0d1a; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_exportAuthorization extends TLObject { public static int constructor = 0xe5bfffcd; public int dc_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_exportedAuthorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); } } public static class TL_auth_importAuthorization extends TLObject { public static int constructor = 0xe3ef9613; public int id; public byte[] bytes; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_authorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeByteArray(bytes); } } public static class TL_account_registerDevice extends TLObject { public static int constructor = 0x5cbea590; public int token_type; public String token; public boolean app_sandbox; public byte[] secret; public ArrayList other_uids = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(token_type); stream.writeString(token); stream.writeBool(app_sandbox); stream.writeByteArray(secret); stream.writeInt32(0x1cb5c415); int count = other_uids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(other_uids.get(a)); } } } public static class TL_account_unregisterDevice extends TLObject { public static int constructor = 0x3076c4bf; public int token_type; public String token; public ArrayList other_uids = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(token_type); stream.writeString(token); stream.writeInt32(0x1cb5c415); int count = other_uids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(other_uids.get(a)); } } } public static class TL_account_updateNotifySettings extends TLObject { public static int constructor = 0x84be5b93; public InputNotifyPeer peer; public TL_inputPeerNotifySettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); settings.serializeToStream(stream); } } public static class TL_account_getNotifySettings extends TLObject { public static int constructor = 0x12b3ad31; public InputNotifyPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return PeerNotifySettings.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_account_resetNotifySettings extends TLObject { public static int constructor = 0xdb7e1747; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_updateProfile extends TLObject { public static int constructor = 0x78515775; public int flags; public String first_name; public String last_name; public String about; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return User.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeString(first_name); } if ((flags & 2) != 0) { stream.writeString(last_name); } if ((flags & 4) != 0) { stream.writeString(about); } } } public static class TL_account_updateStatus extends TLObject { public static int constructor = 0x6628562c; public boolean offline; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(offline); } } public static class TL_account_getWallPapers extends TLObject { public static int constructor = 0xaabb1763; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return account_WallPapers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_users_getUsers extends TLObject { public static int constructor = 0xd91a548; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { User object = User.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { id.get(a).serializeToStream(stream); } } } public static class TL_account_reportPeer extends TLObject { public static int constructor = 0xae189d5f; public InputPeer peer; public ReportReason reason; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); reason.serializeToStream(stream); } } public static class TL_users_getFullUser extends TLObject { public static int constructor = 0xca30a5b1; public InputUser id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_userFull.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_contacts_getStatuses extends TLObject { public static int constructor = 0xc4a353ee; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_contactStatus object = TL_contactStatus.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contacts_getContacts extends TLObject { public static int constructor = 0xc023849f; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return contacts_Contacts.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_contacts_importContacts extends TLObject { public static int constructor = 0x2c800be5; public ArrayList contacts = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_contacts_importedContacts.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = contacts.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { contacts.get(a).serializeToStream(stream); } } } public static class TL_contacts_deleteContact extends TLObject { public static int constructor = 0x8e953744; public InputUser id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_contacts_link.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_contacts_deleteContacts extends TLObject { public static int constructor = 0x59ab389e; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { id.get(a).serializeToStream(stream); } } } public static class TL_contacts_deleteByPhones extends TLObject { public static int constructor = 0x1013fd9e; public ArrayList phones = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = phones.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeString(phones.get(a)); } } } public static class TL_contacts_block extends TLObject { public static int constructor = 0x332b49fc; public InputUser id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_contacts_unblock extends TLObject { public static int constructor = 0xe54100bd; public InputUser id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_contacts_getBlocked extends TLObject { public static int constructor = 0xf57c350f; public int offset; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return contacts_Blocked.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(offset); stream.writeInt32(limit); } } public static class TL_contacts_exportCard extends TLObject { public static int constructor = 0x84e53737; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { vector.objects.add(stream.readInt32(exception)); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contacts_importCard extends TLObject { public static int constructor = 0x4fe196fe; public ArrayList export_card = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return User.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = export_card.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(export_card.get(a)); } } } public static class TL_contacts_resetSaved extends TLObject { public static int constructor = 0x879537f1; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_contacts_toggleTopPeers extends TLObject { public static int constructor = 0x8514bdda; public boolean enabled; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(enabled); } } public static class TL_messages_getMessages extends TLObject { public static int constructor = 0x4222fa74; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_messages_getDialogs extends TLObject { public static int constructor = 0xb098aee6; public int flags; public boolean exclude_pinned; public int offset_date; public int offset_id; public InputPeer offset_peer; public int limit; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Dialogs.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = exclude_pinned ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(offset_date); stream.writeInt32(offset_id); offset_peer.serializeToStream(stream); stream.writeInt32(limit); stream.writeInt32(hash); } } public static class TL_messages_getHistory extends TLObject { public static int constructor = 0xafa92846; public InputPeer peer; public int offset_id; public int offset_date; public int add_offset; public int limit; public int max_id; public int min_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(offset_id); stream.writeInt32(offset_date); stream.writeInt32(add_offset); stream.writeInt32(limit); stream.writeInt32(max_id); stream.writeInt32(min_id); } } public static class TL_messages_search extends TLObject { public static int constructor = 0x8614ef68; public int flags; public InputPeer peer; public String q; public InputUser from_id; public MessagesFilter filter; public int min_date; public int max_date; public int offset_id; public int add_offset; public int limit; public int max_id; public int min_id; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeString(q); if ((flags & 1) != 0) { from_id.serializeToStream(stream); } filter.serializeToStream(stream); stream.writeInt32(min_date); stream.writeInt32(max_date); stream.writeInt32(offset_id); stream.writeInt32(add_offset); stream.writeInt32(limit); stream.writeInt32(max_id); stream.writeInt32(min_id); stream.writeInt32(hash); } } public static class TL_help_getTermsOfServiceUpdate extends TLObject { public static int constructor = 0x2ca51fd1; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_TermsOfServiceUpdate.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_acceptTermsOfService extends TLObject { public static int constructor = 0xee72f79a; public TL_dataJSON id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_help_getPassportConfig extends TLObject { public static int constructor = 0xc661ad08; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_PassportConfig.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_help_getSupportName extends TLObject { public static int constructor = 0xd360e72c; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_help_supportName.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_getUserInfo extends TLObject { public static int constructor = 0x38a08d3; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_UserInfo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); } } public static class TL_help_editUserInfo extends TLObject { public static int constructor = 0x66b91b70; public InputUser user_id; public String message; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_UserInfo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); stream.writeString(message); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } public static class TL_messages_readHistory extends TLObject { public static int constructor = 0xe306d3a; public InputPeer peer; public int max_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedMessages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(max_id); } } public static class TL_messages_deleteHistory extends TLObject { public static int constructor = 0x1c015b09; public int flags; public boolean just_clear; public InputPeer peer; public int max_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedHistory.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = just_clear ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(max_id); } } public static class TL_channels_togglePreHistoryHidden extends TLObject { public static int constructor = 0xeabbb94c; public InputChannel channel; public boolean enabled; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeBool(enabled); } } public static class TL_messages_editChatAdmin extends TLObject { public static int constructor = 0xa9e69f2e; public int chat_id; public InputUser user_id; public boolean is_admin; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); user_id.serializeToStream(stream); stream.writeBool(is_admin); } } public static class TL_messages_migrateChat extends TLObject { public static int constructor = 0x15a3b8e3; public int chat_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_messages_searchGlobal extends TLObject { public static int constructor = 0x9e3cacb0; public String q; public int offset_date; public InputPeer offset_peer; public int offset_id; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); stream.writeInt32(offset_date); offset_peer.serializeToStream(stream); stream.writeInt32(offset_id); stream.writeInt32(limit); } } public static class TL_messages_deleteMessages extends TLObject { public static int constructor = 0xe58e95d2; public int flags; public boolean revoke; public ArrayList id = new ArrayList<>(); public static TL_messages_deleteMessages TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_messages_deleteMessages.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_messages_deleteMessages", constructor)); } else { return null; } } TL_messages_deleteMessages result = new TL_messages_deleteMessages(); result.readParams(stream, exception); return result; } public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedMessages.TLdeserialize(stream, constructor, exception); } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); revoke = (flags & 1) != 0; int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { id.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = revoke ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_messages_receivedMessages extends TLObject { public static int constructor = 0x5a954c0; public int max_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_receivedNotifyMessage object = TL_receivedNotifyMessage.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(max_id); } } public static class TL_messages_setTyping extends TLObject { public static int constructor = 0xa3825e50; public InputPeer peer; public SendMessageAction action; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); action.serializeToStream(stream); } } public static class TL_messages_sendMessage extends TLObject { public static int constructor = 0xfa88427a; public int flags; public boolean no_webpage; public boolean silent; public boolean background; public boolean clear_draft; public InputPeer peer; public int reply_to_msg_id; public String message; public long random_id; public ReplyMarkup reply_markup; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = no_webpage ? (flags | 2) : (flags &~ 2); flags = silent ? (flags | 32) : (flags &~ 32); flags = background ? (flags | 64) : (flags &~ 64); flags = clear_draft ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); peer.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeString(message); stream.writeInt64(random_id); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_messages_sendMedia extends TLObject { public static int constructor = 0xb8d1262b; public int flags; public boolean silent; public boolean background; public boolean clear_draft; public InputPeer peer; public int reply_to_msg_id; public InputMedia media; public String message; public long random_id; public ReplyMarkup reply_markup; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = silent ? (flags | 32) : (flags &~ 32); flags = background ? (flags | 64) : (flags &~ 64); flags = clear_draft ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); peer.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } media.serializeToStream(stream); stream.writeString(message); stream.writeInt64(random_id); if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_messages_forwardMessages extends TLObject { public static int constructor = 0x708e0195; public int flags; public boolean silent; public boolean background; public boolean with_my_score; public boolean grouped; public InputPeer from_peer; public ArrayList id = new ArrayList<>(); public ArrayList random_id = new ArrayList<>(); public InputPeer to_peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = silent ? (flags | 32) : (flags &~ 32); flags = background ? (flags | 64) : (flags &~ 64); flags = with_my_score ? (flags | 256) : (flags &~ 256); flags = grouped ? (flags | 512) : (flags &~ 512); stream.writeInt32(flags); from_peer.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } stream.writeInt32(0x1cb5c415); count = random_id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(random_id.get(a)); } to_peer.serializeToStream(stream); } } public static class TL_messages_reportSpam extends TLObject { public static int constructor = 0xcf1592db; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_hideReportSpam extends TLObject { public static int constructor = 0xa8f1709b; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_getPeerSettings extends TLObject { public static int constructor = 0x3672e09c; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_peerSettings.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_report extends TLObject { public static int constructor = 0xbd82b658; public InputPeer peer; public ArrayList id = new ArrayList<>(); public ReportReason reason; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } reason.serializeToStream(stream); } } public static class TL_messages_getChats extends TLObject { public static int constructor = 0x3c6aa187; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_chats.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_messages_getFullChat extends TLObject { public static int constructor = 0x3b831c66; public int chat_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_chatFull.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_messages_editChatTitle extends TLObject { public static int constructor = 0xdc452855; public int chat_id; public String title; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); stream.writeString(title); } } public static class TL_messages_editChatPhoto extends TLObject { public static int constructor = 0xca4c79d8; public int chat_id; public InputChatPhoto photo; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); photo.serializeToStream(stream); } } public static class TL_messages_addChatUser extends TLObject { public static int constructor = 0xf9a0aa09; public int chat_id; public InputUser user_id; public int fwd_limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); user_id.serializeToStream(stream); stream.writeInt32(fwd_limit); } } public static class TL_messages_deleteChatUser extends TLObject { public static int constructor = 0xe0611f16; public int chat_id; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); user_id.serializeToStream(stream); } } public static class TL_messages_createChat extends TLObject { public static int constructor = 0x9cb126e; public ArrayList users = new ArrayList<>(); public String title; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } stream.writeString(title); } } public static class TL_updates_getState extends TLObject { public static int constructor = 0xedd4882a; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_updates_state.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_updates_getDifference extends TLObject { public static int constructor = 0x25939651; public int flags; public int pts; public int pts_total_limit; public int date; public int qts; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return updates_Difference.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(pts); if ((flags & 1) != 0) { stream.writeInt32(pts_total_limit); } stream.writeInt32(date); stream.writeInt32(qts); } } public static class TL_updates_getChannelDifference extends TLObject { public static int constructor = 0x3173d78; public int flags; public boolean force; public InputChannel channel; public ChannelMessagesFilter filter; public int pts; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return updates_ChannelDifference.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = force ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); channel.serializeToStream(stream); filter.serializeToStream(stream); stream.writeInt32(pts); stream.writeInt32(limit); } } public static class TL_photos_updateProfilePhoto extends TLObject { public static int constructor = 0xf0bb5152; public InputPhoto id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return UserProfilePhoto.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); } } public static class TL_photos_uploadProfilePhoto extends TLObject { public static int constructor = 0x4f32c098; public InputFile file; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_photos_photo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); file.serializeToStream(stream); } } public static class TL_photos_deletePhotos extends TLObject { public static int constructor = 0x87cf7f2f; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { vector.objects.add(stream.readInt64(exception)); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { id.get(a).serializeToStream(stream); } } } public static class TL_upload_getFile extends TLObject { public static int constructor = 0xe3a6cfb5; public InputFileLocation location; public int offset; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_upload_file.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); location.serializeToStream(stream); stream.writeInt32(offset); stream.writeInt32(limit); } } public static class TL_help_getConfig extends TLObject { public static int constructor = 0xc4f9186b; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_config.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_getNearestDc extends TLObject { public static int constructor = 0x1fb33026; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_nearestDc.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_getAppUpdate extends TLObject { public static int constructor = 0x522d5a7d; public String source; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_AppUpdate.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(source); } } public static class TL_help_getAppConfig extends TLObject { public static int constructor = 0x98914110; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return JSONValue.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_saveAppLog extends TLObject { public static int constructor = 0x6f02f748; public ArrayList events = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = events.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { events.get(a).serializeToStream(stream); } } } public static class TL_help_getInviteText extends TLObject { public static int constructor = 0x4d392343; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_help_inviteText.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_photos_getUserPhotos extends TLObject { public static int constructor = 0x91cd32a8; public InputUser user_id; public int offset; public long max_id; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return photos_Photos.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); stream.writeInt32(offset); stream.writeInt64(max_id); stream.writeInt32(limit); } } public static class TL_messages_forwardMessage extends TLObject { public static int constructor = 0x33963bf9; public InputPeer peer; public int id; public long random_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(id); stream.writeInt64(random_id); } } public static class TL_messages_sendBroadcast extends TLObject { public static int constructor = 0xbf73f4da; public ArrayList contacts = new ArrayList<>(); public ArrayList random_id = new ArrayList<>(); public String message; public InputMedia media; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = contacts.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { contacts.get(a).serializeToStream(stream); } stream.writeInt32(0x1cb5c415); count = random_id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(random_id.get(a)); } stream.writeString(message); media.serializeToStream(stream); } } public static class TL_messages_getDhConfig extends TLObject { public static int constructor = 0x26cf8950; public int version; public int random_length; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_DhConfig.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(version); stream.writeInt32(random_length); } } public static class TL_messages_requestEncryption extends TLObject { public static int constructor = 0xf64daf43; public InputUser user_id; public int random_id; public byte[] g_a; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return EncryptedChat.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); stream.writeInt32(random_id); stream.writeByteArray(g_a); } } public static class TL_messages_acceptEncryption extends TLObject { public static int constructor = 0x3dbc0415; public TL_inputEncryptedChat peer; public byte[] g_b; public long key_fingerprint; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return EncryptedChat.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeByteArray(g_b); stream.writeInt64(key_fingerprint); } } public static class TL_messages_discardEncryption extends TLObject { public static int constructor = 0xedd923c5; public int chat_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(chat_id); } } public static class TL_messages_setEncryptedTyping extends TLObject { public static int constructor = 0x791451ed; public TL_inputEncryptedChat peer; public boolean typing; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeBool(typing); } } public static class TL_messages_readEncryptedHistory extends TLObject { public static int constructor = 0x7f4b690a; public TL_inputEncryptedChat peer; public int max_date; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(max_date); } } public static class TL_messages_receivedQueue extends TLObject { public static int constructor = 0x55a5bb66; public int max_qts; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { vector.objects.add(stream.readInt64(exception)); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(max_qts); } } public static class TL_messages_reportEncryptedSpam extends TLObject { public static int constructor = 0x4b0c8c0f; public TL_inputEncryptedChat peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_help_getSupport extends TLObject { public static int constructor = 0x9cdf08cd; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_help_support.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_readMessageContents extends TLObject { public static int constructor = 0x36a73f77; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedMessages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_account_checkUsername extends TLObject { public static int constructor = 0x2714d86c; public String username; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(username); } } public static class TL_account_updateUsername extends TLObject { public static int constructor = 0x3e0bdd7c; public String username; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return User.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(username); } } public static class TL_contacts_search extends TLObject { public static int constructor = 0x11f812d8; public String q; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_contacts_found.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); stream.writeInt32(limit); } } public static class TL_account_getPrivacy extends TLObject { public static int constructor = 0xdadbc950; public InputPrivacyKey key; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_privacyRules.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); key.serializeToStream(stream); } } public static class TL_account_setPrivacy extends TLObject { public static int constructor = 0xc9f81ce8; public InputPrivacyKey key; public ArrayList rules = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_privacyRules.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); key.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = rules.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { rules.get(a).serializeToStream(stream); } } } public static class TL_account_deleteAccount extends TLObject { public static int constructor = 0x418d4e0b; public String reason; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(reason); } } public static class TL_account_getAccountTTL extends TLObject { public static int constructor = 0x8fc711d; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_accountDaysTTL.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_setAccountTTL extends TLObject { public static int constructor = 0x2442485e; public TL_accountDaysTTL ttl; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); ttl.serializeToStream(stream); } } public static class TL_contacts_resolveUsername extends TLObject { public static int constructor = 0xf93ccba3; public String username; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_contacts_resolvedPeer.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(username); } } public static class TL_contacts_getTopPeers extends TLObject { public static int constructor = 0xd4982db5; public int flags; public boolean correspondents; public boolean bots_pm; public boolean bots_inline; public boolean phone_calls; public boolean groups; public boolean channels; public int offset; public int limit; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return contacts_TopPeers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = correspondents ? (flags | 1) : (flags &~ 1); flags = bots_pm ? (flags | 2) : (flags &~ 2); flags = bots_inline ? (flags | 4) : (flags &~ 4); flags = phone_calls ? (flags | 8) : (flags &~ 8); flags = groups ? (flags | 1024) : (flags &~ 1024); flags = channels ? (flags | 32768) : (flags &~ 32768); stream.writeInt32(flags); stream.writeInt32(offset); stream.writeInt32(limit); stream.writeInt32(hash); } } public static class TL_contacts_resetTopPeerRating extends TLObject { public static int constructor = 0x1ae373ac; public TopPeerCategory category; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); category.serializeToStream(stream); peer.serializeToStream(stream); } } public static class TL_account_sendChangePhoneCode extends TLObject { public static int constructor = 0x82574ae5; public String phone_number; public TL_codeSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_sentCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); settings.serializeToStream(stream); } } public static class TL_account_changePhone extends TLObject { public static int constructor = 0x70c32edb; public String phone_number; public String phone_code_hash; public String phone_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return User.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); stream.writeString(phone_code); } } public static class TL_account_getWebAuthorizations extends TLObject { public static int constructor = 0x182e6d6f; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_webAuthorizations.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_resetWebAuthorization extends TLObject { public static int constructor = 0x2d01b9ef; public long hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(hash); } } public static class TL_account_resetWebAuthorizations extends TLObject { public static int constructor = 0x682d2594; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_getAllSecureValues extends TLObject { public static int constructor = 0xb288bc7d; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_secureValue object = TL_secureValue.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_getSecureValue extends TLObject { public static int constructor = 0x73665bc2; public ArrayList types = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_secureValue object = TL_secureValue.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = types.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { types.get(a).serializeToStream(stream); } } } public static class TL_account_saveSecureValue extends TLObject { public static int constructor = 0x899fe31d; public TL_inputSecureValue value; public long secure_secret_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_secureValue.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); value.serializeToStream(stream); stream.writeInt64(secure_secret_id); } } public static class TL_account_deleteSecureValue extends TLObject { public static int constructor = 0xb880bc4b; public ArrayList types = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = types.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { types.get(a).serializeToStream(stream); } } } public static class TL_account_getAuthorizationForm extends TLObject { public static int constructor = 0xb86ba8e1; public int bot_id; public String scope; public String public_key; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_authorizationForm.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(bot_id); stream.writeString(scope); stream.writeString(public_key); } } public static class TL_account_acceptAuthorization extends TLObject { public static int constructor = 0xe7027c94; public int bot_id; public String scope; public String public_key; public ArrayList value_hashes = new ArrayList<>(); public TL_secureCredentialsEncrypted credentials; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(bot_id); stream.writeString(scope); stream.writeString(public_key); stream.writeInt32(0x1cb5c415); int count = value_hashes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { value_hashes.get(a).serializeToStream(stream); } credentials.serializeToStream(stream); } } public static class TL_account_sendVerifyPhoneCode extends TLObject { public static int constructor = 0xa5a356f9; public String phone_number; public TL_codeSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_sentCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); settings.serializeToStream(stream); } } public static class TL_account_verifyPhone extends TLObject { public static int constructor = 0x4dd3a7f6; public String phone_number; public String phone_code_hash; public String phone_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); stream.writeString(phone_code); } } public static class TL_account_sendVerifyEmailCode extends TLObject { public static int constructor = 0x7011509f; public String email; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_sentEmailCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(email); } } public static class TL_account_verifyEmail extends TLObject { public static int constructor = 0xecba39db; public String email; public String code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(email); stream.writeString(code); } } public static class TL_account_confirmPasswordEmail extends TLObject { public static int constructor = 0x8fdf1920; public String code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(code); } } public static class TL_account_resendPasswordEmail extends TLObject { public static int constructor = 0x7a7f2a15; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_cancelPasswordEmail extends TLObject { public static int constructor = 0xc1cbd5b6; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_getContactSignUpNotification extends TLObject { public static int constructor = 0x9f07c728; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_setContactSignUpNotification extends TLObject { public static int constructor = 0xcff43f61; public boolean silent; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(silent); } } public static class TL_account_getNotifyExceptions extends TLObject { public static int constructor = 0x53577479; public int flags; public boolean compare_sound; public InputNotifyPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = compare_sound ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); if ((flags & 1) != 0) { peer.serializeToStream(stream); } } } public static class TL_account_getWallPaper extends TLObject { public static int constructor = 0xfc8ddbea; public InputWallPaper wallpaper; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return WallPaper.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); wallpaper.serializeToStream(stream); } } public static class TL_account_uploadWallPaper extends TLObject { public static int constructor = 0xdd853661; public InputFile file; public String mime_type; public TL_wallPaperSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return WallPaper.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); file.serializeToStream(stream); stream.writeString(mime_type); settings.serializeToStream(stream); } } public static class TL_account_saveWallPaper extends TLObject { public static int constructor = 0x6c5a5b37; public InputWallPaper wallpaper; public boolean unsave; public TL_wallPaperSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); wallpaper.serializeToStream(stream); stream.writeBool(unsave); settings.serializeToStream(stream); } } public static class TL_account_installWallPaper extends TLObject { public static int constructor = 0xfeed5769; public InputWallPaper wallpaper; public TL_wallPaperSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); wallpaper.serializeToStream(stream); settings.serializeToStream(stream); } } public static class TL_account_resetWallPapers extends TLObject { public static int constructor = 0xbb3b9804; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_getAutoDownloadSettings extends TLObject { public static int constructor = 0x56da0b3f; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_autoDownloadSettings.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_saveAutoDownloadSettings extends TLObject { public static int constructor = 0x76f36233; public int flags; public boolean low; public boolean high; public TL_autoDownloadSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = low ? (flags | 1) : (flags &~ 1); flags = high ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); settings.serializeToStream(stream); } } public static class TL_messages_getAllStickers extends TLObject { public static int constructor = 0x1c9618b1; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_AllStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_account_updateDeviceLocked extends TLObject { public static int constructor = 0x38df3532; public int period; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(period); } } public static class TL_messages_getWebPagePreview extends TLObject { public static int constructor = 0x8b68b0cc; public int flags; public String message; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return MessageMedia.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeString(message); if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_account_getAuthorizations extends TLObject { public static int constructor = 0xe320c158; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_authorizations.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_resetAuthorization extends TLObject { public static int constructor = 0xdf77f3bc; public long hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(hash); } } public static class TL_account_getPassword extends TLObject { public static int constructor = 0x548a30f5; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_password.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_account_getPasswordSettings extends TLObject { public static int constructor = 0x9cd4eaf9; public InputCheckPasswordSRP password; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_passwordSettings.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); password.serializeToStream(stream); } } public static class TL_account_updatePasswordSettings extends TLObject { public static int constructor = 0xa59b102f; public InputCheckPasswordSRP password; public TL_account_passwordInputSettings new_settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); password.serializeToStream(stream); new_settings.serializeToStream(stream); } } public static class TL_account_sendConfirmPhoneCode extends TLObject { public static int constructor = 0x1b3faa88; public String hash; public TL_codeSettings settings; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_sentCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(hash); settings.serializeToStream(stream); } } public static class TL_account_confirmPhone extends TLObject { public static int constructor = 0x5f2178c3; public String phone_code_hash; public String phone_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_code_hash); stream.writeString(phone_code); } } public static class TL_account_getTmpPassword extends TLObject { public static int constructor = 0x449e0b51; public InputCheckPasswordSRP password; public int period; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_account_tmpPassword.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); password.serializeToStream(stream); stream.writeInt32(period); } } public static class TL_auth_checkPassword extends TLObject { public static int constructor = 0xd18b4d16; public InputCheckPasswordSRP password; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_authorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); password.serializeToStream(stream); } } public static class TL_auth_requestPasswordRecovery extends TLObject { public static int constructor = 0xd897bc66; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_passwordRecovery.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_auth_recoverPassword extends TLObject { public static int constructor = 0x4ea56e92; public String code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_authorization.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(code); } } public static class TL_auth_resendCode extends TLObject { public static int constructor = 0x3ef1a9bf; public String phone_number; public String phone_code_hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_auth_sentCode.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); } } public static class TL_auth_cancelCode extends TLObject { public static int constructor = 0x1f040578; public String phone_number; public String phone_code_hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(phone_number); stream.writeString(phone_code_hash); } } public static class TL_messages_exportChatInvite extends TLObject { public static int constructor = 0xdf7534c; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return ExportedChatInvite.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_checkChatInvite extends TLObject { public static int constructor = 0x3eadb1bb; public String hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return ChatInvite.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(hash); } } public static class TL_messages_importChatInvite extends TLObject { public static int constructor = 0x6c50051c; public String hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(hash); } } public static class TL_messages_getStickerSet extends TLObject { public static int constructor = 0x2619a90e; public InputStickerSet stickerset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_stickerSet.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stickerset.serializeToStream(stream); } } public static class TL_messages_installStickerSet extends TLObject { public static int constructor = 0xc78fe460; public InputStickerSet stickerset; public boolean archived; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_StickerSetInstallResult.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stickerset.serializeToStream(stream); stream.writeBool(archived); } } public static class TL_messages_uninstallStickerSet extends TLObject { public static int constructor = 0xf96e55de; public InputStickerSet stickerset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stickerset.serializeToStream(stream); } } public static class TL_messages_startBot extends TLObject { public static int constructor = 0xe6df7378; public InputUser bot; public InputPeer peer; public long random_id; public String start_param; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); bot.serializeToStream(stream); peer.serializeToStream(stream); stream.writeInt64(random_id); stream.writeString(start_param); } } public static class TL_messages_getMessagesViews extends TLObject { public static int constructor = 0xc4c8a55d; public InputPeer peer; public ArrayList id = new ArrayList<>(); public boolean increment; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { vector.objects.add(stream.readInt32(exception)); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } stream.writeBool(increment); } } public static class TL_messages_searchGifs extends TLObject { public static int constructor = 0xbf9a776b; public String q; public int offset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_foundGifs.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(q); stream.writeInt32(offset); } } public static class TL_messages_getSavedGifs extends TLObject { public static int constructor = 0x83bf3d52; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_SavedGifs.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_messages_saveGif extends TLObject { public static int constructor = 0x327a30cb; public InputDocument id; public boolean unsave; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); stream.writeBool(unsave); } } public static class TL_messages_getInlineBotResults extends TLObject { public static int constructor = 0x514e999d; public int flags; public InputUser bot; public InputPeer peer; public InputGeoPoint geo_point; public String query; public String offset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_BotResults.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); bot.serializeToStream(stream); peer.serializeToStream(stream); if ((flags & 1) != 0) { geo_point.serializeToStream(stream); } stream.writeString(query); stream.writeString(offset); } } public static class TL_messages_sendInlineBotResult extends TLObject { public static int constructor = 0xb16e06fe; public int flags; public boolean silent; public boolean background; public boolean clear_draft; public boolean hide_via; public InputPeer peer; public int reply_to_msg_id; public long random_id; public long query_id; public String id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = silent ? (flags | 32) : (flags &~ 32); flags = background ? (flags | 64) : (flags &~ 64); flags = clear_draft ? (flags | 128) : (flags &~ 128); flags = hide_via ? (flags | 2048) : (flags &~ 2048); stream.writeInt32(flags); peer.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt64(random_id); stream.writeInt64(query_id); stream.writeString(id); } } public static class TL_messages_getMessageEditData extends TLObject { public static int constructor = 0xfda68d36; public InputPeer peer; public int id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_messageEditData.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(id); } } public static class TL_messages_editMessage extends TLObject { public static int constructor = 0xd116f31e; public int flags; public boolean no_webpage; public InputPeer peer; public int id; public String message; public InputMedia media; public ReplyMarkup reply_markup; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = no_webpage ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(id); if ((flags & 2048) != 0) { stream.writeString(message); } if ((flags & 16384) != 0) { media.serializeToStream(stream); } if ((flags & 4) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_messages_getBotCallbackAnswer extends TLObject { public static int constructor = 0x810a9fec; public int flags; public boolean game; public InputPeer peer; public int msg_id; public byte[] data; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_botCallbackAnswer.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = game ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(msg_id); if ((flags & 1) != 0) { stream.writeByteArray(data); } } } public static class TL_messages_setBotCallbackAnswer extends TLObject { public static int constructor = 0xd58f130a; public int flags; public boolean alert; public long query_id; public String message; public String url; public int cache_time; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = alert ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt64(query_id); if ((flags & 1) != 0) { stream.writeString(message); } if ((flags & 4) != 0) { stream.writeString(url); } stream.writeInt32(cache_time); } } public static class TL_messages_getPeerDialogs extends TLObject { public static int constructor = 0xe470bcfd; public ArrayList peers = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_peerDialogs.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = peers.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { peers.get(a).serializeToStream(stream); } } } public static class TL_messages_saveDraft extends TLObject { public static int constructor = 0xbc39e14b; public int flags; public boolean no_webpage; public int reply_to_msg_id; public InputPeer peer; public String message; public ArrayList entities = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = no_webpage ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } peer.serializeToStream(stream); stream.writeString(message); if ((flags & 8) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } } } public static class TL_messages_getAllDrafts extends TLObject { public static int constructor = 0x6a3f8d65; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_getFeaturedStickers extends TLObject { public static int constructor = 0x2dacca4f; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_FeaturedStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_messages_readFeaturedStickers extends TLObject { public static int constructor = 0x5b118126; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(id.get(a)); } } } public static class TL_messages_getRecentStickers extends TLObject { public static int constructor = 0x5ea192c9; public int flags; public boolean attached; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_RecentStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = attached ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(hash); } } public static class TL_messages_saveRecentSticker extends TLObject { public static int constructor = 0x392718f8; public int flags; public boolean attached; public InputDocument id; public boolean unsave; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = attached ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); id.serializeToStream(stream); stream.writeBool(unsave); } } public static class TL_messages_clearRecentStickers extends TLObject { public static int constructor = 0x8999602d; public int flags; public boolean attached; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = attached ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); } } public static class TL_messages_getArchivedStickers extends TLObject { public static int constructor = 0x57f17692; public int flags; public boolean masks; public long offset_id; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_archivedStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = masks ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt64(offset_id); stream.writeInt32(limit); } } public static class TL_messages_setGameScore extends TLObject { public static int constructor = 0x8ef8ecc0; public int flags; public boolean edit_message; public boolean force; public InputPeer peer; public int id; public InputUser user_id; public int score; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = edit_message ? (flags | 1) : (flags &~ 1); flags = force ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(id); user_id.serializeToStream(stream); stream.writeInt32(score); } } public static class TL_messages_setInlineGameScore extends TLObject { public static int constructor = 0x15ad9f64; public int flags; public boolean edit_message; public boolean force; public TL_inputBotInlineMessageID id; public InputUser user_id; public int score; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = edit_message ? (flags | 1) : (flags &~ 1); flags = force ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); id.serializeToStream(stream); user_id.serializeToStream(stream); stream.writeInt32(score); } } public static class TL_messages_getMaskStickers extends TLObject { public static int constructor = 0x65b8c79f; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_AllStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_messages_getGameHighScores extends TLObject { public static int constructor = 0xe822649d; public InputPeer peer; public int id; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_highScores.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(id); user_id.serializeToStream(stream); } } public static class TL_messages_getInlineGameHighScores extends TLObject { public static int constructor = 0xf635e1b; public TL_inputBotInlineMessageID id; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_highScores.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); user_id.serializeToStream(stream); } } public static class TL_messages_getAttachedStickers extends TLObject { public static int constructor = 0xcc5b67cc; public InputStickeredMedia media; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { StickerSetCovered object = StickerSetCovered.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); media.serializeToStream(stream); } } public static class TL_messages_getCommonChats extends TLObject { public static int constructor = 0xd0a48c4; public InputUser user_id; public int max_id; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Chats.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); stream.writeInt32(max_id); stream.writeInt32(limit); } } public static class TL_messages_getAllChats extends TLObject { public static int constructor = 0xeba80ff0; public ArrayList except_ids = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Chats.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = except_ids.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(except_ids.get(a)); } } } public static class TL_messages_getWebPage extends TLObject { public static int constructor = 0x32ca8f91; public String url; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return WebPage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt32(hash); } } public static class TL_messages_toggleDialogPin extends TLObject { public static int constructor = 0xa731e257; public int flags; public boolean pinned; public InputDialogPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = pinned ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); } } public static class TL_messages_reorderPinnedDialogs extends TLObject { public static int constructor = 0x5b51d63f; public int flags; public boolean force; public ArrayList order = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = force ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = order.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { order.get(a).serializeToStream(stream); } } } public static class TL_messages_getPinnedDialogs extends TLObject { public static int constructor = 0xe254d64e; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_peerDialogs.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_uploadMedia extends TLObject { public static int constructor = 0x519bc2b1; public InputPeer peer; public InputMedia media; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return MessageMedia.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); media.serializeToStream(stream); } } public static class TL_messages_sendScreenshotNotification extends TLObject { public static int constructor = 0xc97df020; public InputPeer peer; public int reply_to_msg_id; public long random_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(reply_to_msg_id); stream.writeInt64(random_id); } } public static class TL_messages_getFavedStickers extends TLObject { public static int constructor = 0x21ce0b0e; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_FavedStickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(hash); } } public static class TL_messages_faveSticker extends TLObject { public static int constructor = 0xb9ffc55b; public InputDocument id; public boolean unfave; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); id.serializeToStream(stream); stream.writeBool(unfave); } } public static class TL_messages_getUnreadMentions extends TLObject { public static int constructor = 0x46578472; public InputPeer peer; public int offset_id; public int add_offset; public int limit; public int max_id; public int min_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(offset_id); stream.writeInt32(add_offset); stream.writeInt32(limit); stream.writeInt32(max_id); stream.writeInt32(min_id); } } public static class TL_messages_readMentions extends TLObject { public static int constructor = 0xf0189d3; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedHistory.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_getRecentLocations extends TLObject { public static int constructor = 0xbbc45b09; public InputPeer peer; public int limit; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(limit); stream.writeInt32(hash); } } public static class TL_messages_sendMultiMedia extends TLObject { public static int constructor = 0x2095512f; public int flags; public boolean silent; public boolean background; public boolean clear_draft; public InputPeer peer; public int reply_to_msg_id; public ArrayList multi_media = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = silent ? (flags | 32) : (flags &~ 32); flags = background ? (flags | 64) : (flags &~ 64); flags = clear_draft ? (flags | 128) : (flags &~ 128); stream.writeInt32(flags); peer.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(0x1cb5c415); int count = multi_media.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { multi_media.get(a).serializeToStream(stream); } } } public static class TL_messages_clearAllDrafts extends TLObject { public static int constructor = 0x7e58ee9c; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_messages_updatePinnedMessage extends TLObject { public static int constructor = 0xd2aaf7ec; public int flags; public boolean silent; public InputPeer peer; public int id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = silent ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(id); } } public static class TL_messages_sendVote extends TLObject { public static int constructor = 0x10ea6184; public InputPeer peer; public int msg_id; public ArrayList options = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(msg_id); stream.writeInt32(0x1cb5c415); int count = options.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeByteArray(options.get(a)); } } } public static class TL_messages_getPollResults extends TLObject { public static int constructor = 0x73bb643b; public InputPeer peer; public int msg_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(msg_id); } } public static class TL_messages_getOnlines extends TLObject { public static int constructor = 0x6e2be050; public InputPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_chatOnlines.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_messages_getStatsURL extends TLObject { public static int constructor = 0xebd58cb3; public InputPeer peer; public String params; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_statsURL.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeString(params); } } public static class TL_messages_editChatAbout extends TLObject { public static int constructor = 0xdef60797; public InputPeer peer; public String about; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeString(about); } } public static class TL_messages_editChatDefaultBannedRights extends TLObject { public static int constructor = 0xa5866b41; public InputPeer peer; public TL_chatBannedRights banned_rights; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); banned_rights.serializeToStream(stream); } } public static class TL_help_getAppChangelog extends TLObject { public static int constructor = 0x9010ef6f; public String prev_app_version; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(prev_app_version); } } public static class TL_messages_uploadEncryptedFile extends TLObject { public static int constructor = 0x5057c497; public TL_inputEncryptedChat peer; public InputEncryptedFile file; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return EncryptedFile.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); file.serializeToStream(stream); } } public static class TL_messages_searchStickerSets extends TLObject { public static int constructor = 0xc2b7d08b; public int flags; public boolean exclude_featured; public String q; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_FoundStickerSets.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = exclude_featured ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeString(q); stream.writeInt32(hash); } } public static class TL_messages_markDialogUnread extends TLObject { public static int constructor = 0xc286d98f; public int flags; public boolean unread; public InputDialogPeer peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); peer.serializeToStream(stream); } } public static class TL_messages_getDialogUnreadMarks extends TLObject { public static int constructor = 0x22e24e22; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { DialogPeer object = DialogPeer.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_setBotUpdatesStatus extends TLObject { public static int constructor = 0xec22cfcd; public int pending_updates_count; public String message; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(pending_updates_count); stream.writeString(message); } } public static class TL_messages_reorderStickerSets extends TLObject { public static int constructor = 0x78337739; public int flags; public boolean masks; public ArrayList order = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = masks ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(0x1cb5c415); int count = order.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt64(order.get(a)); } } } public static class TL_messages_getDocumentByHash extends TLObject { public static int constructor = 0x338e2464; public byte[] sha256; public int size; public String mime_type; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Document.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(sha256); stream.writeInt32(size); stream.writeString(mime_type); } } public static class TL_help_getRecentMeUrls extends TLObject { public static int constructor = 0x3dc0f114; public String referer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_help_recentMeUrls.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(referer); } } public static class TL_help_getProxyData extends TLObject { public static int constructor = 0x3d7758e1; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_ProxyData.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_help_getDeepLinkInfo extends TLObject { public static int constructor = 0x3fedc75f; public String path; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return help_DeepLinkInfo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(path); } } public static class TL_channels_readHistory extends TLObject { public static int constructor = 0xcc104937; public InputChannel channel; public int max_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(max_id); } } public static class TL_channels_deleteMessages extends TLObject { public static int constructor = 0x84c1fd4e; public InputChannel channel; public ArrayList id = new ArrayList<>(); public static TL_channels_deleteMessages TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_channels_deleteMessages.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_channels_deleteMessages", constructor)); } else { return null; } } TL_channels_deleteMessages result = new TL_channels_deleteMessages(); result.readParams(stream, exception); return result; } public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedMessages.TLdeserialize(stream, constructor, exception); } public void readParams(AbstractSerializedData stream, boolean exception) { channel = InputChannel.TLdeserialize(stream, stream.readInt32(exception), exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { id.add(stream.readInt32(exception)); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_channels_deleteUserHistory extends TLObject { public static int constructor = 0xd10dd71b; public InputChannel channel; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_affectedHistory.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); user_id.serializeToStream(stream); } } public static class TL_channels_reportSpam extends TLObject { public static int constructor = 0xfe087810; public InputChannel channel; public InputUser user_id; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); user_id.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_channels_getMessages extends TLObject { public static int constructor = 0x93d7b347; public InputChannel channel; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Messages.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_channels_getParticipants extends TLObject { public static int constructor = 0x123e05e9; public InputChannel channel; public ChannelParticipantsFilter filter; public int offset; public int limit; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return channels_ChannelParticipants.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); filter.serializeToStream(stream); stream.writeInt32(offset); stream.writeInt32(limit); stream.writeInt32(hash); } } public static class TL_channels_getParticipant extends TLObject { public static int constructor = 0x546dd7a6; public InputChannel channel; public InputUser user_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_channels_channelParticipant.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); user_id.serializeToStream(stream); } } public static class TL_channels_getChannels extends TLObject { public static int constructor = 0xa7f6bbb; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_chats.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { id.get(a).serializeToStream(stream); } } } public static class TL_channels_getFullChannel extends TLObject { public static int constructor = 0x8736a09; public InputChannel channel; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_chatFull.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); } } public static class TL_channels_createChannel extends TLObject { public static int constructor = 0xf4893d7f; public int flags; public boolean broadcast; public boolean megagroup; public String title; public String about; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = broadcast ? (flags | 1) : (flags &~ 1); flags = megagroup ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeString(title); stream.writeString(about); } } public static class TL_channels_editAdmin extends TLObject { public static int constructor = 0x70f893ba; public InputChannel channel; public InputUser user_id; public TL_chatAdminRights admin_rights; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); user_id.serializeToStream(stream); admin_rights.serializeToStream(stream); } } public static class TL_channels_editTitle extends TLObject { public static int constructor = 0x566decd0; public InputChannel channel; public String title; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeString(title); } } public static class TL_channels_editPhoto extends TLObject { public static int constructor = 0xf12e57c9; public InputChannel channel; public InputChatPhoto photo; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); photo.serializeToStream(stream); } } public static class TL_channels_checkUsername extends TLObject { public static int constructor = 0x10e6bd2c; public InputChannel channel; public String username; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeString(username); } } public static class TL_channels_updateUsername extends TLObject { public static int constructor = 0x3514b3de; public InputChannel channel; public String username; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeString(username); } } public static class TL_channels_joinChannel extends TLObject { public static int constructor = 0x24b524c5; public InputChannel channel; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); } } public static class TL_channels_leaveChannel extends TLObject { public static int constructor = 0xf836aa95; public InputChannel channel; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); } } public static class TL_channels_inviteToChannel extends TLObject { public static int constructor = 0x199f3a6c; public InputChannel channel; public ArrayList users = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_channels_deleteChannel extends TLObject { public static int constructor = 0xc0111fe3; public InputChannel channel; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); } } public static class TL_channels_exportMessageLink extends TLObject { public static int constructor = 0xc846d22d; public InputChannel channel; public int id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_exportedMessageLink.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(id); } } public static class TL_channels_toggleSignatures extends TLObject { public static int constructor = 0x1f69b606; public InputChannel channel; public boolean enabled; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeBool(enabled); } } public static class TL_channels_getAdminedPublicChannels extends TLObject { public static int constructor = 0x8d8d82d7; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_messages_chats.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_channels_editBanned extends TLObject { public static int constructor = 0x72796912; public InputChannel channel; public InputUser user_id; public TL_chatBannedRights banned_rights; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); user_id.serializeToStream(stream); banned_rights.serializeToStream(stream); } } public static class TL_channels_getAdminLog extends TLObject { public static int constructor = 0x33ddf480; public int flags; public InputChannel channel; public String q; public TL_channelAdminLogEventsFilter events_filter; public ArrayList admins = new ArrayList<>(); public long max_id; public long min_id; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_channels_adminLogResults.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); channel.serializeToStream(stream); stream.writeString(q); if ((flags & 1) != 0) { events_filter.serializeToStream(stream); } if ((flags & 2) != 0) { stream.writeInt32(0x1cb5c415); int count = admins.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { admins.get(a).serializeToStream(stream); } } stream.writeInt64(max_id); stream.writeInt64(min_id); stream.writeInt32(limit); } } public static class TL_channels_setStickers extends TLObject { public static int constructor = 0xea8ca4f9; public InputChannel channel; public InputStickerSet stickerset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stickerset.serializeToStream(stream); } } public static class TL_channels_readMessageContents extends TLObject { public static int constructor = 0xeab5dc38; public InputChannel channel; public ArrayList id = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = id.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeInt32(id.get(a)); } } } public static class TL_channels_deleteHistory extends TLObject { public static int constructor = 0xaf369d42; public InputChannel channel; public int max_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); channel.serializeToStream(stream); stream.writeInt32(max_id); } } public static class TL_phone_getCallConfig extends TLObject { public static int constructor = 0x55451fa9; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_dataJSON.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_phone_requestCall extends TLObject { public static int constructor = 0x5b95b3d4; public InputUser user_id; public int random_id; public byte[] g_a_hash; public TL_phoneCallProtocol protocol; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_phoneCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); user_id.serializeToStream(stream); stream.writeInt32(random_id); stream.writeByteArray(g_a_hash); protocol.serializeToStream(stream); } } public static class TL_phone_acceptCall extends TLObject { public static int constructor = 0x3bd2b4a0; public TL_inputPhoneCall peer; public byte[] g_b; public TL_phoneCallProtocol protocol; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_phoneCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeByteArray(g_b); protocol.serializeToStream(stream); } } public static class TL_phone_confirmCall extends TLObject { public static int constructor = 0x2efe1722; public TL_inputPhoneCall peer; public byte[] g_a; public long key_fingerprint; public TL_phoneCallProtocol protocol; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_phoneCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeByteArray(g_a); stream.writeInt64(key_fingerprint); protocol.serializeToStream(stream); } } public static class TL_phone_receivedCall extends TLObject { public static int constructor = 0x17d54f61; public TL_inputPhoneCall peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_phone_discardCall extends TLObject { public static int constructor = 0x78d413a6; public TL_inputPhoneCall peer; public int duration; public PhoneCallDiscardReason reason; public long connection_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(duration); reason.serializeToStream(stream); stream.writeInt64(connection_id); } } public static class TL_phone_setCallRating extends TLObject { public static int constructor = 0x1c536a34; public TL_inputPhoneCall peer; public int rating; public String comment; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt32(rating); stream.writeString(comment); } } public static class TL_phone_saveCallDebug extends TLObject { public static int constructor = 0x277add7e; public TL_inputPhoneCall peer; public TL_dataJSON debug; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); debug.serializeToStream(stream); } } public static class TL_phone_createGroupCall extends TLObject { public static int constructor = 0x8504e5b6; public int flags; public InputChannel channel; public int random_id; public TL_phoneCallProtocol protocol; public byte[] encryption_key; public long key_fingerprint; public byte[] streams; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); channel.serializeToStream(stream); stream.writeInt32(random_id); protocol.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeByteArray(encryption_key); } stream.writeInt64(key_fingerprint); stream.writeByteArray(streams); } } public static class TL_phone_joinGroupCall extends TLObject { public static int constructor = 0x9db32d7; public TL_inputGroupCall call; public byte[] streams; public long key_fingerprint; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); stream.writeByteArray(streams); stream.writeInt64(key_fingerprint); } } public static class TL_phone_leaveGroupCall extends TLObject { public static int constructor = 0x60e98e5f; public TL_inputGroupCall call; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); } } public static class TL_phone_editGroupCallMember extends TLObject { public static int constructor = 0x46659be4; public int flags; public boolean readonly; public boolean kicked; public TL_inputGroupCall call; public InputUser user_id; public byte[] streams; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = readonly ? (flags | 1) : (flags &~ 1); flags = kicked ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); call.serializeToStream(stream); user_id.serializeToStream(stream); if ((flags & 4) != 0) { stream.writeByteArray(streams); } } } public static class TL_phone_inviteGroupCallMembers extends TLObject { public static int constructor = 0xcc92a6dc; public int flags; public boolean uninvite; public TL_inputGroupCall call; public ArrayList users = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = uninvite ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); call.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = users.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { users.get(a).serializeToStream(stream); } } } public static class TL_phone_discardGroupCall extends TLObject { public static int constructor = 0x7a777135; public TL_inputGroupCall call; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Updates.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); } } public static class TL_phone_getGroupCall extends TLObject { public static int constructor = 0xc7cb017; public TL_inputGroupCall call; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_groupCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); call.serializeToStream(stream); } } public static class TL_phone_upgradePhoneCall extends TLObject { public static int constructor = 0x98e3cdba; public int flags; public TL_inputPhoneCall peer; public byte[] encryption_key; public long key_fingerprint; public byte[] streams; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_groupCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); peer.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeByteArray(encryption_key); } stream.writeInt64(key_fingerprint); stream.writeByteArray(streams); } } public static class TL_phone_getCall extends TLObject { public static int constructor = 0x8adb4f79; public TL_inputPhoneCall peer; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_phone_phoneCall.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); } } public static class TL_payments_getPaymentForm extends TLObject { public static int constructor = 0x99f09745; public int msg_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_payments_paymentForm.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(msg_id); } } public static class TL_payments_getPaymentReceipt extends TLObject { public static int constructor = 0xa092a980; public int msg_id; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_payments_paymentReceipt.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(msg_id); } } public static class TL_help_supportName extends TLObject { public static int constructor = 0x8c05f1c9; public String name; public static TL_help_supportName TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_help_supportName.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_help_supportName", constructor)); } else { return null; } } TL_help_supportName result = new TL_help_supportName(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { name = stream.readString(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(name); } } public static class TL_payments_validateRequestedInfo extends TLObject { public static int constructor = 0x770a8e74; public int flags; public boolean save; public int msg_id; public TL_paymentRequestedInfo info; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_payments_validatedRequestedInfo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = save ? (flags | 1) : (flags &~ 1); stream.writeInt32(flags); stream.writeInt32(msg_id); info.serializeToStream(stream); } } public static class TL_payments_sendPaymentForm extends TLObject { public static int constructor = 0x2b8879b3; public int flags; public int msg_id; public String requested_info_id; public String shipping_option_id; public InputPaymentCredentials credentials; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return payments_PaymentResult.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(flags); stream.writeInt32(msg_id); if ((flags & 1) != 0) { stream.writeString(requested_info_id); } if ((flags & 2) != 0) { stream.writeString(shipping_option_id); } credentials.serializeToStream(stream); } } public static class TL_payments_getSavedInfo extends TLObject { public static int constructor = 0x227d824b; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_payments_savedInfo.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_payments_clearSavedInfo extends TLObject { public static int constructor = 0xd83d70c1; public int flags; public boolean credentials; public boolean info; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = credentials ? (flags | 1) : (flags &~ 1); flags = info ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); } } public static class TL_langpack_getLangPack extends TLObject { public static int constructor = 0x9ab5c58e; public String lang_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_langPackDifference.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(lang_code); } } public static class TL_langpack_getStrings extends TLObject { public static int constructor = 0x2e1ee318; public String lang_code; public ArrayList keys = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { LangPackString object = LangPackString.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(lang_code); stream.writeInt32(0x1cb5c415); int count = keys.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { stream.writeString(keys.get(a)); } } } public static class TL_langpack_getDifference extends TLObject { public static int constructor = 0xb2e4d7d; public int from_version; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_langPackDifference.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(from_version); } } public static class TL_langpack_getLanguages extends TLObject { public static int constructor = 0x800fd57d; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_langPackLanguage object = TL_langPackLanguage.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); } } public static class TL_langpack_getLanguage extends TLObject { public static int constructor = 0x6a596502; public String lang_pack; public String lang_code; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_langPackLanguage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(lang_pack); stream.writeString(lang_code); } } //manually created //RichText start public static abstract class RichText extends TLObject { public String url; public long webpage_id; public String email; public ArrayList texts = new ArrayList<>(); public RichText parentRichText; public static RichText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { RichText result = null; switch (constructor) { case 0x1ccb966a: result = new TL_textPhone(); break; case 0xc7fb5e01: result = new TL_textSuperscript(); break; case 0x81ccf4f: result = new TL_textImage(); break; case 0xc12622c4: result = new TL_textUnderline(); break; case 0xed6a8504: result = new TL_textSubscript(); break; case 0x3c2884c1: result = new TL_textUrl(); break; case 0x35553762: result = new TL_textAnchor(); break; case 0xdc3d824f: result = new TL_textEmpty(); break; case 0xde5a0dd6: result = new TL_textEmail(); break; case 0x744694e0: result = new TL_textPlain(); break; case 0x6724abc4: result = new TL_textBold(); break; case 0x9bf8bb95: result = new TL_textStrike(); break; case 0x7e6260d7: result = new TL_textConcat(); break; case 0xd912a59c: result = new TL_textItalic(); break; case 0x34b8621: result = new TL_textMarked(); break; case 0x6c3f19b9: result = new TL_textFixed(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in RichText", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_pageBlockList_layer82 extends TL_pageBlockList { public static int constructor = 0x3a58c7f4; public void readParams(AbstractSerializedData stream, boolean exception) { ordered = stream.readBool(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { RichText object = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } TLRPC.TL_pageListItemText item = new TL_pageListItemText(); item.text = object; items.add(item); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeBool(ordered); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { TLRPC.TL_pageListItemText item = (TLRPC.TL_pageListItemText) items.get(a); item.text.serializeToStream(stream); } } } //RichText end //MessageMedia start public static abstract class MessageMedia extends TLObject { public byte[] bytes; public Audio audio_unused; public int flags; public boolean shipping_address_requested; public Photo photo; public GeoPoint geo; public String currency; public String description; public int receipt_msg_id; public long total_amount; public String start_param; public String title; public String address; public String provider; public String venue_id; public Video video_unused; public Document document; public String captionLegacy; public TL_game game; public String phone_number; public String first_name; public String last_name; public String vcard; public int user_id; public WebPage webpage; public String venue_type; public boolean test; public int period; public int ttl_seconds; public static MessageMedia TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { MessageMedia result = null; switch (constructor) { case 0x29632a36: result = new TL_messageMediaUnsupported_old(); break; case 0xc6b68300: result = new TL_messageMediaAudio_layer45(); break; case 0xc8c45a2a: result = new TL_messageMediaPhoto_old(); break; case 0x84551347: result = new TL_messageMediaInvoice(); break; case 0x9f84f49e: result = new TL_messageMediaUnsupported(); break; case 0x3ded6320: result = new TL_messageMediaEmpty(); break; case 0x7912b71f: result = new TL_messageMediaVenue_layer71(); break; case 0x7c3c2609: result = new TL_messageMediaGeoLive(); break; case 0x2ec0533f: result = new TL_messageMediaVenue(); break; case 0xa2d24290: result = new TL_messageMediaVideo_old(); break; case 0x2fda2204: result = new TL_messageMediaDocument_old(); break; case 0xf3e02ea8: result = new TL_messageMediaDocument_layer68(); break; case 0xfdb19008: result = new TL_messageMediaGame(); break; case 0x7c4414d3: result = new TL_messageMediaDocument_layer74(); break; case 0x5e7d2f39: result = new TL_messageMediaContact_layer81(); break; case 0x695150d7: result = new TL_messageMediaPhoto(); break; case 0x4bd6e798: result = new TL_messageMediaPoll(); break; case 0xb5223b0f: result = new TL_messageMediaPhoto_layer74(); break; case 0x3d8ce53d: result = new TL_messageMediaPhoto_layer68(); break; case 0x5bcf1675: result = new TL_messageMediaVideo_layer45(); break; case 0x56e0d474: result = new TL_messageMediaGeo(); break; case 0xa32dd600: result = new TL_messageMediaWebPage(); break; case 0x9cb070d7: result = new TL_messageMediaDocument(); break; case 0xcbf24940: result = new TL_messageMediaContact(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in MessageMedia", constructor)); } if (result != null) { result.readParams(stream, exception); if (result.video_unused != null) { TL_messageMediaDocument mediaDocument = new TL_messageMediaDocument(); if (result.video_unused instanceof TLRPC.TL_videoEncrypted) { mediaDocument.document = new TLRPC.TL_documentEncrypted(); mediaDocument.document.key = result.video_unused.key; mediaDocument.document.iv = result.video_unused.iv; } else { mediaDocument.document = new TLRPC.TL_document(); } mediaDocument.flags = 3; mediaDocument.document.file_reference = new byte[0]; mediaDocument.document.id = result.video_unused.id; mediaDocument.document.access_hash = result.video_unused.access_hash; mediaDocument.document.date = result.video_unused.date; if (result.video_unused.mime_type != null) { mediaDocument.document.mime_type = result.video_unused.mime_type; } else { mediaDocument.document.mime_type = "video/mp4"; } mediaDocument.document.size = result.video_unused.size; mediaDocument.document.thumbs.add(result.video_unused.thumb); mediaDocument.document.dc_id = result.video_unused.dc_id; mediaDocument.captionLegacy = result.captionLegacy; TLRPC.TL_documentAttributeVideo attributeVideo = new TLRPC.TL_documentAttributeVideo(); attributeVideo.w = result.video_unused.w; attributeVideo.h = result.video_unused.h; attributeVideo.duration = result.video_unused.duration; mediaDocument.document.attributes.add(attributeVideo); result = mediaDocument; if (mediaDocument.captionLegacy == null) { mediaDocument.captionLegacy = ""; } } else if (result.audio_unused != null) { TL_messageMediaDocument mediaDocument = new TL_messageMediaDocument(); if (result.audio_unused instanceof TLRPC.TL_audioEncrypted) { mediaDocument.document = new TLRPC.TL_documentEncrypted(); mediaDocument.document.key = result.audio_unused.key; mediaDocument.document.iv = result.audio_unused.iv; } else { mediaDocument.document = new TLRPC.TL_document(); } mediaDocument.flags = 3; mediaDocument.document.file_reference = new byte[0]; mediaDocument.document.id = result.audio_unused.id; mediaDocument.document.access_hash = result.audio_unused.access_hash; mediaDocument.document.date = result.audio_unused.date; if (result.audio_unused.mime_type != null) { mediaDocument.document.mime_type = result.audio_unused.mime_type; } else { mediaDocument.document.mime_type = "audio/ogg"; } mediaDocument.document.size = result.audio_unused.size; TLRPC.TL_photoSizeEmpty thumb = new TL_photoSizeEmpty(); thumb.type = "s"; mediaDocument.document.thumbs.add(thumb); mediaDocument.document.dc_id = result.audio_unused.dc_id; mediaDocument.captionLegacy = result.captionLegacy; TLRPC.TL_documentAttributeAudio attributeAudio = new TLRPC.TL_documentAttributeAudio(); attributeAudio.duration = result.audio_unused.duration; attributeAudio.voice = true; mediaDocument.document.attributes.add(attributeAudio); result = mediaDocument; if (mediaDocument.captionLegacy == null) { mediaDocument.captionLegacy = ""; } } } return result; } } //MessageMedia end //PageBlock start public static class TL_pageBlockAuthorDate_layer60 extends TL_pageBlockAuthorDate { public static int constructor = 0x3d5b64f2; public void readParams(AbstractSerializedData stream, boolean exception) { String authorString = stream.readString(exception); author = new TL_textPlain(); ((TL_textPlain) author).text = authorString; published_date = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(((TL_textPlain) author).text); stream.writeInt32(published_date); } } public static class TL_pageBlockEmbedPost_layer82 extends TL_pageBlockEmbedPost { public static int constructor = 0x292c7be9; public void readParams(AbstractSerializedData stream, boolean exception) { url = stream.readString(exception); webpage_id = stream.readInt64(exception); author_photo_id = stream.readInt64(exception); author = stream.readString(exception); date = stream.readInt32(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } blocks.add(object); } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(url); stream.writeInt64(webpage_id); stream.writeInt64(author_photo_id); stream.writeString(author); stream.writeInt32(date); stream.writeInt32(0x1cb5c415); int count = blocks.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { blocks.get(a).serializeToStream(stream); } caption.text.serializeToStream(stream); } } public static class TL_pageBlockEmbed_layer82 extends TL_pageBlockEmbed { public static int constructor = 0xcde200d1; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); full_width = (flags & 1) != 0; allow_scrolling = (flags & 8) != 0; if ((flags & 2) != 0) { url = stream.readString(exception); } if ((flags & 4) != 0) { html = stream.readString(exception); } if ((flags & 16) != 0) { poster_photo_id = stream.readInt64(exception); } w = stream.readInt32(exception); h = stream.readInt32(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = full_width ? (flags | 1) : (flags &~ 1); flags = allow_scrolling ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); if ((flags & 2) != 0) { stream.writeString(url); } if ((flags & 4) != 0) { stream.writeString(html); } if ((flags & 16) != 0) { stream.writeInt64(poster_photo_id); } stream.writeInt32(w); stream.writeInt32(h); caption.text.serializeToStream(stream); } } public static class TL_pageBlockVideo_layer82 extends TL_pageBlockVideo { public static int constructor = 0xd9d71866; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); autoplay = (flags & 1) != 0; loop = (flags & 2) != 0; video_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = autoplay ? (flags | 1) : (flags &~ 1); flags = loop ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt64(video_id); caption.text.serializeToStream(stream); } } public static class TL_pageBlockSlideshow_layer82 extends TL_pageBlockSlideshow { public static int constructor = 0x130c8963; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } caption.text.serializeToStream(stream); } } public static class TL_pageBlockPhoto_layer82 extends TL_pageBlockPhoto { public static int constructor = 0xe9c69982; public void readParams(AbstractSerializedData stream, boolean exception) { photo_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(photo_id); caption.text.serializeToStream(stream); } } public static class TL_pageBlockCollage_layer82 extends TL_pageBlockCollage { public static int constructor = 0x8b31c4f; public void readParams(AbstractSerializedData stream, boolean exception) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { PageBlock object = PageBlock.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } items.add(object); } caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(0x1cb5c415); int count = items.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { items.get(a).serializeToStream(stream); } caption.text.serializeToStream(stream); } } public static class TL_pageBlockAudio_layer82 extends TL_pageBlockAudio { public static int constructor = 0x31b81a7f; public void readParams(AbstractSerializedData stream, boolean exception) { audio_id = stream.readInt64(exception); caption = new TL_pageCaption(); caption.text = RichText.TLdeserialize(stream, stream.readInt32(exception), exception); caption.credit = new TLRPC.TL_textEmpty(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(audio_id); caption.text.serializeToStream(stream); } } //PageBlock end //EncryptedChat start public static abstract class EncryptedChat extends TLObject { public int id; public long access_hash; public int date; public int admin_id; public int participant_id; public byte[] g_a; public byte[] nonce; public byte[] g_a_or_b; public long key_fingerprint; public byte[] a_or_b; //custom public byte[] auth_key; //custom public int user_id; //custom public int ttl; //custom public int layer; //custom public int seq_in; //custom public int seq_out; //custom public int in_seq_no; //custom public int mtproto_seq; //custom public byte[] key_hash; //custom public short key_use_count_in; //custom public short key_use_count_out; //custom public long exchange_id; //custom public int key_create_date; //custom public long future_key_fingerprint; //custom public byte[] future_auth_key; //custom public static EncryptedChat TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { EncryptedChat result = null; switch (constructor) { case 0xfda9a7b7: result = new TL_encryptedChatRequested_old(); break; case 0xc878527e: result = new TL_encryptedChatRequested(); break; case 0xfa56ce36: result = new TL_encryptedChat(); break; case 0x6601d14f: result = new TL_encryptedChat_old(); break; case 0xab7ec0a0: result = new TL_encryptedChatEmpty(); break; case 0x3bf703dc: result = new TL_encryptedChatWaiting(); break; case 0x13d6dd27: result = new TL_encryptedChatDiscarded(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in EncryptedChat", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } //EncryptedChat end //Message start public static abstract class Message extends TLObject { public int id; public int from_id; public Peer to_id; public int date; public MessageAction action; public int reply_to_msg_id; public long reply_to_random_id; public String message; public MessageMedia media; public int flags; public boolean mentioned; public boolean media_unread; public boolean out; public boolean unread; public ArrayList entities = new ArrayList<>(); public String via_bot_name; public ReplyMarkup reply_markup; public int views; public int edit_date; public boolean silent; public boolean post; public MessageFwdHeader fwd_from; public int via_bot_id; public String post_author; public long grouped_id; public int send_state = 0; //custom public int fwd_msg_id = 0; //custom public String attachPath = ""; //custom public HashMap params; //custom public long random_id; //custom public int local_id = 0; //custom public long dialog_id; //custom public int ttl; //custom public int destroyTime; //custom public int layer; //custom public int seq_in; //custom public int seq_out; //custom public boolean with_my_score; public TLRPC.Message replyMessage; //custom public int reqId; //custom public int realId; //custom public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { Message result = null; switch (constructor) { case 0x1d86f70e: result = new TL_messageService_old2(); break; case 0xa7ab1991: result = new TL_message_old3(); break; case 0xc3060325: result = new TL_message_old4(); break; case 0x555555fa: result = new TL_message_secret(); break; case 0x555555f9: result = new TL_message_secret_layer72(); break; case 0x90dddc11: result = new TL_message_layer72(); break; case 0xc09be45f: result = new TL_message_layer68(); break; case 0xc992e15c: result = new TL_message_layer47(); break; case 0x5ba66c13: result = new TL_message_old7(); break; case 0xc06b9607: result = new TL_messageService_layer48(); break; case 0x83e5de54: result = new TL_messageEmpty(); break; case 0x2bebfa86: result = new TL_message_old6(); break; case 0x44f9b43d: result = new TL_message(); break; case 0xa367e716: result = new TL_messageForwarded_old2(); //custom break; case 0x5f46804: result = new TL_messageForwarded_old(); //custom break; case 0x567699b3: result = new TL_message_old2(); //custom break; case 0x9f8d60bb: result = new TL_messageService_old(); //custom break; case 0x22eb6aba: result = new TL_message_old(); //custom break; case 0x555555F8: result = new TL_message_secret_old(); //custom break; case 0x9e19a1f6: result = new TL_messageService(); break; case 0xf07814c8: result = new TL_message_old5(); //custom break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in Message", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } public void readAttachPath(AbstractSerializedData stream, int currentUserId) { boolean hasMedia = media != null && !(media instanceof TL_messageMediaEmpty) && !(media instanceof TL_messageMediaWebPage); boolean fixCaption = !TextUtils.isEmpty(message) && (media instanceof TLRPC.TL_messageMediaPhoto_old || media instanceof TLRPC.TL_messageMediaPhoto_layer68 || media instanceof TLRPC.TL_messageMediaPhoto_layer74 || media instanceof TLRPC.TL_messageMediaDocument_old || media instanceof TLRPC.TL_messageMediaDocument_layer68 || media instanceof TLRPC.TL_messageMediaDocument_layer74) && message.startsWith("-1"); if ((out || to_id != null && to_id.user_id != 0 && to_id.user_id == from_id && from_id == currentUserId) && (id < 0 || hasMedia || send_state == 3)) { if (hasMedia && fixCaption) { if (message.length() > 6 && message.charAt(2) == '_') { params = new HashMap<>(); params.put("ve", message); } if (params != null || message.length() == 2) { message = ""; } } if (stream.remaining() > 0) { attachPath = stream.readString(false); if ((id < 0 || send_state == 3) && attachPath.startsWith("||")) { String args[] = attachPath.split("\\|\\|"); if (args.length > 0) { if (params == null) { params = new HashMap<>(); } for (int a = 1; a < args.length - 1; a++) { String args2[] = args[a].split("\\|=\\|"); if (args2.length == 2) { params.put(args2[0], args2[1]); } } attachPath = args[args.length - 1]; } } } } if ((flags & MESSAGE_FLAG_FWD) != 0 && id < 0) { fwd_msg_id = stream.readInt32(false); } } protected void writeAttachPath(AbstractSerializedData stream) { if (this instanceof TL_message_secret || this instanceof TL_message_secret_layer72) { String path = attachPath != null ? attachPath : ""; if (send_state == 1 && params != null && params.size() > 0) { for (HashMap.Entry entry : params.entrySet()) { path = entry.getKey() + "|=|" + entry.getValue() + "||" + path; } path = "||" + path; } stream.writeString(path); } else { String path = attachPath != null ? attachPath : ""; if ((id < 0 || send_state == 3) && params != null && params.size() > 0) { for (HashMap.Entry entry : params.entrySet()) { path = entry.getKey() + "|=|" + entry.getValue() + "||" + path; } path = "||" + path; } stream.writeString(path); if ((flags & MESSAGE_FLAG_FWD) != 0 && id < 0) { stream.writeInt32(fwd_msg_id); } } } } public static class TL_messageEmpty extends Message { public static int constructor = 0x83e5de54; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); to_id = new TL_peerUser(); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); } } public static class TL_messageService_old2 extends TL_messageService { public static int constructor = 0x1d86f70e; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); flags |= MESSAGE_FLAG_HAS_FROM_ID; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); action.serializeToStream(stream); } } public static class TL_message_layer72 extends TL_message { public static int constructor = 0x90dddc11; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; post = (flags & 16384) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null) { ttl = media.ttl_seconds; } if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 1024) != 0) { views = stream.readInt32(exception); } if ((flags & 32768) != 0) { edit_date = stream.readInt32(exception); } if ((flags & 65536) != 0) { post_author = stream.readString(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); flags = silent ? (flags | 8192) : (flags &~ 8192); flags = post ? (flags | 16384) : (flags &~ 16384); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 4) != 0) { fwd_from.serializeToStream(stream); } if ((flags & 2048) != 0) { stream.writeInt32(via_bot_id); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 1024) != 0) { stream.writeInt32(views); } if ((flags & 32768) != 0) { stream.writeInt32(edit_date); } if ((flags & 65536) != 0) { stream.writeString(post_author); } writeAttachPath(stream); } } public static class TL_message_layer68 extends TL_message { public static int constructor = 0xc09be45f; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; post = (flags & 16384) != 0; with_my_score = (flags & 1073741824) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (from_id == 0) { if (to_id.user_id != 0) { from_id = to_id.user_id; } else { from_id = -to_id.channel_id; } } if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } else { media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 1024) != 0) { views = stream.readInt32(exception); } if ((flags & 32768) != 0) { edit_date = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); flags = silent ? (flags | 8192) : (flags &~ 8192); flags = post ? (flags | 16384) : (flags &~ 16384); flags = with_my_score ? (flags | 1073741824) : (flags &~ 1073741824); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 4) != 0) { fwd_from.serializeToStream(stream); } if ((flags & 2048) != 0) { stream.writeInt32(via_bot_id); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 1024) != 0) { stream.writeInt32(views); } if ((flags & 32768) != 0) { stream.writeInt32(edit_date); } writeAttachPath(stream); } } public static class TL_message_layer47 extends TL_message { public static int constructor = 0xc992e15c; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (from_id == 0) { if (to_id.user_id != 0) { from_id = to_id.user_id; } else { from_id = -to_id.channel_id; } } if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); Peer peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (peer instanceof TLRPC.TL_peerChannel) { fwd_from.channel_id = peer.channel_id; fwd_from.flags |= 2; } else if (peer instanceof TLRPC.TL_peerUser) { fwd_from.from_id = peer.user_id; fwd_from.flags |= 1; } fwd_from.date = stream.readInt32(exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } else { media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 1024) != 0) { views = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 4) != 0) { if (fwd_from.from_id != 0) { TLRPC.TL_peerUser peer = new TL_peerUser(); peer.user_id = fwd_from.from_id; peer.serializeToStream(stream); } else { TLRPC.TL_peerChannel peer = new TL_peerChannel(); peer.channel_id = fwd_from.channel_id; peer.serializeToStream(stream); } stream.writeInt32(fwd_from.date); } if ((flags & 2048) != 0) { stream.writeInt32(via_bot_id); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 1024) != 0) { stream.writeInt32(views); } writeAttachPath(stream); } } public static class TL_message_old7 extends TL_message { public static int constructor = 0x5ba66c13; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (from_id == 0) { if (to_id.user_id != 0) { from_id = to_id.user_id; } else { from_id = -to_id.channel_id; } } if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); Peer peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (peer instanceof TLRPC.TL_peerChannel) { fwd_from.channel_id = peer.channel_id; fwd_from.flags |= 2; } else if (peer instanceof TLRPC.TL_peerUser) { fwd_from.from_id = peer.user_id; fwd_from.flags |= 1; } fwd_from.date = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } else { media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 1024) != 0) { views = stream.readInt32(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 4) != 0) { if (fwd_from.from_id != 0) { TLRPC.TL_peerUser peer = new TL_peerUser(); peer.user_id = fwd_from.from_id; peer.serializeToStream(stream); } else { TLRPC.TL_peerChannel peer = new TL_peerChannel(); peer.channel_id = fwd_from.channel_id; peer.serializeToStream(stream); } stream.writeInt32(fwd_from.date); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 1024) != 0) { stream.writeInt32(views); } writeAttachPath(stream); } } public static class TL_messageForwarded_old2 extends Message { public static int constructor = 0xa367e716; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); message = stream.readString(exception); flags |= MESSAGE_FLAG_FWD | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); } } public static class TL_message extends Message { public static int constructor = 0x44f9b43d; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; post = (flags & 16384) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = MessageFwdHeader.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 2048) != 0) { via_bot_id = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null) { ttl = media.ttl_seconds; //custom } if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } if ((flags & 1024) != 0) { views = stream.readInt32(exception); } if ((flags & 32768) != 0) { edit_date = stream.readInt32(exception); } if ((flags & 65536) != 0) { post_author = stream.readString(exception); } if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); flags = silent ? (flags | 8192) : (flags &~ 8192); flags = post ? (flags | 16384) : (flags &~ 16384); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 4) != 0) { fwd_from.serializeToStream(stream); } if ((flags & 2048) != 0) { stream.writeInt32(via_bot_id); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } if ((flags & 1024) != 0) { stream.writeInt32(views); } if ((flags & 32768) != 0) { stream.writeInt32(edit_date); } if ((flags & 65536) != 0) { stream.writeString(post_author); } if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } writeAttachPath(stream); } } public static class TL_message_old6 extends TL_message { public static int constructor = 0x2bebfa86; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); if ((flags & 512) != 0) { media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } else { media = new TL_messageMediaEmpty(); } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); if ((flags & 4) != 0) { stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); if ((flags & 512) != 0) { media.serializeToStream(stream); } if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } writeAttachPath(stream); } } public static class TL_message_old5 extends TL_message { public static int constructor = 0xf07814c8; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } if ((flags & 128) != 0) { int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); if ((flags & 4) != 0) { stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } if ((flags & 128) != 0) { stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } } writeAttachPath(stream); } } public static class TL_messageService_layer48 extends TL_messageService { public static int constructor = 0xc06b9607; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; post = (flags & 16384) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if (from_id == 0) { if (to_id.user_id != 0) { from_id = to_id.user_id; } else { from_id = -to_id.channel_id; } } date = stream.readInt32(exception); action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); flags = silent ? (flags | 8192) : (flags &~ 8192); flags = post ? (flags | 16384) : (flags &~ 16384); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); stream.writeInt32(date); action.serializeToStream(stream); } } public static class TL_message_old4 extends TL_message { public static int constructor = 0xc3060325; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } if ((flags & 64) != 0) { reply_markup = ReplyMarkup.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); if ((flags & 4) != 0) { stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); if ((flags & 64) != 0) { reply_markup.serializeToStream(stream); } writeAttachPath(stream); } } public static class TL_message_old3 extends TL_message { public static int constructor = 0xa7ab1991; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 4) != 0) { fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); } if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); if ((flags & 4) != 0) { stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); } if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); writeAttachPath(stream); } } public static class TL_message_old2 extends TL_message { public static int constructor = 0x567699b3; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); writeAttachPath(stream); } } public static class TL_messageService_old extends TL_messageService { public static int constructor = 0x9f8d60bb; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); out = stream.readBool(exception); unread = stream.readBool(exception); flags |= MESSAGE_FLAG_HAS_FROM_ID; date = stream.readInt32(exception); action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeBool(out); stream.writeBool(unread); stream.writeInt32(date); action.serializeToStream(stream); } } public static class TL_messageForwarded_old extends TL_messageForwarded_old2 { public static int constructor = 0x5f46804; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); fwd_from = new TL_messageFwdHeader(); fwd_from.from_id = stream.readInt32(exception); fwd_from.flags |= 1; fwd_from.date = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); out = stream.readBool(exception); unread = stream.readBool(exception); flags |= MESSAGE_FLAG_FWD | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt32(fwd_from.from_id); stream.writeInt32(fwd_from.date); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeBool(out); stream.writeBool(unread); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); writeAttachPath(stream); } } public static class TL_message_old extends TL_message { public static int constructor = 0x22eb6aba; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); out = stream.readBool(exception); unread = stream.readBool(exception); flags |= MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeBool(out); stream.writeBool(unread); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); writeAttachPath(stream); } } public static class TL_message_secret extends TL_message { public static int constructor = 0x555555fa; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); ttl = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } if ((flags & 2048) != 0) { via_bot_name = stream.readString(exception); } if ((flags & 8) != 0) { reply_to_random_id = stream.readInt64(exception); } if ((flags & 131072) != 0) { grouped_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(ttl); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } if ((flags & 2048) != 0) { stream.writeString(via_bot_name); } if ((flags & 8) != 0) { stream.writeInt64(reply_to_random_id); } if ((flags & 131072) != 0) { stream.writeInt64(grouped_id); } writeAttachPath(stream); } } public static class TL_message_secret_layer72 extends TL_message { public static int constructor = 0x555555f9; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); ttl = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { MessageEntity object = MessageEntity.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } entities.add(object); } if ((flags & 2048) != 0) { via_bot_name = stream.readString(exception); } if ((flags & 8) != 0) { reply_to_random_id = stream.readInt64(exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(ttl); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); stream.writeInt32(0x1cb5c415); int count = entities.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { entities.get(a).serializeToStream(stream); } if ((flags & 2048) != 0) { stream.writeString(via_bot_name); } if ((flags & 8) != 0) { stream.writeInt64(reply_to_random_id); } writeAttachPath(stream); } } public static class TL_message_secret_old extends TL_message_secret { public static int constructor = 0x555555F8; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception) | MESSAGE_FLAG_HAS_FROM_ID | MESSAGE_FLAG_HAS_MEDIA; unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; id = stream.readInt32(exception); ttl = stream.readInt32(exception); from_id = stream.readInt32(exception); to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); date = stream.readInt32(exception); message = stream.readString(exception); media = MessageMedia.TLdeserialize(stream, stream.readInt32(exception), exception); if (media != null && !TextUtils.isEmpty(media.captionLegacy)) { message = media.captionLegacy; } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); stream.writeInt32(flags); stream.writeInt32(id); stream.writeInt32(ttl); stream.writeInt32(from_id); to_id.serializeToStream(stream); stream.writeInt32(date); stream.writeString(message); media.serializeToStream(stream); writeAttachPath(stream); } } public static class TL_messageService extends Message { public static int constructor = 0x9e19a1f6; public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); unread = (flags & 1) != 0; out = (flags & 2) != 0; mentioned = (flags & 16) != 0; media_unread = (flags & 32) != 0; silent = (flags & 8192) != 0; post = (flags & 16384) != 0; id = stream.readInt32(exception); if ((flags & 256) != 0) { from_id = stream.readInt32(exception); } to_id = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 8) != 0) { reply_to_msg_id = stream.readInt32(exception); } date = stream.readInt32(exception); action = MessageAction.TLdeserialize(stream, stream.readInt32(exception), exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = unread ? (flags | 1) : (flags &~ 1); flags = out ? (flags | 2) : (flags &~ 2); flags = mentioned ? (flags | 16) : (flags &~ 16); flags = media_unread ? (flags | 32) : (flags &~ 32); flags = silent ? (flags | 8192) : (flags &~ 8192); flags = post ? (flags | 16384) : (flags &~ 16384); stream.writeInt32(flags); stream.writeInt32(id); if ((flags & 256) != 0) { stream.writeInt32(from_id); } to_id.serializeToStream(stream); if ((flags & 8) != 0) { stream.writeInt32(reply_to_msg_id); } stream.writeInt32(date); action.serializeToStream(stream); } } //Message end //TL_dialog start public static class TL_dialog extends TLObject { public static int constructor = 0xe4def5db; public int flags; public boolean pinned; public boolean unread_mark; public Peer peer; public int top_message; public int read_inbox_max_id; public int read_outbox_max_id; public int unread_count; public int unread_mentions_count; public PeerNotifySettings notify_settings; public int pts; public DraftMessage draft; public int last_message_date; //custom public long id; //custom public int pinnedNum; //custom public static TL_dialog TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_dialog.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_dialog", constructor)); } else { return null; } } TL_dialog result = new TL_dialog(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); pinned = (flags & 4) != 0; unread_mark = (flags & 8) != 0; peer = Peer.TLdeserialize(stream, stream.readInt32(exception), exception); top_message = stream.readInt32(exception); read_inbox_max_id = stream.readInt32(exception); read_outbox_max_id = stream.readInt32(exception); unread_count = stream.readInt32(exception); unread_mentions_count = stream.readInt32(exception); notify_settings = PeerNotifySettings.TLdeserialize(stream, stream.readInt32(exception), exception); if ((flags & 1) != 0) { pts = stream.readInt32(exception); } if ((flags & 2) != 0) { draft = DraftMessage.TLdeserialize(stream, stream.readInt32(exception), exception); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = pinned ? (flags | 4) : (flags &~ 4); flags = unread_mark ? (flags | 8) : (flags &~ 8); stream.writeInt32(flags); peer.serializeToStream(stream); stream.writeInt32(top_message); stream.writeInt32(read_inbox_max_id); stream.writeInt32(read_outbox_max_id); stream.writeInt32(unread_count); stream.writeInt32(unread_mentions_count); notify_settings.serializeToStream(stream); if ((flags & 1) != 0) { stream.writeInt32(pts); } if ((flags & 2) != 0) { draft.serializeToStream(stream); } } } //TL_dialog end //ChatParticipant start public static class TL_chatChannelParticipant extends ChatParticipant { public static int constructor = 0xc8d7493e; public TLRPC.ChannelParticipant channelParticipant; } //ChatParticipant end //Chat start public static class TL_chatEmpty extends Chat { public static int constructor = 0x9ba2d800; public void readParams(AbstractSerializedData stream, boolean exception) { id = stream.readInt32(exception); title = "DELETED"; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(id); } } //Chat end //functions memory optimize public static class TL_upload_saveFilePart extends TLObject { public static int constructor = 0xb304a621; public long file_id; public int file_part; public NativeByteBuffer bytes; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(file_id); stream.writeInt32(file_part); stream.writeByteBuffer(bytes); } @Override public void freeResources() { if (disableFree) { return; } if (bytes != null) { bytes.reuse(); bytes = null; } } } public static class TL_messages_getStickers extends TLObject { public static int constructor = 0x43d4f2c; public String emoticon; public int hash; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_Stickers.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeString(emoticon); stream.writeInt32(hash); } } public static class TL_upload_saveBigFilePart extends TLObject { public static int constructor = 0xde7b673d; public long file_id; public int file_part; public int file_total_parts; public NativeByteBuffer bytes; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return Bool.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt64(file_id); stream.writeInt32(file_part); stream.writeInt32(file_total_parts); stream.writeByteBuffer(bytes); } @Override public void freeResources() { if (disableFree) { return; } if (bytes != null) { bytes.reuse(); bytes = null; } } } public static class TL_upload_getWebFile extends TLObject { public static int constructor = 0x24e6818d; public InputWebFileLocation location; public int offset; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return TL_upload_webFile.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); location.serializeToStream(stream); stream.writeInt32(offset); stream.writeInt32(limit); } } public static class TL_upload_getCdnFile extends TLObject { public static int constructor = 0x2000bcc3; public byte[] file_token; public int offset; public int limit; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return upload_CdnFile.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(file_token); stream.writeInt32(offset); stream.writeInt32(limit); } } public static class TL_upload_reuploadCdnFile extends TLObject { public static int constructor = 0x9b2754a8; public byte[] file_token; public byte[] request_token; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_fileHash object = TL_fileHash.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(file_token); stream.writeByteArray(request_token); } } public static class TL_upload_getCdnFileHashes extends TLObject { public static int constructor = 0x4da54231; public byte[] file_token; public int offset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_fileHash object = TL_fileHash.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(file_token); stream.writeInt32(offset); } } public static class TL_upload_getFileHashes extends TLObject { public static int constructor = 0xc7025931; public InputFileLocation location; public int offset; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { Vector vector = new Vector(); int size = stream.readInt32(exception); for (int a = 0; a < size; a++) { TL_fileHash object = TL_fileHash.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return vector; } vector.objects.add(object); } return vector; } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); location.serializeToStream(stream); stream.writeInt32(offset); } } public static class TL_upload_webFile extends TLObject { public static int constructor = 0x21e753bc; public int size; public String mime_type; public storage_FileType file_type; public int mtime; public NativeByteBuffer bytes; public static TL_upload_webFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_upload_webFile.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_upload_webFile", constructor)); } else { return null; } } TL_upload_webFile result = new TL_upload_webFile(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { size = stream.readInt32(exception); mime_type = stream.readString(exception); file_type = storage_FileType.TLdeserialize(stream, stream.readInt32(exception), exception); mtime = stream.readInt32(exception); bytes = stream.readByteBuffer(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(size); stream.writeString(mime_type); file_type.serializeToStream(stream); stream.writeInt32(mtime); stream.writeByteBuffer(bytes); } @Override public void freeResources() { if (disableFree) { return; } if (bytes != null) { bytes.reuse(); bytes = null; } } } public static abstract class upload_File extends TLObject { public storage_FileType type; public int mtime; public NativeByteBuffer bytes; public int dc_id; public byte[] file_token; public byte[] encryption_key; public byte[] encryption_iv; public ArrayList file_hashes = new ArrayList<>(); public static upload_File TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { upload_File result = null; switch (constructor) { case 0x96a18d5: result = new TL_upload_file(); break; case 0xf18cda44: result = new TL_upload_fileCdnRedirect(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in upload_File", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static abstract class upload_CdnFile extends TLObject { public NativeByteBuffer bytes; public byte[] request_token; public static upload_CdnFile TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { upload_CdnFile result = null; switch (constructor) { case 0xa99fca4f: result = new TL_upload_cdnFile(); break; case 0xeea8e46e: result = new TL_upload_cdnFileReuploadNeeded(); break; } if (result == null && exception) { throw new RuntimeException(String.format("can't parse magic %x in upload_CdnFile", constructor)); } if (result != null) { result.readParams(stream, exception); } return result; } } public static class TL_upload_cdnFile extends upload_CdnFile { public static int constructor = 0xa99fca4f; public void readParams(AbstractSerializedData stream, boolean exception) { bytes = stream.readByteBuffer(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteBuffer(bytes); } @Override public void freeResources() { if (disableFree) { return; } if (bytes != null) { bytes.reuse(); bytes = null; } } } public static class TL_upload_cdnFileReuploadNeeded extends upload_CdnFile { public static int constructor = 0xeea8e46e; public void readParams(AbstractSerializedData stream, boolean exception) { request_token = stream.readByteArray(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeByteArray(request_token); } } public static class TL_upload_file extends upload_File { public static int constructor = 0x96a18d5; public void readParams(AbstractSerializedData stream, boolean exception) { type = storage_FileType.TLdeserialize(stream, stream.readInt32(exception), exception); mtime = stream.readInt32(exception); bytes = stream.readByteBuffer(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); type.serializeToStream(stream); stream.writeInt32(mtime); stream.writeByteBuffer(bytes); } @Override public void freeResources() { if (disableFree) { return; } if (bytes != null) { bytes.reuse(); bytes = null; } } } public static class TL_upload_fileCdnRedirect extends upload_File { public static int constructor = 0xf18cda44; public void readParams(AbstractSerializedData stream, boolean exception) { dc_id = stream.readInt32(exception); file_token = stream.readByteArray(exception); encryption_key = stream.readByteArray(exception); encryption_iv = stream.readByteArray(exception); int magic = stream.readInt32(exception); if (magic != 0x1cb5c415) { if (exception) { throw new RuntimeException(String.format("wrong Vector magic, got %x", magic)); } return; } int count = stream.readInt32(exception); for (int a = 0; a < count; a++) { TL_fileHash object = TL_fileHash.TLdeserialize(stream, stream.readInt32(exception), exception); if (object == null) { return; } file_hashes.add(object); } } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); stream.writeInt32(dc_id); stream.writeByteArray(file_token); stream.writeByteArray(encryption_key); stream.writeByteArray(encryption_iv); stream.writeInt32(0x1cb5c415); int count = file_hashes.size(); stream.writeInt32(count); for (int a = 0; a < count; a++) { file_hashes.get(a).serializeToStream(stream); } } } public static class TL_phoneCallProtocol extends TLObject { public static int constructor = 0xa2bb35cb; public int flags; public boolean udp_p2p; public boolean udp_reflector; public int min_layer; public int max_layer; public static TL_phoneCallProtocol TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) { if (TL_phoneCallProtocol.constructor != constructor) { if (exception) { throw new RuntimeException(String.format("can't parse magic %x in TL_phoneCallProtocol", constructor)); } else { return null; } } TL_phoneCallProtocol result = new TL_phoneCallProtocol(); result.readParams(stream, exception); return result; } public void readParams(AbstractSerializedData stream, boolean exception) { flags = stream.readInt32(exception); udp_p2p = (flags & 1) != 0; udp_reflector = (flags & 2) != 0; min_layer = stream.readInt32(exception); max_layer = stream.readInt32(exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); flags = udp_p2p ? (flags | 1) : (flags &~ 1); flags = udp_reflector ? (flags | 2) : (flags &~ 2); stream.writeInt32(flags); stream.writeInt32(min_layer); stream.writeInt32(max_layer); } } public static class TL_messages_sendEncryptedFile extends TLObject { public static int constructor = 0x9a901b66; public TL_inputEncryptedChat peer; public long random_id; public NativeByteBuffer data; public InputEncryptedFile file; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_SentEncryptedMessage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt64(random_id); stream.writeByteBuffer(data); file.serializeToStream(stream); } @Override public void freeResources() { if (data != null) { data.reuse(); data = null; } } } public static class TL_messages_sendEncryptedMultiMedia extends TLObject { public static int constructor = 0xcacacaca; public ArrayList messages = new ArrayList<>(); public ArrayList files = new ArrayList<>(); public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_SentEncryptedMessage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { } @Override public void freeResources() { } } public static class TL_messages_sendEncrypted extends TLObject { public static int constructor = 0xa9776773; public TL_inputEncryptedChat peer; public long random_id; public NativeByteBuffer data; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_SentEncryptedMessage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt64(random_id); stream.writeByteBuffer(data); } @Override public void freeResources() { if (data != null) { data.reuse(); data = null; } } } public static class TL_messages_sendEncryptedService extends TLObject { public static int constructor = 0x32d439a4; public TL_inputEncryptedChat peer; public long random_id; public NativeByteBuffer data; public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) { return messages_SentEncryptedMessage.TLdeserialize(stream, constructor, exception); } public void serializeToStream(AbstractSerializedData stream) { stream.writeInt32(constructor); peer.serializeToStream(stream); stream.writeInt64(random_id); stream.writeByteBuffer(data); } @Override public void freeResources() { if (data != null) { data.reuse(); data = null; } } } //functions public static class Vector extends TLObject { public static int constructor = 0x1cb5c415; public ArrayList objects = new ArrayList<>(); } }