diff options
Diffstat (limited to 'protocols/Telegram/src/tgl/auto/auto-fetch-ds.c')
-rw-r--r-- | protocols/Telegram/src/tgl/auto/auto-fetch-ds.c | 11876 |
1 files changed, 11876 insertions, 0 deletions
diff --git a/protocols/Telegram/src/tgl/auto/auto-fetch-ds.c b/protocols/Telegram/src/tgl/auto/auto-fetch-ds.c new file mode 100644 index 0000000000..0ad9035f0c --- /dev/null +++ b/protocols/Telegram/src/tgl/auto/auto-fetch-ds.c @@ -0,0 +1,11876 @@ +#ifdef _MSC_VER
+#include "..\auto.h"
+#include "auto-fetch-ds.h"
+#include "auto-skip.h"
+#include "auto-types.h"
+#include "..\mtproto-common.h"
+#else
+#include "auto.h"
+#include "auto/auto-fetch-ds.h"
+#include "auto/auto-skip.h"
+#include "auto/auto-types.h"
+#include "auto-static-fetch-ds.c"
+#include "mtproto-common.h"
+#endif
+#include <assert.h>
+struct tl_ds_account_days_t_t_l *fetch_ds_constructor_account_days_t_t_l (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return 0; }
+ struct tl_ds_account_days_t_t_l * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->days = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_audio *fetch_ds_constructor_audio_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; }
+ struct tl_ds_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0x586988d8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_audio *fetch_ds_constructor_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return 0; }
+ struct tl_ds_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0xc7ac6496;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field8);
+ return result;
+}
+struct tl_ds_authorization *fetch_ds_constructor_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bf2e6f6 && T->type->name != 0x840d1909)) { return 0; }
+ struct tl_ds_authorization * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hash = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->device_model = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->platform = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->system_version = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->api_id = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->app_name = fetch_ds_type_bare_string (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->app_version = fetch_ds_type_bare_string (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date_created = fetch_ds_type_bare_int (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date_active = fetch_ds_type_bare_int (field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip = fetch_ds_type_bare_string (field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->country = fetch_ds_type_bare_string (field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->region = fetch_ds_type_bare_string (field13);
+ return result;
+}
+struct tl_ds_bool *fetch_ds_constructor_bool_false (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; }
+ struct tl_ds_bool * result = talloc0 (sizeof (*result));
+ result->magic = 0xbc799737;
+ return result;
+}
+struct tl_ds_bool *fetch_ds_constructor_bool_true (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return 0; }
+ struct tl_ds_bool * result = talloc0 (sizeof (*result));
+ result->magic = 0x997275b5;
+ return result;
+}
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; }
+ struct tl_ds_bot_command * result = talloc0 (sizeof (*result));
+ result->magic = 0xc27ac8c7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->command = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->description = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_bot_command *fetch_ds_constructor_bot_command_old (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x75e7ea6c && T->type->name != 0x8a181593)) { return 0; }
+ struct tl_ds_bot_command * result = talloc0 (sizeof (*result));
+ result->magic = 0xb79d22ab;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->command = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->params = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->description = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; }
+ struct tl_ds_bot_info * result = talloc0 (sizeof (*result));
+ result->magic = 0xbb2e37ce;
+ return result;
+}
+struct tl_ds_bot_info *fetch_ds_constructor_bot_info (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb2e16f93 && T->type->name != 0x4d1e906c)) { return 0; }
+ struct tl_ds_bot_info * result = talloc0 (sizeof (*result));
+ result->magic = 0x09cf585d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->share_text = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->description = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x75e7ea6c, .id = "BotCommand", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->commands = (void *)fetch_ds_type_vector (field5);
+ return result;
+}
+struct tl_ds_string *fetch_ds_constructor_bytes (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return 0; }
+ struct tl_ds_string * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ int l = prefetch_strlen ();
+ assert (l >= 0);
+ result->len = l;
+ result->data = talloc (l + 1);
+ result->data[l] = 0;
+ memcpy (result->data, fetch_str (l), l);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x9ba2d800;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x6e9c9bc7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_chat_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants_count = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->left = fetch_ds_type_bool (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_chat_forbidden (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xfb0ccc41;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_chat *fetch_ds_constructor_geo_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return 0; }
+ struct tl_ds_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x75eaea5a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->address = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->venue = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_chat_photo (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants_count = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->checked_in = fetch_ds_type_bool (field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field11);
+ return result;
+}
+struct tl_ds_chat_full *fetch_ds_constructor_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02a614 && T->type->name != 0xd1fd59eb)) { return 0; }
+ struct tl_ds_chat_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants = fetch_ds_type_chat_participants (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_photo = fetch_ds_type_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f132d5, .id = "ExportedChatInvite", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exported_invite = fetch_ds_type_exported_chat_invite (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->bot_info = (void *)fetch_ds_type_vector (field6);
+ return result;
+}
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite_already (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; }
+ struct tl_ds_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a686d7c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat = fetch_ds_type_chat (field1);
+ return result;
+}
+struct tl_ds_chat_invite *fetch_ds_constructor_chat_invite (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x94f910b1 && T->type->name != 0x6b06ef4e)) { return 0; }
+ struct tl_ds_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0xce917dcd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_chat_located *fetch_ds_constructor_chat_located (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return 0; }
+ struct tl_ds_chat_located * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->distance = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_chat_participant *fetch_ds_constructor_chat_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return 0; }
+ struct tl_ds_chat_participant * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants_forbidden (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; }
+ struct tl_ds_chat_participants * result = talloc0 (sizeof (*result));
+ result->magic = 0x0fd2bb8a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_chat_participants *fetch_ds_constructor_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return 0; }
+ struct tl_ds_chat_participants * result = talloc0 (sizeof (*result));
+ result->magic = 0x7841b415;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->participants = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; }
+ struct tl_ds_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x37c1011c;
+ return result;
+}
+struct tl_ds_chat_photo *fetch_ds_constructor_chat_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return 0; }
+ struct tl_ds_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x6153276a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_small = fetch_ds_type_file_location (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_big = fetch_ds_type_file_location (field2);
+ return result;
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_constructor_client_d_h_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return 0; }
+ struct tl_ds_client_d_h_inner_data * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->retry_id = fetch_ds_type_bare_long (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_b = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_config *fetch_ds_constructor_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e32b894 && T->type->name != 0xb1cd476b)) { return 0; }
+ struct tl_ds_config * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->expires = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->test_mode = fetch_ds_type_bool (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->this_dc = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dc_options = (void *)fetch_ds_type_vector (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_size_max = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->broadcast_size_max = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->forwarded_count_max = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->online_update_period_ms = fetch_ds_type_bare_int (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->offline_blur_timeout_ms = fetch_ds_type_bare_int (field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->offline_idle_timeout_ms = fetch_ds_type_bare_int (field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->online_cloud_timeout_ms = fetch_ds_type_bare_int (field12);
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_cloud_delay_ms = fetch_ds_type_bare_int (field13);
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_default_delay_ms = fetch_ds_type_bare_int (field14);
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_big_size = fetch_ds_type_bare_int (field15);
+ struct paramed_type *field16 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->push_chat_period_ms = fetch_ds_type_bare_int (field16);
+ struct paramed_type *field17 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->push_chat_limit = fetch_ds_type_bare_int (field17);
+ struct paramed_type *field18 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae636f24, .id = "DisabledFeature", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->disabled_features = (void *)fetch_ds_type_vector (field18);
+ return result;
+}
+struct tl_ds_contact *fetch_ds_constructor_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return 0; }
+ struct tl_ds_contact * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mutual = fetch_ds_type_bool (field2);
+ return result;
+}
+struct tl_ds_contact_blocked *fetch_ds_constructor_contact_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return 0; }
+ struct tl_ds_contact_blocked * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_contact_found *fetch_ds_constructor_contact_found (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return 0; }
+ struct tl_ds_contact_found * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0x5f4f9247;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_none (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0xfeedd3ad;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_has_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0x268f3f59;
+ return result;
+}
+struct tl_ds_contact_link *fetch_ds_constructor_contact_link_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x522fbc63 && T->type->name != 0xadd0439c)) { return 0; }
+ struct tl_ds_contact_link * result = talloc0 (sizeof (*result));
+ result->magic = 0xd502c2d0;
+ return result;
+}
+struct tl_ds_contact_status *fetch_ds_constructor_contact_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return 0; }
+ struct tl_ds_contact_status * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field2);
+ return result;
+}
+struct tl_ds_contact_suggested *fetch_ds_constructor_contact_suggested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return 0; }
+ struct tl_ds_contact_suggested * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mutual_contacts = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; }
+ struct tl_ds_dc_option * result = talloc0 (sizeof (*result));
+ result->magic = 0x2ec2a43c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hostname = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip_address = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_dc_option *fetch_ds_constructor_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2b1a62f0 && T->type->name != 0xd4e59d0f)) { return 0; }
+ struct tl_ds_dc_option * result = talloc0 (sizeof (*result));
+ result->magic = 0x05d8c6cc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip_address = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; }
+ struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x204d3878;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ttl = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_decrypted_message_media (field4);
+ return result;
+}
+struct tl_ds_decrypted_message *fetch_ds_constructor_decrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x535b7918 && T->type->name != 0xaca486e7)) { return 0; }
+ struct tl_ds_decrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x73164160;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_decrypted_message_action (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa1733aec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ttl_seconds = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c4f40be;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x65614304;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x8ac1f475;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->random_ids = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6719e45c;
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x511110b0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->start_seq_no = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->end_seq_no = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3048883;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->layer = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xccb27641;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3c9611b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_a = fetch_ds_type_bare_bytes (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6fe1735b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_b = fetch_ds_type_bare_bytes (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xdd05ec6b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xec2e0b9b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return 0; }
+ struct tl_ds_decrypted_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa82fdd63;
+ return result;
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_constructor_decrypted_message_layer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return 0; }
+ struct tl_ds_decrypted_message_layer * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_bytes = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->layer = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->in_seq_no = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->out_seq_no = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x535b7918, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_decrypted_message (field5);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x089f5c4a;
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x32798a8c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x35480a59;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->latitude = fetch_ds_type_bare_double (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->longitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x588a0a97;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xb095434b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file_name = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x524a415d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field10);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x57e0a9cb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field5);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_external_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa95b0dd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field8);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_video_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x4cee6ef3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->str_thumb = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb_h = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field9);
+ return result;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_constructor_decrypted_message_media_audio_l12 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x34e0d674 && T->type->name != 0xcb1f298b)) { return 0; }
+ struct tl_ds_decrypted_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x6080758f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_bytes (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->iv = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_dialog *fetch_ds_constructor_dialog (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc1dd804a && T->type->name != 0x3e227fb5)) { return 0; }
+ struct tl_ds_dialog * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->top_message = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->read_inbox_max_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->unread_count = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field5);
+ return result;
+}
+struct tl_ds_disabled_feature *fetch_ds_constructor_disabled_feature (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae636f24 && T->type->name != 0x519c90db)) { return 0; }
+ struct tl_ds_disabled_feature * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->feature = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->description = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x36f8c871;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0xf9a39f4f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field8);
+ return result;
+}
+struct tl_ds_document *fetch_ds_constructor_document_l19 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return 0; }
+ struct tl_ds_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x9efc6326;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file_name = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field9);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_image_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x6c37c15c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_animated (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x11b58939;
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker_l28 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x994c9882;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->alt = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_sticker (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x3a556302;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->alt = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe44d415c, .id = "InputStickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->stickerset = fetch_ds_type_input_sticker_set (field2);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x5910cccb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x051448e5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_document_attribute *fetch_ds_constructor_document_attribute_filename (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x97c637a3 && T->type->name != 0x6839c85c)) { return 0; }
+ struct tl_ds_document_attribute * result = talloc0 (sizeof (*result));
+ result->magic = 0x15590068;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file_name = fetch_ds_type_bare_string (field1);
+ return result;
+}
+double *fetch_ds_constructor_double (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return 0; }
+ double * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 8);
+ *result = fetch_double ();
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xab7ec0a0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x3bf703dc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_requested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xc878527e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_a = fetch_ds_type_bare_bytes (field6);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa56ce36;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participant_id = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_a_or_b = fetch_ds_type_bare_bytes (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field7);
+ return result;
+}
+struct tl_ds_encrypted_chat *fetch_ds_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return 0; }
+ struct tl_ds_encrypted_chat * result = talloc0 (sizeof (*result));
+ result->magic = 0x13d6dd27;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; }
+ struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xc21f497e;
+ return result;
+}
+struct tl_ds_encrypted_file *fetch_ds_constructor_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return 0; }
+ struct tl_ds_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x4a70994c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; }
+ struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xed18c118;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field5);
+ return result;
+}
+struct tl_ds_encrypted_message *fetch_ds_constructor_encrypted_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return 0; }
+ struct tl_ds_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x23734b06;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_error *fetch_ds_constructor_error (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return 0; }
+ struct tl_ds_error * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->code = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->text = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; }
+ struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0x69df3769;
+ return result;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_constructor_chat_invite_exported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f132d5 && T->type->name != 0x6a0ecd2a)) { return 0; }
+ struct tl_ds_exported_chat_invite * result = talloc0 (sizeof (*result));
+ result->magic = 0xfc2e05bc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->link = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_file_location *fetch_ds_constructor_file_location_unavailable (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; }
+ struct tl_ds_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c596b46;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->secret = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_file_location *fetch_ds_constructor_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return 0; }
+ struct tl_ds_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x53d69076;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->secret = fetch_ds_type_bare_long (field4);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x60311a9b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x4505f8e1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field6);
+ return result;
+}
+struct tl_ds_geo_chat_message *fetch_ds_constructor_geo_chat_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return 0; }
+ struct tl_ds_geo_chat_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xd34fa24e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field5);
+ return result;
+}
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; }
+ struct tl_ds_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0x1117dd5f;
+ return result;
+}
+struct tl_ds_geo_point *fetch_ds_constructor_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return 0; }
+ struct tl_ds_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0x2049d70c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->longitude = fetch_ds_type_bare_double (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->latitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_imported_contact *fetch_ds_constructor_imported_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return 0; }
+ struct tl_ds_imported_contact * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->client_id = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_app_event *fetch_ds_constructor_input_app_event (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return 0; }
+ struct tl_ds_input_app_event * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->time = fetch_ds_type_bare_double (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_bare_long (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->data = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; }
+ struct tl_ds_input_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95adc84;
+ return result;
+}
+struct tl_ds_input_audio *fetch_ds_constructor_input_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return 0; }
+ struct tl_ds_input_audio * result = talloc0 (sizeof (*result));
+ result->magic = 0x77d440ff;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x1ca48f57;
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x94254732;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop = fetch_ds_type_input_photo_crop (field2);
+ return result;
+}
+struct tl_ds_input_chat_photo *fetch_ds_constructor_input_chat_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return 0; }
+ struct tl_ds_input_chat_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xb2e1bf08;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_input_photo (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop = fetch_ds_type_input_photo_crop (field2);
+ return result;
+}
+struct tl_ds_input_contact *fetch_ds_constructor_input_phone_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return 0; }
+ struct tl_ds_input_contact * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->client_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_document *fetch_ds_constructor_input_document_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; }
+ struct tl_ds_input_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x72f0eaae;
+ return result;
+}
+struct tl_ds_input_document *fetch_ds_constructor_input_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return 0; }
+ struct tl_ds_input_document * result = talloc0 (sizeof (*result));
+ result->magic = 0x18798952;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_constructor_input_encrypted_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return 0; }
+ struct tl_ds_input_encrypted_chat * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x1837c364;
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x64bd0306;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->md5_checksum = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a17b5e5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return 0; }
+ struct tl_ds_input_encrypted_file * result = talloc0 (sizeof (*result));
+ result->magic = 0x2dc173c8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_input_file *fetch_ds_constructor_input_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; }
+ struct tl_ds_input_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xf52ff27f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->md5_checksum = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_input_file *fetch_ds_constructor_input_file_big (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return 0; }
+ struct tl_ds_input_file * result = talloc0 (sizeof (*result));
+ result->magic = 0xfa4f0bb5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->parts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x14637196;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->volume_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->local_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->secret = fetch_ds_type_bare_long (field3);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_video_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x3d0364ec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_encrypted_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0xf5235d55;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_audio_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x74dc404d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_file_location *fetch_ds_constructor_input_document_file_location (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return 0; }
+ struct tl_ds_input_file_location * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e45abe9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_geo_chat *fetch_ds_constructor_input_geo_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return 0; }
+ struct tl_ds_input_geo_chat * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; }
+ struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0xe4c123d6;
+ return result;
+}
+struct tl_ds_input_geo_point *fetch_ds_constructor_input_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return 0; }
+ struct tl_ds_input_geo_point * result = talloc0 (sizeof (*result));
+ result->magic = 0xf3b7acc9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->latitude = fetch_ds_type_bare_double (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->longitude = fetch_ds_type_bare_double (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x9664f57f;
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xf7aff1c0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9bfb4f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_input_photo (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_geo_point (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xf9c44144;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_point = fetch_ds_type_input_geo_point (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa6e45987;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xe13fd4bc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x96fb97dc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_input_file (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field6);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x936a4ebd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video_id = fetch_ds_type_input_video (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e498cab;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x89938781;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->audio_id = fetch_ds_type_input_audio (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xffe76b78;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x41481486;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_input_file (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_input_file (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x97c637a3, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->attributes = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xd184e841;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->document_id = fetch_ds_type_input_document (field1);
+ return result;
+}
+struct tl_ds_input_media *fetch_ds_constructor_input_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb32c91dd && T->type->name != 0x4cd36e22)) { return 0; }
+ struct tl_ds_input_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x2827a81a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_point = fetch_ds_type_input_geo_point (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->address = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->provider = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->venue_id = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xb8bc5b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_input_peer (field1);
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x193b4417;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x4a95e84e;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xa429b886;
+ return result;
+}
+struct tl_ds_input_notify_peer *fetch_ds_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return 0; }
+ struct tl_ds_input_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x4d8ddec8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_peer = fetch_ds_type_input_geo_chat (field1);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x7f3b18ea;
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_self (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x7da07ec9;
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x1023dbe8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_foreign (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9b447325;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_peer *fetch_ds_constructor_input_peer_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return 0; }
+ struct tl_ds_input_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x179be863;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; }
+ struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xf03064d8;
+ return result;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return 0; }
+ struct tl_ds_input_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xe86a2c74;
+ return result;
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_constructor_input_peer_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return 0; }
+ struct tl_ds_input_peer_notify_settings * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mute_until = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->sound = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->show_previews = fetch_ds_type_bool (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->events_mask = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; }
+ struct tl_ds_input_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x1cd7bf0d;
+ return result;
+}
+struct tl_ds_input_photo *fetch_ds_constructor_input_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return 0; }
+ struct tl_ds_input_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xfb95c6c4;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop_auto (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; }
+ struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result));
+ result->magic = 0xade6b004;
+ return result;
+}
+struct tl_ds_input_photo_crop *fetch_ds_constructor_input_photo_crop (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return 0; }
+ struct tl_ds_input_photo_crop * result = talloc0 (sizeof (*result));
+ result->magic = 0xd9915325;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop_left = fetch_ds_type_bare_double (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop_top = fetch_ds_type_bare_double (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->crop_width = fetch_ds_type_bare_double (field3);
+ return result;
+}
+struct tl_ds_input_privacy_key *fetch_ds_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return 0; }
+ struct tl_ds_input_privacy_key * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0d09e07b;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x184b35ce;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x131cc67f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0ba52007;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xd66b66c9;
+ return result;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return 0; }
+ struct tl_ds_input_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x90110467;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0xffb62b95;
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0x9de7a269;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_sticker_set *fetch_ds_constructor_input_sticker_set_short_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe44d415c && T->type->name != 0x1bb2bea3)) { return 0; }
+ struct tl_ds_input_sticker_set * result = talloc0 (sizeof (*result));
+ result->magic = 0x861cc8a0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->short_name = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0xb98886cf;
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_self (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0xf7c1b13f;
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x86e94f65;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_input_user *fetch_ds_constructor_input_user_foreign (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return 0; }
+ struct tl_ds_input_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x655e74ff;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_input_video *fetch_ds_constructor_input_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; }
+ struct tl_ds_input_video * result = talloc0 (sizeof (*result));
+ result->magic = 0x5508ec75;
+ return result;
+}
+struct tl_ds_input_video *fetch_ds_constructor_input_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return 0; }
+ struct tl_ds_input_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xee579652;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ return result;
+}
+int *fetch_ds_constructor_int (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return 0; }
+ int * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ *result = fetch_int ();
+ return result;
+}
+struct tl_ds_int128 *fetch_ds_constructor_int128 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return 0; }
+ struct tl_ds_int128 * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f0 = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f1 = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_int256 *fetch_ds_constructor_int256 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return 0; }
+ struct tl_ds_int256 * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f0 = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f1 = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f2 = fetch_ds_type_bare_long (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->f3 = fetch_ds_type_bare_long (field4);
+ return result;
+}
+struct tl_ds_keyboard_button *fetch_ds_constructor_keyboard_button (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa2fa4880 && T->type->name != 0x5d05b77f)) { return 0; }
+ struct tl_ds_keyboard_button * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->text = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_keyboard_button_row *fetch_ds_constructor_keyboard_button_row (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x77608b83 && T->type->name != 0x889f747c)) { return 0; }
+ struct tl_ds_keyboard_button_row * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa2fa4880, .id = "KeyboardButton", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->buttons = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+long long *fetch_ds_constructor_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return 0; }
+ long long * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 8);
+ *result = fetch_long ();
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x83e5de54;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0xc3060325;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_peer (field4);
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field7);
+ }
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field10);
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_markup = fetch_ds_type_reply_markup (field11);
+ }
+ return result;
+}
+struct tl_ds_message *fetch_ds_constructor_message_service (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5d652a7f && T->type->name != 0xa29ad580)) { return 0; }
+ struct tl_ds_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x1d86f70e;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_peer (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field6);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb6aef7b0;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa6638b9a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb5a1ce5a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x7fcb13a8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x95e3fbef;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_add_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x5e3cfc4b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xb2ae9b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x6f038ebc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->address = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c7d53de;
+ return result;
+}
+struct tl_ds_message_action *fetch_ds_constructor_message_action_chat_joined_by_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x383415fa && T->type->name != 0xc7cbea05)) { return 0; }
+ struct tl_ds_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf89cf5e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x3ded6320;
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x3d8ce53d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x5bcf1675;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video = fetch_ds_type_video (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_geo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x56e0d474;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_contact (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x5e7d2f39;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_unsupported (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x9f84f49e;
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x2fda2204;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->document = fetch_ds_type_document (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xc6b68300;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->audio = fetch_ds_type_audio (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa32dd600;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->webpage = fetch_ds_type_web_page (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_venue (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0x7912b71f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->address = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->provider = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->venue_id = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xc8c45a2a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ return result;
+}
+struct tl_ds_message_media *fetch_ds_constructor_message_media_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x95f2471a && T->type->name != 0x6a0db8e5)) { return 0; }
+ struct tl_ds_message_media * result = talloc0 (sizeof (*result));
+ result->magic = 0xa2d24290;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1716b174, .id = "Video", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->video = fetch_ds_type_video (field1);
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x57e2f66c;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9609a51c;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9fc00e65;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x56e9f0e4;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_photo_video_documents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95e73bb;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_document (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0x9eddf188;
+ return result;
+}
+struct tl_ds_messages_filter *fetch_ds_constructor_input_messages_filter_audio (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x80895ae0 && T->type->name != 0x7f76a51f)) { return 0; }
+ struct tl_ds_messages_filter * result = talloc0 (sizeof (*result));
+ result->magic = 0xcfc87522;
+ return result;
+}
+struct tl_ds_nearest_dc *fetch_ds_constructor_nearest_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return 0; }
+ struct tl_ds_nearest_dc * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->country = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->this_dc = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nearest_dc = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_peer (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9fd40bd8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xb4c83b4c;
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xc007cec3;
+ return result;
+}
+struct tl_ds_notify_peer *fetch_ds_constructor_notify_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return 0; }
+ struct tl_ds_notify_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x74d07c60;
+ return result;
+}
+struct tl_ds_null *fetch_ds_constructor_null (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return 0; }
+ struct tl_ds_null * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; }
+ struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result));
+ result->magic = 0x83c95aec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pq = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->p = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->q = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce = fetch_ds_type_bare_int256 (field6);
+ return result;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return 0; }
+ struct tl_ds_p_q_inner_data * result = talloc0 (sizeof (*result));
+ result->magic = 0x3c6a84d4;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pq = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->p = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->q = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce = fetch_ds_type_bare_int256 (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->expires_in = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_peer *fetch_ds_constructor_peer_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; }
+ struct tl_ds_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0x9db1bc6d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_peer *fetch_ds_constructor_peer_chat (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return 0; }
+ struct tl_ds_peer * result = talloc0 (sizeof (*result));
+ result->magic = 0xbad0e5bb;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; }
+ struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0xadd53cb3;
+ return result;
+}
+struct tl_ds_peer_notify_events *fetch_ds_constructor_peer_notify_events_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return 0; }
+ struct tl_ds_peer_notify_events * result = talloc0 (sizeof (*result));
+ result->magic = 0x6d1ded88;
+ return result;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; }
+ struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result));
+ result->magic = 0x70a68512;
+ return result;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_constructor_peer_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return 0; }
+ struct tl_ds_peer_notify_settings * result = talloc0 (sizeof (*result));
+ result->magic = 0x8d5e11ee;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mute_until = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->sound = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->show_previews = fetch_ds_type_bool (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->events_mask = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x2331b22d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xc3838076;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field6);
+ return result;
+}
+struct tl_ds_photo *fetch_ds_constructor_photo_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc207550a && T->type->name != 0x3df8aaf5)) { return 0; }
+ struct tl_ds_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x22b56751;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo = fetch_ds_type_geo_point (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field7);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0x0e17e23c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0x77bfb61b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->location = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_photo_size *fetch_ds_constructor_photo_cached_size (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return 0; }
+ struct tl_ds_photo_size * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9a734fa;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->location = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field5);
+ return result;
+}
+struct tl_ds_privacy_key *fetch_ds_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return 0; }
+ struct tl_ds_privacy_key * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xfffe1bac;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x65427b82;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_allow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x4d5bbe0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0xf888fa1a;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x8b73e763;
+ return result;
+}
+struct tl_ds_privacy_rule *fetch_ds_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return 0; }
+ struct tl_ds_privacy_rule * result = talloc0 (sizeof (*result));
+ result->magic = 0x0c7f49b7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_received_notify_message *fetch_ds_constructor_received_notify_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa384b779 && T->type->name != 0x5c7b4886)) { return 0; }
+ struct tl_ds_received_notify_message * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_hide (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0xa03e5b85;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_force_reply (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0xf4108aa0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_reply_markup *fetch_ds_constructor_reply_keyboard_markup (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x612ca4a9 && T->type->name != 0x9ed35b56)) { return 0; }
+ struct tl_ds_reply_markup * result = talloc0 (sizeof (*result));
+ result->magic = 0x3502758c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77608b83, .id = "KeyboardButtonRow", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->rows = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_res_p_q *fetch_ds_constructor_res_p_q (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return 0; }
+ struct tl_ds_res_p_q * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pq = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->server_public_key_fingerprints = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_typing_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x16bf744e;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_cancel_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xfd5ec8f5;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xa187d66f;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x92042ff7;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_video_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xe9763aec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_record_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xd52f73f7;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xe6ac8a6f;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xf351d7ab;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xd1d34a26;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x8faee98e;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_upload_document_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0xaa0cd9e4;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->progress = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_geo_location_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x176f8ba1;
+ return result;
+}
+struct tl_ds_send_message_action *fetch_ds_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x70541c7e && T->type->name != 0x8fabe381)) { return 0; }
+ struct tl_ds_send_message_action * result = talloc0 (sizeof (*result));
+ result->magic = 0x628cbc6f;
+ return result;
+}
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_fail (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; }
+ struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result));
+ result->magic = 0x79cb045d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce_hash = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_server_d_h_params *fetch_ds_constructor_server_d_h_params_ok (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return 0; }
+ struct tl_ds_server_d_h_params * result = talloc0 (sizeof (*result));
+ result->magic = 0xd0e8075c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encrypted_answer = fetch_ds_type_bare_string (field3);
+ return result;
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_constructor_server_d_h_inner_data (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return 0; }
+ struct tl_ds_server_d_h_inner_data * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dh_prime = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_a = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_time = fetch_ds_type_bare_int (field6);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_ok (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0x3bcbf734;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce_hash1 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_retry (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0x46dc1fb9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce_hash2 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_constructor_dh_gen_fail (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return 0; }
+ struct tl_ds_set_client_d_h_params_answer * result = talloc0 (sizeof (*result));
+ result->magic = 0xa69dae02;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->nonce = fetch_ds_type_bare_int128 (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->server_nonce = fetch_ds_type_bare_int128 (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_nonce_hash3 = fetch_ds_type_bare_int128 (field3);
+ return result;
+}
+struct tl_ds_sticker_pack *fetch_ds_constructor_sticker_pack (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return 0; }
+ struct tl_ds_sticker_pack * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->emoticon = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_sticker_set *fetch_ds_constructor_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa7a43b17 && T->type->name != 0x585bc4e8)) { return 0; }
+ struct tl_ds_sticker_set * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->short_name = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_string *fetch_ds_constructor_string (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return 0; }
+ struct tl_ds_string * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ int l = prefetch_strlen ();
+ assert (l >= 0);
+ result->len = l;
+ result->data = talloc (l + 1);
+ result->data[l] = 0;
+ memcpy (result->data, fetch_str (l), l);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1f2b0afd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_message (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_message_i_d (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x4e90bfd6;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random_id = fetch_ds_type_bare_long (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_delete_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xa20db0e5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x5c486927;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_user_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9a65ea1f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x70541c7e, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_send_message_action (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participants (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x07761198;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->participants = fetch_ds_type_chat_participants (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_status (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1bfbd823;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_name (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xa7332b73;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->username = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x95313b0c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_user_profile_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->previous = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_contact_registered (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2575bbb9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_contact_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9d2e67c5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->my_link = fetch_ds_type_contact_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->foreign_link = fetch_ds_type_contact_link (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8f06529a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->auth_key_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->device = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->location = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x5a68e3f7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->geo_message = fetch_ds_type_geo_chat_message (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_new_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x12bcbd9a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_message = fetch_ds_type_encrypted_message (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1710f156;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encryption (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xb4a2e88d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_chat = fetch_ds_type_encrypted_chat (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x38fe25b7;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_add (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3a0eeb22;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_chat_participant_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6e5f8c22;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_dc_options (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8e5e9873;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2b1a62f0, .id = "DcOption", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dc_options = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x80ece81a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->blocked = fetch_ds_type_bool (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_notify_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xbec268ef;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_peer = fetch_ds_type_notify_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_service_notification (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x382dd3e4;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message_text = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->popup = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_privacy (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xee3b272a;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_privacy_key (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->rules = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_user_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x12b9417b;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_history_inbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9961fd5c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_history_outbox (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2f2f21bf;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->peer = fetch_ds_type_peer (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->max_id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2cc36971;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x8d8c0d41, .id = "WebPage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->webpage = fetch_ds_type_web_page (field1);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_read_messages_contents (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x68c13933;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_update *fetch_ds_constructor_update_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x2e02b27e && T->type->name != 0xd1fd4d81)) { return 0; }
+ struct tl_ds_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x03114739;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates_too_long (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0xe317af7e;
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0xed5c2127;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field7);
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field8);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field10);
+ }
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short_chat_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x52238b3c;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_to_msg_id = fetch_ds_type_bare_int (field11);
+ }
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_update_short (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x78d4dec1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->update = fetch_ds_type_update (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates_combined (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x725b04c3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->updates = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq_start = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field6);
+ return result;
+}
+struct tl_ds_updates *fetch_ds_constructor_updates (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x22499d27 && T->type->name != 0xddb662d8)) { return 0; }
+ struct tl_ds_updates * result = talloc0 (sizeof (*result));
+ result->magic = 0x74ae4240;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->updates = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_user *fetch_ds_constructor_user_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; }
+ struct tl_ds_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x200250ba;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user *fetch_ds_constructor_user (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x02e6c0c8 && T->type->name != 0xfd193f37)) { return 0; }
+ struct tl_ds_user * result = talloc0 (sizeof (*result));
+ result->magic = 0x22e49072;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 0)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->username = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_user_profile_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->status = fetch_ds_type_user_status (field9);
+ }
+ if (PTR2INT (var0) & (1 << 14)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bot_info_version = fetch_ds_type_bare_int (field10);
+ }
+ return result;
+}
+struct tl_ds_user_full *fetch_ds_constructor_user_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5a89ac5b && T->type->name != 0xa57653a4)) { return 0; }
+ struct tl_ds_user_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->link = fetch_ds_type_contacts_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->profile_photo = fetch_ds_type_photo (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->notify_settings = fetch_ds_type_peer_notify_settings (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->blocked = fetch_ds_type_bool (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bot_info = fetch_ds_type_bot_info (field6);
+ return result;
+}
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; }
+ struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0x4f11bae1;
+ return result;
+}
+struct tl_ds_user_profile_photo *fetch_ds_constructor_user_profile_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return 0; }
+ struct tl_ds_user_profile_photo * result = talloc0 (sizeof (*result));
+ result->magic = 0xd559d8c8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_small = fetch_ds_type_file_location (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo_big = fetch_ds_type_file_location (field3);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x09d05049;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_online (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0xedb93949;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->expires = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_offline (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x008c703f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->was_online = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_recently (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0xe26f42f1;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_week (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x07bf09fc;
+ return result;
+}
+struct tl_ds_user_status *fetch_ds_constructor_user_status_last_month (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return 0; }
+ struct tl_ds_user_status * result = talloc0 (sizeof (*result));
+ result->magic = 0x77ebc742;
+ return result;
+}
+struct tl_ds_vector *fetch_ds_constructor_vector (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return 0; }
+ if (ODDP(T->params[0])) { return 0; }
+ struct paramed_type *var0 = T->params[0]; assert (var0);
+ struct tl_ds_vector * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ result->f1 = talloc (4); *result->f1 = prefetch_int (); struct paramed_type *var1 = INT2PTR (fetch_int ());
+ int multiplicity3 = PTR2INT (
+ ((void *)var1) + 0 );
+ struct paramed_type *field3 =
+ var0;
+ result->f2 = talloc0 (multiplicity3 * sizeof (void *));
+ {
+ int i = 0;
+ while (i < multiplicity3) {
+ result->f2[i ++] = fetch_ds_type_any (field3);
+ }
+ }
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xc10658a8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0xee9f4a4d;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field10);
+ return result;
+}
+struct tl_ds_video *fetch_ds_constructor_video_l27 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1716b174 && T->type->name != 0xe8e94e8b)) { return 0; }
+ struct tl_ds_video * result = talloc0 (sizeof (*result));
+ result->magic = 0x388fa391;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->caption = fetch_ds_type_bare_string (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mime_type = fetch_ds_type_bare_string (field7);
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->size = fetch_ds_type_bare_int (field8);
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->thumb = fetch_ds_type_photo_size (field9);
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc_id = fetch_ds_type_bare_int (field10);
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->w = fetch_ds_type_bare_int (field11);
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->h = fetch_ds_type_bare_int (field12);
+ return result;
+}
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; }
+ struct tl_ds_wall_paper * result = talloc0 (sizeof (*result));
+ result->magic = 0xccb03657;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->sizes = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->color = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_wall_paper *fetch_ds_constructor_wall_paper_solid (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return 0; }
+ struct tl_ds_wall_paper * result = talloc0 (sizeof (*result));
+ result->magic = 0x63117f24;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bg_color = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->color = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xeb1477e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page_pending (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xc586da1c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_web_page *fetch_ds_constructor_web_page (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8d8c0d41 && T->type->name != 0x7273f2be)) { return 0; }
+ struct tl_ds_web_page * result = talloc0 (sizeof (*result));
+ result->magic = 0xa31ea0b5;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_long (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->url = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->display_url = fetch_ds_type_bare_string (field4);
+ if (PTR2INT (var0) & (1 << 0)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->site_name = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 2)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 3)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->description = fetch_ds_type_bare_string (field8);
+ }
+ if (PTR2INT (var0) & (1 << 4)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field9);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_url = fetch_ds_type_bare_string (field10);
+ }
+ if (PTR2INT (var0) & (1 << 5)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_type = fetch_ds_type_bare_string (field11);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_width = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 6)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->embed_height = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 7)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->duration = fetch_ds_type_bare_int (field14);
+ }
+ if (PTR2INT (var0) & (1 << 8)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->author = fetch_ds_type_bare_string (field15);
+ }
+ return result;
+}
+struct tl_ds_account_authorizations *fetch_ds_constructor_account_authorizations (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x1250abde && T->type->name != 0xedaf5421)) { return 0; }
+ struct tl_ds_account_authorizations * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bf2e6f6, .id = "Authorization", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->authorizations = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_account_password *fetch_ds_constructor_account_no_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; }
+ struct tl_ds_account_password * result = talloc0 (sizeof (*result));
+ result->magic = 0x96dabc18;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field2);
+ return result;
+}
+struct tl_ds_account_password *fetch_ds_constructor_account_password (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xeac2a804 && T->type->name != 0x153d57fb)) { return 0; }
+ struct tl_ds_account_password * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c18141c;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->current_salt = fetch_ds_type_bare_bytes (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hint = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->has_recovery = fetch_ds_type_bool (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->email_unconfirmed_pattern = fetch_ds_type_bare_string (field5);
+ return result;
+}
+struct tl_ds_account_password_input_settings *fetch_ds_constructor_account_password_input_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xbcfc532c && T->type->name != 0x4303acd3)) { return 0; }
+ struct tl_ds_account_password_input_settings * result = talloc0 (sizeof (*result));
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ if (PTR2INT (var0) & (1 << 0)) {
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_salt = fetch_ds_type_bare_bytes (field2);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_password_hash = fetch_ds_type_bare_bytes (field3);
+ }
+ if (PTR2INT (var0) & (1 << 0)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hint = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 1)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->email = fetch_ds_type_bare_string (field5);
+ }
+ return result;
+}
+struct tl_ds_account_password_settings *fetch_ds_constructor_account_password_settings (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb7b72ab3 && T->type->name != 0x4848d54c)) { return 0; }
+ struct tl_ds_account_password_settings * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->email = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_account_privacy_rules *fetch_ds_constructor_account_privacy_rules (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return 0; }
+ struct tl_ds_account_privacy_rules * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->rules = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return 0; }
+ struct tl_ds_account_sent_change_phone_code * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_auth_authorization *fetch_ds_constructor_auth_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xff036af1 && T->type->name != 0x00fc950e)) { return 0; }
+ struct tl_ds_auth_authorization * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field1);
+ return result;
+}
+struct tl_ds_auth_checked_phone *fetch_ds_constructor_auth_checked_phone (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x811ea28e && T->type->name != 0x7ee15d71)) { return 0; }
+ struct tl_ds_auth_checked_phone * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ return result;
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_constructor_auth_exported_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return 0; }
+ struct tl_ds_auth_exported_authorization * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field2);
+ return result;
+}
+struct tl_ds_auth_password_recovery *fetch_ds_constructor_auth_password_recovery (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x137948a5 && T->type->name != 0xec86b75a)) { return 0; }
+ struct tl_ds_auth_password_recovery * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->email_pattern = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; }
+ struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result));
+ result->magic = 0xefed51d9;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->is_password = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_auth_sent_code *fetch_ds_constructor_auth_sent_app_code (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return 0; }
+ struct tl_ds_auth_sent_code * result = talloc0 (sizeof (*result));
+ result->magic = 0xe325edcf;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_registered = fetch_ds_type_bool (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_code_hash = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->send_call_timeout = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->is_password = fetch_ds_type_bool (field4);
+ return result;
+}
+struct tl_ds_binlog_encr_key *fetch_ds_constructor_binlog_encr_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0377168f && T->type->name != 0xfc88e970)) { return 0; }
+ struct tl_ds_binlog_encr_key * result = talloc0 (sizeof (*result));
+ int multiplicity1 = PTR2INT (
+ INT2PTR (64) );
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = talloc0 (multiplicity1 * sizeof (void *));
+ {
+ int i = 0;
+ while (i < multiplicity1) {
+ result->key[i ++] =fetch_ds_type_any (field1);
+ }
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_start (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3b06de69;
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xf96feb32;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->name = fetch_ds_type_bare_string (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->port = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_option_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x7c0d22d8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->flags = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->name = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ip = fetch_ds_type_bare_string (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->port = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_auth_key (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x71e8c156;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field2);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_default_dc (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9e83dbdc;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_dc_signed (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x26451bb5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->dc = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_our_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x68a870e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_dh_params (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xeaeb7826;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->root = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->prime = fetch_ds_type_bare_binlog_encr_key (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_pts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x2ca8c939;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_qts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xd95738ac;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_date (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x1d0f4b52;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_seq (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6eeb2989;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xee1b38e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x84977251;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field7);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g_key = fetch_ds_type_bare_binlog_encr_key (field8);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->state = fetch_ds_type_bare_int (field9);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->ttl = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->layer = fetch_ds_type_bare_int (field11);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->in_seq_no = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_in_seq_no = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->out_seq_no = fetch_ds_type_bare_int (field14);
+ }
+ if (PTR2INT (var0) & (1 << 27)) {
+ struct paramed_type *field15 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key_fingerprint = fetch_ds_type_bare_long (field15);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_encr_chat_exchange_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x9d49488d;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->exchange_id = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xfc88e970, .id = "Bare_binlog.EncrKey", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->key = fetch_ds_type_bare_binlog_encr_key (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->state = fetch_ds_type_bare_int (field5);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xac55d447;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_user_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x127cf2f9;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->access_hash = fetch_ds_type_bare_long (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->first_name = fetch_ds_type_bare_string (field4);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_name = fetch_ds_type_bare_string (field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone = fetch_ds_type_bare_string (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->username = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->real_first_name = fetch_ds_type_bare_string (field9);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->real_last_name = fetch_ds_type_bare_string (field10);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_photo = fetch_ds_type_user_profile_photo (field11);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_read_in = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_read_out = fetch_ds_type_bare_int (field13);
+ }
+ if (PTR2INT (var0) & (1 << 26)) {
+ struct paramed_type *field14 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xb2e16f93, .id = "BotInfo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bot_info = fetch_ds_type_bot_info (field14);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x0a10aa92;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->title = fetch_ds_type_bare_string (field3);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_num = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->participants = (void *)fetch_ds_type_vector (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->chat_photo = fetch_ds_type_chat_photo (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->admin = fetch_ds_type_bare_int (field10);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_read_in = fetch_ds_type_bare_int (field11);
+ }
+ if (PTR2INT (var0) & (1 << 25)) {
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->last_read_out = fetch_ds_type_bare_int (field12);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x535475ea;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->inviter_id = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x7dd1a1a2;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user_id = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_set_msg_id (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x3c873416;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->old_id = fetch_ds_type_bare_long (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->new_id = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_delete (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x847e77b1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->lid = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x427cfcdb;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->lid = fetch_ds_type_bare_long (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_type = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_from_id = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 18)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->fwd_date = fetch_ds_type_bare_int (field7);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field8);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field9);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field10);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field11 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x383415fa, .id = "MessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->action = fetch_ds_type_message_action (field11);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field12 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_id = fetch_ds_type_bare_int (field12);
+ }
+ if (PTR2INT (var0) & (1 << 24)) {
+ struct paramed_type *field13 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x612ca4a9, .id = "ReplyMarkup", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->reply_markup = fetch_ds_type_reply_markup (field13);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_message_encr_new (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6cf7cabc;
+ assert (in_remaining () >= 4);
+ result->flags = talloc (4); *result->flags = prefetch_int (); struct paramed_type *var0 = INT2PTR (fetch_int ());
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->lid = fetch_ds_type_bare_long (field2);
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->from_id = fetch_ds_type_bare_int (field3);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_type = fetch_ds_type_bare_int (field4);
+ }
+ if (PTR2INT (var0) & (1 << 17)) {
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->to_id = fetch_ds_type_bare_int (field5);
+ }
+ if (PTR2INT (var0) & (1 << 19)) {
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field6);
+ }
+ if (PTR2INT (var0) & (1 << 20)) {
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field7);
+ }
+ if (PTR2INT (var0) & (1 << 21)) {
+ struct paramed_type *field8 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x34e0d674, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_media = fetch_ds_type_decrypted_message_media (field8);
+ }
+ if (PTR2INT (var0) & (1 << 22)) {
+ struct paramed_type *field9 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->encr_action = fetch_ds_type_decrypted_message_action (field9);
+ }
+ if (PTR2INT (var0) & (1 << 23)) {
+ struct paramed_type *field10 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field10);
+ }
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_msg_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x6dd4d85f;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->lid = fetch_ds_type_bare_long (field1);
+ return result;
+}
+struct tl_ds_binlog_update *fetch_ds_constructor_binlog_reset_authorization (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x66ff03a6 && T->type->name != 0x9900fc59)) { return 0; }
+ struct tl_ds_binlog_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x83327955;
+ return result;
+}
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; }
+ struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result));
+ result->magic = 0x1c138d15;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->blocked = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_blocked *fetch_ds_constructor_contacts_blocked_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return 0; }
+ struct tl_ds_contacts_blocked * result = talloc0 (sizeof (*result));
+ result->magic = 0x900802a1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->blocked = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; }
+ struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result));
+ result->magic = 0xb74ba9d2;
+ return result;
+}
+struct tl_ds_contacts_contacts *fetch_ds_constructor_contacts_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return 0; }
+ struct tl_ds_contacts_contacts * result = talloc0 (sizeof (*result));
+ result->magic = 0x6f8b8cb2;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->contacts = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_found *fetch_ds_constructor_contacts_found (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return 0; }
+ struct tl_ds_contacts_found * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_constructor_contacts_imported_contacts (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return 0; }
+ struct tl_ds_contacts_imported_contacts * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->imported = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->retry_contacts = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_contacts_link *fetch_ds_constructor_contacts_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3ace484c && T->type->name != 0xc531b7b3)) { return 0; }
+ struct tl_ds_contacts_link * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->my_link = fetch_ds_type_contact_link (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x522fbc63, .id = "ContactLink", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->foreign_link = fetch_ds_type_contact_link (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field3);
+ return result;
+}
+struct tl_ds_contacts_suggested *fetch_ds_constructor_contacts_suggested (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return 0; }
+ struct tl_ds_contacts_suggested * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_geochats_located *fetch_ds_constructor_geochats_located (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return 0; }
+ struct tl_ds_geochats_located * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->results = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; }
+ struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0xd1526db1;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_geochats_messages *fetch_ds_constructor_geochats_messages_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return 0; }
+ struct tl_ds_geochats_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0xbc5863e8;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_geochats_stated_message *fetch_ds_constructor_geochats_stated_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return 0; }
+ struct tl_ds_geochats_stated_message * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_geo_chat_message (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field4);
+ return result;
+}
+struct tl_ds_help_app_update *fetch_ds_constructor_help_app_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; }
+ struct tl_ds_help_app_update * result = talloc0 (sizeof (*result));
+ result->magic = 0x8987f311;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->critical = fetch_ds_type_bool (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->url = fetch_ds_type_bare_string (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->text = fetch_ds_type_bare_string (field4);
+ return result;
+}
+struct tl_ds_help_app_update *fetch_ds_constructor_help_no_app_update (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return 0; }
+ struct tl_ds_help_app_update * result = talloc0 (sizeof (*result));
+ result->magic = 0xc45a6536;
+ return result;
+}
+struct tl_ds_help_invite_text *fetch_ds_constructor_help_invite_text (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return 0; }
+ struct tl_ds_help_invite_text * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->message = fetch_ds_type_bare_string (field1);
+ return result;
+}
+struct tl_ds_help_support *fetch_ds_constructor_help_support (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return 0; }
+ struct tl_ds_help_support * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->phone_number = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->user = fetch_ds_type_user (field2);
+ return result;
+}
+struct tl_ds_messages_affected_history *fetch_ds_constructor_messages_affected_history (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb45c69d1 && T->type->name != 0x4ba3962e)) { return 0; }
+ struct tl_ds_messages_affected_history * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->offset = fetch_ds_type_bare_int (field3);
+ return result;
+}
+struct tl_ds_messages_affected_messages *fetch_ds_constructor_messages_affected_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x84d19185 && T->type->name != 0x7b2e6e7a)) { return 0; }
+ struct tl_ds_messages_affected_messages * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; }
+ struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0xe86602c3;
+ return result;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_constructor_messages_all_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb485502f && T->type->name != 0x4b7aafd0)) { return 0; }
+ struct tl_ds_messages_all_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0x5ce352ec;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hash = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->packs = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->sets = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_chat_full *fetch_ds_constructor_messages_chat_full (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return 0; }
+ struct tl_ds_messages_chat_full * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02a614, .id = "ChatFull", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->full_chat = fetch_ds_type_chat_full (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_chats *fetch_ds_constructor_messages_chats (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x64ff9fd5 && T->type->name != 0x9b00602a)) { return 0; }
+ struct tl_ds_messages_chats * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field1);
+ return result;
+}
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; }
+ struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result));
+ result->magic = 0xc0e24635;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random = fetch_ds_type_bare_bytes (field1);
+ return result;
+}
+struct tl_ds_messages_dh_config *fetch_ds_constructor_messages_dh_config (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return 0; }
+ struct tl_ds_messages_dh_config * result = talloc0 (sizeof (*result));
+ result->magic = 0x2c221edd;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->g = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->p = fetch_ds_type_bare_bytes (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->version = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->random = fetch_ds_type_bare_bytes (field4);
+ return result;
+}
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; }
+ struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result));
+ result->magic = 0x15ba6c40;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dialogs = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_dialogs *fetch_ds_constructor_messages_dialogs_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return 0; }
+ struct tl_ds_messages_dialogs * result = talloc0 (sizeof (*result));
+ result->magic = 0x71e094f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc1dd804a, .id = "Dialog", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->dialogs = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ return result;
+}
+struct tl_ds_messages_message *fetch_ds_constructor_messages_message_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3f4e0648 && T->type->name != 0xc0b1f9b7)) { return 0; }
+ struct tl_ds_messages_message * result = talloc0 (sizeof (*result));
+ return result;
+}
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; }
+ struct tl_ds_messages_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0x8c718e87;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_messages *fetch_ds_constructor_messages_messages_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return 0; }
+ struct tl_ds_messages_messages * result = talloc0 (sizeof (*result));
+ result->magic = 0x0b446ae3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field4);
+ return result;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; }
+ struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x560f8935;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ return result;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return 0; }
+ struct tl_ds_messages_sent_encrypted_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x9493ff32;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->file = fetch_ds_type_encrypted_file (field2);
+ return result;
+}
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; }
+ struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x4c3d47f3;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_messages_sent_message *fetch_ds_constructor_messages_sent_message_link (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x799ce190 && T->type->name != 0x86631e6f)) { return 0; }
+ struct tl_ds_messages_sent_message * result = talloc0 (sizeof (*result));
+ result->magic = 0x35a1a663;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->id = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x95f2471a, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->media = fetch_ds_type_message_media (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts_count = fetch_ds_type_bare_int (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3ace484c, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->links = (void *)fetch_ds_type_vector (field6);
+ struct paramed_type *field7 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field7);
+ return result;
+}
+struct tl_ds_messages_sticker_set *fetch_ds_constructor_messages_sticker_set (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xb60a24a6 && T->type->name != 0x49f5db59)) { return 0; }
+ struct tl_ds_messages_sticker_set * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa7a43b17, .id = "StickerSet", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->set = fetch_ds_type_sticker_set (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->packs = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->documents = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; }
+ struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0xf1749a22;
+ return result;
+}
+struct tl_ds_messages_stickers *fetch_ds_constructor_messages_stickers (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return 0; }
+ struct tl_ds_messages_stickers * result = talloc0 (sizeof (*result));
+ result->magic = 0x8a8ecd32;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->hash = fetch_ds_type_bare_string (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->stickers = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photo *fetch_ds_constructor_photos_photo (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return 0; }
+ struct tl_ds_photos_photo * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->photo = fetch_ds_type_photo (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; }
+ struct tl_ds_photos_photos * result = talloc0 (sizeof (*result));
+ result->magic = 0x8dca6aa5;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->photos = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field2);
+ return result;
+}
+struct tl_ds_photos_photos *fetch_ds_constructor_photos_photos_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return 0; }
+ struct tl_ds_photos_photos * result = talloc0 (sizeof (*result));
+ result->magic = 0x15051f54;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->count = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xc207550a, .id = "Photo", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->photos = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field3);
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_unknown (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xaa963b05;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_jpeg (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x007efe0e;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_gif (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xcae1aadf;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_png (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x0a4f63c0;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_pdf (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xae1e508d;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp3 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x528a0677;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mov (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x4b09ebbc;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_partial (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x40bc6f52;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_mp4 (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0xb3cea0e4;
+ return result;
+}
+struct tl_ds_storage_file_type *fetch_ds_constructor_storage_file_webp (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return 0; }
+ struct tl_ds_storage_file_type * result = talloc0 (sizeof (*result));
+ result->magic = 0x1081464c;
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_empty (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0x5d75a138;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field2);
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0x00f49ca0;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->other_updates = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->state = fetch_ds_type_updates_state (field6);
+ return result;
+}
+struct tl_ds_updates_difference *fetch_ds_constructor_updates_difference_slice (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return 0; }
+ struct tl_ds_updates_difference * result = talloc0 (sizeof (*result));
+ result->magic = 0xa8fb1981;
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x5d652a7f, .id = "Message", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_messages = (void *)fetch_ds_type_vector (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->new_encrypted_messages = (void *)fetch_ds_type_vector (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x2e02b27e, .id = "Update", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->other_updates = (void *)fetch_ds_type_vector (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->chats = (void *)fetch_ds_type_vector (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+ .params = (struct paramed_type *[]){
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x02e6c0c8, .id = "User", .params_num = 0, .params_types = 0},
+ .params = 0,
+ },
+ }
+ };
+ result->users = (void *)fetch_ds_type_vector (field5);
+ struct paramed_type *field6 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->intermediate_state = fetch_ds_type_updates_state (field6);
+ return result;
+}
+struct tl_ds_updates_state *fetch_ds_constructor_updates_state (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return 0; }
+ struct tl_ds_updates_state * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->pts = fetch_ds_type_bare_int (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->qts = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->date = fetch_ds_type_bare_int (field3);
+ struct paramed_type *field4 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->seq = fetch_ds_type_bare_int (field4);
+ struct paramed_type *field5 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->unread_count = fetch_ds_type_bare_int (field5);
+ return result;
+}
+struct tl_ds_upload_file *fetch_ds_constructor_upload_file (struct paramed_type *T) {
+ if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return 0; }
+ struct tl_ds_upload_file * result = talloc0 (sizeof (*result));
+ struct paramed_type *field1 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->type = fetch_ds_type_storage_file_type (field1);
+ struct paramed_type *field2 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->mtime = fetch_ds_type_bare_int (field2);
+ struct paramed_type *field3 =
+ &(struct paramed_type){
+ .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+ .params = 0,
+ };
+ result->bytes = fetch_ds_type_bare_bytes (field3);
+ return result;
+}
+struct tl_ds_account_days_t_t_l *fetch_ds_type_account_days_t_t_l (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb8d0afdf: return fetch_ds_constructor_account_days_t_t_l (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_days_t_t_l *fetch_ds_type_bare_account_days_t_t_l (struct paramed_type *T) {
+ return fetch_ds_constructor_account_days_t_t_l (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_audio *fetch_ds_type_audio (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x586988d8: return fetch_ds_constructor_audio_empty (T); break;
+ case 0xc7ac6496: return fetch_ds_constructor_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_audio *fetch_ds_type_bare_audio (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio_empty (T); }
+ if (skip_constructor_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_authorization *fetch_ds_type_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7bf2e6f6: return fetch_ds_constructor_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_authorization *fetch_ds_type_bare_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bool *fetch_ds_type_bool (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbc799737: return fetch_ds_constructor_bool_false (T); break;
+ case 0x997275b5: return fetch_ds_constructor_bool_true (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bool *fetch_ds_type_bare_bool (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bool_false (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_false (T); }
+ if (skip_constructor_bool_true (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bool_true (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bot_command *fetch_ds_type_bot_command (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc27ac8c7: return fetch_ds_constructor_bot_command (T); break;
+ case 0xb79d22ab: return fetch_ds_constructor_bot_command_old (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bot_command *fetch_ds_type_bare_bot_command (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_command (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command (T); }
+ if (skip_constructor_bot_command_old (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_command_old (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_bot_info *fetch_ds_type_bot_info (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbb2e37ce: return fetch_ds_constructor_bot_info_empty (T); break;
+ case 0x09cf585d: return fetch_ds_constructor_bot_info (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_bot_info *fetch_ds_type_bare_bot_info (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_bot_info_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info_empty (T); }
+ if (skip_constructor_bot_info (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_bot_info (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_string *fetch_ds_type_bytes (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0ee1379f: return fetch_ds_constructor_bytes (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_string *fetch_ds_type_bare_bytes (struct paramed_type *T) {
+ return fetch_ds_constructor_bytes (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat *fetch_ds_type_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9ba2d800: return fetch_ds_constructor_chat_empty (T); break;
+ case 0x6e9c9bc7: return fetch_ds_constructor_chat (T); break;
+ case 0xfb0ccc41: return fetch_ds_constructor_chat_forbidden (T); break;
+ case 0x75eaea5a: return fetch_ds_constructor_geo_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat *fetch_ds_type_bare_chat (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_empty (T); }
+ if (skip_constructor_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat (T); }
+ if (skip_constructor_chat_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_forbidden (T); }
+ if (skip_constructor_geo_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_full *fetch_ds_type_chat_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2e02a614: return fetch_ds_constructor_chat_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_full *fetch_ds_type_bare_chat_full (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_invite *fetch_ds_type_chat_invite (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a686d7c: return fetch_ds_constructor_chat_invite_already (T); break;
+ case 0xce917dcd: return fetch_ds_constructor_chat_invite (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_invite *fetch_ds_type_bare_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_already (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_already (T); }
+ if (skip_constructor_chat_invite (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_located *fetch_ds_type_chat_located (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3631cf4c: return fetch_ds_constructor_chat_located (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_located *fetch_ds_type_bare_chat_located (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_located (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_participant *fetch_ds_type_chat_participant (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc8d7493e: return fetch_ds_constructor_chat_participant (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_participant *fetch_ds_type_bare_chat_participant (struct paramed_type *T) {
+ return fetch_ds_constructor_chat_participant (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_participants *fetch_ds_type_chat_participants (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0fd2bb8a: return fetch_ds_constructor_chat_participants_forbidden (T); break;
+ case 0x7841b415: return fetch_ds_constructor_chat_participants (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_participants *fetch_ds_type_bare_chat_participants (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_participants_forbidden (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants_forbidden (T); }
+ if (skip_constructor_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_participants (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_chat_photo *fetch_ds_type_chat_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x37c1011c: return fetch_ds_constructor_chat_photo_empty (T); break;
+ case 0x6153276a: return fetch_ds_constructor_chat_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_chat_photo *fetch_ds_type_bare_chat_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo_empty (T); }
+ if (skip_constructor_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_client_d_h_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x6643b654: return fetch_ds_constructor_client_d_h_inner_data (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_client_d_h_inner_data *fetch_ds_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+ return fetch_ds_constructor_client_d_h_inner_data (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_config *fetch_ds_type_config (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4e32b894: return fetch_ds_constructor_config (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_config *fetch_ds_type_bare_config (struct paramed_type *T) {
+ return fetch_ds_constructor_config (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact *fetch_ds_type_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf911c994: return fetch_ds_constructor_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact *fetch_ds_type_bare_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_blocked *fetch_ds_type_contact_blocked (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x561bc879: return fetch_ds_constructor_contact_blocked (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_blocked *fetch_ds_type_bare_contact_blocked (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_blocked (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_found *fetch_ds_type_contact_found (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xea879f95: return fetch_ds_constructor_contact_found (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_found *fetch_ds_type_bare_contact_found (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_found (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_link *fetch_ds_type_contact_link (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5f4f9247: return fetch_ds_constructor_contact_link_unknown (T); break;
+ case 0xfeedd3ad: return fetch_ds_constructor_contact_link_none (T); break;
+ case 0x268f3f59: return fetch_ds_constructor_contact_link_has_phone (T); break;
+ case 0xd502c2d0: return fetch_ds_constructor_contact_link_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_link *fetch_ds_type_bare_contact_link (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contact_link_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_unknown (T); }
+ if (skip_constructor_contact_link_none (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_none (T); }
+ if (skip_constructor_contact_link_has_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_has_phone (T); }
+ if (skip_constructor_contact_link_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contact_link_contact (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_status *fetch_ds_type_contact_status (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd3680c61: return fetch_ds_constructor_contact_status (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_status *fetch_ds_type_bare_contact_status (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_status (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contact_suggested *fetch_ds_type_contact_suggested (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3de191a1: return fetch_ds_constructor_contact_suggested (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contact_suggested *fetch_ds_type_bare_contact_suggested (struct paramed_type *T) {
+ return fetch_ds_constructor_contact_suggested (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_dc_option *fetch_ds_type_dc_option (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2ec2a43c: return fetch_ds_constructor_dc_option_l28 (T); break;
+ case 0x05d8c6cc: return fetch_ds_constructor_dc_option (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_dc_option *fetch_ds_type_bare_dc_option (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_dc_option_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option_l28 (T); }
+ if (skip_constructor_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dc_option (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message *fetch_ds_type_decrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x204d3878: return fetch_ds_constructor_decrypted_message (T); break;
+ case 0x73164160: return fetch_ds_constructor_decrypted_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message *fetch_ds_type_bare_decrypted_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_decrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message (T); }
+ if (skip_constructor_decrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_action *fetch_ds_type_decrypted_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa1733aec: return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); break;
+ case 0x0c4f40be: return fetch_ds_constructor_decrypted_message_action_read_messages (T); break;
+ case 0x65614304: return fetch_ds_constructor_decrypted_message_action_delete_messages (T); break;
+ case 0x8ac1f475: return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); break;
+ case 0x6719e45c: return fetch_ds_constructor_decrypted_message_action_flush_history (T); break;
+ case 0x511110b0: return fetch_ds_constructor_decrypted_message_action_resend (T); break;
+ case 0xf3048883: return fetch_ds_constructor_decrypted_message_action_notify_layer (T); break;
+ case 0xccb27641: return fetch_ds_constructor_decrypted_message_action_typing (T); break;
+ case 0xf3c9611b: return fetch_ds_constructor_decrypted_message_action_request_key (T); break;
+ case 0x6fe1735b: return fetch_ds_constructor_decrypted_message_action_accept_key (T); break;
+ case 0xdd05ec6b: return fetch_ds_constructor_decrypted_message_action_abort_key (T); break;
+ case 0xec2e0b9b: return fetch_ds_constructor_decrypted_message_action_commit_key (T); break;
+ case 0xa82fdd63: return fetch_ds_constructor_decrypted_message_action_noop (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_action *fetch_ds_type_bare_decrypted_message_action (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_set_message_t_t_l (T); }
+ if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_read_messages (T); }
+ if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_delete_messages (T); }
+ if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_screenshot_messages (T); }
+ if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_flush_history (T); }
+ if (skip_constructor_decrypted_message_action_resend (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_resend (T); }
+ if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_notify_layer (T); }
+ if (skip_constructor_decrypted_message_action_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_typing (T); }
+ if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_request_key (T); }
+ if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_accept_key (T); }
+ if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_abort_key (T); }
+ if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_commit_key (T); }
+ if (skip_constructor_decrypted_message_action_noop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_action_noop (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_type_decrypted_message_layer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1be31789: return fetch_ds_constructor_decrypted_message_layer (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_layer *fetch_ds_type_bare_decrypted_message_layer (struct paramed_type *T) {
+ return fetch_ds_constructor_decrypted_message_layer (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_decrypted_message_media *fetch_ds_type_decrypted_message_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x089f5c4a: return fetch_ds_constructor_decrypted_message_media_empty (T); break;
+ case 0x32798a8c: return fetch_ds_constructor_decrypted_message_media_photo (T); break;
+ case 0x35480a59: return fetch_ds_constructor_decrypted_message_media_geo_point (T); break;
+ case 0x588a0a97: return fetch_ds_constructor_decrypted_message_media_contact (T); break;
+ case 0xb095434b: return fetch_ds_constructor_decrypted_message_media_document (T); break;
+ case 0x524a415d: return fetch_ds_constructor_decrypted_message_media_video (T); break;
+ case 0x57e0a9cb: return fetch_ds_constructor_decrypted_message_media_audio (T); break;
+ case 0xfa95b0dd: return fetch_ds_constructor_decrypted_message_media_external_document (T); break;
+ case 0x4cee6ef3: return fetch_ds_constructor_decrypted_message_media_video_l12 (T); break;
+ case 0x6080758f: return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_decrypted_message_media *fetch_ds_type_bare_decrypted_message_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_decrypted_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_empty (T); }
+ if (skip_constructor_decrypted_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_photo (T); }
+ if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_geo_point (T); }
+ if (skip_constructor_decrypted_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_contact (T); }
+ if (skip_constructor_decrypted_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_document (T); }
+ if (skip_constructor_decrypted_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video (T); }
+ if (skip_constructor_decrypted_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio (T); }
+ if (skip_constructor_decrypted_message_media_external_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_external_document (T); }
+ if (skip_constructor_decrypted_message_media_video_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_video_l12 (T); }
+ if (skip_constructor_decrypted_message_media_audio_l12 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_decrypted_message_media_audio_l12 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_dialog *fetch_ds_type_dialog (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc1dd804a: return fetch_ds_constructor_dialog (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_dialog *fetch_ds_type_bare_dialog (struct paramed_type *T) {
+ return fetch_ds_constructor_dialog (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_disabled_feature *fetch_ds_type_disabled_feature (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xae636f24: return fetch_ds_constructor_disabled_feature (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_disabled_feature *fetch_ds_type_bare_disabled_feature (struct paramed_type *T) {
+ return fetch_ds_constructor_disabled_feature (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_document *fetch_ds_type_document (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x36f8c871: return fetch_ds_constructor_document_empty (T); break;
+ case 0xf9a39f4f: return fetch_ds_constructor_document (T); break;
+ case 0x9efc6326: return fetch_ds_constructor_document_l19 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_document *fetch_ds_type_bare_document (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_empty (T); }
+ if (skip_constructor_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document (T); }
+ if (skip_constructor_document_l19 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_l19 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_document_attribute *fetch_ds_type_document_attribute (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x6c37c15c: return fetch_ds_constructor_document_attribute_image_size (T); break;
+ case 0x11b58939: return fetch_ds_constructor_document_attribute_animated (T); break;
+ case 0x994c9882: return fetch_ds_constructor_document_attribute_sticker_l28 (T); break;
+ case 0x3a556302: return fetch_ds_constructor_document_attribute_sticker (T); break;
+ case 0x5910cccb: return fetch_ds_constructor_document_attribute_video (T); break;
+ case 0x051448e5: return fetch_ds_constructor_document_attribute_audio (T); break;
+ case 0x15590068: return fetch_ds_constructor_document_attribute_filename (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_document_attribute *fetch_ds_type_bare_document_attribute (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_document_attribute_image_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_image_size (T); }
+ if (skip_constructor_document_attribute_animated (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_animated (T); }
+ if (skip_constructor_document_attribute_sticker_l28 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker_l28 (T); }
+ if (skip_constructor_document_attribute_sticker (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_sticker (T); }
+ if (skip_constructor_document_attribute_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_video (T); }
+ if (skip_constructor_document_attribute_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_audio (T); }
+ if (skip_constructor_document_attribute_filename (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_document_attribute_filename (T); }
+ assert (0);
+ return NULL;
+}
+double *fetch_ds_type_double (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2210c154: return fetch_ds_constructor_double (T); break;
+ default: assert (0); return NULL;
+ }
+}
+double *fetch_ds_type_bare_double (struct paramed_type *T) {
+ return fetch_ds_constructor_double (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_chat *fetch_ds_type_encrypted_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xab7ec0a0: return fetch_ds_constructor_encrypted_chat_empty (T); break;
+ case 0x3bf703dc: return fetch_ds_constructor_encrypted_chat_waiting (T); break;
+ case 0xc878527e: return fetch_ds_constructor_encrypted_chat_requested (T); break;
+ case 0xfa56ce36: return fetch_ds_constructor_encrypted_chat (T); break;
+ case 0x13d6dd27: return fetch_ds_constructor_encrypted_chat_discarded (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_chat *fetch_ds_type_bare_encrypted_chat (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_chat_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_empty (T); }
+ if (skip_constructor_encrypted_chat_waiting (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_waiting (T); }
+ if (skip_constructor_encrypted_chat_requested (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_requested (T); }
+ if (skip_constructor_encrypted_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat (T); }
+ if (skip_constructor_encrypted_chat_discarded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_chat_discarded (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_file *fetch_ds_type_encrypted_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc21f497e: return fetch_ds_constructor_encrypted_file_empty (T); break;
+ case 0x4a70994c: return fetch_ds_constructor_encrypted_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_file *fetch_ds_type_bare_encrypted_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file_empty (T); }
+ if (skip_constructor_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_file (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_encrypted_message *fetch_ds_type_encrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xed18c118: return fetch_ds_constructor_encrypted_message (T); break;
+ case 0x23734b06: return fetch_ds_constructor_encrypted_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_encrypted_message *fetch_ds_type_bare_encrypted_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message (T); }
+ if (skip_constructor_encrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_encrypted_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_error *fetch_ds_type_error (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc4b9f9bb: return fetch_ds_constructor_error (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_error *fetch_ds_type_bare_error (struct paramed_type *T) {
+ return fetch_ds_constructor_error (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_exported_chat_invite *fetch_ds_type_exported_chat_invite (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x69df3769: return fetch_ds_constructor_chat_invite_empty (T); break;
+ case 0xfc2e05bc: return fetch_ds_constructor_chat_invite_exported (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_exported_chat_invite *fetch_ds_type_bare_exported_chat_invite (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_chat_invite_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_empty (T); }
+ if (skip_constructor_chat_invite_exported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_chat_invite_exported (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_file_location *fetch_ds_type_file_location (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7c596b46: return fetch_ds_constructor_file_location_unavailable (T); break;
+ case 0x53d69076: return fetch_ds_constructor_file_location (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_file_location *fetch_ds_type_bare_file_location (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_file_location_unavailable (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location_unavailable (T); }
+ if (skip_constructor_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_file_location (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geo_chat_message *fetch_ds_type_geo_chat_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x60311a9b: return fetch_ds_constructor_geo_chat_message_empty (T); break;
+ case 0x4505f8e1: return fetch_ds_constructor_geo_chat_message (T); break;
+ case 0xd34fa24e: return fetch_ds_constructor_geo_chat_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geo_chat_message *fetch_ds_type_bare_geo_chat_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geo_chat_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_empty (T); }
+ if (skip_constructor_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message (T); }
+ if (skip_constructor_geo_chat_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_chat_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geo_point *fetch_ds_type_geo_point (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1117dd5f: return fetch_ds_constructor_geo_point_empty (T); break;
+ case 0x2049d70c: return fetch_ds_constructor_geo_point (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geo_point *fetch_ds_type_bare_geo_point (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point_empty (T); }
+ if (skip_constructor_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geo_point (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_imported_contact *fetch_ds_type_imported_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd0028438: return fetch_ds_constructor_imported_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_imported_contact *fetch_ds_type_bare_imported_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_imported_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_app_event *fetch_ds_type_input_app_event (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x770656a8: return fetch_ds_constructor_input_app_event (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_app_event *fetch_ds_type_bare_input_app_event (struct paramed_type *T) {
+ return fetch_ds_constructor_input_app_event (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_audio *fetch_ds_type_input_audio (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd95adc84: return fetch_ds_constructor_input_audio_empty (T); break;
+ case 0x77d440ff: return fetch_ds_constructor_input_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_audio *fetch_ds_type_bare_input_audio (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_audio_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_empty (T); }
+ if (skip_constructor_input_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_chat_photo *fetch_ds_type_input_chat_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1ca48f57: return fetch_ds_constructor_input_chat_photo_empty (T); break;
+ case 0x94254732: return fetch_ds_constructor_input_chat_uploaded_photo (T); break;
+ case 0xb2e1bf08: return fetch_ds_constructor_input_chat_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_chat_photo *fetch_ds_type_bare_input_chat_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo_empty (T); }
+ if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_uploaded_photo (T); }
+ if (skip_constructor_input_chat_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_chat_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_contact *fetch_ds_type_input_contact (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf392b7f4: return fetch_ds_constructor_input_phone_contact (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_contact *fetch_ds_type_bare_input_contact (struct paramed_type *T) {
+ return fetch_ds_constructor_input_phone_contact (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_document *fetch_ds_type_input_document (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x72f0eaae: return fetch_ds_constructor_input_document_empty (T); break;
+ case 0x18798952: return fetch_ds_constructor_input_document (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_document *fetch_ds_type_bare_input_document (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_document_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_empty (T); }
+ if (skip_constructor_input_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_type_input_encrypted_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf141b5e1: return fetch_ds_constructor_input_encrypted_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_encrypted_chat *fetch_ds_type_bare_input_encrypted_chat (struct paramed_type *T) {
+ return fetch_ds_constructor_input_encrypted_chat (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_encrypted_file *fetch_ds_type_input_encrypted_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1837c364: return fetch_ds_constructor_input_encrypted_file_empty (T); break;
+ case 0x64bd0306: return fetch_ds_constructor_input_encrypted_file_uploaded (T); break;
+ case 0x5a17b5e5: return fetch_ds_constructor_input_encrypted_file (T); break;
+ case 0x2dc173c8: return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_encrypted_file *fetch_ds_type_bare_input_encrypted_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_empty (T); }
+ if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_uploaded (T); }
+ if (skip_constructor_input_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file (T); }
+ if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_big_uploaded (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_file *fetch_ds_type_input_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf52ff27f: return fetch_ds_constructor_input_file (T); break;
+ case 0xfa4f0bb5: return fetch_ds_constructor_input_file_big (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_file *fetch_ds_type_bare_input_file (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file (T); }
+ if (skip_constructor_input_file_big (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_big (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_file_location *fetch_ds_type_input_file_location (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x14637196: return fetch_ds_constructor_input_file_location (T); break;
+ case 0x3d0364ec: return fetch_ds_constructor_input_video_file_location (T); break;
+ case 0xf5235d55: return fetch_ds_constructor_input_encrypted_file_location (T); break;
+ case 0x74dc404d: return fetch_ds_constructor_input_audio_file_location (T); break;
+ case 0x4e45abe9: return fetch_ds_constructor_input_document_file_location (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_file_location *fetch_ds_type_bare_input_file_location (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_file_location (T); }
+ if (skip_constructor_input_video_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_file_location (T); }
+ if (skip_constructor_input_encrypted_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_encrypted_file_location (T); }
+ if (skip_constructor_input_audio_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_audio_file_location (T); }
+ if (skip_constructor_input_document_file_location (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_document_file_location (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_geo_chat *fetch_ds_type_input_geo_chat (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x74d456fa: return fetch_ds_constructor_input_geo_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_geo_chat *fetch_ds_type_bare_input_geo_chat (struct paramed_type *T) {
+ return fetch_ds_constructor_input_geo_chat (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_geo_point *fetch_ds_type_input_geo_point (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe4c123d6: return fetch_ds_constructor_input_geo_point_empty (T); break;
+ case 0xf3b7acc9: return fetch_ds_constructor_input_geo_point (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_geo_point *fetch_ds_type_bare_input_geo_point (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point_empty (T); }
+ if (skip_constructor_input_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_geo_point (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_media *fetch_ds_type_input_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9664f57f: return fetch_ds_constructor_input_media_empty (T); break;
+ case 0xf7aff1c0: return fetch_ds_constructor_input_media_uploaded_photo (T); break;
+ case 0xe9bfb4f3: return fetch_ds_constructor_input_media_photo (T); break;
+ case 0xf9c44144: return fetch_ds_constructor_input_media_geo_point (T); break;
+ case 0xa6e45987: return fetch_ds_constructor_input_media_contact (T); break;
+ case 0xe13fd4bc: return fetch_ds_constructor_input_media_uploaded_video (T); break;
+ case 0x96fb97dc: return fetch_ds_constructor_input_media_uploaded_thumb_video (T); break;
+ case 0x936a4ebd: return fetch_ds_constructor_input_media_video (T); break;
+ case 0x4e498cab: return fetch_ds_constructor_input_media_uploaded_audio (T); break;
+ case 0x89938781: return fetch_ds_constructor_input_media_audio (T); break;
+ case 0xffe76b78: return fetch_ds_constructor_input_media_uploaded_document (T); break;
+ case 0x41481486: return fetch_ds_constructor_input_media_uploaded_thumb_document (T); break;
+ case 0xd184e841: return fetch_ds_constructor_input_media_document (T); break;
+ case 0x2827a81a: return fetch_ds_constructor_input_media_venue (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_media *fetch_ds_type_bare_input_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_empty (T); }
+ if (skip_constructor_input_media_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_photo (T); }
+ if (skip_constructor_input_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_photo (T); }
+ if (skip_constructor_input_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_geo_point (T); }
+ if (skip_constructor_input_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_contact (T); }
+ if (skip_constructor_input_media_uploaded_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_video (T); }
+ if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_video (T); }
+ if (skip_constructor_input_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_video (T); }
+ if (skip_constructor_input_media_uploaded_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_audio (T); }
+ if (skip_constructor_input_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_audio (T); }
+ if (skip_constructor_input_media_uploaded_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_document (T); }
+ if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_uploaded_thumb_document (T); }
+ if (skip_constructor_input_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_document (T); }
+ if (skip_constructor_input_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_media_venue (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_notify_peer *fetch_ds_type_input_notify_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb8bc5b0c: return fetch_ds_constructor_input_notify_peer (T); break;
+ case 0x193b4417: return fetch_ds_constructor_input_notify_users (T); break;
+ case 0x4a95e84e: return fetch_ds_constructor_input_notify_chats (T); break;
+ case 0xa429b886: return fetch_ds_constructor_input_notify_all (T); break;
+ case 0x4d8ddec8: return fetch_ds_constructor_input_notify_geo_chat_peer (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_notify_peer *fetch_ds_type_bare_input_notify_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_peer (T); }
+ if (skip_constructor_input_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_users (T); }
+ if (skip_constructor_input_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_chats (T); }
+ if (skip_constructor_input_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_all (T); }
+ if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_notify_geo_chat_peer (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer *fetch_ds_type_input_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7f3b18ea: return fetch_ds_constructor_input_peer_empty (T); break;
+ case 0x7da07ec9: return fetch_ds_constructor_input_peer_self (T); break;
+ case 0x1023dbe8: return fetch_ds_constructor_input_peer_contact (T); break;
+ case 0x9b447325: return fetch_ds_constructor_input_peer_foreign (T); break;
+ case 0x179be863: return fetch_ds_constructor_input_peer_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer *fetch_ds_type_bare_input_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_peer_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_empty (T); }
+ if (skip_constructor_input_peer_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_self (T); }
+ if (skip_constructor_input_peer_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_contact (T); }
+ if (skip_constructor_input_peer_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_foreign (T); }
+ if (skip_constructor_input_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_type_input_peer_notify_events (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf03064d8: return fetch_ds_constructor_input_peer_notify_events_empty (T); break;
+ case 0xe86a2c74: return fetch_ds_constructor_input_peer_notify_events_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer_notify_events *fetch_ds_type_bare_input_peer_notify_events (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_empty (T); }
+ if (skip_constructor_input_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_peer_notify_events_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_input_peer_notify_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x46a2ce98: return fetch_ds_constructor_input_peer_notify_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_peer_notify_settings *fetch_ds_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_input_peer_notify_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_photo *fetch_ds_type_input_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1cd7bf0d: return fetch_ds_constructor_input_photo_empty (T); break;
+ case 0xfb95c6c4: return fetch_ds_constructor_input_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_photo *fetch_ds_type_bare_input_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_empty (T); }
+ if (skip_constructor_input_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_photo_crop *fetch_ds_type_input_photo_crop (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xade6b004: return fetch_ds_constructor_input_photo_crop_auto (T); break;
+ case 0xd9915325: return fetch_ds_constructor_input_photo_crop (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_photo_crop *fetch_ds_type_bare_input_photo_crop (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_photo_crop_auto (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop_auto (T); }
+ if (skip_constructor_input_photo_crop (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_photo_crop (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_privacy_key *fetch_ds_type_input_privacy_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4f96cb18: return fetch_ds_constructor_input_privacy_key_status_timestamp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_privacy_key *fetch_ds_type_bare_input_privacy_key (struct paramed_type *T) {
+ return fetch_ds_constructor_input_privacy_key_status_timestamp (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_privacy_rule *fetch_ds_type_input_privacy_rule (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0d09e07b: return fetch_ds_constructor_input_privacy_value_allow_contacts (T); break;
+ case 0x184b35ce: return fetch_ds_constructor_input_privacy_value_allow_all (T); break;
+ case 0x131cc67f: return fetch_ds_constructor_input_privacy_value_allow_users (T); break;
+ case 0x0ba52007: return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); break;
+ case 0xd66b66c9: return fetch_ds_constructor_input_privacy_value_disallow_all (T); break;
+ case 0x90110467: return fetch_ds_constructor_input_privacy_value_disallow_users (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_privacy_rule *fetch_ds_type_bare_input_privacy_rule (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_contacts (T); }
+ if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_all (T); }
+ if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_allow_users (T); }
+ if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_contacts (T); }
+ if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_all (T); }
+ if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_privacy_value_disallow_users (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_sticker_set *fetch_ds_type_input_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xffb62b95: return fetch_ds_constructor_input_sticker_set_empty (T); break;
+ case 0x9de7a269: return fetch_ds_constructor_input_sticker_set_i_d (T); break;
+ case 0x861cc8a0: return fetch_ds_constructor_input_sticker_set_short_name (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_sticker_set *fetch_ds_type_bare_input_sticker_set (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_sticker_set_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_empty (T); }
+ if (skip_constructor_input_sticker_set_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_i_d (T); }
+ if (skip_constructor_input_sticker_set_short_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_sticker_set_short_name (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_user *fetch_ds_type_input_user (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb98886cf: return fetch_ds_constructor_input_user_empty (T); break;
+ case 0xf7c1b13f: return fetch_ds_constructor_input_user_self (T); break;
+ case 0x86e94f65: return fetch_ds_constructor_input_user_contact (T); break;
+ case 0x655e74ff: return fetch_ds_constructor_input_user_foreign (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_user *fetch_ds_type_bare_input_user (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_empty (T); }
+ if (skip_constructor_input_user_self (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_self (T); }
+ if (skip_constructor_input_user_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_contact (T); }
+ if (skip_constructor_input_user_foreign (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_user_foreign (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_input_video *fetch_ds_type_input_video (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5508ec75: return fetch_ds_constructor_input_video_empty (T); break;
+ case 0xee579652: return fetch_ds_constructor_input_video (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_input_video *fetch_ds_type_bare_input_video (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video_empty (T); }
+ if (skip_constructor_input_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_video (T); }
+ assert (0);
+ return NULL;
+}
+int *fetch_ds_type_int (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa8509bda: return fetch_ds_constructor_int (T); break;
+ default: assert (0); return NULL;
+ }
+}
+int *fetch_ds_type_bare_int (struct paramed_type *T) {
+ return fetch_ds_constructor_int (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_int128 *fetch_ds_type_int128 (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x7d36c439: return fetch_ds_constructor_int128 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_int128 *fetch_ds_type_bare_int128 (struct paramed_type *T) {
+ return fetch_ds_constructor_int128 (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_int256 *fetch_ds_type_int256 (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf2c798b3: return fetch_ds_constructor_int256 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_int256 *fetch_ds_type_bare_int256 (struct paramed_type *T) {
+ return fetch_ds_constructor_int256 (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_keyboard_button *fetch_ds_type_keyboard_button (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa2fa4880: return fetch_ds_constructor_keyboard_button (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_keyboard_button *fetch_ds_type_bare_keyboard_button (struct paramed_type *T) {
+ return fetch_ds_constructor_keyboard_button (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_keyboard_button_row *fetch_ds_type_keyboard_button_row (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x77608b83: return fetch_ds_constructor_keyboard_button_row (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_keyboard_button_row *fetch_ds_type_bare_keyboard_button_row (struct paramed_type *T) {
+ return fetch_ds_constructor_keyboard_button_row (T);
+ assert (0);
+ return NULL;
+}
+long long *fetch_ds_type_long (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x22076cba: return fetch_ds_constructor_long (T); break;
+ default: assert (0); return NULL;
+ }
+}
+long long *fetch_ds_type_bare_long (struct paramed_type *T) {
+ return fetch_ds_constructor_long (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message *fetch_ds_type_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x83e5de54: return fetch_ds_constructor_message_empty (T); break;
+ case 0xc3060325: return fetch_ds_constructor_message (T); break;
+ case 0x1d86f70e: return fetch_ds_constructor_message_service (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message *fetch_ds_type_bare_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_empty (T); }
+ if (skip_constructor_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message (T); }
+ if (skip_constructor_message_service (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_service (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message_action *fetch_ds_type_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb6aef7b0: return fetch_ds_constructor_message_action_empty (T); break;
+ case 0xa6638b9a: return fetch_ds_constructor_message_action_chat_create (T); break;
+ case 0xb5a1ce5a: return fetch_ds_constructor_message_action_chat_edit_title (T); break;
+ case 0x7fcb13a8: return fetch_ds_constructor_message_action_chat_edit_photo (T); break;
+ case 0x95e3fbef: return fetch_ds_constructor_message_action_chat_delete_photo (T); break;
+ case 0x5e3cfc4b: return fetch_ds_constructor_message_action_chat_add_user (T); break;
+ case 0xb2ae9b0c: return fetch_ds_constructor_message_action_chat_delete_user (T); break;
+ case 0x6f038ebc: return fetch_ds_constructor_message_action_geo_chat_create (T); break;
+ case 0x0c7d53de: return fetch_ds_constructor_message_action_geo_chat_checkin (T); break;
+ case 0xf89cf5e8: return fetch_ds_constructor_message_action_chat_joined_by_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message_action *fetch_ds_type_bare_message_action (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_action_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_empty (T); }
+ if (skip_constructor_message_action_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_create (T); }
+ if (skip_constructor_message_action_chat_edit_title (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_title (T); }
+ if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_edit_photo (T); }
+ if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_photo (T); }
+ if (skip_constructor_message_action_chat_add_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_add_user (T); }
+ if (skip_constructor_message_action_chat_delete_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_delete_user (T); }
+ if (skip_constructor_message_action_geo_chat_create (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_create (T); }
+ if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_geo_chat_checkin (T); }
+ if (skip_constructor_message_action_chat_joined_by_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_action_chat_joined_by_link (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_message_media *fetch_ds_type_message_media (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3ded6320: return fetch_ds_constructor_message_media_empty (T); break;
+ case 0x3d8ce53d: return fetch_ds_constructor_message_media_photo (T); break;
+ case 0x5bcf1675: return fetch_ds_constructor_message_media_video (T); break;
+ case 0x56e0d474: return fetch_ds_constructor_message_media_geo (T); break;
+ case 0x5e7d2f39: return fetch_ds_constructor_message_media_contact (T); break;
+ case 0x9f84f49e: return fetch_ds_constructor_message_media_unsupported (T); break;
+ case 0x2fda2204: return fetch_ds_constructor_message_media_document (T); break;
+ case 0xc6b68300: return fetch_ds_constructor_message_media_audio (T); break;
+ case 0xa32dd600: return fetch_ds_constructor_message_media_web_page (T); break;
+ case 0x7912b71f: return fetch_ds_constructor_message_media_venue (T); break;
+ case 0xc8c45a2a: return fetch_ds_constructor_message_media_photo_l27 (T); break;
+ case 0xa2d24290: return fetch_ds_constructor_message_media_video_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_message_media *fetch_ds_type_bare_message_media (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_empty (T); }
+ if (skip_constructor_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo (T); }
+ if (skip_constructor_message_media_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video (T); }
+ if (skip_constructor_message_media_geo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_geo (T); }
+ if (skip_constructor_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_contact (T); }
+ if (skip_constructor_message_media_unsupported (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_unsupported (T); }
+ if (skip_constructor_message_media_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_document (T); }
+ if (skip_constructor_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_audio (T); }
+ if (skip_constructor_message_media_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_web_page (T); }
+ if (skip_constructor_message_media_venue (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_venue (T); }
+ if (skip_constructor_message_media_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_photo_l27 (T); }
+ if (skip_constructor_message_media_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_message_media_video_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_filter *fetch_ds_type_messages_filter (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x57e2f66c: return fetch_ds_constructor_input_messages_filter_empty (T); break;
+ case 0x9609a51c: return fetch_ds_constructor_input_messages_filter_photos (T); break;
+ case 0x9fc00e65: return fetch_ds_constructor_input_messages_filter_video (T); break;
+ case 0x56e9f0e4: return fetch_ds_constructor_input_messages_filter_photo_video (T); break;
+ case 0xd95e73bb: return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); break;
+ case 0x9eddf188: return fetch_ds_constructor_input_messages_filter_document (T); break;
+ case 0xcfc87522: return fetch_ds_constructor_input_messages_filter_audio (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_filter *fetch_ds_type_bare_messages_filter (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_input_messages_filter_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_empty (T); }
+ if (skip_constructor_input_messages_filter_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photos (T); }
+ if (skip_constructor_input_messages_filter_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_video (T); }
+ if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video (T); }
+ if (skip_constructor_input_messages_filter_photo_video_documents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_photo_video_documents (T); }
+ if (skip_constructor_input_messages_filter_document (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_document (T); }
+ if (skip_constructor_input_messages_filter_audio (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_input_messages_filter_audio (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_nearest_dc *fetch_ds_type_nearest_dc (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8e1a1775: return fetch_ds_constructor_nearest_dc (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_nearest_dc *fetch_ds_type_bare_nearest_dc (struct paramed_type *T) {
+ return fetch_ds_constructor_nearest_dc (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_notify_peer *fetch_ds_type_notify_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9fd40bd8: return fetch_ds_constructor_notify_peer (T); break;
+ case 0xb4c83b4c: return fetch_ds_constructor_notify_users (T); break;
+ case 0xc007cec3: return fetch_ds_constructor_notify_chats (T); break;
+ case 0x74d07c60: return fetch_ds_constructor_notify_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_notify_peer *fetch_ds_type_bare_notify_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_notify_peer (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_peer (T); }
+ if (skip_constructor_notify_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_users (T); }
+ if (skip_constructor_notify_chats (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_chats (T); }
+ if (skip_constructor_notify_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_notify_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_null *fetch_ds_type_null (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x56730bcc: return fetch_ds_constructor_null (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_null *fetch_ds_type_bare_null (struct paramed_type *T) {
+ return fetch_ds_constructor_null (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_p_q_inner_data *fetch_ds_type_p_q_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x83c95aec: return fetch_ds_constructor_p_q_inner_data (T); break;
+ case 0x3c6a84d4: return fetch_ds_constructor_p_q_inner_data_temp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_p_q_inner_data *fetch_ds_type_bare_p_q_inner_data (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_p_q_inner_data (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data (T); }
+ if (skip_constructor_p_q_inner_data_temp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_p_q_inner_data_temp (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer *fetch_ds_type_peer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x9db1bc6d: return fetch_ds_constructor_peer_user (T); break;
+ case 0xbad0e5bb: return fetch_ds_constructor_peer_chat (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer *fetch_ds_type_bare_peer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_user (T); }
+ if (skip_constructor_peer_chat (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_chat (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer_notify_events *fetch_ds_type_peer_notify_events (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xadd53cb3: return fetch_ds_constructor_peer_notify_events_empty (T); break;
+ case 0x6d1ded88: return fetch_ds_constructor_peer_notify_events_all (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer_notify_events *fetch_ds_type_bare_peer_notify_events (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_empty (T); }
+ if (skip_constructor_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_events_all (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_peer_notify_settings *fetch_ds_type_peer_notify_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x70a68512: return fetch_ds_constructor_peer_notify_settings_empty (T); break;
+ case 0x8d5e11ee: return fetch_ds_constructor_peer_notify_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_peer_notify_settings *fetch_ds_type_bare_peer_notify_settings (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_peer_notify_settings_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings_empty (T); }
+ if (skip_constructor_peer_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_peer_notify_settings (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photo *fetch_ds_type_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x2331b22d: return fetch_ds_constructor_photo_empty (T); break;
+ case 0xc3838076: return fetch_ds_constructor_photo (T); break;
+ case 0x22b56751: return fetch_ds_constructor_photo_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photo *fetch_ds_type_bare_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_empty (T); }
+ if (skip_constructor_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo (T); }
+ if (skip_constructor_photo_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photo_size *fetch_ds_type_photo_size (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0e17e23c: return fetch_ds_constructor_photo_size_empty (T); break;
+ case 0x77bfb61b: return fetch_ds_constructor_photo_size (T); break;
+ case 0xe9a734fa: return fetch_ds_constructor_photo_cached_size (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photo_size *fetch_ds_type_bare_photo_size (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photo_size_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size_empty (T); }
+ if (skip_constructor_photo_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_size (T); }
+ if (skip_constructor_photo_cached_size (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photo_cached_size (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_privacy_key *fetch_ds_type_privacy_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbc2eab30: return fetch_ds_constructor_privacy_key_status_timestamp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_privacy_key *fetch_ds_type_bare_privacy_key (struct paramed_type *T) {
+ return fetch_ds_constructor_privacy_key_status_timestamp (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_privacy_rule *fetch_ds_type_privacy_rule (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xfffe1bac: return fetch_ds_constructor_privacy_value_allow_contacts (T); break;
+ case 0x65427b82: return fetch_ds_constructor_privacy_value_allow_all (T); break;
+ case 0x4d5bbe0c: return fetch_ds_constructor_privacy_value_allow_users (T); break;
+ case 0xf888fa1a: return fetch_ds_constructor_privacy_value_disallow_contacts (T); break;
+ case 0x8b73e763: return fetch_ds_constructor_privacy_value_disallow_all (T); break;
+ case 0x0c7f49b7: return fetch_ds_constructor_privacy_value_disallow_users (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_privacy_rule *fetch_ds_type_bare_privacy_rule (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_contacts (T); }
+ if (skip_constructor_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_all (T); }
+ if (skip_constructor_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_allow_users (T); }
+ if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_contacts (T); }
+ if (skip_constructor_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_all (T); }
+ if (skip_constructor_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_privacy_value_disallow_users (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_received_notify_message *fetch_ds_type_received_notify_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa384b779: return fetch_ds_constructor_received_notify_message (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_received_notify_message *fetch_ds_type_bare_received_notify_message (struct paramed_type *T) {
+ return fetch_ds_constructor_received_notify_message (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_reply_markup *fetch_ds_type_reply_markup (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa03e5b85: return fetch_ds_constructor_reply_keyboard_hide (T); break;
+ case 0xf4108aa0: return fetch_ds_constructor_reply_keyboard_force_reply (T); break;
+ case 0x3502758c: return fetch_ds_constructor_reply_keyboard_markup (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_reply_markup *fetch_ds_type_bare_reply_markup (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_reply_keyboard_hide (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_hide (T); }
+ if (skip_constructor_reply_keyboard_force_reply (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_force_reply (T); }
+ if (skip_constructor_reply_keyboard_markup (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_reply_keyboard_markup (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_res_p_q *fetch_ds_type_res_p_q (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x05162463: return fetch_ds_constructor_res_p_q (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_res_p_q *fetch_ds_type_bare_res_p_q (struct paramed_type *T) {
+ return fetch_ds_constructor_res_p_q (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_send_message_action *fetch_ds_type_send_message_action (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x16bf744e: return fetch_ds_constructor_send_message_typing_action (T); break;
+ case 0xfd5ec8f5: return fetch_ds_constructor_send_message_cancel_action (T); break;
+ case 0xa187d66f: return fetch_ds_constructor_send_message_record_video_action (T); break;
+ case 0x92042ff7: return fetch_ds_constructor_send_message_upload_video_action_l27 (T); break;
+ case 0xe9763aec: return fetch_ds_constructor_send_message_upload_video_action (T); break;
+ case 0xd52f73f7: return fetch_ds_constructor_send_message_record_audio_action (T); break;
+ case 0xe6ac8a6f: return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); break;
+ case 0xf351d7ab: return fetch_ds_constructor_send_message_upload_audio_action (T); break;
+ case 0xd1d34a26: return fetch_ds_constructor_send_message_upload_photo_action (T); break;
+ case 0x8faee98e: return fetch_ds_constructor_send_message_upload_document_action_l27 (T); break;
+ case 0xaa0cd9e4: return fetch_ds_constructor_send_message_upload_document_action (T); break;
+ case 0x176f8ba1: return fetch_ds_constructor_send_message_geo_location_action (T); break;
+ case 0x628cbc6f: return fetch_ds_constructor_send_message_choose_contact_action (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_send_message_action *fetch_ds_type_bare_send_message_action (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_send_message_typing_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_typing_action (T); }
+ if (skip_constructor_send_message_cancel_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_cancel_action (T); }
+ if (skip_constructor_send_message_record_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_video_action (T); }
+ if (skip_constructor_send_message_upload_video_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action_l27 (T); }
+ if (skip_constructor_send_message_upload_video_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_video_action (T); }
+ if (skip_constructor_send_message_record_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_record_audio_action (T); }
+ if (skip_constructor_send_message_upload_audio_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action_l27 (T); }
+ if (skip_constructor_send_message_upload_audio_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_audio_action (T); }
+ if (skip_constructor_send_message_upload_photo_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_photo_action (T); }
+ if (skip_constructor_send_message_upload_document_action_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action_l27 (T); }
+ if (skip_constructor_send_message_upload_document_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_upload_document_action (T); }
+ if (skip_constructor_send_message_geo_location_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_geo_location_action (T); }
+ if (skip_constructor_send_message_choose_contact_action (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_send_message_choose_contact_action (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_server_d_h_params *fetch_ds_type_server_d_h_params (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x79cb045d: return fetch_ds_constructor_server_d_h_params_fail (T); break;
+ case 0xd0e8075c: return fetch_ds_constructor_server_d_h_params_ok (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_server_d_h_params *fetch_ds_type_bare_server_d_h_params (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_server_d_h_params_fail (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_fail (T); }
+ if (skip_constructor_server_d_h_params_ok (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_server_d_h_params_ok (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_server_d_h_inner_data (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb5890dba: return fetch_ds_constructor_server_d_h_inner_data (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_server_d_h_inner_data *fetch_ds_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+ return fetch_ds_constructor_server_d_h_inner_data (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_set_client_d_h_params_answer (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3bcbf734: return fetch_ds_constructor_dh_gen_ok (T); break;
+ case 0x46dc1fb9: return fetch_ds_constructor_dh_gen_retry (T); break;
+ case 0xa69dae02: return fetch_ds_constructor_dh_gen_fail (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_set_client_d_h_params_answer *fetch_ds_type_bare_set_client_d_h_params_answer (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_dh_gen_ok (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_ok (T); }
+ if (skip_constructor_dh_gen_retry (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_retry (T); }
+ if (skip_constructor_dh_gen_fail (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_dh_gen_fail (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_sticker_pack *fetch_ds_type_sticker_pack (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x12b299d4: return fetch_ds_constructor_sticker_pack (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_sticker_pack *fetch_ds_type_bare_sticker_pack (struct paramed_type *T) {
+ return fetch_ds_constructor_sticker_pack (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_sticker_set *fetch_ds_type_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa7a43b17: return fetch_ds_constructor_sticker_set (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_sticker_set *fetch_ds_type_bare_sticker_set (struct paramed_type *T) {
+ return fetch_ds_constructor_sticker_set (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_string *fetch_ds_type_string (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb5286e24: return fetch_ds_constructor_string (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_string *fetch_ds_type_bare_string (struct paramed_type *T) {
+ return fetch_ds_constructor_string (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_update *fetch_ds_type_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1f2b0afd: return fetch_ds_constructor_update_new_message (T); break;
+ case 0x4e90bfd6: return fetch_ds_constructor_update_message_i_d (T); break;
+ case 0xa20db0e5: return fetch_ds_constructor_update_delete_messages (T); break;
+ case 0x5c486927: return fetch_ds_constructor_update_user_typing (T); break;
+ case 0x9a65ea1f: return fetch_ds_constructor_update_chat_user_typing (T); break;
+ case 0x07761198: return fetch_ds_constructor_update_chat_participants (T); break;
+ case 0x1bfbd823: return fetch_ds_constructor_update_user_status (T); break;
+ case 0xa7332b73: return fetch_ds_constructor_update_user_name (T); break;
+ case 0x95313b0c: return fetch_ds_constructor_update_user_photo (T); break;
+ case 0x2575bbb9: return fetch_ds_constructor_update_contact_registered (T); break;
+ case 0x9d2e67c5: return fetch_ds_constructor_update_contact_link (T); break;
+ case 0x8f06529a: return fetch_ds_constructor_update_new_authorization (T); break;
+ case 0x5a68e3f7: return fetch_ds_constructor_update_new_geo_chat_message (T); break;
+ case 0x12bcbd9a: return fetch_ds_constructor_update_new_encrypted_message (T); break;
+ case 0x1710f156: return fetch_ds_constructor_update_encrypted_chat_typing (T); break;
+ case 0xb4a2e88d: return fetch_ds_constructor_update_encryption (T); break;
+ case 0x38fe25b7: return fetch_ds_constructor_update_encrypted_messages_read (T); break;
+ case 0x3a0eeb22: return fetch_ds_constructor_update_chat_participant_add (T); break;
+ case 0x6e5f8c22: return fetch_ds_constructor_update_chat_participant_delete (T); break;
+ case 0x8e5e9873: return fetch_ds_constructor_update_dc_options (T); break;
+ case 0x80ece81a: return fetch_ds_constructor_update_user_blocked (T); break;
+ case 0xbec268ef: return fetch_ds_constructor_update_notify_settings (T); break;
+ case 0x382dd3e4: return fetch_ds_constructor_update_service_notification (T); break;
+ case 0xee3b272a: return fetch_ds_constructor_update_privacy (T); break;
+ case 0x12b9417b: return fetch_ds_constructor_update_user_phone (T); break;
+ case 0x9961fd5c: return fetch_ds_constructor_update_read_history_inbox (T); break;
+ case 0x2f2f21bf: return fetch_ds_constructor_update_read_history_outbox (T); break;
+ case 0x2cc36971: return fetch_ds_constructor_update_web_page (T); break;
+ case 0x68c13933: return fetch_ds_constructor_update_read_messages_contents (T); break;
+ case 0x03114739: return fetch_ds_constructor_update_msg_update (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_update *fetch_ds_type_bare_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_update_new_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_message (T); }
+ if (skip_constructor_update_message_i_d (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_message_i_d (T); }
+ if (skip_constructor_update_delete_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_delete_messages (T); }
+ if (skip_constructor_update_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_typing (T); }
+ if (skip_constructor_update_chat_user_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_user_typing (T); }
+ if (skip_constructor_update_chat_participants (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participants (T); }
+ if (skip_constructor_update_user_status (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_status (T); }
+ if (skip_constructor_update_user_name (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_name (T); }
+ if (skip_constructor_update_user_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_photo (T); }
+ if (skip_constructor_update_contact_registered (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_registered (T); }
+ if (skip_constructor_update_contact_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_contact_link (T); }
+ if (skip_constructor_update_new_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_authorization (T); }
+ if (skip_constructor_update_new_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_geo_chat_message (T); }
+ if (skip_constructor_update_new_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_new_encrypted_message (T); }
+ if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_chat_typing (T); }
+ if (skip_constructor_update_encryption (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encryption (T); }
+ if (skip_constructor_update_encrypted_messages_read (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_encrypted_messages_read (T); }
+ if (skip_constructor_update_chat_participant_add (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_add (T); }
+ if (skip_constructor_update_chat_participant_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_chat_participant_delete (T); }
+ if (skip_constructor_update_dc_options (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_dc_options (T); }
+ if (skip_constructor_update_user_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_blocked (T); }
+ if (skip_constructor_update_notify_settings (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_notify_settings (T); }
+ if (skip_constructor_update_service_notification (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_service_notification (T); }
+ if (skip_constructor_update_privacy (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_privacy (T); }
+ if (skip_constructor_update_user_phone (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_user_phone (T); }
+ if (skip_constructor_update_read_history_inbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_inbox (T); }
+ if (skip_constructor_update_read_history_outbox (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_history_outbox (T); }
+ if (skip_constructor_update_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_web_page (T); }
+ if (skip_constructor_update_read_messages_contents (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_read_messages_contents (T); }
+ if (skip_constructor_update_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_msg_update (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates *fetch_ds_type_updates (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe317af7e: return fetch_ds_constructor_updates_too_long (T); break;
+ case 0xed5c2127: return fetch_ds_constructor_update_short_message (T); break;
+ case 0x52238b3c: return fetch_ds_constructor_update_short_chat_message (T); break;
+ case 0x78d4dec1: return fetch_ds_constructor_update_short (T); break;
+ case 0x725b04c3: return fetch_ds_constructor_updates_combined (T); break;
+ case 0x74ae4240: return fetch_ds_constructor_updates (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates *fetch_ds_type_bare_updates (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_updates_too_long (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_too_long (T); }
+ if (skip_constructor_update_short_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_message (T); }
+ if (skip_constructor_update_short_chat_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short_chat_message (T); }
+ if (skip_constructor_update_short (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_update_short (T); }
+ if (skip_constructor_updates_combined (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_combined (T); }
+ if (skip_constructor_updates (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user *fetch_ds_type_user (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x200250ba: return fetch_ds_constructor_user_empty (T); break;
+ case 0x22e49072: return fetch_ds_constructor_user (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user *fetch_ds_type_bare_user (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_empty (T); }
+ if (skip_constructor_user (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_full *fetch_ds_type_user_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5a89ac5b: return fetch_ds_constructor_user_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_full *fetch_ds_type_bare_user_full (struct paramed_type *T) {
+ return fetch_ds_constructor_user_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_profile_photo *fetch_ds_type_user_profile_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4f11bae1: return fetch_ds_constructor_user_profile_photo_empty (T); break;
+ case 0xd559d8c8: return fetch_ds_constructor_user_profile_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_profile_photo *fetch_ds_type_bare_user_profile_photo (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_profile_photo_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo_empty (T); }
+ if (skip_constructor_user_profile_photo (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_profile_photo (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_user_status *fetch_ds_type_user_status (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x09d05049: return fetch_ds_constructor_user_status_empty (T); break;
+ case 0xedb93949: return fetch_ds_constructor_user_status_online (T); break;
+ case 0x008c703f: return fetch_ds_constructor_user_status_offline (T); break;
+ case 0xe26f42f1: return fetch_ds_constructor_user_status_recently (T); break;
+ case 0x07bf09fc: return fetch_ds_constructor_user_status_last_week (T); break;
+ case 0x77ebc742: return fetch_ds_constructor_user_status_last_month (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_user_status *fetch_ds_type_bare_user_status (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_user_status_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_empty (T); }
+ if (skip_constructor_user_status_online (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_online (T); }
+ if (skip_constructor_user_status_offline (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_offline (T); }
+ if (skip_constructor_user_status_recently (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_recently (T); }
+ if (skip_constructor_user_status_last_week (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_week (T); }
+ if (skip_constructor_user_status_last_month (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_user_status_last_month (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_vector *fetch_ds_type_vector (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1cb5c415: return fetch_ds_constructor_vector (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_vector *fetch_ds_type_bare_vector (struct paramed_type *T) {
+ return fetch_ds_constructor_vector (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_video *fetch_ds_type_video (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc10658a8: return fetch_ds_constructor_video_empty (T); break;
+ case 0xee9f4a4d: return fetch_ds_constructor_video (T); break;
+ case 0x388fa391: return fetch_ds_constructor_video_l27 (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_video *fetch_ds_type_bare_video (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_video_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_empty (T); }
+ if (skip_constructor_video (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video (T); }
+ if (skip_constructor_video_l27 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_video_l27 (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_wall_paper *fetch_ds_type_wall_paper (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xccb03657: return fetch_ds_constructor_wall_paper (T); break;
+ case 0x63117f24: return fetch_ds_constructor_wall_paper_solid (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_wall_paper *fetch_ds_type_bare_wall_paper (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_wall_paper (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper (T); }
+ if (skip_constructor_wall_paper_solid (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_wall_paper_solid (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_web_page *fetch_ds_type_web_page (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xeb1477e8: return fetch_ds_constructor_web_page_empty (T); break;
+ case 0xc586da1c: return fetch_ds_constructor_web_page_pending (T); break;
+ case 0xa31ea0b5: return fetch_ds_constructor_web_page (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_web_page *fetch_ds_type_bare_web_page (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_web_page_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_empty (T); }
+ if (skip_constructor_web_page_pending (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page_pending (T); }
+ if (skip_constructor_web_page (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_web_page (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_authorizations *fetch_ds_type_account_authorizations (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1250abde: return fetch_ds_constructor_account_authorizations (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_authorizations *fetch_ds_type_bare_account_authorizations (struct paramed_type *T) {
+ return fetch_ds_constructor_account_authorizations (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password *fetch_ds_type_account_password (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x96dabc18: return fetch_ds_constructor_account_no_password (T); break;
+ case 0x7c18141c: return fetch_ds_constructor_account_password (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password *fetch_ds_type_bare_account_password (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_account_no_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_no_password (T); }
+ if (skip_constructor_account_password (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_account_password (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password_input_settings *fetch_ds_type_account_password_input_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xbcfc532c: return fetch_ds_constructor_account_password_input_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password_input_settings *fetch_ds_type_bare_account_password_input_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_account_password_input_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_password_settings *fetch_ds_type_account_password_settings (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb7b72ab3: return fetch_ds_constructor_account_password_settings (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_password_settings *fetch_ds_type_bare_account_password_settings (struct paramed_type *T) {
+ return fetch_ds_constructor_account_password_settings (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_privacy_rules *fetch_ds_type_account_privacy_rules (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x554abb6f: return fetch_ds_constructor_account_privacy_rules (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_privacy_rules *fetch_ds_type_bare_account_privacy_rules (struct paramed_type *T) {
+ return fetch_ds_constructor_account_privacy_rules (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_account_sent_change_phone_code (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa4f58c4c: return fetch_ds_constructor_account_sent_change_phone_code (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_account_sent_change_phone_code *fetch_ds_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+ return fetch_ds_constructor_account_sent_change_phone_code (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_authorization *fetch_ds_type_auth_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xff036af1: return fetch_ds_constructor_auth_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_authorization *fetch_ds_type_bare_auth_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_checked_phone *fetch_ds_type_auth_checked_phone (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x811ea28e: return fetch_ds_constructor_auth_checked_phone (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_checked_phone *fetch_ds_type_bare_auth_checked_phone (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_checked_phone (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_type_auth_exported_authorization (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xdf969c2d: return fetch_ds_constructor_auth_exported_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_exported_authorization *fetch_ds_type_bare_auth_exported_authorization (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_exported_authorization (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_password_recovery *fetch_ds_type_auth_password_recovery (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x137948a5: return fetch_ds_constructor_auth_password_recovery (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_password_recovery *fetch_ds_type_bare_auth_password_recovery (struct paramed_type *T) {
+ return fetch_ds_constructor_auth_password_recovery (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_auth_sent_code *fetch_ds_type_auth_sent_code (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xefed51d9: return fetch_ds_constructor_auth_sent_code (T); break;
+ case 0xe325edcf: return fetch_ds_constructor_auth_sent_app_code (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_auth_sent_code *fetch_ds_type_bare_auth_sent_code (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_auth_sent_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_code (T); }
+ if (skip_constructor_auth_sent_app_code (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_auth_sent_app_code (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_binlog_encr_key *fetch_ds_type_binlog_encr_key (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0377168f: return fetch_ds_constructor_binlog_encr_key (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_binlog_encr_key *fetch_ds_type_bare_binlog_encr_key (struct paramed_type *T) {
+ return fetch_ds_constructor_binlog_encr_key (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_binlog_update *fetch_ds_type_binlog_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3b06de69: return fetch_ds_constructor_binlog_start (T); break;
+ case 0xf96feb32: return fetch_ds_constructor_binlog_dc_option (T); break;
+ case 0x7c0d22d8: return fetch_ds_constructor_binlog_dc_option_new (T); break;
+ case 0x71e8c156: return fetch_ds_constructor_binlog_auth_key (T); break;
+ case 0x9e83dbdc: return fetch_ds_constructor_binlog_default_dc (T); break;
+ case 0x26451bb5: return fetch_ds_constructor_binlog_dc_signed (T); break;
+ case 0x68a870e8: return fetch_ds_constructor_binlog_our_id (T); break;
+ case 0xeaeb7826: return fetch_ds_constructor_binlog_set_dh_params (T); break;
+ case 0x2ca8c939: return fetch_ds_constructor_binlog_set_pts (T); break;
+ case 0xd95738ac: return fetch_ds_constructor_binlog_set_qts (T); break;
+ case 0x1d0f4b52: return fetch_ds_constructor_binlog_set_date (T); break;
+ case 0x6eeb2989: return fetch_ds_constructor_binlog_set_seq (T); break;
+ case 0xee1b38e8: return fetch_ds_constructor_binlog_encr_chat_delete (T); break;
+ case 0x84977251: return fetch_ds_constructor_binlog_encr_chat_new (T); break;
+ case 0x9d49488d: return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); break;
+ case 0xac55d447: return fetch_ds_constructor_binlog_user_delete (T); break;
+ case 0x127cf2f9: return fetch_ds_constructor_binlog_user_new (T); break;
+ case 0x0a10aa92: return fetch_ds_constructor_binlog_chat_new (T); break;
+ case 0x535475ea: return fetch_ds_constructor_binlog_chat_add_participant (T); break;
+ case 0x7dd1a1a2: return fetch_ds_constructor_binlog_chat_del_participant (T); break;
+ case 0x3c873416: return fetch_ds_constructor_binlog_set_msg_id (T); break;
+ case 0x847e77b1: return fetch_ds_constructor_binlog_message_delete (T); break;
+ case 0x427cfcdb: return fetch_ds_constructor_binlog_message_new (T); break;
+ case 0x6cf7cabc: return fetch_ds_constructor_binlog_message_encr_new (T); break;
+ case 0x6dd4d85f: return fetch_ds_constructor_binlog_msg_update (T); break;
+ case 0x83327955: return fetch_ds_constructor_binlog_reset_authorization (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_binlog_update *fetch_ds_type_bare_binlog_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_binlog_start (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_start (T); }
+ if (skip_constructor_binlog_dc_option (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option (T); }
+ if (skip_constructor_binlog_dc_option_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_option_new (T); }
+ if (skip_constructor_binlog_auth_key (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_auth_key (T); }
+ if (skip_constructor_binlog_default_dc (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_default_dc (T); }
+ if (skip_constructor_binlog_dc_signed (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_dc_signed (T); }
+ if (skip_constructor_binlog_our_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_our_id (T); }
+ if (skip_constructor_binlog_set_dh_params (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_dh_params (T); }
+ if (skip_constructor_binlog_set_pts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_pts (T); }
+ if (skip_constructor_binlog_set_qts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_qts (T); }
+ if (skip_constructor_binlog_set_date (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_date (T); }
+ if (skip_constructor_binlog_set_seq (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_seq (T); }
+ if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_delete (T); }
+ if (skip_constructor_binlog_encr_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_new (T); }
+ if (skip_constructor_binlog_encr_chat_exchange_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_encr_chat_exchange_new (T); }
+ if (skip_constructor_binlog_user_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_delete (T); }
+ if (skip_constructor_binlog_user_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_user_new (T); }
+ if (skip_constructor_binlog_chat_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_new (T); }
+ if (skip_constructor_binlog_chat_add_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_add_participant (T); }
+ if (skip_constructor_binlog_chat_del_participant (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_chat_del_participant (T); }
+ if (skip_constructor_binlog_set_msg_id (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_set_msg_id (T); }
+ if (skip_constructor_binlog_message_delete (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_delete (T); }
+ if (skip_constructor_binlog_message_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_new (T); }
+ if (skip_constructor_binlog_message_encr_new (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_message_encr_new (T); }
+ if (skip_constructor_binlog_msg_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_msg_update (T); }
+ if (skip_constructor_binlog_reset_authorization (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_binlog_reset_authorization (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_blocked *fetch_ds_type_contacts_blocked (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x1c138d15: return fetch_ds_constructor_contacts_blocked (T); break;
+ case 0x900802a1: return fetch_ds_constructor_contacts_blocked_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_blocked *fetch_ds_type_bare_contacts_blocked (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contacts_blocked (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked (T); }
+ if (skip_constructor_contacts_blocked_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_blocked_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_contacts *fetch_ds_type_contacts_contacts (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb74ba9d2: return fetch_ds_constructor_contacts_contacts_not_modified (T); break;
+ case 0x6f8b8cb2: return fetch_ds_constructor_contacts_contacts (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_contacts *fetch_ds_type_bare_contacts_contacts (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts_not_modified (T); }
+ if (skip_constructor_contacts_contacts (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_contacts_contacts (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_found *fetch_ds_type_contacts_found (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x0566000e: return fetch_ds_constructor_contacts_found (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_found *fetch_ds_type_bare_contacts_found (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_found (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_contacts_imported_contacts (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xad524315: return fetch_ds_constructor_contacts_imported_contacts (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_imported_contacts *fetch_ds_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_imported_contacts (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_link *fetch_ds_type_contacts_link (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3ace484c: return fetch_ds_constructor_contacts_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_link *fetch_ds_type_bare_contacts_link (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_link (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_contacts_suggested *fetch_ds_type_contacts_suggested (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5649dcc5: return fetch_ds_constructor_contacts_suggested (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_contacts_suggested *fetch_ds_type_bare_contacts_suggested (struct paramed_type *T) {
+ return fetch_ds_constructor_contacts_suggested (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_located *fetch_ds_type_geochats_located (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x48feb267: return fetch_ds_constructor_geochats_located (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_located *fetch_ds_type_bare_geochats_located (struct paramed_type *T) {
+ return fetch_ds_constructor_geochats_located (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_messages *fetch_ds_type_geochats_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xd1526db1: return fetch_ds_constructor_geochats_messages (T); break;
+ case 0xbc5863e8: return fetch_ds_constructor_geochats_messages_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_messages *fetch_ds_type_bare_geochats_messages (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_geochats_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages (T); }
+ if (skip_constructor_geochats_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_geochats_messages_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_geochats_stated_message *fetch_ds_type_geochats_stated_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x17b1578b: return fetch_ds_constructor_geochats_stated_message (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_geochats_stated_message *fetch_ds_type_bare_geochats_stated_message (struct paramed_type *T) {
+ return fetch_ds_constructor_geochats_stated_message (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_app_update *fetch_ds_type_help_app_update (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8987f311: return fetch_ds_constructor_help_app_update (T); break;
+ case 0xc45a6536: return fetch_ds_constructor_help_no_app_update (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_app_update *fetch_ds_type_bare_help_app_update (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_help_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_app_update (T); }
+ if (skip_constructor_help_no_app_update (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_help_no_app_update (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_invite_text *fetch_ds_type_help_invite_text (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x18cb9f78: return fetch_ds_constructor_help_invite_text (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_invite_text *fetch_ds_type_bare_help_invite_text (struct paramed_type *T) {
+ return fetch_ds_constructor_help_invite_text (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_help_support *fetch_ds_type_help_support (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x17c6b5f6: return fetch_ds_constructor_help_support (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_help_support *fetch_ds_type_bare_help_support (struct paramed_type *T) {
+ return fetch_ds_constructor_help_support (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_affected_history *fetch_ds_type_messages_affected_history (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb45c69d1: return fetch_ds_constructor_messages_affected_history (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_affected_history *fetch_ds_type_bare_messages_affected_history (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_affected_history (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_affected_messages *fetch_ds_type_messages_affected_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x84d19185: return fetch_ds_constructor_messages_affected_messages (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_affected_messages *fetch_ds_type_bare_messages_affected_messages (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_affected_messages (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_all_stickers *fetch_ds_type_messages_all_stickers (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe86602c3: return fetch_ds_constructor_messages_all_stickers_not_modified (T); break;
+ case 0x5ce352ec: return fetch_ds_constructor_messages_all_stickers (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_all_stickers *fetch_ds_type_bare_messages_all_stickers (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers_not_modified (T); }
+ if (skip_constructor_messages_all_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_all_stickers (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_chat_full *fetch_ds_type_messages_chat_full (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xe5d7d19c: return fetch_ds_constructor_messages_chat_full (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_chat_full *fetch_ds_type_bare_messages_chat_full (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_chat_full (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_chats *fetch_ds_type_messages_chats (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x64ff9fd5: return fetch_ds_constructor_messages_chats (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_chats *fetch_ds_type_bare_messages_chats (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_chats (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_dh_config *fetch_ds_type_messages_dh_config (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xc0e24635: return fetch_ds_constructor_messages_dh_config_not_modified (T); break;
+ case 0x2c221edd: return fetch_ds_constructor_messages_dh_config (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_dh_config *fetch_ds_type_bare_messages_dh_config (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config_not_modified (T); }
+ if (skip_constructor_messages_dh_config (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dh_config (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_dialogs *fetch_ds_type_messages_dialogs (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x15ba6c40: return fetch_ds_constructor_messages_dialogs (T); break;
+ case 0x71e094f3: return fetch_ds_constructor_messages_dialogs_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_dialogs *fetch_ds_type_bare_messages_dialogs (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_dialogs (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs (T); }
+ if (skip_constructor_messages_dialogs_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_dialogs_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_message *fetch_ds_type_messages_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x3f4e0648: return fetch_ds_constructor_messages_message_empty (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_message *fetch_ds_type_bare_messages_message (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_message_empty (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_messages *fetch_ds_type_messages_messages (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8c718e87: return fetch_ds_constructor_messages_messages (T); break;
+ case 0x0b446ae3: return fetch_ds_constructor_messages_messages_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_messages *fetch_ds_type_bare_messages_messages (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_messages (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages (T); }
+ if (skip_constructor_messages_messages_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_messages_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_messages_sent_encrypted_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x560f8935: return fetch_ds_constructor_messages_sent_encrypted_message (T); break;
+ case 0x9493ff32: return fetch_ds_constructor_messages_sent_encrypted_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sent_encrypted_message *fetch_ds_type_bare_messages_sent_encrypted_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_message (T); }
+ if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_encrypted_file (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sent_message *fetch_ds_type_messages_sent_message (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x4c3d47f3: return fetch_ds_constructor_messages_sent_message (T); break;
+ case 0x35a1a663: return fetch_ds_constructor_messages_sent_message_link (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sent_message *fetch_ds_type_bare_messages_sent_message (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_sent_message (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message (T); }
+ if (skip_constructor_messages_sent_message_link (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_sent_message_link (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_sticker_set *fetch_ds_type_messages_sticker_set (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xb60a24a6: return fetch_ds_constructor_messages_sticker_set (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_sticker_set *fetch_ds_type_bare_messages_sticker_set (struct paramed_type *T) {
+ return fetch_ds_constructor_messages_sticker_set (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_messages_stickers *fetch_ds_type_messages_stickers (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xf1749a22: return fetch_ds_constructor_messages_stickers_not_modified (T); break;
+ case 0x8a8ecd32: return fetch_ds_constructor_messages_stickers (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_messages_stickers *fetch_ds_type_bare_messages_stickers (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_messages_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers_not_modified (T); }
+ if (skip_constructor_messages_stickers (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_messages_stickers (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photos_photo *fetch_ds_type_photos_photo (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x20212ca8: return fetch_ds_constructor_photos_photo (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photos_photo *fetch_ds_type_bare_photos_photo (struct paramed_type *T) {
+ return fetch_ds_constructor_photos_photo (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_photos_photos *fetch_ds_type_photos_photos (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x8dca6aa5: return fetch_ds_constructor_photos_photos (T); break;
+ case 0x15051f54: return fetch_ds_constructor_photos_photos_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_photos_photos *fetch_ds_type_bare_photos_photos (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_photos_photos (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos (T); }
+ if (skip_constructor_photos_photos_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_photos_photos_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_storage_file_type *fetch_ds_type_storage_file_type (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xaa963b05: return fetch_ds_constructor_storage_file_unknown (T); break;
+ case 0x007efe0e: return fetch_ds_constructor_storage_file_jpeg (T); break;
+ case 0xcae1aadf: return fetch_ds_constructor_storage_file_gif (T); break;
+ case 0x0a4f63c0: return fetch_ds_constructor_storage_file_png (T); break;
+ case 0xae1e508d: return fetch_ds_constructor_storage_file_pdf (T); break;
+ case 0x528a0677: return fetch_ds_constructor_storage_file_mp3 (T); break;
+ case 0x4b09ebbc: return fetch_ds_constructor_storage_file_mov (T); break;
+ case 0x40bc6f52: return fetch_ds_constructor_storage_file_partial (T); break;
+ case 0xb3cea0e4: return fetch_ds_constructor_storage_file_mp4 (T); break;
+ case 0x1081464c: return fetch_ds_constructor_storage_file_webp (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_storage_file_type *fetch_ds_type_bare_storage_file_type (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_storage_file_unknown (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_unknown (T); }
+ if (skip_constructor_storage_file_jpeg (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_jpeg (T); }
+ if (skip_constructor_storage_file_gif (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_gif (T); }
+ if (skip_constructor_storage_file_png (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_png (T); }
+ if (skip_constructor_storage_file_pdf (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_pdf (T); }
+ if (skip_constructor_storage_file_mp3 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp3 (T); }
+ if (skip_constructor_storage_file_mov (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mov (T); }
+ if (skip_constructor_storage_file_partial (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_partial (T); }
+ if (skip_constructor_storage_file_mp4 (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_mp4 (T); }
+ if (skip_constructor_storage_file_webp (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_storage_file_webp (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates_difference *fetch_ds_type_updates_difference (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x5d75a138: return fetch_ds_constructor_updates_difference_empty (T); break;
+ case 0x00f49ca0: return fetch_ds_constructor_updates_difference (T); break;
+ case 0xa8fb1981: return fetch_ds_constructor_updates_difference_slice (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates_difference *fetch_ds_type_bare_updates_difference (struct paramed_type *T) {
+ int *save_in_ptr = in_ptr;
+ if (skip_constructor_updates_difference_empty (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_empty (T); }
+ if (skip_constructor_updates_difference (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference (T); }
+ if (skip_constructor_updates_difference_slice (T) >= 0) { in_ptr = save_in_ptr; return fetch_ds_constructor_updates_difference_slice (T); }
+ assert (0);
+ return NULL;
+}
+struct tl_ds_updates_state *fetch_ds_type_updates_state (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0xa56c2a3e: return fetch_ds_constructor_updates_state (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_updates_state *fetch_ds_type_bare_updates_state (struct paramed_type *T) {
+ return fetch_ds_constructor_updates_state (T);
+ assert (0);
+ return NULL;
+}
+struct tl_ds_upload_file *fetch_ds_type_upload_file (struct paramed_type *T) {
+ assert (in_remaining () >= 4);
+ int magic = fetch_int ();
+ switch (magic) {
+ case 0x096a18d5: return fetch_ds_constructor_upload_file (T); break;
+ default: assert (0); return NULL;
+ }
+}
+struct tl_ds_upload_file *fetch_ds_type_bare_upload_file (struct paramed_type *T) {
+ return fetch_ds_constructor_upload_file (T);
+ assert (0);
+ return NULL;
+}
+void *fetch_ds_type_any (struct paramed_type *T) {
+ switch (T->type->name) {
+ case 0xb8d0afdf: return fetch_ds_type_account_days_t_t_l (T);
+ case 0x472f5020: return fetch_ds_type_bare_account_days_t_t_l (T);
+ case 0x9fc5ec4e: return fetch_ds_type_audio (T);
+ case 0x603a13b1: return fetch_ds_type_bare_audio (T);
+ case 0x7bf2e6f6: return fetch_ds_type_authorization (T);
+ case 0x840d1909: return fetch_ds_type_bare_authorization (T);
+ case 0x250be282: return fetch_ds_type_bool (T);
+ case 0xdaf41d7d: return fetch_ds_type_bare_bool (T);
+ case 0x75e7ea6c: return fetch_ds_type_bot_command (T);
+ case 0x8a181593: return fetch_ds_type_bare_bot_command (T);
+ case 0xb2e16f93: return fetch_ds_type_bot_info (T);
+ case 0x4d1e906c: return fetch_ds_type_bare_bot_info (T);
+ case 0x0ee1379f: return fetch_ds_type_bytes (T);
+ case 0xf11ec860: return fetch_ds_type_bare_bytes (T);
+ case 0x7bd865dc: return fetch_ds_type_chat (T);
+ case 0x84279a23: return fetch_ds_type_bare_chat (T);
+ case 0x2e02a614: return fetch_ds_type_chat_full (T);
+ case 0xd1fd59eb: return fetch_ds_type_bare_chat_full (T);
+ case 0x94f910b1: return fetch_ds_type_chat_invite (T);
+ case 0x6b06ef4e: return fetch_ds_type_bare_chat_invite (T);
+ case 0x3631cf4c: return fetch_ds_type_chat_located (T);
+ case 0xc9ce30b3: return fetch_ds_type_bare_chat_located (T);
+ case 0xc8d7493e: return fetch_ds_type_chat_participant (T);
+ case 0x3728b6c1: return fetch_ds_type_bare_chat_participant (T);
+ case 0x77930f9f: return fetch_ds_type_chat_participants (T);
+ case 0x886cf060: return fetch_ds_type_bare_chat_participants (T);
+ case 0x56922676: return fetch_ds_type_chat_photo (T);
+ case 0xa96dd989: return fetch_ds_type_bare_chat_photo (T);
+ case 0x6643b654: return fetch_ds_type_client_d_h_inner_data (T);
+ case 0x99bc49ab: return fetch_ds_type_bare_client_d_h_inner_data (T);
+ case 0x4e32b894: return fetch_ds_type_config (T);
+ case 0xb1cd476b: return fetch_ds_type_bare_config (T);
+ case 0xf911c994: return fetch_ds_type_contact (T);
+ case 0x06ee366b: return fetch_ds_type_bare_contact (T);
+ case 0x561bc879: return fetch_ds_type_contact_blocked (T);
+ case 0xa9e43786: return fetch_ds_type_bare_contact_blocked (T);
+ case 0xea879f95: return fetch_ds_type_contact_found (T);
+ case 0x1578606a: return fetch_ds_type_bare_contact_found (T);
+ case 0x522fbc63: return fetch_ds_type_contact_link (T);
+ case 0xadd0439c: return fetch_ds_type_bare_contact_link (T);
+ case 0xd3680c61: return fetch_ds_type_contact_status (T);
+ case 0x2c97f39e: return fetch_ds_type_bare_contact_status (T);
+ case 0x3de191a1: return fetch_ds_type_contact_suggested (T);
+ case 0xc21e6e5e: return fetch_ds_type_bare_contact_suggested (T);
+ case 0x2b1a62f0: return fetch_ds_type_dc_option (T);
+ case 0xd4e59d0f: return fetch_ds_type_bare_dc_option (T);
+ case 0x535b7918: return fetch_ds_type_decrypted_message (T);
+ case 0xaca486e7: return fetch_ds_type_bare_decrypted_message (T);
+ case 0x4e0eefde: return fetch_ds_type_decrypted_message_action (T);
+ case 0xb1f11021: return fetch_ds_type_bare_decrypted_message_action (T);
+ case 0x1be31789: return fetch_ds_type_decrypted_message_layer (T);
+ case 0xe41ce876: return fetch_ds_type_bare_decrypted_message_layer (T);
+ case 0x34e0d674: return fetch_ds_type_decrypted_message_media (T);
+ case 0xcb1f298b: return fetch_ds_type_bare_decrypted_message_media (T);
+ case 0xc1dd804a: return fetch_ds_type_dialog (T);
+ case 0x3e227fb5: return fetch_ds_type_bare_dialog (T);
+ case 0xae636f24: return fetch_ds_type_disabled_feature (T);
+ case 0x519c90db: return fetch_ds_type_bare_disabled_feature (T);
+ case 0x51a73418: return fetch_ds_type_document (T);
+ case 0xae58cbe7: return fetch_ds_type_bare_document (T);
+ case 0x97c637a3: return fetch_ds_type_document_attribute (T);
+ case 0x6839c85c: return fetch_ds_type_bare_document_attribute (T);
+ case 0x2210c154: return fetch_ds_type_double (T);
+ case 0xddef3eab: return fetch_ds_type_bare_double (T);
+ case 0xb1718213: return fetch_ds_type_encrypted_chat (T);
+ case 0x4e8e7dec: return fetch_ds_type_bare_encrypted_chat (T);
+ case 0x886fd032: return fetch_ds_type_encrypted_file (T);
+ case 0x77902fcd: return fetch_ds_type_bare_encrypted_file (T);
+ case 0xce6b8a1e: return fetch_ds_type_encrypted_message (T);
+ case 0x319475e1: return fetch_ds_type_bare_encrypted_message (T);
+ case 0xc4b9f9bb: return fetch_ds_type_error (T);
+ case 0x3b460644: return fetch_ds_type_bare_error (T);
+ case 0x95f132d5: return fetch_ds_type_exported_chat_invite (T);
+ case 0x6a0ecd2a: return fetch_ds_type_bare_exported_chat_invite (T);
+ case 0x2f8ffb30: return fetch_ds_type_file_location (T);
+ case 0xd07004cf: return fetch_ds_type_bare_file_location (T);
+ case 0xf67b4034: return fetch_ds_type_geo_chat_message (T);
+ case 0x0984bfcb: return fetch_ds_type_bare_geo_chat_message (T);
+ case 0x315e0a53: return fetch_ds_type_geo_point (T);
+ case 0xcea1f5ac: return fetch_ds_type_bare_geo_point (T);
+ case 0xd0028438: return fetch_ds_type_imported_contact (T);
+ case 0x2ffd7bc7: return fetch_ds_type_bare_imported_contact (T);
+ case 0x770656a8: return fetch_ds_type_input_app_event (T);
+ case 0x88f9a957: return fetch_ds_type_bare_input_app_event (T);
+ case 0xae8e9c7b: return fetch_ds_type_input_audio (T);
+ case 0x51716384: return fetch_ds_type_bare_input_audio (T);
+ case 0x3a60776d: return fetch_ds_type_input_chat_photo (T);
+ case 0xc59f8892: return fetch_ds_type_bare_input_chat_photo (T);
+ case 0xf392b7f4: return fetch_ds_type_input_contact (T);
+ case 0x0c6d480b: return fetch_ds_type_bare_input_contact (T);
+ case 0x6a8963fc: return fetch_ds_type_input_document (T);
+ case 0x95769c03: return fetch_ds_type_bare_input_document (T);
+ case 0xf141b5e1: return fetch_ds_type_input_encrypted_chat (T);
+ case 0x0ebe4a1e: return fetch_ds_type_bare_input_encrypted_chat (T);
+ case 0x0b5c064f: return fetch_ds_type_input_encrypted_file (T);
+ case 0xf4a3f9b0: return fetch_ds_type_bare_input_encrypted_file (T);
+ case 0x0f60f9ca: return fetch_ds_type_input_file (T);
+ case 0xf09f0635: return fetch_ds_type_bare_input_file (T);
+ case 0xe6daa38b: return fetch_ds_type_input_file_location (T);
+ case 0x19255c74: return fetch_ds_type_bare_input_file_location (T);
+ case 0x74d456fa: return fetch_ds_type_input_geo_chat (T);
+ case 0x8b2ba905: return fetch_ds_type_bare_input_geo_chat (T);
+ case 0x17768f1f: return fetch_ds_type_input_geo_point (T);
+ case 0xe88970e0: return fetch_ds_type_bare_input_geo_point (T);
+ case 0xb32c91dd: return fetch_ds_type_input_media (T);
+ case 0x4cd36e22: return fetch_ds_type_bare_input_media (T);
+ case 0x02b6911b: return fetch_ds_type_input_notify_peer (T);
+ case 0xfd496ee4: return fetch_ds_type_bare_input_notify_peer (T);
+ case 0x9e67268d: return fetch_ds_type_input_peer (T);
+ case 0x6198d972: return fetch_ds_type_bare_input_peer (T);
+ case 0x185a48ac: return fetch_ds_type_input_peer_notify_events (T);
+ case 0xe7a5b753: return fetch_ds_type_bare_input_peer_notify_events (T);
+ case 0x46a2ce98: return fetch_ds_type_input_peer_notify_settings (T);
+ case 0xb95d3167: return fetch_ds_type_bare_input_peer_notify_settings (T);
+ case 0xe74279c9: return fetch_ds_type_input_photo (T);
+ case 0x18bd8636: return fetch_ds_type_bare_input_photo (T);
+ case 0x7477e321: return fetch_ds_type_input_photo_crop (T);
+ case 0x8b881cde: return fetch_ds_type_bare_input_photo_crop (T);
+ case 0x4f96cb18: return fetch_ds_type_input_privacy_key (T);
+ case 0xb06934e7: return fetch_ds_type_bare_input_privacy_key (T);
+ case 0x4b815163: return fetch_ds_type_input_privacy_rule (T);
+ case 0xb47eae9c: return fetch_ds_type_bare_input_privacy_rule (T);
+ case 0xe44d415c: return fetch_ds_type_input_sticker_set (T);
+ case 0x1bb2bea3: return fetch_ds_type_bare_input_sticker_set (T);
+ case 0xadfe0c6a: return fetch_ds_type_input_user (T);
+ case 0x5201f395: return fetch_ds_type_bare_input_user (T);
+ case 0xbb5f7a27: return fetch_ds_type_input_video (T);
+ case 0x44a085d8: return fetch_ds_type_bare_input_video (T);
+ case 0xa8509bda: return fetch_ds_type_int (T);
+ case 0x57af6425: return fetch_ds_type_bare_int (T);
+ case 0x7d36c439: return fetch_ds_type_int128 (T);
+ case 0x82c93bc6: return fetch_ds_type_bare_int128 (T);
+ case 0xf2c798b3: return fetch_ds_type_int256 (T);
+ case 0x0d38674c: return fetch_ds_type_bare_int256 (T);
+ case 0xa2fa4880: return fetch_ds_type_keyboard_button (T);
+ case 0x5d05b77f: return fetch_ds_type_bare_keyboard_button (T);
+ case 0x77608b83: return fetch_ds_type_keyboard_button_row (T);
+ case 0x889f747c: return fetch_ds_type_bare_keyboard_button_row (T);
+ case 0x22076cba: return fetch_ds_type_long (T);
+ case 0xddf89345: return fetch_ds_type_bare_long (T);
+ case 0x5d652a7f: return fetch_ds_type_message (T);
+ case 0xa29ad580: return fetch_ds_type_bare_message (T);
+ case 0x383415fa: return fetch_ds_type_message_action (T);
+ case 0xc7cbea05: return fetch_ds_type_bare_message_action (T);
+ case 0x95f2471a: return fetch_ds_type_message_media (T);
+ case 0x6a0db8e5: return fetch_ds_type_bare_message_media (T);
+ case 0x80895ae0: return fetch_ds_type_messages_filter (T);
+ case 0x7f76a51f: return fetch_ds_type_bare_messages_filter (T);
+ case 0x8e1a1775: return fetch_ds_type_nearest_dc (T);
+ case 0x71e5e88a: return fetch_ds_type_bare_nearest_dc (T);
+ case 0x9fcb8237: return fetch_ds_type_notify_peer (T);
+ case 0x60347dc8: return fetch_ds_type_bare_notify_peer (T);
+ case 0x56730bcc: return fetch_ds_type_null (T);
+ case 0xa98cf433: return fetch_ds_type_bare_null (T);
+ case 0xbfa3de38: return fetch_ds_type_p_q_inner_data (T);
+ case 0x405c21c7: return fetch_ds_type_bare_p_q_inner_data (T);
+ case 0x276159d6: return fetch_ds_type_peer (T);
+ case 0xd89ea629: return fetch_ds_type_bare_peer (T);
+ case 0xc0c8d13b: return fetch_ds_type_peer_notify_events (T);
+ case 0x3f372ec4: return fetch_ds_type_bare_peer_notify_events (T);
+ case 0xfdf894fc: return fetch_ds_type_peer_notify_settings (T);
+ case 0x02076b03: return fetch_ds_type_bare_peer_notify_settings (T);
+ case 0xc207550a: return fetch_ds_type_photo (T);
+ case 0x3df8aaf5: return fetch_ds_type_bare_photo (T);
+ case 0x900f60dd: return fetch_ds_type_photo_size (T);
+ case 0x6ff09f22: return fetch_ds_type_bare_photo_size (T);
+ case 0xbc2eab30: return fetch_ds_type_privacy_key (T);
+ case 0x43d154cf: return fetch_ds_type_bare_privacy_key (T);
+ case 0xa8638aec: return fetch_ds_type_privacy_rule (T);
+ case 0x579c7513: return fetch_ds_type_bare_privacy_rule (T);
+ case 0xa384b779: return fetch_ds_type_received_notify_message (T);
+ case 0x5c7b4886: return fetch_ds_type_bare_received_notify_message (T);
+ case 0x612ca4a9: return fetch_ds_type_reply_markup (T);
+ case 0x9ed35b56: return fetch_ds_type_bare_reply_markup (T);
+ case 0x05162463: return fetch_ds_type_res_p_q (T);
+ case 0xfae9db9c: return fetch_ds_type_bare_res_p_q (T);
+ case 0x70541c7e: return fetch_ds_type_send_message_action (T);
+ case 0x8fabe381: return fetch_ds_type_bare_send_message_action (T);
+ case 0xa9230301: return fetch_ds_type_server_d_h_params (T);
+ case 0x56dcfcfe: return fetch_ds_type_bare_server_d_h_params (T);
+ case 0xb5890dba: return fetch_ds_type_server_d_h_inner_data (T);
+ case 0x4a76f245: return fetch_ds_type_bare_server_d_h_inner_data (T);
+ case 0xdb8a468f: return fetch_ds_type_set_client_d_h_params_answer (T);
+ case 0x2475b970: return fetch_ds_type_bare_set_client_d_h_params_answer (T);
+ case 0x12b299d4: return fetch_ds_type_sticker_pack (T);
+ case 0xed4d662b: return fetch_ds_type_bare_sticker_pack (T);
+ case 0xa7a43b17: return fetch_ds_type_sticker_set (T);
+ case 0x585bc4e8: return fetch_ds_type_bare_sticker_set (T);
+ case 0xb5286e24: return fetch_ds_type_string (T);
+ case 0x4ad791db: return fetch_ds_type_bare_string (T);
+ case 0x2e02b27e: return fetch_ds_type_update (T);
+ case 0xd1fd4d81: return fetch_ds_type_bare_update (T);
+ case 0x22499d27: return fetch_ds_type_updates (T);
+ case 0xddb662d8: return fetch_ds_type_bare_updates (T);
+ case 0x02e6c0c8: return fetch_ds_type_user (T);
+ case 0xfd193f37: return fetch_ds_type_bare_user (T);
+ case 0x5a89ac5b: return fetch_ds_type_user_full (T);
+ case 0xa57653a4: return fetch_ds_type_bare_user_full (T);
+ case 0x9a486229: return fetch_ds_type_user_profile_photo (T);
+ case 0x65b79dd6: return fetch_ds_type_bare_user_profile_photo (T);
+ case 0x76de9570: return fetch_ds_type_user_status (T);
+ case 0x89216a8f: return fetch_ds_type_bare_user_status (T);
+ case 0x1cb5c415: return fetch_ds_type_vector (T);
+ case 0xe34a3bea: return fetch_ds_type_bare_vector (T);
+ case 0x1716b174: return fetch_ds_type_video (T);
+ case 0xe8e94e8b: return fetch_ds_type_bare_video (T);
+ case 0xafa14973: return fetch_ds_type_wall_paper (T);
+ case 0x505eb68c: return fetch_ds_type_bare_wall_paper (T);
+ case 0x8d8c0d41: return fetch_ds_type_web_page (T);
+ case 0x7273f2be: return fetch_ds_type_bare_web_page (T);
+ case 0x1250abde: return fetch_ds_type_account_authorizations (T);
+ case 0xedaf5421: return fetch_ds_type_bare_account_authorizations (T);
+ case 0xeac2a804: return fetch_ds_type_account_password (T);
+ case 0x153d57fb: return fetch_ds_type_bare_account_password (T);
+ case 0xbcfc532c: return fetch_ds_type_account_password_input_settings (T);
+ case 0x4303acd3: return fetch_ds_type_bare_account_password_input_settings (T);
+ case 0xb7b72ab3: return fetch_ds_type_account_password_settings (T);
+ case 0x4848d54c: return fetch_ds_type_bare_account_password_settings (T);
+ case 0x554abb6f: return fetch_ds_type_account_privacy_rules (T);
+ case 0xaab54490: return fetch_ds_type_bare_account_privacy_rules (T);
+ case 0xa4f58c4c: return fetch_ds_type_account_sent_change_phone_code (T);
+ case 0x5b0a73b3: return fetch_ds_type_bare_account_sent_change_phone_code (T);
+ case 0xff036af1: return fetch_ds_type_auth_authorization (T);
+ case 0x00fc950e: return fetch_ds_type_bare_auth_authorization (T);
+ case 0x811ea28e: return fetch_ds_type_auth_checked_phone (T);
+ case 0x7ee15d71: return fetch_ds_type_bare_auth_checked_phone (T);
+ case 0xdf969c2d: return fetch_ds_type_auth_exported_authorization (T);
+ case 0x206963d2: return fetch_ds_type_bare_auth_exported_authorization (T);
+ case 0x137948a5: return fetch_ds_type_auth_password_recovery (T);
+ case 0xec86b75a: return fetch_ds_type_bare_auth_password_recovery (T);
+ case 0x0cc8bc16: return fetch_ds_type_auth_sent_code (T);
+ case 0xf33743e9: return fetch_ds_type_bare_auth_sent_code (T);
+ case 0x0377168f: return fetch_ds_type_binlog_encr_key (T);
+ case 0xfc88e970: return fetch_ds_type_bare_binlog_encr_key (T);
+ case 0x66ff03a6: return fetch_ds_type_binlog_update (T);
+ case 0x9900fc59: return fetch_ds_type_bare_binlog_update (T);
+ case 0x8c1b8fb4: return fetch_ds_type_contacts_blocked (T);
+ case 0x73e4704b: return fetch_ds_type_bare_contacts_blocked (T);
+ case 0xd8c02560: return fetch_ds_type_contacts_contacts (T);
+ case 0x273fda9f: return fetch_ds_type_bare_contacts_contacts (T);
+ case 0x0566000e: return fetch_ds_type_contacts_found (T);
+ case 0xfa99fff1: return fetch_ds_type_bare_contacts_found (T);
+ case 0xad524315: return fetch_ds_type_contacts_imported_contacts (T);
+ case 0x52adbcea: return fetch_ds_type_bare_contacts_imported_contacts (T);
+ case 0x3ace484c: return fetch_ds_type_contacts_link (T);
+ case 0xc531b7b3: return fetch_ds_type_bare_contacts_link (T);
+ case 0x5649dcc5: return fetch_ds_type_contacts_suggested (T);
+ case 0xa9b6233a: return fetch_ds_type_bare_contacts_suggested (T);
+ case 0x48feb267: return fetch_ds_type_geochats_located (T);
+ case 0xb7014d98: return fetch_ds_type_bare_geochats_located (T);
+ case 0x6d0a0e59: return fetch_ds_type_geochats_messages (T);
+ case 0x92f5f1a6: return fetch_ds_type_bare_geochats_messages (T);
+ case 0x17b1578b: return fetch_ds_type_geochats_stated_message (T);
+ case 0xe84ea874: return fetch_ds_type_bare_geochats_stated_message (T);
+ case 0x4ddd9627: return fetch_ds_type_help_app_update (T);
+ case 0xb22269d8: return fetch_ds_type_bare_help_app_update (T);
+ case 0x18cb9f78: return fetch_ds_type_help_invite_text (T);
+ case 0xe7346087: return fetch_ds_type_bare_help_invite_text (T);
+ case 0x17c6b5f6: return fetch_ds_type_help_support (T);
+ case 0xe8394a09: return fetch_ds_type_bare_help_support (T);
+ case 0xb45c69d1: return fetch_ds_type_messages_affected_history (T);
+ case 0x4ba3962e: return fetch_ds_type_bare_messages_affected_history (T);
+ case 0x84d19185: return fetch_ds_type_messages_affected_messages (T);
+ case 0x7b2e6e7a: return fetch_ds_type_bare_messages_affected_messages (T);
+ case 0xb485502f: return fetch_ds_type_messages_all_stickers (T);
+ case 0x4b7aafd0: return fetch_ds_type_bare_messages_all_stickers (T);
+ case 0xe5d7d19c: return fetch_ds_type_messages_chat_full (T);
+ case 0x1a282e63: return fetch_ds_type_bare_messages_chat_full (T);
+ case 0x64ff9fd5: return fetch_ds_type_messages_chats (T);
+ case 0x9b00602a: return fetch_ds_type_bare_messages_chats (T);
+ case 0xecc058e8: return fetch_ds_type_messages_dh_config (T);
+ case 0x133fa717: return fetch_ds_type_bare_messages_dh_config (T);
+ case 0x645af8b3: return fetch_ds_type_messages_dialogs (T);
+ case 0x9ba5074c: return fetch_ds_type_bare_messages_dialogs (T);
+ case 0x3f4e0648: return fetch_ds_type_messages_message (T);
+ case 0xc0b1f9b7: return fetch_ds_type_bare_messages_message (T);
+ case 0x8735e464: return fetch_ds_type_messages_messages (T);
+ case 0x78ca1b9b: return fetch_ds_type_bare_messages_messages (T);
+ case 0xc29c7607: return fetch_ds_type_messages_sent_encrypted_message (T);
+ case 0x3d6389f8: return fetch_ds_type_bare_messages_sent_encrypted_message (T);
+ case 0x799ce190: return fetch_ds_type_messages_sent_message (T);
+ case 0x86631e6f: return fetch_ds_type_bare_messages_sent_message (T);
+ case 0xb60a24a6: return fetch_ds_type_messages_sticker_set (T);
+ case 0x49f5db59: return fetch_ds_type_bare_messages_sticker_set (T);
+ case 0x7bfa5710: return fetch_ds_type_messages_stickers (T);
+ case 0x8405a8ef: return fetch_ds_type_bare_messages_stickers (T);
+ case 0x20212ca8: return fetch_ds_type_photos_photo (T);
+ case 0xdfded357: return fetch_ds_type_bare_photos_photo (T);
+ case 0x98cf75f1: return fetch_ds_type_photos_photos (T);
+ case 0x67308a0e: return fetch_ds_type_bare_photos_photos (T);
+ case 0x3e2838a8: return fetch_ds_type_storage_file_type (T);
+ case 0xc1d7c757: return fetch_ds_type_bare_storage_file_type (T);
+ case 0xf57a2419: return fetch_ds_type_updates_difference (T);
+ case 0x0a85dbe6: return fetch_ds_type_bare_updates_difference (T);
+ case 0xa56c2a3e: return fetch_ds_type_updates_state (T);
+ case 0x5a93d5c1: return fetch_ds_type_bare_updates_state (T);
+ case 0x096a18d5: return fetch_ds_type_upload_file (T);
+ case 0xf695e72a: return fetch_ds_type_bare_upload_file (T);
+ default: return NULL; }
+}
|