From 61b438a38eb295699ebae68414d1d0691a728c2e Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Sun, 10 Mar 2024 15:03:28 +0100 Subject: [PATCH] Improve parser --- src/TL/TLParser.php | 19626 ++++++++++++++++++++++++++++------------- tools/TL/Builder.php | 193 +- 2 files changed, 13627 insertions(+), 6192 deletions(-) diff --git a/src/TL/TLParser.php b/src/TL/TLParser.php index d7e0df5d9..9f6a79472 100644 --- a/src/TL/TLParser.php +++ b/src/TL/TLParser.php @@ -134,1137 +134,133 @@ final class TLParser { } private function deserialize_type_array_of_int(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - unpack('l', stream_get_contents($stream, 4))[1]; + $result []= unpack('l', stream_get_contents($stream, 4))[1]; } return $result; } private function deserialize_type_array_of_long(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - unpack('q', stream_get_contents($stream, 8))[1]; + $result []= unpack('q', stream_get_contents($stream, 8))[1]; } return $result; } private function deserialize_type_array_of_double(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - unpack('d', stream_get_contents($stream, 8))[1]; + $result []= unpack('d', stream_get_contents($stream, 8))[1]; } return $result; } private function deserialize_type_array_of_strlong(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - stream_get_contents($stream, 8); + $result []= stream_get_contents($stream, 8); } return $result; } private function deserialize_type_array_of_string(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - self::deserialize_string($stream); + $result []= self::deserialize_string($stream); } return $result; } private function deserialize_type_array_of_bytes(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - self::deserialize_bytes($stream); + $result []= self::deserialize_bytes($stream); } return $result; } - private function deserialize_auth___sentCodeTypeEmailCode(mixed $stream): mixed { -$tmp = ['_' => 'auth.sentCodeTypeEmailCode']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['apple_signin_allowed'] = ($flags & 1) !== 0; -$tmp['google_signin_allowed'] = ($flags & 2) !== 0; -$tmp['email_pattern'] = self::deserialize_string($stream); -$tmp['length'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['reset_available_period'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 16) !== 0) $tmp['reset_pending_date'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_auth___sentCodeTypeSetUpEmailRequired(mixed $stream): mixed { -$tmp = ['_' => 'auth.sentCodeTypeSetUpEmailRequired']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['apple_signin_allowed'] = ($flags & 1) !== 0; -$tmp['google_signin_allowed'] = ($flags & 2) !== 0; - -return $tmp; - } - private function deserialize_auth___sentCodeTypeFirebaseSms(mixed $stream): mixed { -$tmp = ['_' => 'auth.sentCodeTypeFirebaseSms']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['nonce'] = self::deserialize_bytes($stream); -if (($flags & 2) !== 0) $tmp['receipt'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['push_timeout'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['length'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_auth___SentCodeType(mixed $stream): mixed { + private function deserialize_type_Peer(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { -'Y=' => [ -'_' => 'auth.sentCodeTypeApp', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'Ⅲ' . "\0" . '' => [ -'_' => 'auth.sentCodeTypeSms', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'批SS' => [ -'_' => 'auth.sentCodeTypeCall', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'棐' => [ -'_' => 'auth.sentCodeTypeFlashCall', -'pattern' => self::deserialize_string($stream), -], -'d' . "\0" . '' => [ -'_' => 'auth.sentCodeTypeMissedCall', -'prefix' => self::deserialize_string($stream), -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'顣' => self::deserialize_auth___sentCodeTypeEmailCode($stream), -'I' => self::deserialize_auth___sentCodeTypeSetUpEmailRequired($stream), -'9\\V' => [ -'_' => 'auth.sentCodeTypeFragmentSms', -'url' => self::deserialize_string($stream), -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'2{' => self::deserialize_auth___sentCodeTypeFirebaseSms($stream), -'+r0' => $this->deserialize_type_auth___SentCodeType(self::gzdecode($stream)), +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => $this->deserialize_type_Peer(self::gzdecode($stream)), default => self::err($stream) } ; } - private function deserialize_type_auth___CodeType(mixed $stream): mixed { + private function deserialize_messageEmpty(mixed $stream): mixed { +$tmp = ['_' => 'messageEmpty']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['peer_id'] = match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_messageFwdHeader(mixed $stream): mixed { +$tmp = ['_' => 'messageFwdHeader']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['imported'] = ($flags & 128) !== 0; +$tmp['saved_out'] = ($flags & 2048) !== 0; +if (($flags & 1) !== 0) $tmp['from_id'] = match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 32) !== 0) $tmp['from_name'] = self::deserialize_string($stream); +$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 4) !== 0) $tmp['channel_post'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 8) !== 0) $tmp['post_author'] = self::deserialize_string($stream); +if (($flags & 16) !== 0) $tmp['saved_from_peer'] = match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 16) !== 0) $tmp['saved_from_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 256) !== 0) $tmp['saved_from_id'] = match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 512) !== 0) $tmp['saved_from_name'] = self::deserialize_string($stream); +if (($flags & 1024) !== 0) $tmp['saved_date'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 64) !== 0) $tmp['psa_type'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_MessageFwdHeader(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { -'ψ' => [ -'_' => 'auth.codeTypeSms', -], -'蒑t' => [ -'_' => 'auth.codeTypeCall', -], -'姤"' => [ -'_' => 'auth.codeTypeFlashCall', -], -'鍶' => [ -'_' => 'auth.codeTypeMissedCall', -], -'' => [ -'_' => 'auth.codeTypeFragmentSms', -], -'+r0' => $this->deserialize_type_auth___CodeType(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_auth___sentCode(mixed $stream): mixed { -$tmp = ['_' => 'auth.sentCode']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['type'] = match (stream_get_contents($stream, 4)) { -'Y=' => [ -'_' => 'auth.sentCodeTypeApp', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'Ⅲ' . "\0" . '' => [ -'_' => 'auth.sentCodeTypeSms', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'批SS' => [ -'_' => 'auth.sentCodeTypeCall', -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'棐' => [ -'_' => 'auth.sentCodeTypeFlashCall', -'pattern' => self::deserialize_string($stream), -], -'d' . "\0" . '' => [ -'_' => 'auth.sentCodeTypeMissedCall', -'prefix' => self::deserialize_string($stream), -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'顣' => self::deserialize_auth___sentCodeTypeEmailCode($stream), -'I' => self::deserialize_auth___sentCodeTypeSetUpEmailRequired($stream), -'9\\V' => [ -'_' => 'auth.sentCodeTypeFragmentSms', -'url' => self::deserialize_string($stream), -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'2{' => self::deserialize_auth___sentCodeTypeFirebaseSms($stream), -'+r0' => self::deserialize_type_auth___SentCodeType(self::gzdecode($stream)), -default => self::err($stream) -} -; -$tmp['phone_code_hash'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['next_type'] = match (stream_get_contents($stream, 4)) { -'ψ' => [ -'_' => 'auth.codeTypeSms', -], -'蒑t' => [ -'_' => 'auth.codeTypeCall', -], -'姤"' => [ -'_' => 'auth.codeTypeFlashCall', -], -'鍶' => [ -'_' => 'auth.codeTypeMissedCall', -], -'' => [ -'_' => 'auth.codeTypeFragmentSms', -], -'+r0' => self::deserialize_type_auth___CodeType(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 4) !== 0) $tmp['timeout'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_userProfilePhoto(mixed $stream): mixed { -$tmp = ['_' => 'userProfilePhoto']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['has_video'] = ($flags & 1) !== 0; -$tmp['personal'] = ($flags & 4) !== 0; -$tmp['photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 2) !== 0) $tmp['stripped_thumb'] = self::deserialize_bytes($stream); -$tmp['dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_UserProfilePhoto(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'廕O' => [ -'_' => 'userProfilePhotoEmpty', -], -'劙' => self::deserialize_userProfilePhoto($stream), -'+r0' => $this->deserialize_type_UserProfilePhoto(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_userStatusRecently(mixed $stream): mixed { -$tmp = ['_' => 'userStatusRecently']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['by_me'] = ($flags & 1) !== 0; - -return $tmp; - } - private function deserialize_userStatusLastWeek(mixed $stream): mixed { -$tmp = ['_' => 'userStatusLastWeek']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['by_me'] = ($flags & 1) !== 0; - -return $tmp; - } - private function deserialize_userStatusLastMonth(mixed $stream): mixed { -$tmp = ['_' => 'userStatusLastMonth']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['by_me'] = ($flags & 1) !== 0; - -return $tmp; - } - private function deserialize_type_UserStatus(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'IP ' => [ -'_' => 'userStatusEmpty', -], -'I9寤' => [ -'_' => 'userStatusOnline', -'expires' => unpack('l', stream_get_contents($stream, 4))[1], -], -'?p' . "\0" . '' => [ -'_' => 'userStatusOffline', -'was_online' => unpack('l', stream_get_contents($stream, 4))[1], -], -'}{' => self::deserialize_userStatusRecently($stream), -'T' => self::deserialize_userStatusLastWeek($stream), -'we' => self::deserialize_userStatusLastMonth($stream), -'+r0' => $this->deserialize_type_UserStatus(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_array_of_RestrictionReason(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'摒r' => [ -'_' => 'restrictionReason', -'platform' => self::deserialize_string($stream), -'reason' => self::deserialize_string($stream), -'text' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RestrictionReason(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_EmojiStatus(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'-' => [ -'_' => 'emojiStatusEmpty', -], -'a' => [ -'_' => 'emojiStatus', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'ヮ0' => [ -'_' => 'emojiStatusUntil', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'until' => unpack('l', stream_get_contents($stream, 4))[1], -], -'+r0' => $this->deserialize_type_EmojiStatus(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_username(mixed $stream): mixed { -$tmp = ['_' => 'username']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['editable'] = ($flags & 1) !== 0; -$tmp['active'] = ($flags & 2) !== 0; -$tmp['username'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_array_of_Username(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'G6' => self::deserialize_username($stream), -'+r0' => $this->deserialize_type_Username(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_peerColor(mixed $stream): mixed { -$tmp = ['_' => 'peerColor']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 2) !== 0) $tmp['background_emoji_id'] = unpack('q', stream_get_contents($stream, 8))[1]; - -return $tmp; - } - private function deserialize_type_PeerColor(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'柌K' => self::deserialize_peerColor($stream), -'+r0' => $this->deserialize_type_PeerColor(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_user(mixed $stream): mixed { -$tmp = ['_' => 'user']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['self'] = ($flags & 1024) !== 0; -$tmp['contact'] = ($flags & 2048) !== 0; -$tmp['mutual_contact'] = ($flags & 4096) !== 0; -$tmp['deleted'] = ($flags & 8192) !== 0; -$tmp['bot'] = ($flags & 16384) !== 0; -$tmp['bot_chat_history'] = ($flags & 32768) !== 0; -$tmp['bot_nochats'] = ($flags & 65536) !== 0; -$tmp['verified'] = ($flags & 131072) !== 0; -$tmp['restricted'] = ($flags & 262144) !== 0; -$tmp['min'] = ($flags & 1048576) !== 0; -$tmp['bot_inline_geo'] = ($flags & 2097152) !== 0; -$tmp['support'] = ($flags & 8388608) !== 0; -$tmp['scam'] = ($flags & 16777216) !== 0; -$tmp['apply_min_photo'] = ($flags & 33554432) !== 0; -$tmp['fake'] = ($flags & 67108864) !== 0; -$tmp['bot_attach_menu'] = ($flags & 134217728) !== 0; -$tmp['premium'] = ($flags & 268435456) !== 0; -$tmp['attach_menu_enabled'] = ($flags & 536870912) !== 0; -$flags2 = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['bot_can_edit'] = ($flags2 & 2) !== 0; -$tmp['close_friend'] = ($flags2 & 4) !== 0; -$tmp['stories_hidden'] = ($flags2 & 8) !== 0; -$tmp['stories_unavailable'] = ($flags2 & 16) !== 0; -$tmp['contact_require_premium'] = ($flags2 & 1024) !== 0; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 2) !== 0) $tmp['first_name'] = self::deserialize_string($stream); -if (($flags & 4) !== 0) $tmp['last_name'] = self::deserialize_string($stream); -if (($flags & 8) !== 0) $tmp['username'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['phone'] = self::deserialize_string($stream); -if (($flags & 32) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) { -'廕O' => [ -'_' => 'userProfilePhotoEmpty', -], -'劙' => self::deserialize_userProfilePhoto($stream), -'+r0' => self::deserialize_type_UserProfilePhoto(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 64) !== 0) $tmp['status'] = match (stream_get_contents($stream, 4)) { -'IP ' => [ -'_' => 'userStatusEmpty', -], -'I9寤' => [ -'_' => 'userStatusOnline', -'expires' => unpack('l', stream_get_contents($stream, 4))[1], -], -'?p' . "\0" . '' => [ -'_' => 'userStatusOffline', -'was_online' => unpack('l', stream_get_contents($stream, 4))[1], -], -'}{' => self::deserialize_userStatusRecently($stream), -'T' => self::deserialize_userStatusLastWeek($stream), -'we' => self::deserialize_userStatusLastMonth($stream), -'+r0' => self::deserialize_type_UserStatus(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 16384) !== 0) $tmp['bot_info_version'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 262144) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason($stream); -if (($flags & 524288) !== 0) $tmp['bot_inline_placeholder'] = self::deserialize_string($stream); -if (($flags & 4194304) !== 0) $tmp['lang_code'] = self::deserialize_string($stream); -if (($flags & 1073741824) !== 0) $tmp['emoji_status'] = match (stream_get_contents($stream, 4)) { -'-' => [ -'_' => 'emojiStatusEmpty', -], -'a' => [ -'_' => 'emojiStatus', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'ヮ0' => [ -'_' => 'emojiStatusUntil', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'until' => unpack('l', stream_get_contents($stream, 4))[1], -], -'+r0' => self::deserialize_type_EmojiStatus(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags2 & 1) !== 0) $tmp['usernames'] = self::deserialize_type_array_of_Username($stream); -if (($flags2 & 32) !== 0) $tmp['stories_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags2 & 256) !== 0) $tmp['color'] = match (stream_get_contents($stream, 4)) { -'柌K' => self::deserialize_peerColor($stream), -'+r0' => self::deserialize_type_PeerColor(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags2 & 512) !== 0) $tmp['profile_color'] = match (stream_get_contents($stream, 4)) { -'柌K' => self::deserialize_peerColor($stream), -'+r0' => self::deserialize_type_PeerColor(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_User(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'zK樓' => [ -'_' => 'userEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'8D\\!' => self::deserialize_user($stream), -'+r0' => $this->deserialize_type_User(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_auth___authorization(mixed $stream): mixed { -$tmp = ['_' => 'auth.authorization']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['setup_password_required'] = ($flags & 2) !== 0; -if (($flags & 2) !== 0) $tmp['otherwise_relogin_days'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['tmp_sessions'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 4) !== 0) $tmp['future_auth_token'] = self::deserialize_bytes($stream); -$tmp['user'] = match (stream_get_contents($stream, 4)) { -'zK樓' => [ -'_' => 'userEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'8D\\!' => self::deserialize_user($stream), -'+r0' => self::deserialize_type_User(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_DataJSON(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), -'+r0' => $this->deserialize_type_DataJSON(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_InputPeer(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -';' => [ -'_' => 'inputPeerEmpty', -], -'氕}' => [ -'_' => 'inputPeerSelf', -], -'鈾\5' => [ -'_' => 'inputPeerChat', -'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'L亥' => [ -'_' => 'inputPeerUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'遞\'' => [ -'_' => 'inputPeerChannel', -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -' -{' => [ -'_' => 'inputPeerUserFromMessage', -'peer' => match (stream_get_contents($stream, 4)) { -';' => [ -'_' => 'inputPeerEmpty', -], -'氕}' => [ -'_' => 'inputPeerSelf', -], -'鈾\5' => [ -'_' => 'inputPeerChat', -'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'L亥' => [ -'_' => 'inputPeerUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'遞\'' => [ -'_' => 'inputPeerChannel', -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -' -{' => [ -'_' => 'inputPeerUserFromMessage', -'peer' => $this->deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'@*' => [ -'_' => 'inputPeerChannelFromMessage', -'peer' => $this->deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'@*' => [ -'_' => 'inputPeerChannelFromMessage', -'peer' => match (stream_get_contents($stream, 4)) { -';' => [ -'_' => 'inputPeerEmpty', -], -'氕}' => [ -'_' => 'inputPeerSelf', -], -'鈾\5' => [ -'_' => 'inputPeerChat', -'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'L亥' => [ -'_' => 'inputPeerUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'遞\'' => [ -'_' => 'inputPeerChannel', -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -' -{' => [ -'_' => 'inputPeerUserFromMessage', -'peer' => $this->deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'@*' => [ -'_' => 'inputPeerChannelFromMessage', -'peer' => $this->deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_InputUser(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'' => [ -'_' => 'inputUserEmpty', -], -'?掄' => [ -'_' => 'inputUserSelf', -], -'籬' => [ -'_' => 'inputUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'榎' => [ -'_' => 'inputUserFromMessage', -'peer' => match (stream_get_contents($stream, 4)) { -';' => [ -'_' => 'inputPeerEmpty', -], -'氕}' => [ -'_' => 'inputPeerSelf', -], -'鈾\5' => [ -'_' => 'inputPeerChat', -'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'L亥' => [ -'_' => 'inputPeerUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'遞\'' => [ -'_' => 'inputPeerChannel', -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -' -{' => [ -'_' => 'inputPeerUserFromMessage', -'peer' => self::deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'@*' => [ -'_' => 'inputPeerChannelFromMessage', -'peer' => self::deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_InputPeer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_InputUser(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_array_of_MessageEntity(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'' => [ -'_' => 'messageEntityUnknown', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'W' => [ -'_' => 'messageEntityMention', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -' [co' => [ -'_' => 'messageEntityHashtag', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'鮞' => [ -'_' => 'messageEntityBotCommand', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'8%茇' => [ -'_' => 'messageEntityUrl', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'燼輐' => [ -'_' => 'messageEntityEmail', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -' a' => [ -'_' => 'messageEntityBold', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'`o' => [ -'_' => 'messageEntityItalic', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'q(' => [ -'_' => 'messageEntityCode', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'誂s' => [ -'_' => 'messageEntityPre', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -'language' => self::deserialize_string($stream), -], -'\'茼v' => [ -'_' => 'messageEntityTextUrl', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -'url' => self::deserialize_string($stream), -], -'@{' => [ -'_' => 'messageEntityMentionName', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'仡 ' => [ -'_' => 'inputMessageEntityMentionName', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => match (stream_get_contents($stream, 4)) { -'' => [ -'_' => 'inputUserEmpty', -], -'?掄' => [ -'_' => 'inputUserSelf', -], -'籬' => [ -'_' => 'inputUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'榎' => [ -'_' => 'inputUserFromMessage', -'peer' => match (stream_get_contents($stream, 4)) { -';' => [ -'_' => 'inputPeerEmpty', -], -'氕}' => [ -'_' => 'inputPeerSelf', -], -'鈾\5' => [ -'_' => 'inputPeerChat', -'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'L亥' => [ -'_' => 'inputPeerUser', -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'遞\'' => [ -'_' => 'inputPeerChannel', -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -' -{' => [ -'_' => 'inputPeerUserFromMessage', -'peer' => self::deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'@*' => [ -'_' => 'inputPeerChannelFromMessage', -'peer' => self::deserialize_type_InputPeer($stream), -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_InputPeer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], -'user_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_InputUser(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'K緅' => [ -'_' => 'messageEntityPhone', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'?tNL' => [ -'_' => 'messageEntityCashtag', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'~N' => [ -'_' => 'messageEntityUnderline', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'' => [ -'_' => 'messageEntityStrike', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'爓v' => [ -'_' => 'messageEntityBankCard', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'2' => [ -'_' => 'messageEntitySpoiler', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'珂' => [ -'_' => 'messageEntityCustomEmoji', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'哳 ' => [ -'_' => 'messageEntityBlockquote', -'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'length' => unpack('l', stream_get_contents($stream, 4))[1], -], -'+r0' => $this->deserialize_type_MessageEntity(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_help___termsOfService(mixed $stream): mixed { -$tmp = ['_' => 'help.termsOfService']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['popup'] = ($flags & 1) !== 0; -$tmp['id'] = match (stream_get_contents($stream, 4)) { -'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), -'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), -default => self::err($stream) -} -; -$tmp['text'] = self::deserialize_string($stream); -$tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); -if (($flags & 2) !== 0) $tmp['min_age_confirm'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_help___TermsOfService(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -' -x' => self::deserialize_help___termsOfService($stream), -'+r0' => $this->deserialize_type_help___TermsOfService(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_auth___authorizationSignUpRequired(mixed $stream): mixed { -$tmp = ['_' => 'auth.authorizationSignUpRequired']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['terms_of_service'] = match (stream_get_contents($stream, 4)) { -' -x' => self::deserialize_help___termsOfService($stream), -'+r0' => self::deserialize_type_help___TermsOfService(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_auth___Authorization(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'埬.' => self::deserialize_auth___authorization($stream), -'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), -'+r0' => $this->deserialize_type_auth___Authorization(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_auth___loggedOut(mixed $stream): mixed { -$tmp = ['_' => 'auth.loggedOut']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['future_auth_token'] = self::deserialize_bytes($stream); - -return $tmp; - } - private function deserialize_authorization(mixed $stream): mixed { -$tmp = ['_' => 'authorization']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['current'] = ($flags & 1) !== 0; -$tmp['official_app'] = ($flags & 2) !== 0; -$tmp['password_pending'] = ($flags & 4) !== 0; -$tmp['encrypted_requests_disabled'] = ($flags & 8) !== 0; -$tmp['call_requests_disabled'] = ($flags & 16) !== 0; -$tmp['unconfirmed'] = ($flags & 32) !== 0; -$tmp['hash'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['device_model'] = self::deserialize_string($stream); -$tmp['platform'] = self::deserialize_string($stream); -$tmp['system_version'] = self::deserialize_string($stream); -$tmp['api_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['app_name'] = self::deserialize_string($stream); -$tmp['app_version'] = self::deserialize_string($stream); -$tmp['date_created'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['date_active'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['ip'] = self::deserialize_string($stream); -$tmp['country'] = self::deserialize_string($stream); -$tmp['region'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_NotificationSound(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_peerNotifySettings(mixed $stream): mixed { -$tmp = ['_' => 'peerNotifySettings']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['show_previews'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; -if (($flags & 2) !== 0) $tmp['silent'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; -if (($flags & 4) !== 0) $tmp['mute_until'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['ios_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 16) !== 0) $tmp['android_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 32) !== 0) $tmp['other_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 64) !== 0) $tmp['stories_muted'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; -if (($flags & 128) !== 0) $tmp['stories_hide_sender'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; -if (($flags & 256) !== 0) $tmp['stories_ios_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 512) !== 0) $tmp['stories_android_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 1024) !== 0) $tmp['stories_other_sound'] = match (stream_get_contents($stream, 4)) { -'噢' => [ -'_' => 'notificationSoundDefault', -], -'4 o' => [ -'_' => 'notificationSoundNone', -], -' ' => [ -'_' => 'notificationSoundLocal', -'title' => self::deserialize_string($stream), -'data' => self::deserialize_string($stream), -], -'Il' => [ -'_' => 'notificationSoundRingtone', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_FileLocation(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_FileLocation(self::gzdecode($stream)), +'齊MN' => self::deserialize_messageFwdHeader($stream), +'+r0' => $this->deserialize_type_MessageFwdHeader(self::gzdecode($stream)), default => self::err($stream) } ; } private function deserialize_type_array_of_PhotoSize(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -1296,63 +292,16 @@ default => self::err($stream) 'type' => self::deserialize_string($stream), 'w' => unpack('l', stream_get_contents($stream, 4))[1], 'h' => unpack('l', stream_get_contents($stream, 4))[1], -'sizes' => self::deserialize_type_array_of_int($stream), +'sizes' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'AM!' => [ '_' => 'photoPathSize', 'type' => self::deserialize_string($stream), 'bytes' => self::deserialize_bytes($stream), ], -'馭w' => [ -'_' => 'photoSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'size' => unpack('l', stream_get_contents($stream, 4))[1], -], -'4折' => [ -'_' => 'photoCachedSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => self::deserialize_bytes($stream), -], '+r0' => $this->deserialize_type_PhotoSize(self::gzdecode($stream)), default => self::err($stream) } @@ -1418,10 +367,6 @@ default => self::err($stream) } private function deserialize_type_array_of_VideoSize(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -1429,7 +374,10 @@ default => self::err($stream) ' [ '_' => 'videoSizeEmojiMarkup', 'emoji_id' => unpack('q', stream_get_contents($stream, 8))[1], -'background_colors' => self::deserialize_type_array_of_int($stream), +'background_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' ' => [ '_' => 'videoSizeStickerMarkup', @@ -1476,7 +424,10 @@ default => self::err($stream) } , 'sticker_id' => unpack('q', stream_get_contents($stream, 8))[1], -'background_colors' => self::deserialize_type_array_of_int($stream), +'background_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_VideoSize(self::gzdecode($stream)), default => self::err($stream) @@ -1485,6 +436,77 @@ default => self::err($stream) } return $result; + } + private function deserialize_photo(mixed $stream): mixed { +$tmp = ['_' => 'photo']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['has_stickers'] = ($flags & 1) !== 0; +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['file_reference'] = self::deserialize_bytes($stream); +$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['sizes'] = self::deserialize_type_array_of_PhotoSize(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['video_sizes'] = self::deserialize_type_array_of_VideoSize(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_Photo(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'-1#' => [ +'_' => 'photoEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ez' => self::deserialize_photo($stream), +'+r0' => $this->deserialize_type_Photo(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_messageMediaPhoto(mixed $stream): mixed { +$tmp = ['_' => 'messageMediaPhoto']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['spoiler'] = ($flags & 8) !== 0; +if (($flags & 1) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) { +'-1#' => [ +'_' => 'photoEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ez' => self::deserialize_photo($stream), +'+r0' => self::deserialize_type_Photo(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 4) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_geoPoint(mixed $stream): mixed { +$tmp = ['_' => 'geoPoint']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['long'] = unpack('d', stream_get_contents($stream, 8))[1]; +$tmp['lat'] = unpack('d', stream_get_contents($stream, 8))[1]; +$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 1) !== 0) $tmp['accuracy_radius'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_GeoPoint(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => $this->deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +; } private function deserialize_type_MaskCoords(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { @@ -1635,24 +657,10 @@ default => self::err($stream) } ; -return $tmp; - } - private function deserialize_documentAttributeVideo_66_66(mixed $stream): mixed { -$tmp = ['_' => 'documentAttributeVideo_66']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['round_message'] = ($flags & 1) !== 0; -$tmp['duration'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['w'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['h'] = unpack('l', stream_get_contents($stream, 4))[1]; - return $tmp; } private function deserialize_type_array_of_DocumentAttribute(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -1675,73 +683,6 @@ return $tmp; '_' => 'documentAttributeHasStickers', ], '' => self::deserialize_documentAttributeCustomEmoji($stream), -'\'W -' => [ -'_' => 'documentAttributeSticker_23', -], -'佮Y' => [ -'_' => 'documentAttributeVideo_23', -'duration' => unpack('l', stream_get_contents($stream, 4))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'嘺' => [ -'_' => 'documentAttributeAudio_23', -'duration' => unpack('l', stream_get_contents($stream, 4))[1], -], -'cU:' => [ -'_' => 'documentAttributeSticker_45', -'alt' => self::deserialize_string($stream), -'stickerset' => match (stream_get_contents($stream, 4)) { -'+' => [ -'_' => 'inputStickerSetEmpty', -], -'iY' => [ -'_' => 'inputStickerSetID', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -], -'' => [ -'_' => 'inputStickerSetShortName', -'short_name' => self::deserialize_string($stream), -], -'' => [ -'_' => 'inputStickerSetAnimatedEmoji', -], -'R' => [ -'_' => 'inputStickerSetDice', -'emoticon' => self::deserialize_string($stream), -], -'97 ' => [ -'_' => 'inputStickerSetAnimatedEmojiAnimations', -], -';' => [ -'_' => 'inputStickerSetPremiumGifts', -], -'拏' => [ -'_' => 'inputStickerSetEmojiGenericAnimations', -], -'隰)' => [ -'_' => 'inputStickerSetEmojiDefaultStatuses', -], -'澮磺' => [ -'_' => 'inputStickerSetEmojiDefaultTopicIcons', -], -'StI' => [ -'_' => 'inputStickerSetEmojiChannelDefaultStatuses', -], -'+r0' => self::deserialize_type_InputStickerSet(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'砨' => [ -'_' => 'documentAttributeAudio_45', -'duration' => unpack('l', stream_get_contents($stream, 4))[1], -'title' => self::deserialize_string($stream), -'performer' => self::deserialize_string($stream), -], -',' => self::deserialize_documentAttributeVideo_66_66($stream), '+r0' => $this->deserialize_type_DocumentAttribute(self::gzdecode($stream)), default => self::err($stream) } @@ -1759,10 +700,19 @@ $tmp['file_reference'] = self::deserialize_bytes($stream); $tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['mime_type'] = self::deserialize_string($stream); $tmp['size'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['thumbs'] = self::deserialize_type_array_of_PhotoSize($stream); -if (($flags & 2) !== 0) $tmp['video_thumbs'] = self::deserialize_type_array_of_VideoSize($stream); +if (($flags & 1) !== 0) $tmp['thumbs'] = self::deserialize_type_array_of_PhotoSize(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['video_thumbs'] = self::deserialize_type_array_of_VideoSize(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['attributes'] = self::deserialize_type_array_of_DocumentAttribute($stream); +$tmp['attributes'] = self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -1778,40 +728,15 @@ default => self::err($stream) } ; } - private function deserialize_wallPaperSettings(mixed $stream): mixed { -$tmp = ['_' => 'wallPaperSettings']; + private function deserialize_messageMediaDocument(mixed $stream): mixed { +$tmp = ['_' => 'messageMediaDocument']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['blur'] = ($flags & 2) !== 0; -$tmp['motion'] = ($flags & 4) !== 0; -if (($flags & 1) !== 0) $tmp['background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 16) !== 0) $tmp['second_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 32) !== 0) $tmp['third_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 64) !== 0) $tmp['fourth_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['intensity'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 16) !== 0) $tmp['rotation'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 128) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_WallPaperSettings(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'唑.7' => self::deserialize_wallPaperSettings($stream), -'+r0' => $this->deserialize_type_WallPaperSettings(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_wallPaper(mixed $stream): mixed { -$tmp = ['_' => 'wallPaper']; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['creator'] = ($flags & 1) !== 0; -$tmp['default'] = ($flags & 2) !== 0; -$tmp['pattern'] = ($flags & 8) !== 0; -$tmp['dark'] = ($flags & 16) !== 0; -$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['slug'] = self::deserialize_string($stream); -$tmp['document'] = match (stream_get_contents($stream, 4)) { +$tmp['nopremium'] = ($flags & 8) !== 0; +$tmp['spoiler'] = ($flags & 16) !== 0; +$tmp['video'] = ($flags & 64) !== 0; +$tmp['round'] = ($flags & 128) !== 0; +$tmp['voice'] = ($flags & 256) !== 0; +if (($flags & 1) !== 0) $tmp['document'] = match (stream_get_contents($stream, 4)) { 'q6' => [ '_' => 'documentEmpty', 'id' => unpack('q', stream_get_contents($stream, 8))[1], @@ -1821,96 +746,1916 @@ $tmp['document'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -if (($flags & 4) !== 0) $tmp['settings'] = match (stream_get_contents($stream, 4)) { -'唑.7' => self::deserialize_wallPaperSettings($stream), -'+r0' => self::deserialize_type_WallPaperSettings(self::gzdecode($stream)), +if (($flags & 32) !== 0) $tmp['alt_document'] = match (stream_get_contents($stream, 4)) { +'q6' => [ +'_' => 'documentEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'媊' => self::deserialize_document($stream), +'+r0' => self::deserialize_type_Document(self::gzdecode($stream)), default => self::err($stream) } ; +if (($flags & 4) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; } - private function deserialize_wallPaperNoFile(mixed $stream): mixed { -$tmp = ['_' => 'wallPaperNoFile']; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; + private function deserialize_webPageEmpty(mixed $stream): mixed { +$tmp = ['_' => 'webPageEmpty']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['default'] = ($flags & 2) !== 0; -$tmp['dark'] = ($flags & 16) !== 0; -if (($flags & 4) !== 0) $tmp['settings'] = match (stream_get_contents($stream, 4)) { -'唑.7' => self::deserialize_wallPaperSettings($stream), -'+r0' => self::deserialize_type_WallPaperSettings(self::gzdecode($stream)), +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_webPagePending(mixed $stream): mixed { +$tmp = ['_' => 'webPagePending']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); +$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_array_of_RichText(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => $this->deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_RichText(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'' => [ +'_' => 'textItalic', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'"&' => [ +'_' => 'textUnderline', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'僵' => [ +'_' => 'textStrike', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'?l' => [ +'_' => 'textFixed', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'(<' => [ +'_' => 'textUrl', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'^' => [ +'_' => 'textSuperscript', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'!K' => [ +'_' => 'textMarked', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'j' => [ +'_' => 'textPhone', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => $this->deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => $this->deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => $this->deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => $this->deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => $this->deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => $this->deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => $this->deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => $this->deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => $this->deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => $this->deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => $this->deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => $this->deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'name' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_array_of_PageListItem(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'芘/' => [ +'_' => 'pageListItemText', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'s%' => [ +'_' => 'pageListItemBlocks', +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => $this->deserialize_type_PageListItem(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_PageCaption(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'Wvto' => [ +'_' => 'pageCaption', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'credit' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => $this->deserialize_type_PageCaption(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_pageBlockPhoto(mixed $stream): mixed { +$tmp = ['_' => 'pageBlockPhoto']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['caption'] = match (stream_get_contents($stream, 4)) { +'Wvto' => [ +'_' => 'pageCaption', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'credit' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); +if (($flags & 1) !== 0) $tmp['webpage_id'] = unpack('q', stream_get_contents($stream, 8))[1]; + +return $tmp; + } + private function deserialize_pageBlockVideo(mixed $stream): mixed { +$tmp = ['_' => 'pageBlockVideo']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['autoplay'] = ($flags & 1) !== 0; +$tmp['loop'] = ($flags & 2) !== 0; +$tmp['video_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['caption'] = match (stream_get_contents($stream, 4)) { +'Wvto' => [ +'_' => 'pageCaption', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'credit' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), default => self::err($stream) } ; return $tmp; } - private function deserialize_type_array_of_WallPaper(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'篳7' => self::deserialize_wallPaper($stream), -'A' => self::deserialize_wallPaperNoFile($stream), -'+r0' => $this->deserialize_type_WallPaper(self::gzdecode($stream)), + private function deserialize_pageBlockEmbed(mixed $stream): mixed { +$tmp = ['_' => 'pageBlockEmbed']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['full_width'] = ($flags & 1) !== 0; +$tmp['allow_scrolling'] = ($flags & 8) !== 0; +if (($flags & 2) !== 0) $tmp['url'] = self::deserialize_string($stream); +if (($flags & 4) !== 0) $tmp['html'] = self::deserialize_string($stream); +if (($flags & 16) !== 0) $tmp['poster_photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 32) !== 0) $tmp['w'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 32) !== 0) $tmp['h'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['caption'] = match (stream_get_contents($stream, 4)) { +'Wvto' => [ +'_' => 'pageCaption', +'text' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +'credit' => match (stream_get_contents($stream, 4)) { +'O=' => [ +'_' => 'textEmpty', +], +'Ft' => [ +'_' => 'textPlain', +'text' => self::deserialize_string($stream), +], +'蘋$g' => [ +'_' => 'textBold', +'text' => self::deserialize_type_RichText($stream), +], +'' => [ +'_' => 'textItalic', +'text' => self::deserialize_type_RichText($stream), +], +'"&' => [ +'_' => 'textUnderline', +'text' => self::deserialize_type_RichText($stream), +], +'僵' => [ +'_' => 'textStrike', +'text' => self::deserialize_type_RichText($stream), +], +'?l' => [ +'_' => 'textFixed', +'text' => self::deserialize_type_RichText($stream), +], +'(<' => [ +'_' => 'textUrl', +'text' => self::deserialize_type_RichText($stream), +'url' => self::deserialize_string($stream), +'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +' Z' => [ +'_' => 'textEmail', +'text' => self::deserialize_type_RichText($stream), +'email' => self::deserialize_string($stream), +], +'荴b~' => [ +'_' => 'textConcat', +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j' => [ +'_' => 'textSubscript', +'text' => self::deserialize_type_RichText($stream), +], +'^' => [ +'_' => 'textSuperscript', +'text' => self::deserialize_type_RichText($stream), +], +'!K' => [ +'_' => 'textMarked', +'text' => self::deserialize_type_RichText($stream), +], +'j' => [ +'_' => 'textPhone', +'text' => self::deserialize_type_RichText($stream), +'phone' => self::deserialize_string($stream), +], +'O' => [ +'_' => 'textImage', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'w' => unpack('l', stream_get_contents($stream, 4))[1], +'h' => unpack('l', stream_get_contents($stream, 4))[1], +], +'b7U5' => [ +'_' => 'textAnchor', +'text' => self::deserialize_type_RichText($stream), +'name' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), default => self::err($stream) } ; - } - return $result; - - } - private function deserialize_type_array_of_PrivacyRule(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'' => [ -'_' => 'privacyValueAllowContacts', -], -'{Be' => [ -'_' => 'privacyValueAllowAll', -], -'淪' => [ -'_' => 'privacyValueAllowUsers', -'users' => self::deserialize_type_array_of_long($stream), -], -'' => [ -'_' => 'privacyValueDisallowContacts', -], -'c蓧' => [ -'_' => 'privacyValueDisallowAll', -], -'Ab' => [ -'_' => 'privacyValueDisallowUsers', -'users' => self::deserialize_type_array_of_long($stream), -], -'Nk' => [ -'_' => 'privacyValueAllowChatParticipants', -'chats' => self::deserialize_type_array_of_long($stream), -], -'euA' => [ -'_' => 'privacyValueDisallowChatParticipants', -'chats' => self::deserialize_type_array_of_long($stream), -], -'嵙' => [ -'_' => 'privacyValueAllowCloseFriends', -], -'+r0' => $this->deserialize_type_PrivacyRule(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - +return $tmp; } private function deserialize_chatPhoto(mixed $stream): mixed { $tmp = ['_' => 'chatPhoto']; @@ -1931,6 +2676,120 @@ return match (stream_get_contents($stream, 4)) { '+r0' => $this->deserialize_type_ChatPhoto(self::gzdecode($stream)), default => self::err($stream) } +; + } + private function deserialize_type_InputPeer(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'inputPeerEmpty', +], +'氕}' => [ +'_' => 'inputPeerSelf', +], +'鈾\5' => [ +'_' => 'inputPeerChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L亥' => [ +'_' => 'inputPeerUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'遞\'' => [ +'_' => 'inputPeerChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +' +{' => [ +'_' => 'inputPeerUserFromMessage', +'peer' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'inputPeerEmpty', +], +'氕}' => [ +'_' => 'inputPeerSelf', +], +'鈾\5' => [ +'_' => 'inputPeerChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L亥' => [ +'_' => 'inputPeerUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'遞\'' => [ +'_' => 'inputPeerChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +' +{' => [ +'_' => 'inputPeerUserFromMessage', +'peer' => $this->deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'@*' => [ +'_' => 'inputPeerChannelFromMessage', +'peer' => $this->deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'@*' => [ +'_' => 'inputPeerChannelFromMessage', +'peer' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'inputPeerEmpty', +], +'氕}' => [ +'_' => 'inputPeerSelf', +], +'鈾\5' => [ +'_' => 'inputPeerChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L亥' => [ +'_' => 'inputPeerUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'遞\'' => [ +'_' => 'inputPeerChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +' +{' => [ +'_' => 'inputPeerUserFromMessage', +'peer' => $this->deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'@*' => [ +'_' => 'inputPeerChannelFromMessage', +'peer' => $this->deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_InputPeer(self::gzdecode($stream)), +default => self::err($stream) +} ; } private function deserialize_type_InputChannel(mixed $stream): mixed { @@ -2148,6 +3007,83 @@ default => self::err($stream) ; return $tmp; + } + private function deserialize_type_array_of_RestrictionReason(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'摒r' => [ +'_' => 'restrictionReason', +'platform' => self::deserialize_string($stream), +'reason' => self::deserialize_string($stream), +'text' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_RestrictionReason(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_username(mixed $stream): mixed { +$tmp = ['_' => 'username']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['editable'] = ($flags & 1) !== 0; +$tmp['active'] = ($flags & 2) !== 0; +$tmp['username'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_array_of_Username(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'G6' => self::deserialize_username($stream), +'+r0' => $this->deserialize_type_Username(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_peerColor(mixed $stream): mixed { +$tmp = ['_' => 'peerColor']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['color'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 2) !== 0) $tmp['background_emoji_id'] = unpack('q', stream_get_contents($stream, 8))[1]; + +return $tmp; + } + private function deserialize_type_PeerColor(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'柌K' => self::deserialize_peerColor($stream), +'+r0' => $this->deserialize_type_PeerColor(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_EmojiStatus(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'-' => [ +'_' => 'emojiStatusEmpty', +], +'a' => [ +'_' => 'emojiStatus', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ヮ0' => [ +'_' => 'emojiStatusUntil', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'until' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_EmojiStatus(self::gzdecode($stream)), +default => self::err($stream) +} +; } private function deserialize_channel(mixed $stream): mixed { $tmp = ['_' => 'channel']; @@ -2190,7 +3126,10 @@ default => self::err($stream) } ; $tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 512) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason($stream); +if (($flags & 512) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16384) !== 0) $tmp['admin_rights'] = match (stream_get_contents($stream, 4)) { '$淪' => self::deserialize_chatAdminRights($stream), '+r0' => self::deserialize_type_ChatAdminRights(self::gzdecode($stream)), @@ -2210,7 +3149,10 @@ default => self::err($stream) } ; if (($flags & 131072) !== 0) $tmp['participants_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags2 & 1) !== 0) $tmp['usernames'] = self::deserialize_type_array_of_Username($stream); +if (($flags2 & 1) !== 0) $tmp['usernames'] = self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags2 & 16) !== 0) $tmp['stories_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags2 & 128) !== 0) $tmp['color'] = match (stream_get_contents($stream, 4)) { '柌K' => self::deserialize_peerColor($stream), @@ -2255,3087 +3197,6 @@ $tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['title'] = self::deserialize_string($stream); if (($flags & 65536) !== 0) $tmp['until_date'] = unpack('l', stream_get_contents($stream, 4))[1]; -return $tmp; - } - private function deserialize_type_array_of_Chat(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'e(V)' => [ -'_' => 'chatEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'V藨A' => self::deserialize_chat($stream), -'均e' => [ -'_' => 'chatForbidden', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'title' => self::deserialize_string($stream), -], -' -' => self::deserialize_channel($stream), -'' => self::deserialize_channelForbidden($stream), -'+r0' => $this->deserialize_type_Chat(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_array_of_User(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'zK樓' => [ -'_' => 'userEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'8D\\!' => self::deserialize_user($stream), -'+r0' => self::deserialize_type_User(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_array_of_Authorization(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'' => self::deserialize_authorization($stream), -'+r0' => $this->deserialize_type_Authorization(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_PasswordKdfAlgo(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'豈' => [ -'_' => 'passwordKdfAlgoUnknown', -], -'J-:' => [ -'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', -'salt1' => self::deserialize_bytes($stream), -'salt2' => self::deserialize_bytes($stream), -'g' => unpack('l', stream_get_contents($stream, 4))[1], -'p' => self::deserialize_bytes($stream), -], -'+r0' => $this->deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_SecurePasswordKdfAlgo(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'7J' . "\0" . '' => [ -'_' => 'securePasswordKdfAlgoUnknown', -], -'椯' => [ -'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', -'salt' => self::deserialize_bytes($stream), -], -'G' => [ -'_' => 'securePasswordKdfAlgoSHA512', -'salt' => self::deserialize_bytes($stream), -], -'+r0' => $this->deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_account___password(mixed $stream): mixed { -$tmp = ['_' => 'account.password']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['has_recovery'] = ($flags & 1) !== 0; -$tmp['has_secure_values'] = ($flags & 2) !== 0; -$tmp['has_password'] = ($flags & 4) !== 0; -if (($flags & 4) !== 0) $tmp['current_algo'] = match (stream_get_contents($stream, 4)) { -'豈' => [ -'_' => 'passwordKdfAlgoUnknown', -], -'J-:' => [ -'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', -'salt1' => self::deserialize_bytes($stream), -'salt2' => self::deserialize_bytes($stream), -'g' => unpack('l', stream_get_contents($stream, 4))[1], -'p' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 4) !== 0) $tmp['srp_B'] = self::deserialize_bytes($stream); -if (($flags & 4) !== 0) $tmp['srp_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 8) !== 0) $tmp['hint'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['email_unconfirmed_pattern'] = self::deserialize_string($stream); -$tmp['new_algo'] = match (stream_get_contents($stream, 4)) { -'豈' => [ -'_' => 'passwordKdfAlgoUnknown', -], -'J-:' => [ -'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', -'salt1' => self::deserialize_bytes($stream), -'salt2' => self::deserialize_bytes($stream), -'g' => unpack('l', stream_get_contents($stream, 4))[1], -'p' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -; -$tmp['new_secure_algo'] = match (stream_get_contents($stream, 4)) { -'7J' . "\0" . '' => [ -'_' => 'securePasswordKdfAlgoUnknown', -], -'椯' => [ -'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', -'salt' => self::deserialize_bytes($stream), -], -'G' => [ -'_' => 'securePasswordKdfAlgoSHA512', -'salt' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -; -$tmp['secure_random'] = self::deserialize_bytes($stream); -if (($flags & 32) !== 0) $tmp['pending_reset_date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 64) !== 0) $tmp['login_email_pattern'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_SecureSecretSettings(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'狩\'' => [ -'_' => 'secureSecretSettings', -'secure_algo' => match (stream_get_contents($stream, 4)) { -'7J' . "\0" . '' => [ -'_' => 'securePasswordKdfAlgoUnknown', -], -'椯' => [ -'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', -'salt' => self::deserialize_bytes($stream), -], -'G' => [ -'_' => 'securePasswordKdfAlgoSHA512', -'salt' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -, -'secure_secret' => self::deserialize_bytes($stream), -'secure_secret_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_SecureSecretSettings(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_account___passwordSettings(mixed $stream): mixed { -$tmp = ['_' => 'account.passwordSettings']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['email'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['secure_settings'] = match (stream_get_contents($stream, 4)) { -'狩\'' => [ -'_' => 'secureSecretSettings', -'secure_algo' => match (stream_get_contents($stream, 4)) { -'7J' . "\0" . '' => [ -'_' => 'securePasswordKdfAlgoUnknown', -], -'椯' => [ -'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', -'salt' => self::deserialize_bytes($stream), -], -'G' => [ -'_' => 'securePasswordKdfAlgoSHA512', -'salt' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), -default => self::err($stream) -} -, -'secure_secret' => self::deserialize_bytes($stream), -'secure_secret_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_SecureSecretSettings(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_array_of_WebAuthorization(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'R鐖' => [ -'_' => 'webAuthorization', -'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'domain' => self::deserialize_string($stream), -'browser' => self::deserialize_string($stream), -'platform' => self::deserialize_string($stream), -'date_created' => unpack('l', stream_get_contents($stream, 4))[1], -'date_active' => unpack('l', stream_get_contents($stream, 4))[1], -'ip' => self::deserialize_string($stream), -'region' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_WebAuthorization(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_SecureValueType(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => $this->deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_SecureData(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'臘' => [ -'_' => 'secureData', -'data' => self::deserialize_bytes($stream), -'data_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => $this->deserialize_type_SecureData(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_SecureFile(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'Dd' => [ -'_' => 'secureFileEmpty', -], -'~ }' => [ -'_' => 'secureFile', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -'size' => unpack('q', stream_get_contents($stream, 8))[1], -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'date' => unpack('l', stream_get_contents($stream, 4))[1], -'file_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => $this->deserialize_type_SecureFile(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_array_of_SecureFile(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'Dd' => [ -'_' => 'secureFileEmpty', -], -'~ }' => [ -'_' => 'secureFile', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -'size' => unpack('q', stream_get_contents($stream, 8))[1], -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'date' => unpack('l', stream_get_contents($stream, 4))[1], -'file_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_SecurePlainData(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'`}' => [ -'_' => 'securePlainPhone', -'phone' => self::deserialize_string($stream), -], -'_Z!' => [ -'_' => 'securePlainEmail', -'email' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_SecurePlainData(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_secureValue(mixed $stream): mixed { -$tmp = ['_' => 'secureValue']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['type'] = match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 1) !== 0) $tmp['data'] = match (stream_get_contents($stream, 4)) { -'臘' => [ -'_' => 'secureData', -'data' => self::deserialize_bytes($stream), -'data_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecureData(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 2) !== 0) $tmp['front_side'] = match (stream_get_contents($stream, 4)) { -'Dd' => [ -'_' => 'secureFileEmpty', -], -'~ }' => [ -'_' => 'secureFile', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -'size' => unpack('q', stream_get_contents($stream, 8))[1], -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'date' => unpack('l', stream_get_contents($stream, 4))[1], -'file_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 4) !== 0) $tmp['reverse_side'] = match (stream_get_contents($stream, 4)) { -'Dd' => [ -'_' => 'secureFileEmpty', -], -'~ }' => [ -'_' => 'secureFile', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -'size' => unpack('q', stream_get_contents($stream, 8))[1], -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'date' => unpack('l', stream_get_contents($stream, 4))[1], -'file_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 8) !== 0) $tmp['selfie'] = match (stream_get_contents($stream, 4)) { -'Dd' => [ -'_' => 'secureFileEmpty', -], -'~ }' => [ -'_' => 'secureFile', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], -'size' => unpack('q', stream_get_contents($stream, 8))[1], -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'date' => unpack('l', stream_get_contents($stream, 4))[1], -'file_hash' => self::deserialize_bytes($stream), -'secret' => self::deserialize_bytes($stream), -], -'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 64) !== 0) $tmp['translation'] = self::deserialize_type_array_of_SecureFile($stream); -if (($flags & 16) !== 0) $tmp['files'] = self::deserialize_type_array_of_SecureFile($stream); -if (($flags & 32) !== 0) $tmp['plain_data'] = match (stream_get_contents($stream, 4)) { -'`}' => [ -'_' => 'securePlainPhone', -'phone' => self::deserialize_string($stream), -], -'_Z!' => [ -'_' => 'securePlainEmail', -'email' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_SecurePlainData(self::gzdecode($stream)), -default => self::err($stream) -} -; -$tmp['hash'] = self::deserialize_bytes($stream); - -return $tmp; - } - private function deserialize_secureRequiredType(mixed $stream): mixed { -$tmp = ['_' => 'secureRequiredType']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['native_names'] = ($flags & 1) !== 0; -$tmp['selfie_required'] = ($flags & 2) !== 0; -$tmp['translation_required'] = ($flags & 4) !== 0; -$tmp['type'] = match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_type_array_of_SecureRequiredType(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'' => self::deserialize_secureRequiredType($stream), -'掣t' => [ -'_' => 'secureRequiredTypeOneOf', -'types' => $this->deserialize_type_array_of_SecureRequiredType($stream), -], -'+r0' => $this->deserialize_type_SecureRequiredType(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_array_of_SecureValue(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'' => self::deserialize_secureValue($stream), -'+r0' => $this->deserialize_type_SecureValue(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_array_of_SecureValueError(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -' 方' => [ -'_' => 'secureValueErrorData', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'data_hash' => self::deserialize_bytes($stream), -'field' => self::deserialize_string($stream), -'text' => self::deserialize_string($stream), -], -'=' . "\0" . '' => [ -'_' => 'secureValueErrorFrontSide', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -'*' => [ -'_' => 'secureValueErrorReverseSide', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -'笥7' => [ -'_' => 'secureValueErrorSelfie', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -'spz' => [ -'_' => 'secureValueErrorFile', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -' bf' => [ -'_' => 'secureValueErrorFiles', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_type_array_of_bytes($stream), -'text' => self::deserialize_string($stream), -], -'u' => [ -'_' => 'secureValueError', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -'pG' => [ -'_' => 'secureValueErrorTranslationFile', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_bytes($stream), -'text' => self::deserialize_string($stream), -], -'喓c4' => [ -'_' => 'secureValueErrorTranslationFiles', -'type' => match (stream_get_contents($stream, 4)) { -'*' => [ -'_' => 'secureValueTypePersonalDetails', -], -'' . "\0" . 'j=' => [ -'_' => 'secureValueTypePassport', -], -'%' => [ -'_' => 'secureValueTypeDriverLicense', -], -'Kt' => [ -'_' => 'secureValueTypeIdentityCard', -], -'#' => [ -'_' => 'secureValueTypeInternalPassport', -], -'&蒶' => [ -'_' => 'secureValueTypeAddress', -], -'N6' => [ -'_' => 'secureValueTypeUtilityBill', -], -' |' => [ -'_' => 'secureValueTypeBankStatement', -], -'4' => [ -'_' => 'secureValueTypeRentalAgreement', -], -'j' => [ -'_' => 'secureValueTypePassportRegistration', -], -'3' => [ -'_' => 'secureValueTypeTemporaryRegistration', -], -'菄 ' => [ -'_' => 'secureValueTypePhone', -], -'謏<' => [ -'_' => 'secureValueTypeEmail', -], -'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), -default => self::err($stream) -} -, -'file_hash' => self::deserialize_type_array_of_bytes($stream), -'text' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_SecureValueError(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_account___authorizationForm(mixed $stream): mixed { -$tmp = ['_' => 'account.authorizationForm']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['required_types'] = self::deserialize_type_array_of_SecureRequiredType($stream); -$tmp['values'] = self::deserialize_type_array_of_SecureValue($stream); -$tmp['errors'] = self::deserialize_type_array_of_SecureValueError($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); -if (($flags & 1) !== 0) $tmp['privacy_policy_url'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_auth___SentCode(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'%' . "\0" . '^' => self::deserialize_auth___sentCode($stream), -'D#' => [ -'_' => 'auth.sentCodeSuccess', -'authorization' => match (stream_get_contents($stream, 4)) { -'埬.' => self::deserialize_auth___authorization($stream), -'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), -'+r0' => self::deserialize_type_auth___Authorization(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'+r0' => $this->deserialize_type_auth___SentCode(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_Peer(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => $this->deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_messageFwdHeader(mixed $stream): mixed { -$tmp = ['_' => 'messageFwdHeader']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['imported'] = ($flags & 128) !== 0; -$tmp['saved_out'] = ($flags & 2048) !== 0; -if (($flags & 1) !== 0) $tmp['from_id'] = match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 32) !== 0) $tmp['from_name'] = self::deserialize_string($stream); -$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 4) !== 0) $tmp['channel_post'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['post_author'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['saved_from_peer'] = match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 16) !== 0) $tmp['saved_from_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 256) !== 0) $tmp['saved_from_id'] = match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 512) !== 0) $tmp['saved_from_name'] = self::deserialize_string($stream); -if (($flags & 1024) !== 0) $tmp['saved_date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 64) !== 0) $tmp['psa_type'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_type_MessageFwdHeader(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'齊MN' => self::deserialize_messageFwdHeader($stream), -'+r0' => $this->deserialize_type_MessageFwdHeader(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_photo(mixed $stream): mixed { -$tmp = ['_' => 'photo']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['has_stickers'] = ($flags & 1) !== 0; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['file_reference'] = self::deserialize_bytes($stream); -$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['sizes'] = self::deserialize_type_array_of_PhotoSize($stream); -if (($flags & 2) !== 0) $tmp['video_sizes'] = self::deserialize_type_array_of_VideoSize($stream); -$tmp['dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_Photo(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'-1#' => [ -'_' => 'photoEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'ez' => self::deserialize_photo($stream), -'+r0' => $this->deserialize_type_Photo(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_messageMediaPhoto(mixed $stream): mixed { -$tmp = ['_' => 'messageMediaPhoto']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['spoiler'] = ($flags & 8) !== 0; -if (($flags & 1) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) { -'-1#' => [ -'_' => 'photoEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'ez' => self::deserialize_photo($stream), -'+r0' => self::deserialize_type_Photo(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 4) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_geoPoint(mixed $stream): mixed { -$tmp = ['_' => 'geoPoint']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['long'] = unpack('d', stream_get_contents($stream, 8))[1]; -$tmp['lat'] = unpack('d', stream_get_contents($stream, 8))[1]; -$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['accuracy_radius'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_GeoPoint(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'_' => [ -'_' => 'geoPointEmpty', -], -'c髍' => self::deserialize_geoPoint($stream), -'+r0' => $this->deserialize_type_GeoPoint(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_messageMediaDocument(mixed $stream): mixed { -$tmp = ['_' => 'messageMediaDocument']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['nopremium'] = ($flags & 8) !== 0; -$tmp['spoiler'] = ($flags & 16) !== 0; -$tmp['video'] = ($flags & 64) !== 0; -$tmp['round'] = ($flags & 128) !== 0; -$tmp['voice'] = ($flags & 256) !== 0; -if (($flags & 1) !== 0) $tmp['document'] = match (stream_get_contents($stream, 4)) { -'q6' => [ -'_' => 'documentEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'媊' => self::deserialize_document($stream), -'+r0' => self::deserialize_type_Document(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 32) !== 0) $tmp['alt_document'] = match (stream_get_contents($stream, 4)) { -'q6' => [ -'_' => 'documentEmpty', -'id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'媊' => self::deserialize_document($stream), -'+r0' => self::deserialize_type_Document(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 4) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_webPageEmpty(mixed $stream): mixed { -$tmp = ['_' => 'webPageEmpty']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); - -return $tmp; - } - private function deserialize_webPagePending(mixed $stream): mixed { -$tmp = ['_' => 'webPagePending']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); -$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_type_array_of_RichText(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => $this->deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_RichText(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'' => [ -'_' => 'textItalic', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'"&' => [ -'_' => 'textUnderline', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'僵' => [ -'_' => 'textStrike', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'?l' => [ -'_' => 'textFixed', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'(<' => [ -'_' => 'textUrl', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'^' => [ -'_' => 'textSuperscript', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'!K' => [ -'_' => 'textMarked', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'j' => [ -'_' => 'textPhone', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => $this->deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => $this->deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => $this->deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => $this->deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => $this->deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => $this->deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => $this->deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => $this->deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => $this->deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => $this->deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => $this->deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => $this->deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'name' => self::deserialize_string($stream), -], -'+r0' => $this->deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_type_array_of_PageListItem(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= match (stream_get_contents($stream, 4)) { -'芘/' => [ -'_' => 'pageListItemText', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'s%' => [ -'_' => 'pageListItemBlocks', -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), -], -'+r0' => $this->deserialize_type_PageListItem(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - return $result; - - } - private function deserialize_type_PageCaption(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'Wvto' => [ -'_' => 'pageCaption', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'credit' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'+r0' => $this->deserialize_type_PageCaption(self::gzdecode($stream)), -default => self::err($stream) -} -; - } - private function deserialize_pageBlockPhoto(mixed $stream): mixed { -$tmp = ['_' => 'pageBlockPhoto']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['caption'] = match (stream_get_contents($stream, 4)) { -'Wvto' => [ -'_' => 'pageCaption', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'credit' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 1) !== 0) $tmp['url'] = self::deserialize_string($stream); -if (($flags & 1) !== 0) $tmp['webpage_id'] = unpack('q', stream_get_contents($stream, 8))[1]; - -return $tmp; - } - private function deserialize_pageBlockVideo(mixed $stream): mixed { -$tmp = ['_' => 'pageBlockVideo']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['autoplay'] = ($flags & 1) !== 0; -$tmp['loop'] = ($flags & 2) !== 0; -$tmp['video_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['caption'] = match (stream_get_contents($stream, 4)) { -'Wvto' => [ -'_' => 'pageCaption', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'credit' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; - } - private function deserialize_pageBlockEmbed(mixed $stream): mixed { -$tmp = ['_' => 'pageBlockEmbed']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['full_width'] = ($flags & 1) !== 0; -$tmp['allow_scrolling'] = ($flags & 8) !== 0; -if (($flags & 2) !== 0) $tmp['url'] = self::deserialize_string($stream); -if (($flags & 4) !== 0) $tmp['html'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['poster_photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 32) !== 0) $tmp['w'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 32) !== 0) $tmp['h'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['caption'] = match (stream_get_contents($stream, 4)) { -'Wvto' => [ -'_' => 'pageCaption', -'text' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -'credit' => match (stream_get_contents($stream, 4)) { -'O=' => [ -'_' => 'textEmpty', -], -'Ft' => [ -'_' => 'textPlain', -'text' => self::deserialize_string($stream), -], -'蘋$g' => [ -'_' => 'textBold', -'text' => self::deserialize_type_RichText($stream), -], -'' => [ -'_' => 'textItalic', -'text' => self::deserialize_type_RichText($stream), -], -'"&' => [ -'_' => 'textUnderline', -'text' => self::deserialize_type_RichText($stream), -], -'僵' => [ -'_' => 'textStrike', -'text' => self::deserialize_type_RichText($stream), -], -'?l' => [ -'_' => 'textFixed', -'text' => self::deserialize_type_RichText($stream), -], -'(<' => [ -'_' => 'textUrl', -'text' => self::deserialize_type_RichText($stream), -'url' => self::deserialize_string($stream), -'webpage_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -' Z' => [ -'_' => 'textEmail', -'text' => self::deserialize_type_RichText($stream), -'email' => self::deserialize_string($stream), -], -'荴b~' => [ -'_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), -], -'j' => [ -'_' => 'textSubscript', -'text' => self::deserialize_type_RichText($stream), -], -'^' => [ -'_' => 'textSuperscript', -'text' => self::deserialize_type_RichText($stream), -], -'!K' => [ -'_' => 'textMarked', -'text' => self::deserialize_type_RichText($stream), -], -'j' => [ -'_' => 'textPhone', -'text' => self::deserialize_type_RichText($stream), -'phone' => self::deserialize_string($stream), -], -'O' => [ -'_' => 'textImage', -'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -], -'b7U5' => [ -'_' => 'textAnchor', -'text' => self::deserialize_type_RichText($stream), -'name' => self::deserialize_string($stream), -], -'+r0' => self::deserialize_type_RichText(self::gzdecode($stream)), -default => self::err($stream) -} -, -], -'+r0' => self::deserialize_type_PageCaption(self::gzdecode($stream)), -default => self::err($stream) -} -; - return $tmp; } private function deserialize_type_Chat(mixed $stream): mixed { @@ -5407,7 +3268,10 @@ if (($flags & 128) !== 0) $tmp['text'] = match (stream_get_contents($stream, 4)) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5448,10 +3312,6 @@ return $tmp; } private function deserialize_type_array_of_PageTableCell(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -5466,16 +3326,15 @@ default => self::err($stream) } private function deserialize_type_array_of_PageTableRow(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '暩濬' => [ '_' => 'pageTableRow', -'cells' => self::deserialize_type_array_of_PageTableCell($stream), +'cells' => self::deserialize_type_array_of_PageTableCell(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_PageTableRow(self::gzdecode($stream)), default => self::err($stream) @@ -5531,7 +3390,10 @@ $tmp['title'] = match (stream_get_contents($stream, 4)) { ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5565,16 +3427,15 @@ $tmp['title'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -$tmp['rows'] = self::deserialize_type_array_of_PageTableRow($stream); +$tmp['rows'] = self::deserialize_type_array_of_PageTableRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_PageListOrderedItem(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -5622,7 +3483,10 @@ return $tmp; ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5660,7 +3524,10 @@ default => self::err($stream) '6' => [ '_' => 'pageListOrderedItemBlocks', 'num' => self::deserialize_string($stream), -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_PageListOrderedItem(self::gzdecode($stream)), default => self::err($stream) @@ -5674,7 +3541,10 @@ default => self::err($stream) $tmp = ['_' => 'pageBlockDetails']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['open'] = ($flags & 1) !== 0; -$tmp['blocks'] = $this->deserialize_type_array_of_PageBlock($stream); +$tmp['blocks'] = $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['title'] = match (stream_get_contents($stream, 4)) { 'O=' => [ '_' => 'textEmpty', @@ -5716,7 +3586,10 @@ $tmp['title'] = match (stream_get_contents($stream, 4)) { ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5768,10 +3641,6 @@ return $tmp; } private function deserialize_type_array_of_PageRelatedArticle(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -5832,7 +3701,10 @@ return match (stream_get_contents($stream, 4)) { ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5910,7 +3782,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -5988,7 +3863,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6067,7 +3945,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6145,7 +4026,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6223,7 +4107,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6301,7 +4188,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6380,7 +4270,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6424,7 +4317,10 @@ default => self::err($stream) ], '鳼' => [ '_' => 'pageBlockList', -'items' => self::deserialize_type_array_of_PageListItem($stream), +'items' => self::deserialize_type_array_of_PageListItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '&|=&' => [ '_' => 'pageBlockBlockquote', @@ -6469,7 +4365,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6544,7 +4443,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6622,7 +4524,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6697,7 +4602,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6783,7 +4691,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6861,7 +4772,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -6939,7 +4853,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7018,7 +4935,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7096,7 +5016,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7174,7 +5097,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7252,7 +5178,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7331,7 +5260,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7375,7 +5307,10 @@ default => self::err($stream) ], '鳼' => [ '_' => 'pageBlockList', -'items' => self::deserialize_type_array_of_PageListItem($stream), +'items' => self::deserialize_type_array_of_PageListItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '&|=&' => [ '_' => 'pageBlockBlockquote', @@ -7420,7 +5355,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7495,7 +5433,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7573,7 +5514,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7648,7 +5592,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7697,7 +5644,10 @@ default => self::err($stream) 'author_photo_id' => unpack('q', stream_get_contents($stream, 8))[1], 'author' => self::deserialize_string($stream), 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -7742,7 +5692,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7817,7 +5770,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7859,7 +5815,10 @@ default => self::err($stream) ], 'Me' => [ '_' => 'pageBlockCollage', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -7904,7 +5863,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -7979,7 +5941,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8021,7 +5986,10 @@ default => self::err($stream) ], '' => [ '_' => 'pageBlockSlideshow', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -8066,7 +6034,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8141,7 +6112,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8249,7 +6223,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8324,7 +6301,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8407,7 +6387,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8445,7 +6428,10 @@ default => self::err($stream) '燁' => self::deserialize_pageBlockTable($stream), '摽' => [ '_' => 'pageBlockOrderedList', -'items' => self::deserialize_type_array_of_PageListOrderedItem($stream), +'items' => self::deserialize_type_array_of_PageListOrderedItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'vv' => self::deserialize_pageBlockDetails($stream), 'Z' => [ @@ -8491,7 +6477,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8525,7 +6514,10 @@ default => self::err($stream) default => self::err($stream) } , -'articles' => self::deserialize_type_array_of_PageRelatedArticle($stream), +'articles' => self::deserialize_type_array_of_PageRelatedArticle(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>O' => [ '_' => 'pageBlockMap', @@ -8585,7 +6577,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8660,7 +6655,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8713,7 +6711,10 @@ default => self::err($stream) 'author_photo_id' => unpack('q', stream_get_contents($stream, 8))[1], 'author' => self::deserialize_string($stream), 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -8758,7 +6759,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8833,7 +6837,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8875,7 +6882,10 @@ default => self::err($stream) ], 'Me' => [ '_' => 'pageBlockCollage', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -8920,7 +6930,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -8995,7 +7008,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9037,7 +7053,10 @@ default => self::err($stream) ], '' => [ '_' => 'pageBlockSlideshow', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -9082,7 +7101,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9157,7 +7179,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9265,7 +7290,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9340,7 +7368,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9423,7 +7454,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9461,7 +7495,10 @@ default => self::err($stream) '燁' => self::deserialize_pageBlockTable($stream), '摽' => [ '_' => 'pageBlockOrderedList', -'items' => self::deserialize_type_array_of_PageListOrderedItem($stream), +'items' => self::deserialize_type_array_of_PageListOrderedItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'vv' => self::deserialize_pageBlockDetails($stream), 'Z' => [ @@ -9507,7 +7544,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9541,7 +7581,10 @@ default => self::err($stream) default => self::err($stream) } , -'articles' => self::deserialize_type_array_of_PageRelatedArticle($stream), +'articles' => self::deserialize_type_array_of_PageRelatedArticle(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>O' => [ '_' => 'pageBlockMap', @@ -9601,7 +7644,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9676,7 +7722,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9723,10 +7772,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PageBlock(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -9776,7 +7821,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9854,7 +7902,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -9932,7 +7983,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10011,7 +8065,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10089,7 +8146,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10167,7 +8227,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10245,7 +8308,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10324,7 +8390,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10368,7 +8437,10 @@ default => self::err($stream) ], '鳼' => [ '_' => 'pageBlockList', -'items' => self::deserialize_type_array_of_PageListItem($stream), +'items' => self::deserialize_type_array_of_PageListItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '&|=&' => [ '_' => 'pageBlockBlockquote', @@ -10413,7 +8485,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10488,7 +8563,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10566,7 +8644,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10641,7 +8722,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10727,7 +8811,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10805,7 +8892,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10883,7 +8973,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -10962,7 +9055,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11040,7 +9136,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11118,7 +9217,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11196,7 +9298,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11275,7 +9380,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11319,7 +9427,10 @@ default => self::err($stream) ], '鳼' => [ '_' => 'pageBlockList', -'items' => self::deserialize_type_array_of_PageListItem($stream), +'items' => self::deserialize_type_array_of_PageListItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '&|=&' => [ '_' => 'pageBlockBlockquote', @@ -11364,7 +9475,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11439,7 +9553,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11517,7 +9634,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11592,7 +9712,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11641,7 +9764,10 @@ default => self::err($stream) 'author_photo_id' => unpack('q', stream_get_contents($stream, 8))[1], 'author' => self::deserialize_string($stream), 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -11686,7 +9812,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11761,7 +9890,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11803,7 +9935,10 @@ default => self::err($stream) ], 'Me' => [ '_' => 'pageBlockCollage', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -11848,7 +9983,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11923,7 +10061,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -11965,7 +10106,10 @@ default => self::err($stream) ], '' => [ '_' => 'pageBlockSlideshow', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -12010,7 +10154,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12085,7 +10232,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12193,7 +10343,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12268,7 +10421,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12351,7 +10507,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12389,7 +10548,10 @@ default => self::err($stream) '燁' => self::deserialize_pageBlockTable($stream), '摽' => [ '_' => 'pageBlockOrderedList', -'items' => self::deserialize_type_array_of_PageListOrderedItem($stream), +'items' => self::deserialize_type_array_of_PageListOrderedItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'vv' => self::deserialize_pageBlockDetails($stream), 'Z' => [ @@ -12435,7 +10597,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12469,7 +10634,10 @@ default => self::err($stream) default => self::err($stream) } , -'articles' => self::deserialize_type_array_of_PageRelatedArticle($stream), +'articles' => self::deserialize_type_array_of_PageRelatedArticle(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>O' => [ '_' => 'pageBlockMap', @@ -12529,7 +10697,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12604,7 +10775,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12657,7 +10831,10 @@ default => self::err($stream) 'author_photo_id' => unpack('q', stream_get_contents($stream, 8))[1], 'author' => self::deserialize_string($stream), 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'blocks' => $this->deserialize_type_array_of_PageBlock($stream), +'blocks' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -12702,7 +10879,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12777,7 +10957,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12819,7 +11002,10 @@ default => self::err($stream) ], 'Me' => [ '_' => 'pageBlockCollage', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -12864,7 +11050,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12939,7 +11128,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -12981,7 +11173,10 @@ default => self::err($stream) ], '' => [ '_' => 'pageBlockSlideshow', -'items' => $this->deserialize_type_array_of_PageBlock($stream), +'items' => $this->deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'caption' => match (stream_get_contents($stream, 4)) { 'Wvto' => [ '_' => 'pageCaption', @@ -13026,7 +11221,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13101,7 +11299,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13209,7 +11410,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13284,7 +11488,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13367,7 +11574,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13405,7 +11615,10 @@ default => self::err($stream) '燁' => self::deserialize_pageBlockTable($stream), '摽' => [ '_' => 'pageBlockOrderedList', -'items' => self::deserialize_type_array_of_PageListOrderedItem($stream), +'items' => self::deserialize_type_array_of_PageListOrderedItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'vv' => self::deserialize_pageBlockDetails($stream), 'Z' => [ @@ -13451,7 +11664,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13485,7 +11701,10 @@ default => self::err($stream) default => self::err($stream) } , -'articles' => self::deserialize_type_array_of_PageRelatedArticle($stream), +'articles' => self::deserialize_type_array_of_PageRelatedArticle(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>O' => [ '_' => 'pageBlockMap', @@ -13545,7 +11764,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13620,7 +11842,10 @@ default => self::err($stream) ], '荴b~' => [ '_' => 'textConcat', -'texts' => self::deserialize_type_array_of_RichText($stream), +'texts' => self::deserialize_type_array_of_RichText(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j' => [ '_' => 'textSubscript', @@ -13670,10 +11895,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Photo(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -13692,10 +11913,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Document(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -13719,9 +11936,18 @@ $tmp['part'] = ($flags & 1) !== 0; $tmp['rtl'] = ($flags & 2) !== 0; $tmp['v2'] = ($flags & 4) !== 0; $tmp['url'] = self::deserialize_string($stream); -$tmp['blocks'] = self::deserialize_type_array_of_PageBlock($stream); -$tmp['photos'] = self::deserialize_type_array_of_Photo($stream); -$tmp['documents'] = self::deserialize_type_array_of_Document($stream); +$tmp['blocks'] = self::deserialize_type_array_of_PageBlock(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['photos'] = self::deserialize_type_array_of_Photo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['documents'] = self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 8) !== 0) $tmp['views'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -13755,6 +11981,73 @@ return match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; + } + private function deserialize_wallPaperSettings(mixed $stream): mixed { +$tmp = ['_' => 'wallPaperSettings']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['blur'] = ($flags & 2) !== 0; +$tmp['motion'] = ($flags & 4) !== 0; +if (($flags & 1) !== 0) $tmp['background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 16) !== 0) $tmp['second_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 32) !== 0) $tmp['third_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 64) !== 0) $tmp['fourth_background_color'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 8) !== 0) $tmp['intensity'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 16) !== 0) $tmp['rotation'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 128) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_WallPaperSettings(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'唑.7' => self::deserialize_wallPaperSettings($stream), +'+r0' => $this->deserialize_type_WallPaperSettings(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_wallPaper(mixed $stream): mixed { +$tmp = ['_' => 'wallPaper']; +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['creator'] = ($flags & 1) !== 0; +$tmp['default'] = ($flags & 2) !== 0; +$tmp['pattern'] = ($flags & 8) !== 0; +$tmp['dark'] = ($flags & 16) !== 0; +$tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['slug'] = self::deserialize_string($stream); +$tmp['document'] = match (stream_get_contents($stream, 4)) { +'q6' => [ +'_' => 'documentEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'媊' => self::deserialize_document($stream), +'+r0' => self::deserialize_type_Document(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 4) !== 0) $tmp['settings'] = match (stream_get_contents($stream, 4)) { +'唑.7' => self::deserialize_wallPaperSettings($stream), +'+r0' => self::deserialize_type_WallPaperSettings(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_wallPaperNoFile(mixed $stream): mixed { +$tmp = ['_' => 'wallPaperNoFile']; +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['default'] = ($flags & 2) !== 0; +$tmp['dark'] = ($flags & 16) !== 0; +if (($flags & 4) !== 0) $tmp['settings'] = match (stream_get_contents($stream, 4)) { +'唑.7' => self::deserialize_wallPaperSettings($stream), +'+r0' => self::deserialize_type_WallPaperSettings(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; } private function deserialize_type_WallPaper(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { @@ -13791,7 +12084,10 @@ default => self::err($stream) ; $tmp['accent_color'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 8) !== 0) $tmp['outbox_accent_color'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['message_colors'] = self::deserialize_type_array_of_int($stream); +if (($flags & 1) !== 0) $tmp['message_colors'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['wallpaper'] = match (stream_get_contents($stream, 4)) { '篳7' => self::deserialize_wallPaper($stream), 'A' => self::deserialize_wallPaperNoFile($stream), @@ -13813,7 +12109,10 @@ default => self::err($stream) private function deserialize_webPageAttributeTheme(mixed $stream): mixed { $tmp = ['_' => 'webPageAttributeTheme']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['documents'] = self::deserialize_type_array_of_Document($stream); +if (($flags & 1) !== 0) $tmp['documents'] = self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['settings'] = match (stream_get_contents($stream, 4)) { '堈X' => self::deserialize_themeSettings($stream), '+r0' => self::deserialize_type_ThemeSettings(self::gzdecode($stream)), @@ -13857,6 +12156,248 @@ return match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; + } + private function deserialize_type_InputUser(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'inputUserEmpty', +], +'?掄' => [ +'_' => 'inputUserSelf', +], +'籬' => [ +'_' => 'inputUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'榎' => [ +'_' => 'inputUserFromMessage', +'peer' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'inputPeerEmpty', +], +'氕}' => [ +'_' => 'inputPeerSelf', +], +'鈾\5' => [ +'_' => 'inputPeerChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L亥' => [ +'_' => 'inputPeerUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'遞\'' => [ +'_' => 'inputPeerChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +' +{' => [ +'_' => 'inputPeerUserFromMessage', +'peer' => self::deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'@*' => [ +'_' => 'inputPeerChannelFromMessage', +'peer' => self::deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_InputPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_InputUser(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_array_of_MessageEntity(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'messageEntityUnknown', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'W' => [ +'_' => 'messageEntityMention', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +' [co' => [ +'_' => 'messageEntityHashtag', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鮞' => [ +'_' => 'messageEntityBotCommand', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'8%茇' => [ +'_' => 'messageEntityUrl', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'燼輐' => [ +'_' => 'messageEntityEmail', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +' a' => [ +'_' => 'messageEntityBold', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'`o' => [ +'_' => 'messageEntityItalic', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'q(' => [ +'_' => 'messageEntityCode', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'誂s' => [ +'_' => 'messageEntityPre', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +'language' => self::deserialize_string($stream), +], +'\'茼v' => [ +'_' => 'messageEntityTextUrl', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +'url' => self::deserialize_string($stream), +], +'@{' => [ +'_' => 'messageEntityMentionName', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'仡 ' => [ +'_' => 'inputMessageEntityMentionName', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'inputUserEmpty', +], +'?掄' => [ +'_' => 'inputUserSelf', +], +'籬' => [ +'_' => 'inputUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'榎' => [ +'_' => 'inputUserFromMessage', +'peer' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'inputPeerEmpty', +], +'氕}' => [ +'_' => 'inputPeerSelf', +], +'鈾\5' => [ +'_' => 'inputPeerChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L亥' => [ +'_' => 'inputPeerUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'遞\'' => [ +'_' => 'inputPeerChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +' +{' => [ +'_' => 'inputPeerUserFromMessage', +'peer' => self::deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'@*' => [ +'_' => 'inputPeerChannelFromMessage', +'peer' => self::deserialize_type_InputPeer($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_InputPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_InputUser(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'K緅' => [ +'_' => 'messageEntityPhone', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?tNL' => [ +'_' => 'messageEntityCashtag', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'~N' => [ +'_' => 'messageEntityUnderline', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'messageEntityStrike', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'爓v' => [ +'_' => 'messageEntityBankCard', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'2' => [ +'_' => 'messageEntitySpoiler', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'珂' => [ +'_' => 'messageEntityCustomEmoji', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'哳 ' => [ +'_' => 'messageEntityBlockquote', +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_MessageEntity(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + } private function deserialize_webPage(mixed $stream): mixed { $tmp = ['_' => 'webPage']; @@ -13902,7 +12443,10 @@ if (($flags & 1024) !== 0) $tmp['cached_page'] = match (stream_get_contents($str default => self::err($stream) } ; -if (($flags & 4096) !== 0) $tmp['attributes'] = $this->deserialize_type_array_of_WebPageAttribute($stream); +if (($flags & 4096) !== 0) $tmp['attributes'] = $this->deserialize_type_array_of_WebPageAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -13979,14 +12523,20 @@ return match (stream_get_contents($stream, 4)) { 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -14023,63 +12573,16 @@ return match (stream_get_contents($stream, 4)) { 'type' => self::deserialize_string($stream), 'w' => unpack('l', stream_get_contents($stream, 4))[1], 'h' => unpack('l', stream_get_contents($stream, 4))[1], -'sizes' => self::deserialize_type_array_of_int($stream), +'sizes' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'AM!' => [ '_' => 'photoPathSize', 'type' => self::deserialize_string($stream), 'bytes' => self::deserialize_bytes($stream), ], -'馭w' => [ -'_' => 'photoSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'size' => unpack('l', stream_get_contents($stream, 4))[1], -], -'4折' => [ -'_' => 'photoCachedSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => self::deserialize_bytes($stream), -], '+r0' => $this->deserialize_type_PhotoSize(self::gzdecode($stream)), default => self::err($stream) } @@ -14119,63 +12622,16 @@ if (($flags & 2) !== 0) $tmp['thumb'] = match (stream_get_contents($stream, 4)) 'type' => self::deserialize_string($stream), 'w' => unpack('l', stream_get_contents($stream, 4))[1], 'h' => unpack('l', stream_get_contents($stream, 4))[1], -'sizes' => self::deserialize_type_array_of_int($stream), +'sizes' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'AM!' => [ '_' => 'photoPathSize', 'type' => self::deserialize_string($stream), 'bytes' => self::deserialize_bytes($stream), ], -'馭w' => [ -'_' => 'photoSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'size' => unpack('l', stream_get_contents($stream, 4))[1], -], -'4折' => [ -'_' => 'photoCachedSize_23', -'type' => self::deserialize_string($stream), -'location' => match (stream_get_contents($stream, 4)) { -'FkY|' => [ -'_' => 'fileLocationUnavailable_23', -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'v烿' => [ -'_' => 'fileLocation_23', -'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], -'volume_id' => unpack('q', stream_get_contents($stream, 8))[1], -'local_id' => unpack('l', stream_get_contents($stream, 4))[1], -'secret' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => self::deserialize_type_FileLocation(self::gzdecode($stream)), -default => self::err($stream) -} -, -'w' => unpack('l', stream_get_contents($stream, 4))[1], -'h' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => self::deserialize_bytes($stream), -], '+r0' => self::deserialize_type_PhotoSize(self::gzdecode($stream)), default => self::err($stream) } @@ -14210,14 +12666,20 @@ if (($flags & 1) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -14260,10 +12722,6 @@ return $tmp; } private function deserialize_type_array_of_PollAnswer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -14289,7 +12747,10 @@ $tmp['public_voters'] = ($flags & 2) !== 0; $tmp['multiple_choice'] = ($flags & 4) !== 0; $tmp['quiz'] = ($flags & 8) !== 0; $tmp['question'] = self::deserialize_string($stream); -$tmp['answers'] = self::deserialize_type_array_of_PollAnswer($stream); +$tmp['answers'] = self::deserialize_type_array_of_PollAnswer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['close_period'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 32) !== 0) $tmp['close_date'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -14315,10 +12776,6 @@ return $tmp; } private function deserialize_type_array_of_PollAnswerVoters(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -14333,10 +12790,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Peer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -14355,11 +12808,20 @@ default => self::err($stream) $tmp = ['_' => 'pollResults']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['min'] = ($flags & 1) !== 0; -if (($flags & 2) !== 0) $tmp['results'] = self::deserialize_type_array_of_PollAnswerVoters($stream); +if (($flags & 2) !== 0) $tmp['results'] = self::deserialize_type_array_of_PollAnswerVoters(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 4) !== 0) $tmp['total_voters'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['recent_voters'] = self::deserialize_type_array_of_Peer($stream); +if (($flags & 8) !== 0) $tmp['recent_voters'] = self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['solution'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['solution_entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 16) !== 0) $tmp['solution_entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -14443,10 +12905,6 @@ return $tmp; } private function deserialize_type_array_of_MediaArea(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -14618,6 +13076,62 @@ default => self::err($stream) '+r0' => $this->deserialize_type_MediaArea(self::gzdecode($stream)), default => self::err($stream) } +; + } + return $result; + + } + private function deserialize_type_array_of_PrivacyRule(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'privacyValueAllowContacts', +], +'{Be' => [ +'_' => 'privacyValueAllowAll', +], +'淪' => [ +'_' => 'privacyValueAllowUsers', +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => [ +'_' => 'privacyValueDisallowContacts', +], +'c蓧' => [ +'_' => 'privacyValueDisallowAll', +], +'Ab' => [ +'_' => 'privacyValueDisallowUsers', +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'Nk' => [ +'_' => 'privacyValueAllowChatParticipants', +'chats' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'euA' => [ +'_' => 'privacyValueDisallowChatParticipants', +'chats' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'嵙' => [ +'_' => 'privacyValueAllowCloseFriends', +], +'+r0' => $this->deserialize_type_PrivacyRule(self::gzdecode($stream)), +default => self::err($stream) +} ; } return $result; @@ -14649,10 +13163,6 @@ return $tmp; } private function deserialize_type_array_of_ReactionCount(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -14671,9 +13181,15 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['has_viewers'] = ($flags & 2) !== 0; $tmp['views_count'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 4) !== 0) $tmp['forwards_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 8) !== 0) $tmp['reactions'] = self::deserialize_type_array_of_ReactionCount($stream); +if (($flags & 8) !== 0) $tmp['reactions'] = self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['reactions_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['recent_viewers'] = self::deserialize_type_array_of_long($stream); +if (($flags & 1) !== 0) $tmp['recent_viewers'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -14715,10 +13231,19 @@ default => self::err($stream) ; $tmp['expire_date'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 1) !== 0) $tmp['caption'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['media'] = $this->deserialize_type_MessageMedia($stream); -if (($flags & 16384) !== 0) $tmp['media_areas'] = self::deserialize_type_array_of_MediaArea($stream); -if (($flags & 4) !== 0) $tmp['privacy'] = self::deserialize_type_array_of_PrivacyRule($stream); +if (($flags & 16384) !== 0) $tmp['media_areas'] = self::deserialize_type_array_of_MediaArea(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 4) !== 0) $tmp['privacy'] = self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 8) !== 0) $tmp['views'] = match (stream_get_contents($stream, 4)) { '牾\Y' => self::deserialize_storyViews($stream), '+r0' => self::deserialize_type_StoryViews(self::gzdecode($stream)), @@ -14776,8 +13301,14 @@ $tmp = ['_' => 'messageMediaGiveaway']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['only_new_subscribers'] = ($flags & 1) !== 0; $tmp['winners_are_visible'] = ($flags & 4) !== 0; -$tmp['channels'] = self::deserialize_type_array_of_long($stream); -if (($flags & 2) !== 0) $tmp['countries_iso2'] = self::deserialize_type_array_of_string($stream); +$tmp['channels'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['countries_iso2'] = self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 8) !== 0) $tmp['prize_description'] = self::deserialize_string($stream); $tmp['quantity'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['months'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -14795,7 +13326,10 @@ if (($flags & 8) !== 0) $tmp['additional_peers_count'] = unpack('l', stream_get_ $tmp['launch_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['winners_count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['unclaimed_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['winners'] = self::deserialize_type_array_of_long($stream); +$tmp['winners'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['months'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['prize_description'] = self::deserialize_string($stream); $tmp['until_date'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -14843,10 +13377,6 @@ return $tmp; } private function deserialize_type_array_of_WebPageAttribute(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -15066,7 +13596,10 @@ default => self::err($stream) ; if (($flags & 2) !== 0) $tmp['reply_to_top_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 64) !== 0) $tmp['quote_text'] = self::deserialize_string($stream); -if (($flags & 128) !== 0) $tmp['quote_entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 128) !== 0) $tmp['quote_entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1024) !== 0) $tmp['quote_offset'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -15090,108 +13623,6 @@ default => self::err($stream) default => self::err($stream) } ; - } - private function deserialize_updateShortMessage(mixed $stream): mixed { -$tmp = ['_' => 'updateShortMessage']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['out'] = ($flags & 2) !== 0; -$tmp['mentioned'] = ($flags & 16) !== 0; -$tmp['media_unread'] = ($flags & 32) !== 0; -$tmp['silent'] = ($flags & 8192) !== 0; -$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['user_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['message'] = self::deserialize_string($stream); -$tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 4) !== 0) $tmp['fwd_from'] = match (stream_get_contents($stream, 4)) { -'齊MN' => self::deserialize_messageFwdHeader($stream), -'+r0' => self::deserialize_type_MessageFwdHeader(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 2048) !== 0) $tmp['via_bot_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 8) !== 0) $tmp['reply_to'] = match (stream_get_contents($stream, 4)) { -' 摩' => self::deserialize_messageReplyHeader($stream), -'9鱨' => [ -'_' => 'messageReplyStoryHeader', -'peer' => match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'story_id' => unpack('l', stream_get_contents($stream, 4))[1], -], -'+r0' => self::deserialize_type_MessageReplyHeader(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); -if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_updateShortChatMessage(mixed $stream): mixed { -$tmp = ['_' => 'updateShortChatMessage']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['out'] = ($flags & 2) !== 0; -$tmp['mentioned'] = ($flags & 16) !== 0; -$tmp['media_unread'] = ($flags & 32) !== 0; -$tmp['silent'] = ($flags & 8192) !== 0; -$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['from_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['chat_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['message'] = self::deserialize_string($stream); -$tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 4) !== 0) $tmp['fwd_from'] = match (stream_get_contents($stream, 4)) { -'齊MN' => self::deserialize_messageFwdHeader($stream), -'+r0' => self::deserialize_type_MessageFwdHeader(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 2048) !== 0) $tmp['via_bot_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 8) !== 0) $tmp['reply_to'] = match (stream_get_contents($stream, 4)) { -' 摩' => self::deserialize_messageReplyHeader($stream), -'9鱨' => [ -'_' => 'messageReplyStoryHeader', -'peer' => match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -, -'story_id' => unpack('l', stream_get_contents($stream, 4))[1], -], -'+r0' => self::deserialize_type_MessageReplyHeader(self::gzdecode($stream)), -default => self::err($stream) -} -; -if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); -if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; - -return $tmp; - } - private function deserialize_messageEmpty(mixed $stream): mixed { -$tmp = ['_' => 'messageEmpty']; -$flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['peer_id'] = match (stream_get_contents($stream, 4)) { -'"QY' => unpack('q', stream_get_contents($stream, 8))[1], -'6' => -unpack('q', stream_get_contents($stream, 8))[1], -'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], -'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), -default => self::err($stream) -} -; - -return $tmp; } private function deserialize_replyKeyboardHide(mixed $stream): mixed { $tmp = ['_' => 'replyKeyboardHide']; @@ -15220,10 +13651,6 @@ return $tmp; } private function deserialize_type_array_of_InlineQueryPeerType(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -15260,7 +13687,10 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['same_peer'] = ($flags & 1) !== 0; $tmp['text'] = self::deserialize_string($stream); $tmp['query'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['peer_types'] = self::deserialize_type_array_of_InlineQueryPeerType($stream); +if (($flags & 2) !== 0) $tmp['peer_types'] = self::deserialize_type_array_of_InlineQueryPeerType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -15413,10 +13843,6 @@ default => self::err($stream) } private function deserialize_type_array_of_KeyboardButton(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -15552,16 +13978,15 @@ default => self::err($stream) } private function deserialize_type_array_of_KeyboardButtonRow(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '`w' => [ '_' => 'keyboardButtonRow', -'buttons' => self::deserialize_type_array_of_KeyboardButton($stream), +'buttons' => self::deserialize_type_array_of_KeyboardButton(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_KeyboardButtonRow(self::gzdecode($stream)), default => self::err($stream) @@ -15578,7 +14003,10 @@ $tmp['resize'] = ($flags & 1) !== 0; $tmp['single_use'] = ($flags & 2) !== 0; $tmp['selective'] = ($flags & 4) !== 0; $tmp['persistent'] = ($flags & 16) !== 0; -$tmp['rows'] = self::deserialize_type_array_of_KeyboardButtonRow($stream); +$tmp['rows'] = self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 8) !== 0) $tmp['placeholder'] = self::deserialize_string($stream); return $tmp; @@ -15590,7 +14018,10 @@ return match (stream_get_contents($stream, 4)) { '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -15603,7 +14034,10 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['comments'] = ($flags & 1) !== 0; $tmp['replies'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['replies_pts'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 2) !== 0) $tmp['recent_repliers'] = self::deserialize_type_array_of_Peer($stream); +if (($flags & 2) !== 0) $tmp['recent_repliers'] = self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['channel_id'] = unpack('q', stream_get_contents($stream, 8))[1]; if (($flags & 4) !== 0) $tmp['max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 8) !== 0) $tmp['read_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -15654,10 +14088,6 @@ return $tmp; } private function deserialize_type_array_of_MessagePeerReaction(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -15676,8 +14106,14 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['min'] = ($flags & 1) !== 0; $tmp['can_see_list'] = ($flags & 4) !== 0; $tmp['reactions_as_tags'] = ($flags & 8) !== 0; -$tmp['results'] = self::deserialize_type_array_of_ReactionCount($stream); -if (($flags & 2) !== 0) $tmp['recent_reactions'] = self::deserialize_type_array_of_MessagePeerReaction($stream); +$tmp['results'] = self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['recent_reactions'] = self::deserialize_type_array_of_MessagePeerReaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -15847,13 +14283,19 @@ if (($flags & 64) !== 0) $tmp['reply_markup'] = match (stream_get_contents($stre '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) } ; -if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1024) !== 0) $tmp['views'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 1024) !== 0) $tmp['forwards'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 8388608) !== 0) $tmp['replies'] = match (stream_get_contents($stream, 4)) { @@ -15871,7 +14313,10 @@ if (($flags & 1048576) !== 0) $tmp['reactions'] = match (stream_get_contents($st default => self::err($stream) } ; -if (($flags & 4194304) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason($stream); +if (($flags & 4194304) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 1073741824) !== 0) $tmp['quick_reply_shortcut_id'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -16080,6 +14525,277 @@ default => self::err($stream) ; return $tmp; + } + private function deserialize_type_SecureValueType(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => $this->deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_SecureData(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'臘' => [ +'_' => 'secureData', +'data' => self::deserialize_bytes($stream), +'data_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => $this->deserialize_type_SecureData(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_SecureFile(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'Dd' => [ +'_' => 'secureFileEmpty', +], +'~ }' => [ +'_' => 'secureFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => $this->deserialize_type_SecureFile(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_array_of_SecureFile(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'Dd' => [ +'_' => 'secureFileEmpty', +], +'~ }' => [ +'_' => 'secureFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_SecurePlainData(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'`}' => [ +'_' => 'securePlainPhone', +'phone' => self::deserialize_string($stream), +], +'_Z!' => [ +'_' => 'securePlainEmail', +'email' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_SecurePlainData(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_secureValue(mixed $stream): mixed { +$tmp = ['_' => 'secureValue']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['type'] = match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 1) !== 0) $tmp['data'] = match (stream_get_contents($stream, 4)) { +'臘' => [ +'_' => 'secureData', +'data' => self::deserialize_bytes($stream), +'data_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecureData(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 2) !== 0) $tmp['front_side'] = match (stream_get_contents($stream, 4)) { +'Dd' => [ +'_' => 'secureFileEmpty', +], +'~ }' => [ +'_' => 'secureFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 4) !== 0) $tmp['reverse_side'] = match (stream_get_contents($stream, 4)) { +'Dd' => [ +'_' => 'secureFileEmpty', +], +'~ }' => [ +'_' => 'secureFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 8) !== 0) $tmp['selfie'] = match (stream_get_contents($stream, 4)) { +'Dd' => [ +'_' => 'secureFileEmpty', +], +'~ }' => [ +'_' => 'secureFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file_hash' => self::deserialize_bytes($stream), +'secret' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecureFile(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 64) !== 0) $tmp['translation'] = self::deserialize_type_array_of_SecureFile(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 16) !== 0) $tmp['files'] = self::deserialize_type_array_of_SecureFile(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 32) !== 0) $tmp['plain_data'] = match (stream_get_contents($stream, 4)) { +'`}' => [ +'_' => 'securePlainPhone', +'phone' => self::deserialize_string($stream), +], +'_Z!' => [ +'_' => 'securePlainEmail', +'email' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_SecurePlainData(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['hash'] = self::deserialize_bytes($stream); + +return $tmp; + } + private function deserialize_type_array_of_SecureValue(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'' => self::deserialize_secureValue($stream), +'+r0' => $this->deserialize_type_SecureValue(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + } private function deserialize_type_SecureCredentialsEncrypted(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { @@ -16096,10 +14812,6 @@ default => self::err($stream) } private function deserialize_type_array_of_SecureValueType(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -16262,7 +14974,10 @@ return match (stream_get_contents($stream, 4)) { '倒G' => [ '_' => 'messageActionChatCreate', 'title' => self::deserialize_string($stream), -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'Z峞' => [ '_' => 'messageActionChatEditTitle', @@ -16286,7 +15001,10 @@ default => self::err($stream) ], '' . "\0" . '' => [ '_' => 'messageActionChatAddUser', -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '0?' => [ '_' => 'messageActionChatDeleteUser', @@ -16333,7 +15051,10 @@ default => self::err($stream) 'y' => self::deserialize_messageActionBotAllowed($stream), 'Ss(' => [ '_' => 'messageActionSecureValuesSentMe', -'values' => self::deserialize_type_array_of_SecureValue($stream), +'values' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'credentials' => match (stream_get_contents($stream, 4)) { 'G膴3' => [ '_' => 'secureCredentialsEncrypted', @@ -16348,7 +15069,10 @@ default => self::err($stream) ], 'Ta\\' => [ '_' => 'messageActionSecureValuesSent', -'types' => self::deserialize_type_array_of_SecureValueType($stream), +'types' => self::deserialize_type_array_of_SecureValueType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'v_覷' => [ '_' => 'messageActionContactSignUp', @@ -16386,7 +15110,10 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '{M<' => self::deserialize_messageActionSetMessagesTTL($stream), 'av' => [ @@ -16438,7 +15165,10 @@ default => self::err($stream) 'Q1' => [ '_' => 'messageActionRequestedPeer', 'button_id' => unpack('l', stream_get_contents($stream, 4))[1], -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '穬`P' => self::deserialize_messageActionSetChatWallPaper($stream), ' .g' => self::deserialize_messageActionGiftCode($stream), @@ -16511,7 +15241,10 @@ $tmp['action'] = match (stream_get_contents($stream, 4)) { '倒G' => [ '_' => 'messageActionChatCreate', 'title' => self::deserialize_string($stream), -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'Z峞' => [ '_' => 'messageActionChatEditTitle', @@ -16535,7 +15268,10 @@ default => self::err($stream) ], '' . "\0" . '' => [ '_' => 'messageActionChatAddUser', -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '0?' => [ '_' => 'messageActionChatDeleteUser', @@ -16582,7 +15318,10 @@ default => self::err($stream) 'y' => self::deserialize_messageActionBotAllowed($stream), 'Ss(' => [ '_' => 'messageActionSecureValuesSentMe', -'values' => self::deserialize_type_array_of_SecureValue($stream), +'values' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'credentials' => match (stream_get_contents($stream, 4)) { 'G膴3' => [ '_' => 'secureCredentialsEncrypted', @@ -16597,7 +15336,10 @@ default => self::err($stream) ], 'Ta\\' => [ '_' => 'messageActionSecureValuesSent', -'types' => self::deserialize_type_array_of_SecureValueType($stream), +'types' => self::deserialize_type_array_of_SecureValueType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'v_覷' => [ '_' => 'messageActionContactSignUp', @@ -16635,7 +15377,10 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_long($stream), +'users' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '{M<' => self::deserialize_messageActionSetMessagesTTL($stream), 'av' => [ @@ -16687,7 +15432,10 @@ default => self::err($stream) 'Q1' => [ '_' => 'messageActionRequestedPeer', 'button_id' => unpack('l', stream_get_contents($stream, 4))[1], -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '穬`P' => self::deserialize_messageActionSetChatWallPaper($stream), ' .g' => self::deserialize_messageActionGiftCode($stream), @@ -16719,6 +15467,14 @@ return match (stream_get_contents($stream, 4)) { '+r0' => $this->deserialize_type_Message(self::gzdecode($stream)), default => self::err($stream) } +; + } + private function deserialize_type_DataJSON(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => $this->deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} ; } private function deserialize_type_SendMessageAction(mixed $stream): mixed { @@ -16792,22 +15548,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => $this->deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -16866,10 +15606,6 @@ return $tmp; } private function deserialize_type_array_of_ChatParticipant(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -16903,12 +15639,57 @@ return match (stream_get_contents($stream, 4)) { '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => $this->deserialize_type_ChatParticipants(self::gzdecode($stream)), default => self::err($stream) } +; + } + private function deserialize_userStatusRecently(mixed $stream): mixed { +$tmp = ['_' => 'userStatusRecently']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['by_me'] = ($flags & 1) !== 0; + +return $tmp; + } + private function deserialize_userStatusLastWeek(mixed $stream): mixed { +$tmp = ['_' => 'userStatusLastWeek']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['by_me'] = ($flags & 1) !== 0; + +return $tmp; + } + private function deserialize_userStatusLastMonth(mixed $stream): mixed { +$tmp = ['_' => 'userStatusLastMonth']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['by_me'] = ($flags & 1) !== 0; + +return $tmp; + } + private function deserialize_type_UserStatus(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'IP ' => [ +'_' => 'userStatusEmpty', +], +'I9寤' => [ +'_' => 'userStatusOnline', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?p' . "\0" . '' => [ +'_' => 'userStatusOffline', +'was_online' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}{' => self::deserialize_userStatusRecently($stream), +'T' => self::deserialize_userStatusLastWeek($stream), +'we' => self::deserialize_userStatusLastMonth($stream), +'+r0' => $this->deserialize_type_UserStatus(self::gzdecode($stream)), +default => self::err($stream) +} ; } private function deserialize_updateNewAuthorization(mixed $stream): mixed { @@ -17047,10 +15828,6 @@ return $tmp; } private function deserialize_type_array_of_DcOption(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -17101,6 +15878,159 @@ default => self::err($stream) default => self::err($stream) } ; + } + private function deserialize_type_NotificationSound(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_peerNotifySettings(mixed $stream): mixed { +$tmp = ['_' => 'peerNotifySettings']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['show_previews'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; +if (($flags & 2) !== 0) $tmp['silent'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; +if (($flags & 4) !== 0) $tmp['mute_until'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 8) !== 0) $tmp['ios_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 16) !== 0) $tmp['android_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 32) !== 0) $tmp['other_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 64) !== 0) $tmp['stories_muted'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; +if (($flags & 128) !== 0) $tmp['stories_hide_sender'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; +if (($flags & 256) !== 0) $tmp['stories_ios_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 512) !== 0) $tmp['stories_android_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 1024) !== 0) $tmp['stories_other_sound'] = match (stream_get_contents($stream, 4)) { +'噢' => [ +'_' => 'notificationSoundDefault', +], +'4 o' => [ +'_' => 'notificationSoundNone', +], +' ' => [ +'_' => 'notificationSoundLocal', +'title' => self::deserialize_string($stream), +'data' => self::deserialize_string($stream), +], +'Il' => [ +'_' => 'notificationSoundRingtone', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_NotificationSound(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; } private function deserialize_type_PeerNotifySettings(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { @@ -17203,7 +16133,10 @@ default => self::err($stream) default => self::err($stream) } ; -$tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +$tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -17266,7 +16199,10 @@ return $tmp; private function deserialize_updateReadMessagesContents(mixed $stream): mixed { $tmp = ['_' => 'updateReadMessagesContents']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_int($stream); +$tmp['messages'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 1) !== 0) $tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -17308,7 +16244,10 @@ $tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['title'] = self::deserialize_string($stream); $tmp['short_name'] = self::deserialize_string($stream); -if (($flags & 16) !== 0) $tmp['thumbs'] = self::deserialize_type_array_of_PhotoSize($stream); +if (($flags & 16) !== 0) $tmp['thumbs'] = self::deserialize_type_array_of_PhotoSize(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['thumb_dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 16) !== 0) $tmp['thumb_version'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 256) !== 0) $tmp['thumb_document_id'] = unpack('q', stream_get_contents($stream, 8))[1]; @@ -17327,17 +16266,16 @@ default => self::err($stream) } private function deserialize_type_array_of_StickerPack(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '' => [ '_' => 'stickerPack', 'emoticon' => self::deserialize_string($stream), -'documents' => self::deserialize_type_array_of_long($stream), +'documents' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_StickerPack(self::gzdecode($stream)), default => self::err($stream) @@ -17349,17 +16287,16 @@ default => self::err($stream) } private function deserialize_type_array_of_StickerKeyword(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '荼' => [ '_' => 'stickerKeyword', 'document_id' => unpack('q', stream_get_contents($stream, 8))[1], -'keyword' => self::deserialize_type_array_of_string($stream), +'keyword' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_StickerKeyword(self::gzdecode($stream)), default => self::err($stream) @@ -17379,9 +16316,18 @@ return match (stream_get_contents($stream, 4)) { default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -17396,7 +16342,10 @@ $tmp = ['_' => 'updateStickerSetsOrder']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['masks'] = ($flags & 1) !== 0; $tmp['emojis'] = ($flags & 2) !== 0; -$tmp['order'] = self::deserialize_type_array_of_long($stream); +$tmp['order'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -17633,7 +16582,10 @@ default => self::err($stream) } ; if (($flags & 4) !== 0) $tmp['quote_text'] = self::deserialize_string($stream); -if (($flags & 8) !== 0) $tmp['quote_entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 8) !== 0) $tmp['quote_entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['quote_offset'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -17710,10 +16662,6 @@ default => self::err($stream) } private function deserialize_type_array_of_InputDocument(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -17756,7 +16704,10 @@ $tmp['file'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -if (($flags & 1) !== 0) $tmp['stickers'] = self::deserialize_type_array_of_InputDocument($stream); +if (($flags & 1) !== 0) $tmp['stickers'] = self::deserialize_type_array_of_InputDocument(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -17862,8 +16813,14 @@ default => self::err($stream) } ; $tmp['mime_type'] = self::deserialize_string($stream); -$tmp['attributes'] = self::deserialize_type_array_of_DocumentAttribute($stream); -if (($flags & 1) !== 0) $tmp['stickers'] = self::deserialize_type_array_of_InputDocument($stream); +$tmp['attributes'] = self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 1) !== 0) $tmp['stickers'] = self::deserialize_type_array_of_InputDocument(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['ttl_seconds'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -18008,7 +16965,10 @@ return match (stream_get_contents($stream, 4)) { 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_InputWebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -18017,10 +16977,6 @@ default => self::err($stream) } private function deserialize_type_array_of_LabeledPrice(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -18050,9 +17006,15 @@ $tmp['phone_to_provider'] = ($flags & 64) !== 0; $tmp['email_to_provider'] = ($flags & 128) !== 0; $tmp['recurring'] = ($flags & 512) !== 0; $tmp['currency'] = self::deserialize_string($stream); -$tmp['prices'] = self::deserialize_type_array_of_LabeledPrice($stream); +$tmp['prices'] = self::deserialize_type_array_of_LabeledPrice(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 256) !== 0) $tmp['max_tip_amount'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 256) !== 0) $tmp['suggested_tip_amounts'] = self::deserialize_type_array_of_long($stream); +if (($flags & 256) !== 0) $tmp['suggested_tip_amounts'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1024) !== 0) $tmp['terms_url'] = self::deserialize_string($stream); return $tmp; @@ -18076,7 +17038,10 @@ if (($flags & 1) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_InputWebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -18129,9 +17094,15 @@ $tmp['poll'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -if (($flags & 1) !== 0) $tmp['correct_answers'] = self::deserialize_type_array_of_bytes($stream); +if (($flags & 1) !== 0) $tmp['correct_answers'] = self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['solution'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['solution_entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['solution_entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -18378,7 +17349,10 @@ default => self::err($stream) } ; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 8) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 8) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 32) !== 0) $tmp['media'] = match (stream_get_contents($stream, 4)) { '髇' => [ '_' => 'inputMediaEmpty', @@ -18643,10 +17617,6 @@ return $tmp; } private function deserialize_type_array_of_DialogPeer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -18677,7 +17647,10 @@ default => self::err($stream) $tmp = ['_' => 'updatePinnedDialogs']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['folder_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_DialogPeer($stream); +if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_DialogPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -18706,7 +17679,10 @@ $tmp['udp_p2p'] = ($flags & 1) !== 0; $tmp['udp_reflector'] = ($flags & 2) !== 0; $tmp['min_layer'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['max_layer'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['library_versions'] = self::deserialize_type_array_of_string($stream); +$tmp['library_versions'] = self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -18803,10 +17779,6 @@ return $tmp; } private function deserialize_type_array_of_PhoneConnection(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -18838,7 +17810,10 @@ $tmp['protocol'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -$tmp['connections'] = self::deserialize_type_array_of_PhoneConnection($stream); +$tmp['connections'] = self::deserialize_type_array_of_PhoneConnection(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['start_date'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -18902,10 +17877,6 @@ return $tmp; } private function deserialize_type_array_of_LangPackString(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -18934,7 +17905,10 @@ return match (stream_get_contents($stream, 4)) { 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -18946,7 +17920,10 @@ $tmp = ['_' => 'updateChannelReadMessagesContents']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['channel_id'] = unpack('q', stream_get_contents($stream, 8))[1]; if (($flags & 1) !== 0) $tmp['top_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_int($stream); +$tmp['messages'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -18998,10 +17975,6 @@ return $tmp; } private function deserialize_type_array_of_FolderPeer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -19053,10 +18026,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PeerLocated(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -19087,10 +18056,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ThemeSettings(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -19123,7 +18088,10 @@ if (($flags & 4) !== 0) $tmp['document'] = match (stream_get_contents($stream, 4 default => self::err($stream) } ; -if (($flags & 8) !== 0) $tmp['settings'] = self::deserialize_type_array_of_ThemeSettings($stream); +if (($flags & 8) !== 0) $tmp['settings'] = self::deserialize_type_array_of_ThemeSettings(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 64) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); if (($flags & 16) !== 0) $tmp['installs_count'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -19139,10 +18107,6 @@ default => self::err($stream) } private function deserialize_type_array_of_InputPeer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -19276,9 +18240,18 @@ $tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['title'] = self::deserialize_string($stream); if (($flags & 33554432) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); if (($flags & 134217728) !== 0) $tmp['color'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['pinned_peers'] = self::deserialize_type_array_of_InputPeer($stream); -$tmp['include_peers'] = self::deserialize_type_array_of_InputPeer($stream); -$tmp['exclude_peers'] = self::deserialize_type_array_of_InputPeer($stream); +$tmp['pinned_peers'] = self::deserialize_type_array_of_InputPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['include_peers'] = self::deserialize_type_array_of_InputPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['exclude_peers'] = self::deserialize_type_array_of_InputPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -19290,8 +18263,14 @@ $tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['title'] = self::deserialize_string($stream); if (($flags & 33554432) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); if (($flags & 134217728) !== 0) $tmp['color'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['pinned_peers'] = self::deserialize_type_array_of_InputPeer($stream); -$tmp['include_peers'] = self::deserialize_type_array_of_InputPeer($stream); +$tmp['pinned_peers'] = self::deserialize_type_array_of_InputPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['include_peers'] = self::deserialize_type_array_of_InputPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -19434,22 +18413,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -19469,7 +18432,10 @@ $tmp['peer'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -$tmp['messages'] = self::deserialize_type_array_of_int($stream); +$tmp['messages'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -19480,7 +18446,10 @@ $tmp = ['_' => 'updatePinnedChannelMessages']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['pinned'] = ($flags & 1) !== 0; $tmp['channel_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -$tmp['messages'] = self::deserialize_type_array_of_int($stream); +$tmp['messages'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -19488,17 +18457,16 @@ return $tmp; } private function deserialize_type_array_of_GroupCallParticipantVideoSourceGroup(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '旌' => [ '_' => 'groupCallParticipantVideoSourceGroup', 'semantics' => self::deserialize_string($stream), -'sources' => self::deserialize_type_array_of_int($stream), +'sources' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_GroupCallParticipantVideoSourceGroup(self::gzdecode($stream)), default => self::err($stream) @@ -19513,7 +18481,10 @@ $tmp = ['_' => 'groupCallParticipantVideo']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['paused'] = ($flags & 1) !== 0; $tmp['endpoint'] = self::deserialize_string($stream); -$tmp['source_groups'] = self::deserialize_type_array_of_GroupCallParticipantVideoSourceGroup($stream); +$tmp['source_groups'] = self::deserialize_type_array_of_GroupCallParticipantVideoSourceGroup(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['audio_source'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -19570,10 +18541,6 @@ return $tmp; } private function deserialize_type_array_of_GroupCallParticipant(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -19912,10 +18879,6 @@ return $tmp; } private function deserialize_type_array_of_BotCommand(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -20012,7 +18975,10 @@ return $tmp; $tmp = ['_' => 'updateChannelPinnedTopics']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['channel_id'] = unpack('q', stream_get_contents($stream, 8))[1]; -if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_int($stream); +if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -20080,10 +19046,6 @@ return $tmp; } private function deserialize_type_array_of_Reaction(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -20136,16 +19098,15 @@ return $tmp; private function deserialize_updatePinnedSavedDialogs(mixed $stream): mixed { $tmp = ['_' => 'updatePinnedSavedDialogs']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_DialogPeer($stream); +if (($flags & 1) !== 0) $tmp['order'] = self::deserialize_type_array_of_DialogPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_QuickReply(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -20177,6 +19138,1321 @@ return match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; + } + private function deserialize_auth___sentCodeTypeEmailCode(mixed $stream): mixed { +$tmp = ['_' => 'auth.sentCodeTypeEmailCode']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['apple_signin_allowed'] = ($flags & 1) !== 0; +$tmp['google_signin_allowed'] = ($flags & 2) !== 0; +$tmp['email_pattern'] = self::deserialize_string($stream); +$tmp['length'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 8) !== 0) $tmp['reset_available_period'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 16) !== 0) $tmp['reset_pending_date'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_auth___sentCodeTypeSetUpEmailRequired(mixed $stream): mixed { +$tmp = ['_' => 'auth.sentCodeTypeSetUpEmailRequired']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['apple_signin_allowed'] = ($flags & 1) !== 0; +$tmp['google_signin_allowed'] = ($flags & 2) !== 0; + +return $tmp; + } + private function deserialize_auth___sentCodeTypeFirebaseSms(mixed $stream): mixed { +$tmp = ['_' => 'auth.sentCodeTypeFirebaseSms']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['nonce'] = self::deserialize_bytes($stream); +if (($flags & 2) !== 0) $tmp['receipt'] = self::deserialize_string($stream); +if (($flags & 2) !== 0) $tmp['push_timeout'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['length'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_auth___SentCodeType(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'Y=' => [ +'_' => 'auth.sentCodeTypeApp', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Ⅲ' . "\0" . '' => [ +'_' => 'auth.sentCodeTypeSms', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'批SS' => [ +'_' => 'auth.sentCodeTypeCall', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'棐' => [ +'_' => 'auth.sentCodeTypeFlashCall', +'pattern' => self::deserialize_string($stream), +], +'d' . "\0" . '' => [ +'_' => 'auth.sentCodeTypeMissedCall', +'prefix' => self::deserialize_string($stream), +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顣' => self::deserialize_auth___sentCodeTypeEmailCode($stream), +'I' => self::deserialize_auth___sentCodeTypeSetUpEmailRequired($stream), +'9\\V' => [ +'_' => 'auth.sentCodeTypeFragmentSms', +'url' => self::deserialize_string($stream), +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'2{' => self::deserialize_auth___sentCodeTypeFirebaseSms($stream), +'+r0' => $this->deserialize_type_auth___SentCodeType(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_auth___CodeType(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'ψ' => [ +'_' => 'auth.codeTypeSms', +], +'蒑t' => [ +'_' => 'auth.codeTypeCall', +], +'姤"' => [ +'_' => 'auth.codeTypeFlashCall', +], +'鍶' => [ +'_' => 'auth.codeTypeMissedCall', +], +'' => [ +'_' => 'auth.codeTypeFragmentSms', +], +'+r0' => $this->deserialize_type_auth___CodeType(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_auth___sentCode(mixed $stream): mixed { +$tmp = ['_' => 'auth.sentCode']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['type'] = match (stream_get_contents($stream, 4)) { +'Y=' => [ +'_' => 'auth.sentCodeTypeApp', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Ⅲ' . "\0" . '' => [ +'_' => 'auth.sentCodeTypeSms', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'批SS' => [ +'_' => 'auth.sentCodeTypeCall', +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'棐' => [ +'_' => 'auth.sentCodeTypeFlashCall', +'pattern' => self::deserialize_string($stream), +], +'d' . "\0" . '' => [ +'_' => 'auth.sentCodeTypeMissedCall', +'prefix' => self::deserialize_string($stream), +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顣' => self::deserialize_auth___sentCodeTypeEmailCode($stream), +'I' => self::deserialize_auth___sentCodeTypeSetUpEmailRequired($stream), +'9\\V' => [ +'_' => 'auth.sentCodeTypeFragmentSms', +'url' => self::deserialize_string($stream), +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'2{' => self::deserialize_auth___sentCodeTypeFirebaseSms($stream), +'+r0' => self::deserialize_type_auth___SentCodeType(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['phone_code_hash'] = self::deserialize_string($stream); +if (($flags & 2) !== 0) $tmp['next_type'] = match (stream_get_contents($stream, 4)) { +'ψ' => [ +'_' => 'auth.codeTypeSms', +], +'蒑t' => [ +'_' => 'auth.codeTypeCall', +], +'姤"' => [ +'_' => 'auth.codeTypeFlashCall', +], +'鍶' => [ +'_' => 'auth.codeTypeMissedCall', +], +'' => [ +'_' => 'auth.codeTypeFragmentSms', +], +'+r0' => self::deserialize_type_auth___CodeType(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 4) !== 0) $tmp['timeout'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_userProfilePhoto(mixed $stream): mixed { +$tmp = ['_' => 'userProfilePhoto']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['has_video'] = ($flags & 1) !== 0; +$tmp['personal'] = ($flags & 4) !== 0; +$tmp['photo_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 2) !== 0) $tmp['stripped_thumb'] = self::deserialize_bytes($stream); +$tmp['dc_id'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_UserProfilePhoto(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'廕O' => [ +'_' => 'userProfilePhotoEmpty', +], +'劙' => self::deserialize_userProfilePhoto($stream), +'+r0' => $this->deserialize_type_UserProfilePhoto(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_user(mixed $stream): mixed { +$tmp = ['_' => 'user']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['self'] = ($flags & 1024) !== 0; +$tmp['contact'] = ($flags & 2048) !== 0; +$tmp['mutual_contact'] = ($flags & 4096) !== 0; +$tmp['deleted'] = ($flags & 8192) !== 0; +$tmp['bot'] = ($flags & 16384) !== 0; +$tmp['bot_chat_history'] = ($flags & 32768) !== 0; +$tmp['bot_nochats'] = ($flags & 65536) !== 0; +$tmp['verified'] = ($flags & 131072) !== 0; +$tmp['restricted'] = ($flags & 262144) !== 0; +$tmp['min'] = ($flags & 1048576) !== 0; +$tmp['bot_inline_geo'] = ($flags & 2097152) !== 0; +$tmp['support'] = ($flags & 8388608) !== 0; +$tmp['scam'] = ($flags & 16777216) !== 0; +$tmp['apply_min_photo'] = ($flags & 33554432) !== 0; +$tmp['fake'] = ($flags & 67108864) !== 0; +$tmp['bot_attach_menu'] = ($flags & 134217728) !== 0; +$tmp['premium'] = ($flags & 268435456) !== 0; +$tmp['attach_menu_enabled'] = ($flags & 536870912) !== 0; +$flags2 = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['bot_can_edit'] = ($flags2 & 2) !== 0; +$tmp['close_friend'] = ($flags2 & 4) !== 0; +$tmp['stories_hidden'] = ($flags2 & 8) !== 0; +$tmp['stories_unavailable'] = ($flags2 & 16) !== 0; +$tmp['contact_require_premium'] = ($flags2 & 1024) !== 0; +$tmp['id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 1) !== 0) $tmp['access_hash'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 2) !== 0) $tmp['first_name'] = self::deserialize_string($stream); +if (($flags & 4) !== 0) $tmp['last_name'] = self::deserialize_string($stream); +if (($flags & 8) !== 0) $tmp['username'] = self::deserialize_string($stream); +if (($flags & 16) !== 0) $tmp['phone'] = self::deserialize_string($stream); +if (($flags & 32) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) { +'廕O' => [ +'_' => 'userProfilePhotoEmpty', +], +'劙' => self::deserialize_userProfilePhoto($stream), +'+r0' => self::deserialize_type_UserProfilePhoto(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 64) !== 0) $tmp['status'] = match (stream_get_contents($stream, 4)) { +'IP ' => [ +'_' => 'userStatusEmpty', +], +'I9寤' => [ +'_' => 'userStatusOnline', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?p' . "\0" . '' => [ +'_' => 'userStatusOffline', +'was_online' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}{' => self::deserialize_userStatusRecently($stream), +'T' => self::deserialize_userStatusLastWeek($stream), +'we' => self::deserialize_userStatusLastMonth($stream), +'+r0' => self::deserialize_type_UserStatus(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 16384) !== 0) $tmp['bot_info_version'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 262144) !== 0) $tmp['restriction_reason'] = self::deserialize_type_array_of_RestrictionReason(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 524288) !== 0) $tmp['bot_inline_placeholder'] = self::deserialize_string($stream); +if (($flags & 4194304) !== 0) $tmp['lang_code'] = self::deserialize_string($stream); +if (($flags & 1073741824) !== 0) $tmp['emoji_status'] = match (stream_get_contents($stream, 4)) { +'-' => [ +'_' => 'emojiStatusEmpty', +], +'a' => [ +'_' => 'emojiStatus', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ヮ0' => [ +'_' => 'emojiStatusUntil', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'until' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EmojiStatus(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags2 & 1) !== 0) $tmp['usernames'] = self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags2 & 32) !== 0) $tmp['stories_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags2 & 256) !== 0) $tmp['color'] = match (stream_get_contents($stream, 4)) { +'柌K' => self::deserialize_peerColor($stream), +'+r0' => self::deserialize_type_PeerColor(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags2 & 512) !== 0) $tmp['profile_color'] = match (stream_get_contents($stream, 4)) { +'柌K' => self::deserialize_peerColor($stream), +'+r0' => self::deserialize_type_PeerColor(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_type_User(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'zK樓' => [ +'_' => 'userEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'8D\\!' => self::deserialize_user($stream), +'+r0' => $this->deserialize_type_User(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_auth___authorization(mixed $stream): mixed { +$tmp = ['_' => 'auth.authorization']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['setup_password_required'] = ($flags & 2) !== 0; +if (($flags & 2) !== 0) $tmp['otherwise_relogin_days'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['tmp_sessions'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 4) !== 0) $tmp['future_auth_token'] = self::deserialize_bytes($stream); +$tmp['user'] = match (stream_get_contents($stream, 4)) { +'zK樓' => [ +'_' => 'userEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'8D\\!' => self::deserialize_user($stream), +'+r0' => self::deserialize_type_User(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_help___termsOfService(mixed $stream): mixed { +$tmp = ['_' => 'help.termsOfService']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['popup'] = ($flags & 1) !== 0; +$tmp['id'] = match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['text'] = self::deserialize_string($stream); +$tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['min_age_confirm'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_help___TermsOfService(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +' +x' => self::deserialize_help___termsOfService($stream), +'+r0' => $this->deserialize_type_help___TermsOfService(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_auth___authorizationSignUpRequired(mixed $stream): mixed { +$tmp = ['_' => 'auth.authorizationSignUpRequired']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['terms_of_service'] = match (stream_get_contents($stream, 4)) { +' +x' => self::deserialize_help___termsOfService($stream), +'+r0' => self::deserialize_type_help___TermsOfService(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_type_auth___Authorization(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'+r0' => $this->deserialize_type_auth___Authorization(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_auth___loggedOut(mixed $stream): mixed { +$tmp = ['_' => 'auth.loggedOut']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['future_auth_token'] = self::deserialize_bytes($stream); + +return $tmp; + } + private function deserialize_authorization(mixed $stream): mixed { +$tmp = ['_' => 'authorization']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['current'] = ($flags & 1) !== 0; +$tmp['official_app'] = ($flags & 2) !== 0; +$tmp['password_pending'] = ($flags & 4) !== 0; +$tmp['encrypted_requests_disabled'] = ($flags & 8) !== 0; +$tmp['call_requests_disabled'] = ($flags & 16) !== 0; +$tmp['unconfirmed'] = ($flags & 32) !== 0; +$tmp['hash'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['device_model'] = self::deserialize_string($stream); +$tmp['platform'] = self::deserialize_string($stream); +$tmp['system_version'] = self::deserialize_string($stream); +$tmp['api_id'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['app_name'] = self::deserialize_string($stream); +$tmp['app_version'] = self::deserialize_string($stream); +$tmp['date_created'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['date_active'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['ip'] = self::deserialize_string($stream); +$tmp['country'] = self::deserialize_string($stream); +$tmp['region'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_array_of_WallPaper(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'篳7' => self::deserialize_wallPaper($stream), +'A' => self::deserialize_wallPaperNoFile($stream), +'+r0' => self::deserialize_type_WallPaper(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_Chat(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'e(V)' => [ +'_' => 'chatEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'V藨A' => self::deserialize_chat($stream), +'均e' => [ +'_' => 'chatForbidden', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'title' => self::deserialize_string($stream), +], +' +' => self::deserialize_channel($stream), +'' => self::deserialize_channelForbidden($stream), +'+r0' => self::deserialize_type_Chat(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_User(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'zK樓' => [ +'_' => 'userEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'8D\\!' => self::deserialize_user($stream), +'+r0' => self::deserialize_type_User(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_Authorization(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'' => self::deserialize_authorization($stream), +'+r0' => $this->deserialize_type_Authorization(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_PasswordKdfAlgo(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'豈' => [ +'_' => 'passwordKdfAlgoUnknown', +], +'J-:' => [ +'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', +'salt1' => self::deserialize_bytes($stream), +'salt2' => self::deserialize_bytes($stream), +'g' => unpack('l', stream_get_contents($stream, 4))[1], +'p' => self::deserialize_bytes($stream), +], +'+r0' => $this->deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_type_SecurePasswordKdfAlgo(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'7J' . "\0" . '' => [ +'_' => 'securePasswordKdfAlgoUnknown', +], +'椯' => [ +'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', +'salt' => self::deserialize_bytes($stream), +], +'G' => [ +'_' => 'securePasswordKdfAlgoSHA512', +'salt' => self::deserialize_bytes($stream), +], +'+r0' => $this->deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_account___password(mixed $stream): mixed { +$tmp = ['_' => 'account.password']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['has_recovery'] = ($flags & 1) !== 0; +$tmp['has_secure_values'] = ($flags & 2) !== 0; +$tmp['has_password'] = ($flags & 4) !== 0; +if (($flags & 4) !== 0) $tmp['current_algo'] = match (stream_get_contents($stream, 4)) { +'豈' => [ +'_' => 'passwordKdfAlgoUnknown', +], +'J-:' => [ +'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', +'salt1' => self::deserialize_bytes($stream), +'salt2' => self::deserialize_bytes($stream), +'g' => unpack('l', stream_get_contents($stream, 4))[1], +'p' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 4) !== 0) $tmp['srp_B'] = self::deserialize_bytes($stream); +if (($flags & 4) !== 0) $tmp['srp_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 8) !== 0) $tmp['hint'] = self::deserialize_string($stream); +if (($flags & 16) !== 0) $tmp['email_unconfirmed_pattern'] = self::deserialize_string($stream); +$tmp['new_algo'] = match (stream_get_contents($stream, 4)) { +'豈' => [ +'_' => 'passwordKdfAlgoUnknown', +], +'J-:' => [ +'_' => 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow', +'salt1' => self::deserialize_bytes($stream), +'salt2' => self::deserialize_bytes($stream), +'g' => unpack('l', stream_get_contents($stream, 4))[1], +'p' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_PasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['new_secure_algo'] = match (stream_get_contents($stream, 4)) { +'7J' . "\0" . '' => [ +'_' => 'securePasswordKdfAlgoUnknown', +], +'椯' => [ +'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', +'salt' => self::deserialize_bytes($stream), +], +'G' => [ +'_' => 'securePasswordKdfAlgoSHA512', +'salt' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['secure_random'] = self::deserialize_bytes($stream); +if (($flags & 32) !== 0) $tmp['pending_reset_date'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 64) !== 0) $tmp['login_email_pattern'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_SecureSecretSettings(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'狩\'' => [ +'_' => 'secureSecretSettings', +'secure_algo' => match (stream_get_contents($stream, 4)) { +'7J' . "\0" . '' => [ +'_' => 'securePasswordKdfAlgoUnknown', +], +'椯' => [ +'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', +'salt' => self::deserialize_bytes($stream), +], +'G' => [ +'_' => 'securePasswordKdfAlgoSHA512', +'salt' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +, +'secure_secret' => self::deserialize_bytes($stream), +'secure_secret_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => $this->deserialize_type_SecureSecretSettings(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_account___passwordSettings(mixed $stream): mixed { +$tmp = ['_' => 'account.passwordSettings']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['email'] = self::deserialize_string($stream); +if (($flags & 2) !== 0) $tmp['secure_settings'] = match (stream_get_contents($stream, 4)) { +'狩\'' => [ +'_' => 'secureSecretSettings', +'secure_algo' => match (stream_get_contents($stream, 4)) { +'7J' . "\0" . '' => [ +'_' => 'securePasswordKdfAlgoUnknown', +], +'椯' => [ +'_' => 'securePasswordKdfAlgoPBKDF2HMACSHA512iter100000', +'salt' => self::deserialize_bytes($stream), +], +'G' => [ +'_' => 'securePasswordKdfAlgoSHA512', +'salt' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_SecurePasswordKdfAlgo(self::gzdecode($stream)), +default => self::err($stream) +} +, +'secure_secret' => self::deserialize_bytes($stream), +'secure_secret_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_SecureSecretSettings(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_type_array_of_WebAuthorization(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'R鐖' => [ +'_' => 'webAuthorization', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], +'domain' => self::deserialize_string($stream), +'browser' => self::deserialize_string($stream), +'platform' => self::deserialize_string($stream), +'date_created' => unpack('l', stream_get_contents($stream, 4))[1], +'date_active' => unpack('l', stream_get_contents($stream, 4))[1], +'ip' => self::deserialize_string($stream), +'region' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_WebAuthorization(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_secureRequiredType(mixed $stream): mixed { +$tmp = ['_' => 'secureRequiredType']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['native_names'] = ($flags & 1) !== 0; +$tmp['selfie_required'] = ($flags & 2) !== 0; +$tmp['translation_required'] = ($flags & 4) !== 0; +$tmp['type'] = match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +; + +return $tmp; + } + private function deserialize_type_array_of_SecureRequiredType(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'' => self::deserialize_secureRequiredType($stream), +'掣t' => [ +'_' => 'secureRequiredTypeOneOf', +'types' => $this->deserialize_type_array_of_SecureRequiredType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => $this->deserialize_type_SecureRequiredType(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_SecureValueError(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +' 方' => [ +'_' => 'secureValueErrorData', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'data_hash' => self::deserialize_bytes($stream), +'field' => self::deserialize_string($stream), +'text' => self::deserialize_string($stream), +], +'=' . "\0" . '' => [ +'_' => 'secureValueErrorFrontSide', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +'*' => [ +'_' => 'secureValueErrorReverseSide', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +'笥7' => [ +'_' => 'secureValueErrorSelfie', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +'spz' => [ +'_' => 'secureValueErrorFile', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +' bf' => [ +'_' => 'secureValueErrorFiles', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'text' => self::deserialize_string($stream), +], +'u' => [ +'_' => 'secureValueError', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +'pG' => [ +'_' => 'secureValueErrorTranslationFile', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_bytes($stream), +'text' => self::deserialize_string($stream), +], +'喓c4' => [ +'_' => 'secureValueErrorTranslationFiles', +'type' => match (stream_get_contents($stream, 4)) { +'*' => [ +'_' => 'secureValueTypePersonalDetails', +], +'' . "\0" . 'j=' => [ +'_' => 'secureValueTypePassport', +], +'%' => [ +'_' => 'secureValueTypeDriverLicense', +], +'Kt' => [ +'_' => 'secureValueTypeIdentityCard', +], +'#' => [ +'_' => 'secureValueTypeInternalPassport', +], +'&蒶' => [ +'_' => 'secureValueTypeAddress', +], +'N6' => [ +'_' => 'secureValueTypeUtilityBill', +], +' |' => [ +'_' => 'secureValueTypeBankStatement', +], +'4' => [ +'_' => 'secureValueTypeRentalAgreement', +], +'j' => [ +'_' => 'secureValueTypePassportRegistration', +], +'3' => [ +'_' => 'secureValueTypeTemporaryRegistration', +], +'菄 ' => [ +'_' => 'secureValueTypePhone', +], +'謏<' => [ +'_' => 'secureValueTypeEmail', +], +'+r0' => self::deserialize_type_SecureValueType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'file_hash' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'text' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_SecureValueError(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_account___authorizationForm(mixed $stream): mixed { +$tmp = ['_' => 'account.authorizationForm']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['required_types'] = self::deserialize_type_array_of_SecureRequiredType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['values'] = self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['errors'] = self::deserialize_type_array_of_SecureValueError(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 1) !== 0) $tmp['privacy_policy_url'] = self::deserialize_string($stream); + +return $tmp; + } + private function deserialize_type_auth___SentCode(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'%' . "\0" . '^' => self::deserialize_auth___sentCode($stream), +'D#' => [ +'_' => 'auth.sentCodeSuccess', +'authorization' => match (stream_get_contents($stream, 4)) { +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'+r0' => self::deserialize_type_auth___Authorization(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => $this->deserialize_type_auth___SentCode(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_updateShortMessage(mixed $stream): mixed { +$tmp = ['_' => 'updateShortMessage']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['out'] = ($flags & 2) !== 0; +$tmp['mentioned'] = ($flags & 16) !== 0; +$tmp['media_unread'] = ($flags & 32) !== 0; +$tmp['silent'] = ($flags & 8192) !== 0; +$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['user_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['message'] = self::deserialize_string($stream); +$tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 4) !== 0) $tmp['fwd_from'] = match (stream_get_contents($stream, 4)) { +'齊MN' => self::deserialize_messageFwdHeader($stream), +'+r0' => self::deserialize_type_MessageFwdHeader(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 2048) !== 0) $tmp['via_bot_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 8) !== 0) $tmp['reply_to'] = match (stream_get_contents($stream, 4)) { +' 摩' => self::deserialize_messageReplyHeader($stream), +'9鱨' => [ +'_' => 'messageReplyStoryHeader', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_MessageReplyHeader(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_updateShortChatMessage(mixed $stream): mixed { +$tmp = ['_' => 'updateShortChatMessage']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['out'] = ($flags & 2) !== 0; +$tmp['mentioned'] = ($flags & 16) !== 0; +$tmp['media_unread'] = ($flags & 32) !== 0; +$tmp['silent'] = ($flags & 8192) !== 0; +$tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['from_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['chat_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +$tmp['message'] = self::deserialize_string($stream); +$tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['pts_count'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 4) !== 0) $tmp['fwd_from'] = match (stream_get_contents($stream, 4)) { +'齊MN' => self::deserialize_messageFwdHeader($stream), +'+r0' => self::deserialize_type_MessageFwdHeader(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 2048) !== 0) $tmp['via_bot_id'] = unpack('q', stream_get_contents($stream, 8))[1]; +if (($flags & 8) !== 0) $tmp['reply_to'] = match (stream_get_contents($stream, 4)) { +' 摩' => self::deserialize_messageReplyHeader($stream), +'9鱨' => [ +'_' => 'messageReplyStoryHeader', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_MessageReplyHeader(self::gzdecode($stream)), +default => self::err($stream) +} +; +if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; } private function deserialize_type_Update(mixed $stream): mixed { return match (stream_get_contents($stream, 4)) { @@ -20201,7 +20477,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -20278,22 +20557,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -20380,22 +20643,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -20408,7 +20655,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -20444,7 +20694,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -20545,7 +20798,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -20631,7 +20887,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -20690,7 +20949,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -20718,9 +20980,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -20870,7 +21141,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -20911,7 +21185,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -20934,7 +21211,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -20957,7 +21237,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -20994,13 +21277,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -21043,7 +21332,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -21085,7 +21377,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -21098,7 +21393,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -21427,8 +21725,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -21443,7 +21747,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -21458,7 +21765,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -21493,7 +21803,10 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_Update(self::gzdecode($stream)), default => self::err($stream) @@ -21502,10 +21815,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Update(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -21530,7 +21839,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -21607,22 +21919,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -21709,22 +22005,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -21737,7 +22017,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -21773,7 +22056,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -21874,7 +22160,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -21960,7 +22249,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -22019,7 +22311,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -22047,9 +22342,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -22199,7 +22503,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -22240,7 +22547,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -22263,7 +22573,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -22286,7 +22599,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -22323,13 +22639,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -22372,7 +22694,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -22414,7 +22739,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -22427,7 +22755,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -22756,8 +23087,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -22772,7 +23109,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -22787,7 +23127,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -22822,7 +23165,10 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_Update(self::gzdecode($stream)), default => self::err($stream) @@ -22925,7 +23271,10 @@ default => self::err($stream) default => self::err($stream) } ; -if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 128) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 33554432) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; @@ -22957,10 +23306,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Theme(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -22994,10 +23339,6 @@ return $tmp; } private function deserialize_type_array_of_EmojiStatus(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23040,10 +23381,6 @@ default => self::err($stream) } private function deserialize_type_array_of_AutoSaveException(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23080,7 +23417,10 @@ $tmp['new_chats'] = ($flags & 2) !== 0; $tmp['contacts'] = ($flags & 4) !== 0; $tmp['non_contacts'] = ($flags & 8) !== 0; $tmp['exclude_selected'] = ($flags & 32) !== 0; -if (($flags & 16) !== 0) $tmp['users'] = self::deserialize_type_array_of_long($stream); +if (($flags & 16) !== 0) $tmp['users'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -23108,10 +23448,6 @@ return $tmp; } private function deserialize_type_array_of_ConnectedBot(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23149,7 +23485,10 @@ if (($flags & 32) !== 0) $tmp['description_document'] = match (stream_get_conten default => self::err($stream) } ; -if (($flags & 4) !== 0) $tmp['commands'] = self::deserialize_type_array_of_BotCommand($stream); +if (($flags & 4) !== 0) $tmp['commands'] = self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 8) !== 0) $tmp['menu_button'] = match (stream_get_contents($stream, 4)) { '3u' => [ '_' => 'botMenuButtonDefault', @@ -23190,10 +23529,6 @@ return $tmp; } private function deserialize_type_array_of_PremiumGiftOption(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23208,10 +23543,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StoryItem(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23241,7 +23572,10 @@ default => self::err($stream) } ; if (($flags & 1) !== 0) $tmp['max_read_id'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['stories'] = self::deserialize_type_array_of_StoryItem($stream); +$tmp['stories'] = self::deserialize_type_array_of_StoryItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -23255,10 +23589,6 @@ default => self::err($stream) } private function deserialize_type_array_of_BusinessWeeklyOpen(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23280,7 +23610,10 @@ $tmp = ['_' => 'businessWorkHours']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['open_now'] = ($flags & 1) !== 0; $tmp['timezone_id'] = self::deserialize_string($stream); -$tmp['weekly_open'] = self::deserialize_type_array_of_BusinessWeeklyOpen($stream); +$tmp['weekly_open'] = self::deserialize_type_array_of_BusinessWeeklyOpen(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -23475,7 +23808,10 @@ if (($flags & 262144) !== 0) $tmp['bot_broadcast_admin_rights'] = match (stream_ default => self::err($stream) } ; -if (($flags & 524288) !== 0) $tmp['premium_gifts'] = self::deserialize_type_array_of_PremiumGiftOption($stream); +if (($flags & 524288) !== 0) $tmp['premium_gifts'] = self::deserialize_type_array_of_PremiumGiftOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16777216) !== 0) $tmp['wallpaper'] = match (stream_get_contents($stream, 4)) { '篳7' => self::deserialize_wallPaper($stream), 'A' => self::deserialize_wallPaperNoFile($stream), @@ -23536,10 +23872,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Contact(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23558,10 +23890,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ImportedContact(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23580,10 +23908,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PopularContact(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23602,10 +23926,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PeerBlocked(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23662,10 +23982,6 @@ default => self::err($stream) } private function deserialize_type_array_of_TopPeer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23691,10 +24007,6 @@ default => self::err($stream) } private function deserialize_type_array_of_TopPeerCategoryPeers(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23730,7 +24042,10 @@ default => self::err($stream) } , 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'peers' => self::deserialize_type_array_of_TopPeer($stream), +'peers' => self::deserialize_type_array_of_TopPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_TopPeerCategoryPeers(self::gzdecode($stream)), default => self::err($stream) @@ -23742,10 +24057,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Message(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23767,9 +24078,18 @@ $tmp['inexact'] = ($flags & 2) !== 0; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 1) !== 0) $tmp['next_rate'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 4) !== 0) $tmp['offset_id_offset'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -23818,10 +24138,6 @@ return $tmp; } private function deserialize_type_array_of_ForumTopic(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23845,10 +24161,22 @@ $tmp['inexact'] = ($flags & 2) !== 0; $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 4) !== 0) $tmp['offset_id_offset'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['topics'] = self::deserialize_type_array_of_ForumTopic($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['topics'] = self::deserialize_type_array_of_ForumTopic(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -23947,10 +24275,6 @@ return $tmp; } private function deserialize_type_array_of_Dialog(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23966,10 +24290,6 @@ default => self::err($stream) } private function deserialize_type_array_of_BotInfo(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -23997,7 +24317,10 @@ return match (stream_get_contents($stream, 4)) { 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -24017,7 +24340,10 @@ $tmp['participants'] = match (stream_get_contents($stream, 4)) { '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -24050,7 +24376,10 @@ if (($flags & 8192) !== 0) $tmp['exported_invite'] = match (stream_get_contents( default => self::err($stream) } ; -if (($flags & 8) !== 0) $tmp['bot_info'] = self::deserialize_type_array_of_BotInfo($stream); +if (($flags & 8) !== 0) $tmp['bot_info'] = self::deserialize_type_array_of_BotInfo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 64) !== 0) $tmp['pinned_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2048) !== 0) $tmp['folder_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 4096) !== 0) $tmp['call'] = match (stream_get_contents($stream, 4)) { @@ -24074,7 +24403,10 @@ default => self::err($stream) ; if (($flags & 65536) !== 0) $tmp['theme_emoticon'] = self::deserialize_string($stream); if (($flags & 131072) !== 0) $tmp['requests_pending'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 131072) !== 0) $tmp['recent_requesters'] = self::deserialize_type_array_of_long($stream); +if (($flags & 131072) !== 0) $tmp['recent_requesters'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 262144) !== 0) $tmp['available_reactions'] = match (stream_get_contents($stream, 4)) { '2' => [ '_' => 'chatReactionsNone', @@ -24082,7 +24414,10 @@ if (($flags & 262144) !== 0) $tmp['available_reactions'] = match (stream_get_con 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -24168,7 +24503,10 @@ if (($flags & 8388608) !== 0) $tmp['exported_invite'] = match (stream_get_conten default => self::err($stream) } ; -$tmp['bot_info'] = self::deserialize_type_array_of_BotInfo($stream); +$tmp['bot_info'] = self::deserialize_type_array_of_BotInfo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 16) !== 0) $tmp['migrated_from_chat_id'] = unpack('q', stream_get_contents($stream, 8))[1]; if (($flags & 16) !== 0) $tmp['migrated_from_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 32) !== 0) $tmp['pinned_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -24217,7 +24555,10 @@ default => self::err($stream) } ; if (($flags & 16777216) !== 0) $tmp['ttl_period'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 33554432) !== 0) $tmp['pending_suggestions'] = self::deserialize_type_array_of_string($stream); +if (($flags & 33554432) !== 0) $tmp['pending_suggestions'] = self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 67108864) !== 0) $tmp['groupcall_default_join_as'] = match (stream_get_contents($stream, 4)) { '"QY' => unpack('q', stream_get_contents($stream, 8))[1], '6' => -unpack('q', stream_get_contents($stream, 8))[1], @@ -24228,7 +24569,10 @@ default => self::err($stream) ; if (($flags & 134217728) !== 0) $tmp['theme_emoticon'] = self::deserialize_string($stream); if (($flags & 268435456) !== 0) $tmp['requests_pending'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 268435456) !== 0) $tmp['recent_requesters'] = self::deserialize_type_array_of_long($stream); +if (($flags & 268435456) !== 0) $tmp['recent_requesters'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 536870912) !== 0) $tmp['default_send_as'] = match (stream_get_contents($stream, 4)) { '"QY' => unpack('q', stream_get_contents($stream, 8))[1], '6' => -unpack('q', stream_get_contents($stream, 8))[1], @@ -24244,7 +24588,10 @@ if (($flags & 1073741824) !== 0) $tmp['available_reactions'] = match (stream_get 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -24285,10 +24632,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StickerSet(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24325,17 +24668,16 @@ default => self::err($stream) } ; $tmp['participants_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -if (($flags & 16) !== 0) $tmp['participants'] = self::deserialize_type_array_of_User($stream); +if (($flags & 16) !== 0) $tmp['participants'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['color'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; } private function deserialize_type_array_of_StickerSetCovered(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24366,7 +24708,10 @@ default => self::err($stream) default => self::err($stream) } , -'covers' => self::deserialize_type_array_of_Document($stream), +'covers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '<唊' => [ '_' => 'stickerSetFullCovered', @@ -24376,9 +24721,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ']患' => [ '_' => 'stickerSetNoCovered', @@ -24413,10 +24767,6 @@ return $tmp; } private function deserialize_type_array_of_MessageViews(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24458,14 +24808,20 @@ $tmp = ['_' => 'botInlineMessageMediaAuto']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['invert_media'] = ($flags & 8) !== 0; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($stream, 4)) { '[>' => self::deserialize_replyKeyboardHide($stream), ' ' => self::deserialize_replyKeyboardForceReply($stream), '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24480,14 +24836,20 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['no_webpage'] = ($flags & 1) !== 0; $tmp['invert_media'] = ($flags & 8) !== 0; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($stream, 4)) { '[>' => self::deserialize_replyKeyboardHide($stream), ' ' => self::deserialize_replyKeyboardForceReply($stream), '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24517,7 +24879,10 @@ if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($strea '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24549,7 +24914,10 @@ if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($strea '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24571,7 +24939,10 @@ if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($strea '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24594,14 +24965,20 @@ if (($flags & 1) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -24615,7 +24992,10 @@ if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($strea '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24633,7 +25013,10 @@ $tmp['force_small_media'] = ($flags & 32) !== 0; $tmp['manual'] = ($flags & 128) !== 0; $tmp['safe'] = ($flags & 256) !== 0; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['url'] = self::deserialize_string($stream); if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($stream, 4)) { '[>' => self::deserialize_replyKeyboardHide($stream), @@ -24641,7 +25024,10 @@ if (($flags & 4) !== 0) $tmp['reply_markup'] = match (stream_get_contents($strea '' => self::deserialize_replyKeyboardMarkup($stream), 'TΕ' => [ '_' => 'replyInlineMarkup', -'rows' => self::deserialize_type_array_of_KeyboardButtonRow($stream), +'rows' => self::deserialize_type_array_of_KeyboardButtonRow(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ReplyMarkup(self::gzdecode($stream)), default => self::err($stream) @@ -24679,14 +25065,20 @@ if (($flags & 16) !== 0) $tmp['thumb'] = match (stream_get_contents($stream, 4)) 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -24699,14 +25091,20 @@ if (($flags & 32) !== 0) $tmp['content'] = match (stream_get_contents($stream, 4 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -24771,10 +25169,6 @@ return $tmp; } private function deserialize_type_array_of_BotInlineResult(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24814,9 +25208,15 @@ if (($flags & 8) !== 0) $tmp['switch_webview'] = match (stream_get_contents($str default => self::err($stream) } ; -$tmp['results'] = self::deserialize_type_array_of_BotInlineResult($stream); +$tmp['results'] = self::deserialize_type_array_of_BotInlineResult(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['cache_time'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -24860,17 +25260,19 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['premium'] = ($flags & 1) !== 0; $tmp['hash'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['sets'] = self::deserialize_type_array_of_StickerSetCovered($stream); -$tmp['unread'] = self::deserialize_type_array_of_long($stream); +$tmp['sets'] = self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['unread'] = self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_HighScore(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24890,22 +25292,24 @@ default => self::err($stream) } private function deserialize_type_array_of_EmojiKeyword(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { '齈博' => [ '_' => 'emojiKeyword', 'keyword' => self::deserialize_string($stream), -'emoticons' => self::deserialize_type_array_of_string($stream), +'emoticons' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '"闣#' => [ '_' => 'emojiKeywordDeleted', 'keyword' => self::deserialize_string($stream), -'emoticons' => self::deserialize_type_array_of_string($stream), +'emoticons' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_EmojiKeyword(self::gzdecode($stream)), default => self::err($stream) @@ -24935,10 +25339,6 @@ return $tmp; } private function deserialize_type_array_of_MessagePeerVote(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -24977,7 +25377,10 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => $this->deserialize_type_MessagePeerVote(self::gzdecode($stream)), @@ -24992,19 +25395,24 @@ default => self::err($stream) $tmp = ['_' => 'messages.votesList']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['votes'] = self::deserialize_type_array_of_MessagePeerVote($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['votes'] = self::deserialize_type_array_of_MessagePeerVote(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); return $tmp; } private function deserialize_type_array_of_DialogFilter(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25025,20 +25433,32 @@ default => self::err($stream) $tmp = ['_' => 'messages.dialogFilters']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['tags_enabled'] = ($flags & 1) !== 0; -$tmp['filters'] = self::deserialize_type_array_of_DialogFilter($stream); +$tmp['filters'] = self::deserialize_type_array_of_DialogFilter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_messages___discussionMessage(mixed $stream): mixed { $tmp = ['_' => 'messages.discussionMessage']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['read_inbox_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 4) !== 0) $tmp['read_outbox_max_id'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['unread_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -25053,10 +25473,6 @@ return $tmp; } private function deserialize_type_array_of_ExportedChatInvite(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25075,10 +25491,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ChatAdminWithInvites(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25110,10 +25522,6 @@ return $tmp; } private function deserialize_type_array_of_ChatInviteImporter(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25128,10 +25536,6 @@ default => self::err($stream) } private function deserialize_type_array_of_SearchResultsCalendarPeriod(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25158,19 +25562,27 @@ $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['min_date'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['min_msg_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['offset_id_offset'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['periods'] = self::deserialize_type_array_of_SearchResultsCalendarPeriod($stream); -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['periods'] = self::deserialize_type_array_of_SearchResultsCalendarPeriod(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_SearchResultsPosition(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25192,9 +25604,18 @@ default => self::err($stream) $tmp = ['_' => 'messages.messageReactionsList']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['reactions'] = self::deserialize_type_array_of_MessagePeerReaction($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['reactions'] = self::deserialize_type_array_of_MessagePeerReaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); return $tmp; @@ -25281,10 +25702,6 @@ return $tmp; } private function deserialize_type_array_of_AvailableReaction(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25299,17 +25716,16 @@ default => self::err($stream) } private function deserialize_type_array_of_TextWithEntities(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { 'F1u' => [ '_' => 'textWithEntities', 'text' => self::deserialize_string($stream), -'entities' => self::deserialize_type_array_of_MessageEntity($stream), +'entities' => self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_TextWithEntities(self::gzdecode($stream)), default => self::err($stream) @@ -25321,10 +25737,6 @@ default => self::err($stream) } private function deserialize_type_array_of_AttachMenuPeerType(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25353,10 +25765,6 @@ default => self::err($stream) } private function deserialize_type_array_of_AttachMenuBotIconColor(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25387,16 +25795,15 @@ $tmp['icon'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -if (($flags & 1) !== 0) $tmp['colors'] = self::deserialize_type_array_of_AttachMenuBotIconColor($stream); +if (($flags & 1) !== 0) $tmp['colors'] = self::deserialize_type_array_of_AttachMenuBotIconColor(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_AttachMenuBotIcon(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25420,17 +25827,19 @@ $tmp['show_in_side_menu'] = ($flags & 16) !== 0; $tmp['side_menu_disclaimer_needed'] = ($flags & 32) !== 0; $tmp['bot_id'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['short_name'] = self::deserialize_string($stream); -if (($flags & 8) !== 0) $tmp['peer_types'] = self::deserialize_type_array_of_AttachMenuPeerType($stream); -$tmp['icons'] = self::deserialize_type_array_of_AttachMenuBotIcon($stream); +if (($flags & 8) !== 0) $tmp['peer_types'] = self::deserialize_type_array_of_AttachMenuPeerType(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['icons'] = self::deserialize_type_array_of_AttachMenuBotIcon(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_AttachMenuBot(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25488,10 +25897,6 @@ return $tmp; } private function deserialize_type_array_of_EmojiGroup(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25499,7 +25904,10 @@ return $tmp; '_' => 'emojiGroup', 'title' => self::deserialize_string($stream), 'icon_emoji_id' => unpack('q', stream_get_contents($stream, 8))[1], -'emoticons' => self::deserialize_type_array_of_string($stream), +'emoticons' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_EmojiGroup(self::gzdecode($stream)), default => self::err($stream) @@ -25545,10 +25953,6 @@ return $tmp; } private function deserialize_type_array_of_SavedDialog(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25587,10 +25991,6 @@ return $tmp; } private function deserialize_type_array_of_SavedReactionTag(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25605,10 +26005,6 @@ default => self::err($stream) } private function deserialize_type_array_of_EncryptedMessage(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25680,9 +26076,18 @@ $tmp['dialog'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -25692,10 +26097,22 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['final'] = ($flags & 1) !== 0; $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['timeout'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['new_messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['other_updates'] = self::deserialize_type_array_of_Update($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['new_messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['other_updates'] = self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -25739,10 +26156,6 @@ default => self::err($stream) } private function deserialize_type_array_of_FileHash(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25772,7 +26185,10 @@ $tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['expires'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['test_mode'] = match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }; $tmp['this_dc'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['dc_options'] = self::deserialize_type_array_of_DcOption($stream); +$tmp['dc_options'] = self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['dc_txt_domain_name'] = self::deserialize_string($stream); $tmp['chat_size_max'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['megagroup_size_max'] = unpack('l', stream_get_contents($stream, 4))[1]; @@ -25835,7 +26251,10 @@ $tmp['can_not_skip'] = ($flags & 1) !== 0; $tmp['id'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['version'] = self::deserialize_string($stream); $tmp['text'] = self::deserialize_string($stream); -$tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +$tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['document'] = match (stream_get_contents($stream, 4)) { 'q6' => [ '_' => 'documentEmpty', @@ -25862,10 +26281,6 @@ return $tmp; } private function deserialize_type_array_of_CdnPublicKey(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -25962,7 +26377,10 @@ default => self::err($stream) default => self::err($stream) } , -'covers' => self::deserialize_type_array_of_Document($stream), +'covers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '<唊' => [ '_' => 'stickerSetFullCovered', @@ -25972,9 +26390,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ']患' => [ '_' => 'stickerSetNoCovered', @@ -25992,10 +26419,6 @@ default => self::err($stream) } private function deserialize_type_array_of_RecentMeUrl(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26098,7 +26521,10 @@ default => self::err($stream) default => self::err($stream) } , -'covers' => self::deserialize_type_array_of_Document($stream), +'covers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '<唊' => [ '_' => 'stickerSetFullCovered', @@ -26108,9 +26534,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ']患' => [ '_' => 'stickerSetNoCovered', @@ -26139,16 +26574,15 @@ $tmp = ['_' => 'help.deepLinkInfo']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['update_app'] = ($flags & 1) !== 0; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_JSONObjectValue(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result[self::deserialize_string($stream)] = match (stream_get_contents($stream, 4)) { @@ -26156,8 +26590,14 @@ return $tmp; 'j^4' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, '心+' => unpack('d', stream_get_contents($stream, 8))[1], 'zv' => self::deserialize_string($stream), -'cGD' => $this->deserialize_type_array_of_JSONValue($stream), -'埡' => $this->deserialize_type_array_of_JSONObjectValue($stream), +'cGD' => $this->deserialize_type_array_of_JSONValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'埡' => $this->deserialize_type_array_of_JSONObjectValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), '+r0' => $this->deserialize_type_JSONValue(self::gzdecode($stream)), default => self::err($stream) } @@ -26168,10 +26608,6 @@ default => self::err($stream) } private static function deserialize_type_array_of_JSONValue(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26179,8 +26615,14 @@ default => self::err($stream) 'j^4' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, '心+' => unpack('d', stream_get_contents($stream, 8))[1], 'zv' => self::deserialize_string($stream), -'cGD' => $this->deserialize_type_array_of_JSONValue($stream), -'埡' => self::deserialize_type_array_of_JSONObjectValue($stream), +'cGD' => $this->deserialize_type_array_of_JSONValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'埡' => self::deserialize_type_array_of_JSONObjectValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), '+r0' => $this->deserialize_type_JSONValue(self::gzdecode($stream)), default => self::err($stream) } @@ -26195,8 +26637,14 @@ return match (stream_get_contents($stream, 4)) { 'j^4' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, '心+' => unpack('d', stream_get_contents($stream, 8))[1], 'zv' => self::deserialize_string($stream), -'cGD' => $this->deserialize_type_array_of_JSONValue($stream), -'埡' => self::deserialize_type_array_of_JSONObjectValue($stream), +'cGD' => $this->deserialize_type_array_of_JSONValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'埡' => self::deserialize_type_array_of_JSONObjectValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), '+r0' => $this->deserialize_type_JSONValue(self::gzdecode($stream)), default => self::err($stream) } @@ -26215,8 +26663,14 @@ $tmp['peer'] = match (stream_get_contents($stream, 4)) { default => self::err($stream) } ; -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2) !== 0) $tmp['psa_type'] = self::deserialize_string($stream); if (($flags & 4) !== 0) $tmp['psa_message'] = self::deserialize_string($stream); @@ -26226,17 +26680,19 @@ return $tmp; $tmp = ['_' => 'help.countryCode']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['country_code'] = self::deserialize_string($stream); -if (($flags & 1) !== 0) $tmp['prefixes'] = self::deserialize_type_array_of_string($stream); -if (($flags & 2) !== 0) $tmp['patterns'] = self::deserialize_type_array_of_string($stream); +if (($flags & 1) !== 0) $tmp['prefixes'] = self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 2) !== 0) $tmp['patterns'] = self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_help___CountryCode(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26256,16 +26712,15 @@ $tmp['hidden'] = ($flags & 1) !== 0; $tmp['iso2'] = self::deserialize_string($stream); $tmp['default_name'] = self::deserialize_string($stream); if (($flags & 2) !== 0) $tmp['name'] = self::deserialize_string($stream); -$tmp['country_codes'] = self::deserialize_type_array_of_help___CountryCode($stream); +$tmp['country_codes'] = self::deserialize_type_array_of_help___CountryCode(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_help___Country(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26294,10 +26749,6 @@ return $tmp; } private function deserialize_type_array_of_PremiumSubscriptionOption(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26314,13 +26765,25 @@ default => self::err($stream) return match (stream_get_contents($stream, 4)) { 'X!&' => [ '_' => 'help.peerColorSet', -'colors' => self::deserialize_type_array_of_int($stream), +'colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '螁}v' => [ '_' => 'help.peerColorProfileSet', -'palette_colors' => self::deserialize_type_array_of_int($stream), -'bg_colors' => self::deserialize_type_array_of_int($stream), -'story_colors' => self::deserialize_type_array_of_int($stream), +'palette_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'bg_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'story_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_help___PeerColorSet(self::gzdecode($stream)), default => self::err($stream) @@ -26335,13 +26798,25 @@ $tmp['color_id'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['colors'] = match (stream_get_contents($stream, 4)) { 'X!&' => [ '_' => 'help.peerColorSet', -'colors' => self::deserialize_type_array_of_int($stream), +'colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '螁}v' => [ '_' => 'help.peerColorProfileSet', -'palette_colors' => self::deserialize_type_array_of_int($stream), -'bg_colors' => self::deserialize_type_array_of_int($stream), -'story_colors' => self::deserialize_type_array_of_int($stream), +'palette_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'bg_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'story_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_help___PeerColorSet(self::gzdecode($stream)), default => self::err($stream) @@ -26350,13 +26825,25 @@ default => self::err($stream) if (($flags & 4) !== 0) $tmp['dark_colors'] = match (stream_get_contents($stream, 4)) { 'X!&' => [ '_' => 'help.peerColorSet', -'colors' => self::deserialize_type_array_of_int($stream), +'colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '螁}v' => [ '_' => 'help.peerColorProfileSet', -'palette_colors' => self::deserialize_type_array_of_int($stream), -'bg_colors' => self::deserialize_type_array_of_int($stream), -'story_colors' => self::deserialize_type_array_of_int($stream), +'palette_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'bg_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'story_colors' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_help___PeerColorSet(self::gzdecode($stream)), default => self::err($stream) @@ -26369,10 +26856,6 @@ return $tmp; } private function deserialize_type_array_of_help___PeerColorOption(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26387,10 +26870,6 @@ default => self::err($stream) } private function deserialize_type_array_of_Timezone(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -26410,10 +26889,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ChannelParticipant(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -27061,7 +27536,10 @@ default => self::err($stream) 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -27074,7 +27552,10 @@ default => self::err($stream) 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -27083,8 +27564,14 @@ default => self::err($stream) ], '底O' => [ '_' => 'channelAdminLogEventActionChangeUsernames', -'prev_value' => self::deserialize_type_array_of_string($stream), -'new_value' => self::deserialize_type_array_of_string($stream), +'prev_value' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_value' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'c' => [ '_' => 'channelAdminLogEventActionToggleForum', @@ -27322,10 +27809,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ChannelAdminLogEvent(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -27886,7 +28369,10 @@ default => self::err($stream) 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -27899,7 +28385,10 @@ default => self::err($stream) 'R' => self::deserialize_chatReactionsAll($stream), '7@f' => [ '_' => 'chatReactionsSome', -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ChatReactions(self::gzdecode($stream)), default => self::err($stream) @@ -27908,8 +28397,14 @@ default => self::err($stream) ], '底O' => [ '_' => 'channelAdminLogEventActionChangeUsernames', -'prev_value' => self::deserialize_type_array_of_string($stream), -'new_value' => self::deserialize_type_array_of_string($stream), +'prev_value' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_value' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'c' => [ '_' => 'channelAdminLogEventActionToggleForum', @@ -28261,7 +28756,10 @@ default => self::err($stream) } ; $tmp['message'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity($stream); +if (($flags & 2) !== 0) $tmp['entities'] = self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 2048) !== 0) $tmp['button_text'] = self::deserialize_string($stream); if (($flags & 128) !== 0) $tmp['sponsor_info'] = self::deserialize_string($stream); if (($flags & 256) !== 0) $tmp['additional_info'] = self::deserialize_string($stream); @@ -28270,10 +28768,6 @@ return $tmp; } private function deserialize_type_array_of_SponsoredMessage(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -28290,9 +28784,18 @@ default => self::err($stream) $tmp = ['_' => 'messages.sponsoredMessages']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; if (($flags & 1) !== 0) $tmp['posts_between'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['messages'] = self::deserialize_type_array_of_SponsoredMessage($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['messages'] = self::deserialize_type_array_of_SponsoredMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -28313,10 +28816,6 @@ return $tmp; } private function deserialize_type_array_of_SendAsPeer(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -28334,20 +28833,28 @@ $tmp = ['_' => 'messages.forumTopics']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['order_by_create_date'] = ($flags & 1) !== 0; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['topics'] = self::deserialize_type_array_of_ForumTopic($stream); -$tmp['messages'] = self::deserialize_type_array_of_Message($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['topics'] = self::deserialize_type_array_of_ForumTopic(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['messages'] = self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['pts'] = unpack('l', stream_get_contents($stream, 4))[1]; return $tmp; } private function deserialize_type_array_of_PaymentFormMethod(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -28366,10 +28873,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PaymentSavedCredentials(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -28402,14 +28905,20 @@ if (($flags & 32) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -28430,15 +28939,24 @@ if (($flags & 16) !== 0) $tmp['native_params'] = match (stream_get_contents($str default => self::err($stream) } ; -if (($flags & 64) !== 0) $tmp['additional_methods'] = self::deserialize_type_array_of_PaymentFormMethod($stream); +if (($flags & 64) !== 0) $tmp['additional_methods'] = self::deserialize_type_array_of_PaymentFormMethod(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['saved_info'] = match (stream_get_contents($stream, 4)) { '?' => self::deserialize_paymentRequestedInfo($stream), '+r0' => self::deserialize_type_PaymentRequestedInfo(self::gzdecode($stream)), default => self::err($stream) } ; -if (($flags & 2) !== 0) $tmp['saved_credentials'] = self::deserialize_type_array_of_PaymentSavedCredentials($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +if (($flags & 2) !== 0) $tmp['saved_credentials'] = self::deserialize_type_array_of_PaymentSavedCredentials(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -28448,7 +28966,10 @@ return match (stream_get_contents($stream, 4)) { '_' => 'shippingOption', 'id' => self::deserialize_string($stream), 'title' => self::deserialize_string($stream), -'prices' => self::deserialize_type_array_of_LabeledPrice($stream), +'prices' => self::deserialize_type_array_of_LabeledPrice(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_ShippingOption(self::gzdecode($stream)), default => self::err($stream) @@ -28470,14 +28991,20 @@ if (($flags & 4) !== 0) $tmp['photo'] = match (stream_get_contents($stream, 4)) 'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'じ' => [ '_' => 'webDocumentNoProxy', 'url' => self::deserialize_string($stream), 'size' => unpack('l', stream_get_contents($stream, 4))[1], 'mime_type' => self::deserialize_string($stream), -'attributes' => self::deserialize_type_array_of_DocumentAttribute($stream), +'attributes' => self::deserialize_type_array_of_DocumentAttribute(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_WebDocument(self::gzdecode($stream)), default => self::err($stream) @@ -28500,7 +29027,10 @@ if (($flags & 2) !== 0) $tmp['shipping'] = match (stream_get_contents($stream, 4 '_' => 'shippingOption', 'id' => self::deserialize_string($stream), 'title' => self::deserialize_string($stream), -'prices' => self::deserialize_type_array_of_LabeledPrice($stream), +'prices' => self::deserialize_type_array_of_LabeledPrice(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ShippingOption(self::gzdecode($stream)), default => self::err($stream) @@ -28510,16 +29040,15 @@ if (($flags & 8) !== 0) $tmp['tip_amount'] = unpack('q', stream_get_contents($st $tmp['currency'] = self::deserialize_string($stream); $tmp['total_amount'] = unpack('q', stream_get_contents($stream, 8))[1]; $tmp['credentials_title'] = self::deserialize_string($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_ShippingOption(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -28527,7 +29056,10 @@ return $tmp; '_' => 'shippingOption', 'id' => self::deserialize_string($stream), 'title' => self::deserialize_string($stream), -'prices' => self::deserialize_type_array_of_LabeledPrice($stream), +'prices' => self::deserialize_type_array_of_LabeledPrice(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ShippingOption(self::gzdecode($stream)), default => self::err($stream) @@ -28541,7 +29073,10 @@ default => self::err($stream) $tmp = ['_' => 'payments.validatedRequestedInfo']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; if (($flags & 1) !== 0) $tmp['id'] = self::deserialize_string($stream); -if (($flags & 2) !== 0) $tmp['shipping_options'] = self::deserialize_type_array_of_ShippingOption($stream); +if (($flags & 2) !== 0) $tmp['shipping_options'] = self::deserialize_type_array_of_ShippingOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -28576,7 +29111,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -28653,22 +29191,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -28755,22 +29277,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -28783,7 +29289,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -28819,7 +29328,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -28920,7 +29432,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -29006,7 +29521,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -29065,7 +29583,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -29093,9 +29614,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -29245,7 +29775,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -29286,7 +29819,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -29309,7 +29845,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -29332,7 +29871,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -29369,13 +29911,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -29418,7 +29966,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -29460,7 +30011,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -29473,7 +30027,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -29802,8 +30359,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -29818,7 +30381,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -29833,7 +30399,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -29868,7 +30437,10 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_Update(self::gzdecode($stream)), default => self::err($stream) @@ -29878,18 +30450,36 @@ default => self::err($stream) ], '[r' => [ '_' => 'updatesCombined', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq_start' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], '@B差' => [ '_' => 'updates', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -29914,10 +30504,6 @@ return $tmp; } private function deserialize_type_array_of_BankCardOpenUrl(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -29951,8 +30537,14 @@ if (($flags & 1) !== 0) $tmp['to_id'] = unpack('q', stream_get_contents($stream, $tmp['date'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['months'] = unpack('l', stream_get_contents($stream, 4))[1]; if (($flags & 2) !== 0) $tmp['used_date'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -29983,10 +30575,6 @@ return $tmp; } private function deserialize_type_array_of_GroupCallStreamChannel(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30088,10 +30676,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PostInteractionCounters(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30119,10 +30703,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StatsGroupTopPoster(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30142,10 +30722,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StatsGroupTopAdmin(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30166,10 +30742,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StatsGroupTopInviter(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30188,10 +30760,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PublicForward(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30240,10 +30808,19 @@ default => self::err($stream) $tmp = ['_' => 'stats.publicForwards']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['forwards'] = self::deserialize_type_array_of_PublicForward($stream); +$tmp['forwards'] = self::deserialize_type_array_of_PublicForward(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -30254,7 +30831,10 @@ return match (stream_get_contents($stream, 4)) { 'flags' => unpack('V', stream_get_contents($stream, 4))[1], 'title' => self::deserialize_string($stream), 'url' => self::deserialize_string($stream), -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => $this->deserialize_type_ExportedChatlistInvite(self::gzdecode($stream)), default => self::err($stream) @@ -30263,10 +30843,6 @@ default => self::err($stream) } private function deserialize_type_array_of_ExportedChatlistInvite(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30275,7 +30851,10 @@ default => self::err($stream) 'flags' => unpack('V', stream_get_contents($stream, 4))[1], 'title' => self::deserialize_string($stream), 'url' => self::deserialize_string($stream), -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ExportedChatlistInvite(self::gzdecode($stream)), default => self::err($stream) @@ -30290,18 +30869,23 @@ $tmp = ['_' => 'chatlists.chatlistInvite']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['title'] = self::deserialize_string($stream); if (($flags & 1) !== 0) $tmp['emoticon'] = self::deserialize_string($stream); -$tmp['peers'] = self::deserialize_type_array_of_Peer($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['peers'] = self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } private function deserialize_type_array_of_PeerStories(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30320,9 +30904,18 @@ $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['has_more'] = ($flags & 1) !== 0; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['state'] = self::deserialize_string($stream); -$tmp['peer_stories'] = self::deserialize_type_array_of_PeerStories($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['peer_stories'] = self::deserialize_type_array_of_PeerStories(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); $tmp['stealth_mode'] = match (stream_get_contents($stream, 4)) { '\'.q' => self::deserialize_storiesStealthMode($stream), '+r0' => self::deserialize_type_StoriesStealthMode(self::gzdecode($stream)), @@ -30403,10 +30996,6 @@ return $tmp; } private function deserialize_type_array_of_StoryView(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30428,19 +31017,24 @@ $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['views_count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['forwards_count'] = unpack('l', stream_get_contents($stream, 4))[1]; $tmp['reactions_count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['views'] = self::deserialize_type_array_of_StoryView($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['views'] = self::deserialize_type_array_of_StoryView(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); return $tmp; } private function deserialize_type_array_of_StoryViews(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30455,10 +31049,6 @@ default => self::err($stream) } private function deserialize_type_array_of_StoryReaction(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30535,19 +31125,24 @@ default => self::err($stream) $tmp = ['_' => 'stories.storyReactionsList']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['reactions'] = self::deserialize_type_array_of_StoryReaction($stream); -$tmp['chats'] = self::deserialize_type_array_of_Chat($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['reactions'] = self::deserialize_type_array_of_StoryReaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['chats'] = self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); return $tmp; } private function deserialize_type_array_of_Boost(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30564,9 +31159,15 @@ default => self::err($stream) $tmp = ['_' => 'premium.boostsList']; $flags = unpack('V', stream_get_contents($stream, 4))[1]; $tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; -$tmp['boosts'] = self::deserialize_type_array_of_Boost($stream); +$tmp['boosts'] = self::deserialize_type_array_of_Boost(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); if (($flags & 1) !== 0) $tmp['next_offset'] = self::deserialize_string($stream); -$tmp['users'] = self::deserialize_type_array_of_User($stream); +$tmp['users'] = self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -30590,10 +31191,6 @@ return $tmp; } private function deserialize_type_array_of_MyBoost(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30608,10 +31205,6 @@ default => self::err($stream) } private function deserialize_type_array_of_PrepaidGiveaway(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { $result []= match (stream_get_contents($stream, 4)) { @@ -30650,8 +31243,14 @@ default => self::err($stream) } ; $tmp['boost_url'] = self::deserialize_string($stream); -if (($flags & 8) !== 0) $tmp['prepaid_giveaways'] = self::deserialize_type_array_of_PrepaidGiveaway($stream); -if (($flags & 4) !== 0) $tmp['my_boost_slots'] = self::deserialize_type_array_of_int($stream); +if (($flags & 8) !== 0) $tmp['prepaid_giveaways'] = self::deserialize_type_array_of_PrepaidGiveaway(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); +if (($flags & 4) !== 0) $tmp['my_boost_slots'] = self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }); return $tmp; } @@ -30669,20 +31268,355 @@ $tmp['terms_url'] = self::deserialize_string($stream); return $tmp; } - private function deserialize_type_array_of_future_salt(mixed $stream): array { + private function deserialize_type_array_of_Bool(mixed $stream): array { - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; $result = []; for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= [ -'_' => 'future_salt', -'valid_since' => unpack('l', stream_get_contents($stream, 4))[1], -'valid_until' => unpack('l', stream_get_contents($stream, 4))[1], -'salt' => unpack('q', stream_get_contents($stream, 8))[1], -]; + $result []= match (stream_get_contents($stream, 4)) { +'7y' => [ +'_' => 'boolFalse', +], +'短r' => [ +'_' => 'boolTrue', +], +'+r0' => $this->deserialize_type_Bool(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_ContactStatus(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +';p' => [ +'_' => 'contactStatus', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'status' => match (stream_get_contents($stream, 4)) { +'IP ' => [ +'_' => 'userStatusEmpty', +], +'I9寤' => [ +'_' => 'userStatusOnline', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?p' . "\0" . '' => [ +'_' => 'userStatusOffline', +'was_online' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}{' => self::deserialize_userStatusRecently($stream), +'T' => self::deserialize_userStatusLastWeek($stream), +'we' => self::deserialize_userStatusLastMonth($stream), +'+r0' => self::deserialize_type_UserStatus(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => $this->deserialize_type_ContactStatus(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_SavedContact(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'V畿' => [ +'_' => 'savedPhoneContact', +'phone' => self::deserialize_string($stream), +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_SavedContact(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_ReceivedNotifyMessage(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'y' => [ +'_' => 'receivedNotifyMessage', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'flags' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_ReceivedNotifyMessage(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_MessageRange(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'S +' => [ +'_' => 'messageRange', +'min_id' => unpack('l', stream_get_contents($stream, 4))[1], +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_MessageRange(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_EmojiLanguage(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'aS' => [ +'_' => 'emojiLanguage', +'lang_code' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_EmojiLanguage(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_inputMessagesFilterPhoneCalls(mixed $stream): mixed { +$tmp = ['_' => 'inputMessagesFilterPhoneCalls']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['missed'] = ($flags & 1) !== 0; + +return $tmp; + } + private function deserialize_type_MessagesFilter(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'l攦W' => [ +'_' => 'inputMessagesFilterEmpty', +], +' ' => [ +'_' => 'inputMessagesFilterPhotos', +], +'e' => [ +'_' => 'inputMessagesFilterVideo', +], +'僽嬓' => [ +'_' => 'inputMessagesFilterPhotoVideo', +], +'鵚' => [ +'_' => 'inputMessagesFilterDocument', +], +'椲~' => [ +'_' => 'inputMessagesFilterUrl', +], +'e' => [ +'_' => 'inputMessagesFilterGif', +], +'鏨P' => [ +'_' => 'inputMessagesFilterVoice', +], +'崴7' => [ +'_' => 'inputMessagesFilterMusic', +], +'賄 :' => [ +'_' => 'inputMessagesFilterChatPhotos', +], +'h' => self::deserialize_inputMessagesFilterPhoneCalls($stream), +'|z' => [ +'_' => 'inputMessagesFilterRoundVoice', +], +'S渢' => [ +'_' => 'inputMessagesFilterRoundVideo', +], +'翬' => [ +'_' => 'inputMessagesFilterMyMentions', +], +' m' => [ +'_' => 'inputMessagesFilterGeo', +], +'萒' => [ +'_' => 'inputMessagesFilterContacts', +], +'Q' => [ +'_' => 'inputMessagesFilterPinned', +], +'+r0' => $this->deserialize_type_MessagesFilter(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + private function deserialize_messages___searchCounter(mixed $stream): mixed { +$tmp = ['_' => 'messages.searchCounter']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['inexact'] = ($flags & 2) !== 0; +$tmp['filter'] = match (stream_get_contents($stream, 4)) { +'l攦W' => [ +'_' => 'inputMessagesFilterEmpty', +], +' ' => [ +'_' => 'inputMessagesFilterPhotos', +], +'e' => [ +'_' => 'inputMessagesFilterVideo', +], +'僽嬓' => [ +'_' => 'inputMessagesFilterPhotoVideo', +], +'鵚' => [ +'_' => 'inputMessagesFilterDocument', +], +'椲~' => [ +'_' => 'inputMessagesFilterUrl', +], +'e' => [ +'_' => 'inputMessagesFilterGif', +], +'鏨P' => [ +'_' => 'inputMessagesFilterVoice', +], +'崴7' => [ +'_' => 'inputMessagesFilterMusic', +], +'賄 :' => [ +'_' => 'inputMessagesFilterChatPhotos', +], +'h' => self::deserialize_inputMessagesFilterPhoneCalls($stream), +'|z' => [ +'_' => 'inputMessagesFilterRoundVoice', +], +'S渢' => [ +'_' => 'inputMessagesFilterRoundVideo', +], +'翬' => [ +'_' => 'inputMessagesFilterMyMentions', +], +' m' => [ +'_' => 'inputMessagesFilterGeo', +], +'萒' => [ +'_' => 'inputMessagesFilterContacts', +], +'Q' => [ +'_' => 'inputMessagesFilterPinned', +], +'+r0' => self::deserialize_type_MessagesFilter(self::gzdecode($stream)), +default => self::err($stream) +} +; +$tmp['count'] = unpack('l', stream_get_contents($stream, 4))[1]; + +return $tmp; + } + private function deserialize_type_array_of_messages___SearchCounter(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'蕢' => self::deserialize_messages___searchCounter($stream), +'+r0' => $this->deserialize_type_messages___SearchCounter(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_DialogFilterSuggested(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'JMtw' => [ +'_' => 'dialogFilterSuggested', +'filter' => match (stream_get_contents($stream, 4)) { +';R琯' => self::deserialize_dialogFilter($stream), +'26' => [ +'_' => 'dialogFilterDefault', +], +'' => self::deserialize_dialogFilterChatlist($stream), +'+r0' => self::deserialize_type_DialogFilter(self::gzdecode($stream)), +default => self::err($stream) +} +, +'description' => self::deserialize_string($stream), +], +'+r0' => $this->deserialize_type_DialogFilterSuggested(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_ReadParticipantDate(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'r醥J' => [ +'_' => 'readParticipantDate', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => $this->deserialize_type_ReadParticipantDate(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_premiumGiftCodeOption(mixed $stream): mixed { +$tmp = ['_' => 'premiumGiftCodeOption']; +$flags = unpack('V', stream_get_contents($stream, 4))[1]; +$tmp['users'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['months'] = unpack('l', stream_get_contents($stream, 4))[1]; +if (($flags & 1) !== 0) $tmp['store_product'] = self::deserialize_string($stream); +if (($flags & 2) !== 0) $tmp['store_quantity'] = unpack('l', stream_get_contents($stream, 4))[1]; +$tmp['currency'] = self::deserialize_string($stream); +$tmp['amount'] = unpack('q', stream_get_contents($stream, 8))[1]; + +return $tmp; + } + private function deserialize_type_array_of_PremiumGiftCodeOption(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'+~%' => self::deserialize_premiumGiftCodeOption($stream), +'+r0' => $this->deserialize_type_PremiumGiftCodeOption(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + return $result; + + } + private function deserialize_type_array_of_LangPackLanguage(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= match (stream_get_contents($stream, 4)) { +'箤\扻' => self::deserialize_langPackLanguage($stream), +'+r0' => $this->deserialize_type_LangPackLanguage(self::gzdecode($stream)), +default => self::err($stream) +} +; } return $result; @@ -30751,13 +31685,25 @@ default => self::err($stream) '襖' => [ '_' => 'account.wallPapers', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'wallpapers' => self::deserialize_type_array_of_WallPaper($stream), +'wallpapers' => self::deserialize_type_array_of_WallPaper(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'ENP' => [ '_' => 'account.privacyRules', -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '蒍邽' => [ '_' => 'accountDaysTTL', @@ -30766,7 +31712,10 @@ default => self::err($stream) 'K' => [ '_' => 'account.authorizations', 'authorization_ttl_days' => unpack('l', stream_get_contents($stream, 4))[1], -'authorizations' => self::deserialize_type_array_of_Authorization($stream), +'authorizations' => self::deserialize_type_array_of_Authorization(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'P{' => self::deserialize_account___password($stream), '3\\' => self::deserialize_account___passwordSettings($stream), @@ -30777,11 +31726,14 @@ default => self::err($stream) ], '勼' => [ '_' => 'account.webAuthorizations', -'authorizations' => self::deserialize_type_array_of_WebAuthorization($stream), -'users' => self::deserialize_type_array_of_User($stream), -], -'警' => [ -'_' => 'vector', +'authorizations' => self::deserialize_type_array_of_WebAuthorization(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => self::deserialize_secureValue($stream), '.' => self::deserialize_account___authorizationForm($stream), @@ -30847,7 +31799,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -30924,22 +31879,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -31026,22 +31965,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -31054,7 +31977,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -31090,7 +32016,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -31191,7 +32120,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -31277,7 +32209,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -31336,7 +32271,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -31364,9 +32302,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -31516,7 +32463,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -31557,7 +32507,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -31580,7 +32533,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -31603,7 +32559,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -31640,13 +32599,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -31689,7 +32654,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -31731,7 +32699,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -31744,7 +32715,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -32073,8 +33047,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -32089,7 +33069,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -32104,7 +33087,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -32139,7 +33125,10 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_Update(self::gzdecode($stream)), default => self::err($stream) @@ -32149,18 +33138,36 @@ default => self::err($stream) ], '[r' => [ '_' => 'updatesCombined', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq_start' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], '@B差' => [ '_' => 'updates', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -32200,7 +33207,10 @@ default => self::err($stream) 'm=' => [ '_' => 'account.themes', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'themes' => self::deserialize_type_array_of_Theme($stream), +'themes' => self::deserialize_type_array_of_Theme(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '!榳' => self::deserialize_account___contentSettings($stream), '汧Ls' => self::deserialize_globalPrivacySettings($stream), @@ -32221,7 +33231,10 @@ default => self::err($stream) ',橧' => [ '_' => 'account.savedRingtones', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'ringtones' => self::deserialize_type_array_of_Document($stream), +'ringtones' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'm?&' => [ '_' => 'account.savedRingtone', @@ -32245,7 +33258,10 @@ default => self::err($stream) '宭' => [ '_' => 'account.emojiStatuses', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'statuses' => self::deserialize_type_array_of_EmojiStatus($stream), +'statuses' => self::deserialize_type_array_of_EmojiStatus(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'H' => [ '_' => 'emojiListNotModified', @@ -32253,7 +33269,10 @@ default => self::err($stream) 'z' => [ '_' => 'emojiList', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'document_id' => self::deserialize_type_array_of_long($stream), +'document_id' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>L' => [ '_' => 'account.autoSaveSettings', @@ -32275,14 +33294,29 @@ default => self::err($stream) default => self::err($stream) } , -'exceptions' => self::deserialize_type_array_of_AutoSaveException($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'exceptions' => self::deserialize_type_array_of_AutoSaveException(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '{鱧' => [ '_' => 'account.connectedBots', -'connected_bots' => self::deserialize_type_array_of_ConnectedBot($stream), -'users' => self::deserialize_type_array_of_User($stream), +'connected_bots' => self::deserialize_type_array_of_ConnectedBot(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '.m;' => [ '_' => 'users.userFull', @@ -32292,45 +33326,99 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '狻K' => [ '_' => 'contacts.contactsNotModified', ], 'B~鴀' => [ '_' => 'contacts.contacts', -'contacts' => self::deserialize_type_array_of_Contact($stream), +'contacts' => self::deserialize_type_array_of_Contact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'saved_count' => unpack('l', stream_get_contents($stream, 4))[1], -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ';苡' => [ '_' => 'contacts.importedContacts', -'imported' => self::deserialize_type_array_of_ImportedContact($stream), -'popular_invites' => self::deserialize_type_array_of_PopularContact($stream), -'retry_contacts' => self::deserialize_type_array_of_long($stream), -'users' => self::deserialize_type_array_of_User($stream), +'imported' => self::deserialize_type_array_of_ImportedContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'popular_invites' => self::deserialize_type_array_of_PopularContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'retry_contacts' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' ' => [ '_' => 'contacts.blocked', -'blocked' => self::deserialize_type_array_of_PeerBlocked($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'blocked' => self::deserialize_type_array_of_PeerBlocked(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'Af' => [ '_' => 'contacts.blockedSlice', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'blocked' => self::deserialize_type_array_of_PeerBlocked($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'blocked' => self::deserialize_type_array_of_PeerBlocked(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'M' => [ '_' => 'contacts.found', -'my_results' => self::deserialize_type_array_of_Peer($stream), -'results' => self::deserialize_type_array_of_Peer($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'my_results' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'results' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '斝' => [ '_' => 'contacts.resolvedPeer', @@ -32342,17 +33430,32 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '鰒&' => [ '_' => 'contacts.topPeersNotModified', ], '禿搆' => [ '_' => 'contacts.topPeers', -'categories' => self::deserialize_type_array_of_TopPeerCategoryPeers($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'categories' => self::deserialize_type_array_of_TopPeerCategoryPeers(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ',' => [ '_' => 'contacts.topPeersDisabled', @@ -32364,9 +33467,18 @@ default => self::err($stream) ], 'q' => [ '_' => 'messages.messages', -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '^hT:' => self::deserialize_messages___messagesSlice($stream), 'N漓' => self::deserialize_messages___channelMessages($stream), @@ -32376,18 +33488,42 @@ default => self::err($stream) ], '@l' => [ '_' => 'messages.dialogs', -'dialogs' => self::deserialize_type_array_of_Dialog($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '跲' => [ '_' => 'messages.dialogsSlice', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'dialogs' => self::deserialize_type_array_of_Dialog($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '樍' => [ '_' => 'messages.dialogsNotModified', @@ -32412,17 +33548,29 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'd' => [ '_' => 'messages.chats', -'chats' => self::deserialize_type_array_of_Chat($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'D' => [ '_' => 'messages.chatsSlice', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'chats' => self::deserialize_type_array_of_Chat($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '朒' => [ '_' => 'messages.chatFull', @@ -32433,8 +33581,14 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '5F熏' => [ '_' => 'messages.dhConfigNotModified', @@ -32501,7 +33655,10 @@ default => self::err($stream) '~鴞0' => [ '_' => 'messages.stickers', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'stickers' => self::deserialize_type_array_of_Document($stream), +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'f' => [ '_' => 'messages.allStickersNotModified', @@ -32509,7 +33666,10 @@ default => self::err($stream) '銜銓' => [ '_' => 'messages.allStickers', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'sets' => self::deserialize_type_array_of_StickerSet($stream), +'sets' => self::deserialize_type_array_of_StickerSet(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' c=' => [ '_' => 'messageMediaEmpty', @@ -32648,9 +33808,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -32660,13 +33829,25 @@ default => self::err($stream) ], '5' => [ '_' => 'messages.stickerSetInstallResultArchive', -'sets' => self::deserialize_type_array_of_StickerSetCovered($stream), +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'C囃' => [ '_' => 'messages.messageViews', -'views' => self::deserialize_type_array_of_MessageViews($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'views' => self::deserialize_type_array_of_MessageViews(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '兝\' => [ '_' => 'messages.savedGifsNotModified', @@ -32674,17 +33855,32 @@ default => self::err($stream) ' *' => [ '_' => 'messages.savedGifs', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'gifs' => self::deserialize_type_array_of_Document($stream), +'gifs' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '瓙!' => self::deserialize_messages___botResults($stream), '篊&' => self::deserialize_messages___messageEditData($stream), '乞X6' => self::deserialize_messages___botCallbackAnswer($stream), 'T櫚3' => [ '_' => 'messages.peerDialogs', -'dialogs' => self::deserialize_type_array_of_Dialog($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'state' => match (stream_get_contents($stream, 4)) { '>*l' => [ '_' => 'updates.state', @@ -32710,19 +33906,37 @@ default => self::err($stream) 'V|' => [ '_' => 'messages.recentStickers', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'stickers' => self::deserialize_type_array_of_Document($stream), -'dates' => self::deserialize_type_array_of_int($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'dates' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '怩O' => [ '_' => 'messages.archivedStickers', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'sets' => self::deserialize_type_array_of_StickerSetCovered($stream), +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ';' => [ '_' => 'messages.highScores', -'scores' => self::deserialize_type_array_of_HighScore($stream), -'users' => self::deserialize_type_array_of_User($stream), +'scores' => self::deserialize_type_array_of_HighScore(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '^' => [ '_' => 'messages.webPage', @@ -32735,8 +33949,14 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '茼' => [ '_' => 'messages.favedStickersNotModified', @@ -32744,8 +33964,14 @@ default => self::err($stream) ',' => [ '_' => 'messages.favedStickers', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'stickers' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '~I' => [ '_' => 'encryptedFileEmpty', @@ -32764,7 +33990,10 @@ default => self::err($stream) '' => [ '_' => 'messages.foundStickerSets', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'sets' => self::deserialize_type_array_of_StickerSetCovered($stream), +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'P槎' => [ '_' => 'chatOnlines', @@ -32775,7 +34004,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'keywords' => self::deserialize_type_array_of_EmojiKeyword($stream), +'keywords' => self::deserialize_type_array_of_EmojiKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'su' => [ '_' => 'emojiURL', @@ -32797,7 +34029,10 @@ default => self::err($stream) 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], 'offset' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '僩^' => self::deserialize_messages___historyImportParsed($stream), ' 畜' => [ @@ -32807,8 +34042,14 @@ default => self::err($stream) '-す' => [ '_' => 'messages.exportedChatInvites', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'invites' => self::deserialize_type_array_of_ExportedChatInvite($stream), -'users' => self::deserialize_type_array_of_User($stream), +'invites' => self::deserialize_type_array_of_ExportedChatInvite(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'P駑' => [ '_' => 'messages.exportedChatInvite', @@ -32822,7 +34063,10 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' . "\0" . '&"' => [ '_' => 'messages.exportedChatInviteReplaced', @@ -32846,19 +34090,34 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '莈' => [ '_' => 'messages.chatAdminsWithInvites', -'admins' => self::deserialize_type_array_of_ChatAdminWithInvites($stream), -'users' => self::deserialize_type_array_of_User($stream), +'admins' => self::deserialize_type_array_of_ChatAdminWithInvites(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' 偉' => [ '_' => 'messages.chatInviteImporters', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'importers' => self::deserialize_type_array_of_ChatInviteImporter($stream), -'users' => self::deserialize_type_array_of_User($stream), +'importers' => self::deserialize_type_array_of_ChatInviteImporter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '蔻' => [ '_' => 'messages.checkedHistoryImportPeer', @@ -32868,7 +34127,10 @@ default => self::err($stream) '+淞' => [ '_' => 'messages.searchResultsPositions', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'positions' => self::deserialize_type_array_of_SearchResultsPosition($stream), +'positions' => self::deserialize_type_array_of_SearchResultsPosition(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '-I1' => self::deserialize_messages___messageReactionsList($stream), 'W' => [ @@ -32877,11 +34139,17 @@ default => self::err($stream) ':v' => [ '_' => 'messages.availableReactions', 'hash' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_AvailableReaction($stream), +'reactions' => self::deserialize_type_array_of_AvailableReaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '23' => [ '_' => 'messages.translateResult', -'result' => self::deserialize_type_array_of_TextWithEntities($stream), +'result' => self::deserialize_type_array_of_TextWithEntities(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '\\嵅' => [ '_' => 'attachMenuBotsNotModified', @@ -32889,8 +34157,14 @@ default => self::err($stream) 'C<' => [ '_' => 'attachMenuBots', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'bots' => self::deserialize_type_array_of_AttachMenuBot($stream), -'users' => self::deserialize_type_array_of_User($stream), +'bots' => self::deserialize_type_array_of_AttachMenuBot(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'f' => [ '_' => 'attachMenuBotsBot', @@ -32900,7 +34174,10 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '|U ' => [ '_' => 'webViewResultUrl', @@ -32919,7 +34196,10 @@ default => self::err($stream) '襳' => [ '_' => 'messages.reactions', 'hash' => unpack('q', stream_get_contents($stream, 8))[1], -'reactions' => self::deserialize_type_array_of_Reaction($stream), +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' k媒' => [ '_' => 'defaultHistoryTTL', @@ -32931,7 +34211,10 @@ default => self::err($stream) 'K' => [ '_' => 'messages.emojiGroups', 'hash' => unpack('l', stream_get_contents($stream, 4))[1], -'groups' => self::deserialize_type_array_of_EmojiGroup($stream), +'groups' => self::deserialize_type_array_of_EmojiGroup(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '鶩P' => self::deserialize_messages___botApp($stream), ' O<' => [ @@ -32940,18 +34223,42 @@ default => self::err($stream) ], '!:' => [ '_' => 'messages.savedDialogs', -'dialogs' => self::deserialize_type_array_of_SavedDialog($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dialogs' => self::deserialize_type_array_of_SavedDialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '慣' => [ '_' => 'messages.savedDialogsSlice', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'dialogs' => self::deserialize_type_array_of_SavedDialog($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dialogs' => self::deserialize_type_array_of_SavedDialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '鋌' => [ '_' => 'messages.savedDialogsNotModified', @@ -32963,7 +34270,10 @@ default => self::err($stream) ' Y2' => [ '_' => 'messages.savedReactionTags', -'tags' => self::deserialize_type_array_of_SavedReactionTag($stream), +'tags' => self::deserialize_type_array_of_SavedReactionTag(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'hash' => unpack('q', stream_get_contents($stream, 8))[1], ], '拾;' => [ @@ -32972,10 +34282,22 @@ default => self::err($stream) ], 'f' => [ '_' => 'messages.quickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), -'messages' => self::deserialize_type_array_of_Message($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '[_' => [ '_' => 'messages.quickRepliesNotModified', @@ -32995,11 +34317,26 @@ default => self::err($stream) ], '' . "\0" . '' => [ '_' => 'updates.difference', -'new_messages' => self::deserialize_type_array_of_Message($stream), -'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage($stream), -'other_updates' => self::deserialize_type_array_of_Update($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'new_messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'other_updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'state' => match (stream_get_contents($stream, 4)) { '>*l' => [ '_' => 'updates.state', @@ -33016,11 +34353,26 @@ default => self::err($stream) ], '' => [ '_' => 'updates.differenceSlice', -'new_messages' => self::deserialize_type_array_of_Message($stream), -'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage($stream), -'other_updates' => self::deserialize_type_array_of_Update($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'new_messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'other_updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'intermediate_state' => match (stream_get_contents($stream, 4)) { '>*l' => [ '_' => 'updates.state', @@ -33054,18 +34406,33 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '古' => [ '_' => 'photos.photos', -'photos' => self::deserialize_type_array_of_Photo($stream), -'users' => self::deserialize_type_array_of_User($stream), +'photos' => self::deserialize_type_array_of_Photo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'T' => [ '_' => 'photos.photosSlice', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'photos' => self::deserialize_type_array_of_Photo($stream), -'users' => self::deserialize_type_array_of_User($stream), +'photos' => self::deserialize_type_array_of_Photo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'j ' => [ '_' => 'upload.file', @@ -33114,7 +34481,10 @@ default => self::err($stream) 'file_token' => self::deserialize_string($stream), 'encryption_key' => self::deserialize_string($stream), 'encryption_iv' => self::deserialize_string($stream), -'file_hashes' => self::deserialize_type_array_of_FileHash($stream), +'file_hashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '嘯!' => [ '_' => 'upload.webFile', @@ -33199,13 +34569,25 @@ default => self::err($stream) ' %W' => [ '_' => 'cdnConfig', -'public_keys' => self::deserialize_type_array_of_CdnPublicKey($stream), +'public_keys' => self::deserialize_type_array_of_CdnPublicKey(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'help.recentMeUrls', -'urls' => self::deserialize_type_array_of_RecentMeUrl($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'urls' => self::deserialize_type_array_of_RecentMeUrl(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '0' => [ '_' => 'help.termsOfServiceUpdateEmpty', @@ -33237,8 +34619,14 @@ default => self::err($stream) 'j^4' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, '心+' => unpack('d', stream_get_contents($stream, 8))[1], 'zv' => self::deserialize_string($stream), -'cGD' => $this->deserialize_type_array_of_JSONValue($stream), -'埡' => self::deserialize_type_array_of_JSONObjectValue($stream), +'cGD' => $this->deserialize_type_array_of_JSONValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'埡' => self::deserialize_type_array_of_JSONObjectValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), '+r0' => $this->deserialize_type_JSONValue(self::gzdecode($stream)), default => self::err($stream) } @@ -33267,7 +34655,10 @@ default => self::err($stream) 'X7' => [ '_' => 'help.userInfo', 'message' => self::deserialize_string($stream), -'entities' => self::deserialize_type_array_of_MessageEntity($stream), +'entities' => self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'author' => self::deserialize_string($stream), 'date' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -33281,17 +34672,35 @@ default => self::err($stream) ], 'u' => [ '_' => 'help.countriesList', -'countries' => self::deserialize_type_array_of_help___Country($stream), +'countries' => self::deserialize_type_array_of_help___Country(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'hash' => unpack('l', stream_get_contents($stream, 4))[1], ], 'u4S' => [ '_' => 'help.premiumPromo', 'status_text' => self::deserialize_string($stream), -'status_entities' => self::deserialize_type_array_of_MessageEntity($stream), -'video_sections' => self::deserialize_type_array_of_string($stream), -'videos' => self::deserialize_type_array_of_Document($stream), -'period_options' => self::deserialize_type_array_of_PremiumSubscriptionOption($stream), -'users' => self::deserialize_type_array_of_User($stream), +'status_entities' => self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'video_sections' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'videos' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'period_options' => self::deserialize_type_array_of_PremiumSubscriptionOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '昝+' => [ '_' => 'help.peerColorsNotModified', @@ -33299,22 +34708,37 @@ default => self::err($stream) '薠' . "\0" . '' => [ '_' => 'help.peerColors', 'hash' => unpack('l', stream_get_contents($stream, 4))[1], -'colors' => self::deserialize_type_array_of_help___PeerColorOption($stream), +'colors' => self::deserialize_type_array_of_help___PeerColorOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'help.timezonesListNotModified', ], 'q癃{' => [ '_' => 'help.timezonesList', -'timezones' => self::deserialize_type_array_of_Timezone($stream), +'timezones' => self::deserialize_type_array_of_Timezone(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'hash' => unpack('l', stream_get_contents($stream, 4))[1], ], '荃' => [ '_' => 'channels.channelParticipants', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'participants' => self::deserialize_type_array_of_ChannelParticipant($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'participants' => self::deserialize_type_array_of_ChannelParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '?' => [ '_' => 'channels.channelParticipantsNotModified', @@ -33346,8 +34770,14 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '侷' => [ '_' => 'exportedMessageLink', @@ -33356,15 +34786,33 @@ default => self::err($stream) ], 'M' => [ '_' => 'channels.adminLogResults', -'events' => self::deserialize_type_array_of_ChannelAdminLogEvent($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'events' => self::deserialize_type_array_of_ChannelAdminLogEvent(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '讒\'' => [ '_' => 'messages.inactiveChats', -'dates' => self::deserialize_type_array_of_int($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'dates' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '醟' => self::deserialize_messages___sponsoredMessages($stream), 'I9' => [ @@ -33372,9 +34820,18 @@ default => self::err($stream) ], 'が' => [ '_' => 'channels.sendAsPeers', -'peers' => self::deserialize_type_array_of_SendAsPeer($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'peers' => self::deserialize_type_array_of_SendAsPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'v6' => self::deserialize_messages___forumTopics($stream), 't}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), @@ -33430,7 +34887,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -33507,22 +34967,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -33609,22 +35053,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -33637,7 +35065,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -33673,7 +35104,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -33774,7 +35208,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -33860,7 +35297,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -33919,7 +35359,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -33947,9 +35390,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -34099,7 +35551,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -34140,7 +35595,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -34163,7 +35621,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -34186,7 +35647,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -34223,13 +35687,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -34272,7 +35742,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -34314,7 +35787,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -34327,7 +35803,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -34656,8 +36135,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -34672,7 +36157,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -34687,7 +36175,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -34722,7 +36213,10 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_Update(self::gzdecode($stream)), default => self::err($stream) @@ -34732,18 +36226,36 @@ default => self::err($stream) ], '[r' => [ '_' => 'updatesCombined', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq_start' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], '@B差' => [ '_' => 'updates', -'updates' => self::deserialize_type_array_of_Update($stream), -'users' => self::deserialize_type_array_of_User($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'date' => unpack('l', stream_get_contents($stream, 4))[1], 'seq' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -34761,7 +36273,10 @@ default => self::err($stream) 's$>' => [ '_' => 'payments.bankCardData', 'title' => self::deserialize_string($stream), -'open_urls' => self::deserialize_type_array_of_BankCardOpenUrl($stream), +'open_urls' => self::deserialize_type_array_of_BankCardOpenUrl(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '椊衩' => [ '_' => 'payments.exportedInvoice', @@ -34790,7 +36305,10 @@ default => self::err($stream) default => self::err($stream) } , -'users' => self::deserialize_type_array_of_User($stream), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '述r' => [ '_' => 'phone.groupCall', @@ -34806,25 +36324,52 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'participants_next_offset' => self::deserialize_string($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '貴w' => [ '_' => 'phone.groupParticipants', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'next_offset' => self::deserialize_string($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '?b撖' => [ '_' => 'phone.joinAsPeers', -'peers' => self::deserialize_type_array_of_Peer($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'X堲 ' => [ '_' => 'phone.exportedGroupCallInvite', @@ -34832,7 +36377,10 @@ default => self::err($stream) ], '餇' => [ '_' => 'phone.groupCallStreamChannels', -'channels' => self::deserialize_type_array_of_GroupCallStreamChannel($stream), +'channels' => self::deserialize_type_array_of_GroupCallStreamChannel(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '24-' => [ '_' => 'phone.groupCallStreamRtmpUrl', @@ -34844,7 +36392,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '箤\扻' => self::deserialize_langPackLanguage($stream), '召9' => [ @@ -35107,7 +36658,10 @@ default => self::err($stream) default => self::err($stream) } , -'recent_posts_interactions' => self::deserialize_type_array_of_PostInteractionCounters($stream), +'recent_posts_interactions' => self::deserialize_type_array_of_PostInteractionCounters(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '-螏'J' => [ '_' => 'statsGraphAsync', @@ -35282,10 +36836,22 @@ default => self::err($stream) default => self::err($stream) } , -'top_posters' => self::deserialize_type_array_of_StatsGroupTopPoster($stream), -'top_admins' => self::deserialize_type_array_of_StatsGroupTopAdmin($stream), -'top_inviters' => self::deserialize_type_array_of_StatsGroupTopInviter($stream), -'users' => self::deserialize_type_array_of_User($stream), +'top_posters' => self::deserialize_type_array_of_StatsGroupTopPoster(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'top_admins' => self::deserialize_type_array_of_StatsGroupTopAdmin(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'top_inviters' => self::deserialize_type_array_of_StatsGroupTopInviter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ' ~' => self::deserialize_stats___publicForwards($stream), '' => [ @@ -35368,7 +36934,10 @@ default => self::err($stream) 'flags' => unpack('V', stream_get_contents($stream, 4))[1], 'title' => self::deserialize_string($stream), 'url' => self::deserialize_string($stream), -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_ExportedChatlistInvite(self::gzdecode($stream)), default => self::err($stream) @@ -35380,28 +36949,61 @@ default => self::err($stream) 'flags' => unpack('V', stream_get_contents($stream, 4))[1], 'title' => self::deserialize_string($stream), 'url' => self::deserialize_string($stream), -'peers' => self::deserialize_type_array_of_Peer($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'フ' => [ '_' => 'chatlists.exportedInvites', -'invites' => self::deserialize_type_array_of_ExportedChatlistInvite($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'invites' => self::deserialize_type_array_of_ExportedChatlistInvite(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'Y' => [ '_' => 'chatlists.chatlistInviteAlready', 'filter_id' => unpack('l', stream_get_contents($stream, 4))[1], -'missing_peers' => self::deserialize_type_array_of_Peer($stream), -'already_peers' => self::deserialize_type_array_of_Peer($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'missing_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'already_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => self::deserialize_chatlists___chatlistInvite($stream), '' => [ '_' => 'chatlists.chatlistUpdates', -'missing_peers' => self::deserialize_type_array_of_Peer($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'missing_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '>X' => [ '_' => 'stories.allStoriesNotModified', @@ -35418,15 +37020,30 @@ default => self::err($stream) '贈]' => [ '_' => 'stories.stories', 'count' => unpack('l', stream_get_contents($stream, 4))[1], -'stories' => self::deserialize_type_array_of_StoryItem($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'stories' => self::deserialize_type_array_of_StoryItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '莐' => self::deserialize_stories___storyViewsList($stream), '' => [ '_' => 'stories.storyViews', -'views' => self::deserialize_type_array_of_StoryViews($stream), -'users' => self::deserialize_type_array_of_User($stream), +'views' => self::deserialize_type_array_of_StoryViews(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], ';?' => [ '_' => 'exportedStoryLink', @@ -35440,16 +37057,31 @@ default => self::err($stream) default => self::err($stream) } , -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'x_' => self::deserialize_stories___storyReactionsList($stream), ' self::deserialize_premium___boostsList($stream), '(' => [ '_' => 'premium.myBoosts', -'my_boosts' => self::deserialize_type_array_of_MyBoost($stream), -'chats' => self::deserialize_type_array_of_Chat($stream), -'users' => self::deserialize_type_array_of_User($stream), +'my_boosts' => self::deserialize_type_array_of_MyBoost(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'zBYI' => self::deserialize_premium___boostsStatus($stream), '柀' => [ @@ -35464,122 +37096,306 @@ default => self::err($stream) 'phone_number' => self::deserialize_string($stream), 'text' => self::deserialize_string($stream), ], -'c$' => [ -'_' => 'resPQ', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'pq' => self::deserialize_string($stream), -'server_public_key_fingerprints' => self::deserialize_type_array_of_strlong($stream), -], -']芐' => [ -'_' => 'server_DH_params_fail', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'new_nonce_hash' => stream_get_contents($stream, 16), -], -'\\駗' => [ -'_' => 'server_DH_params_ok', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'encrypted_answer' => self::deserialize_string($stream), -], -'4鼲;' => [ -'_' => 'dh_gen_ok', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'new_nonce_hash1' => stream_get_contents($stream, 16), -], -'軨' => [ -'_' => 'dh_gen_retry', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'new_nonce_hash2' => stream_get_contents($stream, 16), -], -'' => [ -'_' => 'dh_gen_fail', -'nonce' => stream_get_contents($stream, 16), -'server_nonce' => stream_get_contents($stream, 16), -'new_nonce_hash3' => stream_get_contents($stream, 16), -], -'n*^' => [ -'_' => 'rpc_answer_unknown', -], -'憋' => [ -'_' => 'rpc_answer_dropped_running', -], -'煥:' => [ -'_' => 'rpc_answer_dropped', -'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'seq_no' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => unpack('l', stream_get_contents($stream, 4))[1], -], -'P' => [ -'_' => 'future_salts', -'req_msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'now' => unpack('l', stream_get_contents($stream, 4))[1], -'salts' => self::deserialize_type_array_of_future_salt($stream), -], -'彎w4' => [ -'_' => 'pong', -'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'ping_id' => stream_get_contents($stream, 8), -], -'E ' => [ -'_' => 'destroy_session_ok', -'session_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'丮羒' => [ -'_' => 'destroy_session_none', -'session_id' => unpack('q', stream_get_contents($stream, 8))[1], -], -'+r0' => $this->deserialize_type_MethodResult(self::gzdecode($stream)), +'+r0' => $this->deserialize_type_MethodResult(self::gzdecode($stream), $method), +'警' => match ($method) { +'account.getAllSecureValues' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'account.getSecureValue' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'account.getMultiWallPapers' => self::deserialize_type_array_of_WallPaper(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users.getUsers' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users.getIsPremiumRequiredToContact' => self::deserialize_type_array_of_Bool(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getContactIDs' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getStatuses' => self::deserialize_type_array_of_ContactStatus(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getSaved' => self::deserialize_type_array_of_SavedContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.receivedMessages' => self::deserialize_type_array_of_ReceivedNotifyMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.receivedQueue' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getAttachedStickers' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSplitRanges' => self::deserialize_type_array_of_MessageRange(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getDialogUnreadMarks' => self::deserialize_type_array_of_DialogPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getEmojiKeywordsLanguages' => self::deserialize_type_array_of_EmojiLanguage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSearchCounters' => self::deserialize_type_array_of_messages___SearchCounter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSuggestedDialogFilters' => self::deserialize_type_array_of_DialogFilterSuggested(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getMessageReadParticipants' => self::deserialize_type_array_of_ReadParticipantDate(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getCustomEmojiDocuments' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'photos.deletePhotos' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.reuploadCdnFile' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.getCdnFileHashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.getFileHashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'bots.getBotCommands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'payments.getPremiumGiftCodeOptions' => self::deserialize_type_array_of_PremiumGiftCodeOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'phone.checkGroupCall' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'langpack.getStrings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'langpack.getLanguages' => self::deserialize_type_array_of_LangPackLanguage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chatlists.getLeaveChatlistSuggestions' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.deleteStories' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.togglePinned' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.readStories' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.getPeerMaxIDs' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +}, default => self::err($stream) } ; } - private function deserialize_type_array_of_MTmessage(mixed $stream): array { - - $stream = match(stream_get_contents($stream, 4)) { - '警' => $stream, - '+r0' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - $result []= [ -'_' => 'MTmessage', -'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'seqno' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => unpack('l', stream_get_contents($stream, 4))[1], -'body' => match (stream_get_contents($stream, 4)) { -'+r0' => $this->deserialize_type_Object(self::gzdecode($stream)), -default => self::err($stream) -} -, -]; + private function deserialize_rpc_result(mixed $stream): mixed { +$tmp = ['_' => 'rpc_result', 'req_msg_id' => $id = unpack('q', stream_get_contents($stream, 8))[1]]; +$message = $this->connection->outgoing_messages[$id]; + $method = $message->constructor; + if (isset($this->beforeMethodResponseDeserialization[$method])) { + foreach ($this->beforeMethodResponseDeserialization[$method] as $callback) { + $callback($method); } - return $result; - - } - private function deserialize_type_MTMessage(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { -'撣[' => [ -'_' => 'MTmessage', -'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'seqno' => unpack('l', stream_get_contents($stream, 4))[1], -'bytes' => unpack('l', stream_get_contents($stream, 4))[1], -'body' => match (stream_get_contents($stream, 4)) { -'+r0' => $this->deserialize_type_Object(self::gzdecode($stream)), + } + $tmp["result"] = match (stream_get_contents($stream, 4)) { +'%' . "\0" . '^' => self::deserialize_auth___sentCode($stream), +'D#' => [ +'_' => 'auth.sentCodeSuccess', +'authorization' => match (stream_get_contents($stream, 4)) { +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'+r0' => self::deserialize_type_auth___Authorization(self::gzdecode($stream)), default => self::err($stream) } , ], -'+r0' => $this->deserialize_type_MTMessage(self::gzdecode($stream)), +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'_〡' => self::deserialize_auth___loggedOut($stream), +'7y' => [ +'_' => 'boolFalse', +], +'短r' => [ +'_' => 'boolTrue', +], +'詹4' => [ +'_' => 'auth.exportedAuthorization', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'bytes' => self::deserialize_bytes($stream), +], +'以y' => [ +'_' => 'auth.passwordRecovery', +'email_pattern' => self::deserialize_string($stream), +], +'b' => [ +'_' => 'auth.loginToken', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +'token' => self::deserialize_bytes($stream), +], +'' => [ +'_' => 'auth.loginTokenMigrateTo', +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'token' => self::deserialize_bytes($stream), +], +'^\\ 9' => [ +'_' => 'auth.loginTokenSuccess', +'authorization' => match (stream_get_contents($stream, 4)) { +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'+r0' => self::deserialize_type_auth___Authorization(self::gzdecode($stream)), default => self::err($stream) } -; - } - public function deserialize_type_Object(mixed $stream): mixed { -return match (stream_get_contents($stream, 4)) { +, +], +'' => self::deserialize_authorization($stream), +' ,b' => self::deserialize_peerNotifySettings($stream), +'zK樓' => [ +'_' => 'userEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'8D\\!' => self::deserialize_user($stream), +'' => [ +'_' => 'account.wallPapersNotModified', +], +'襖' => [ +'_' => 'account.wallPapers', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'wallpapers' => self::deserialize_type_array_of_WallPaper(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'ENP' => [ +'_' => 'account.privacyRules', +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'蒍邽' => [ +'_' => 'accountDaysTTL', +'days' => unpack('l', stream_get_contents($stream, 4))[1], +], +'K' => [ +'_' => 'account.authorizations', +'authorization_ttl_days' => unpack('l', stream_get_contents($stream, 4))[1], +'authorizations' => self::deserialize_type_array_of_Authorization(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'P{' => self::deserialize_account___password($stream), +'3\\' => self::deserialize_account___passwordSettings($stream), +'4d' => [ +'_' => 'account.tmpPassword', +'tmp_password' => self::deserialize_bytes($stream), +'valid_until' => unpack('l', stream_get_contents($stream, 4))[1], +], +'勼' => [ +'_' => 'account.webAuthorizations', +'authorizations' => self::deserialize_type_array_of_WebAuthorization(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => self::deserialize_secureValue($stream), +'.' => self::deserialize_account___authorizationForm($stream), +'O' => [ +'_' => 'account.sentEmailCode', +'email_pattern' => self::deserialize_string($stream), +'length' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+' => [ +'_' => 'account.emailVerified', +'email' => self::deserialize_string($stream), +], +'a 頗' => [ +'_' => 'account.emailVerifiedLogin', +'email' => self::deserialize_string($stream), +'sent_code' => match (stream_get_contents($stream, 4)) { +'%' . "\0" . '^' => self::deserialize_auth___sentCode($stream), +'D#' => [ +'_' => 'auth.sentCodeSuccess', +'authorization' => match (stream_get_contents($stream, 4)) { +'埬.' => self::deserialize_auth___authorization($stream), +'~tD' => self::deserialize_auth___authorizationSignUpRequired($stream), +'+r0' => self::deserialize_type_auth___Authorization(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_auth___SentCode(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'E撤' => [ +'_' => 'account.takeout', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'~' => [ +'_' => 'updatesTooLong', +], +'醾;1' => self::deserialize_updateShortMessage($stream), +'伍mM' => self::deserialize_updateShortChatMessage($stream), +'醣啑' => [ +'_' => 'updateShort', +'update' => match (stream_get_contents($stream, 4)) { ' +' => [ '_' => 'updateNewMessage', @@ -35601,7 +37417,10 @@ default => self::err($stream) ], '撠 ' => [ '_' => 'updateDeleteMessages', -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -35678,22 +37497,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -35780,22 +37583,6 @@ default => self::err($stream) '_' => 'sendMessageEmojiInteractionSeen', 'emoticon' => self::deserialize_string($stream), ], -'/' => [ -'_' => 'sendMessageUploadVideoAction_17', -], -'o祆' => [ -'_' => 'sendMessageUploadAudioAction_17', -], -'< -' => [ -'_' => 'sendMessageUploadPhotoAction_17', -], -'擙' => [ -'_' => 'sendMessageUploadDocumentAction_17', -], -'$q' => [ -'_' => 'sendMessageUploadRoundAction_66', -], '+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), default => self::err($stream) } @@ -35808,7 +37595,10 @@ default => self::err($stream) '<' => [ '_' => 'chatParticipants', 'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], -'participants' => self::deserialize_type_array_of_ChatParticipant($stream), +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), @@ -35844,7 +37634,10 @@ default => self::err($stream) 'user_id' => unpack('q', stream_get_contents($stream, 8))[1], 'first_name' => self::deserialize_string($stream), 'last_name' => self::deserialize_string($stream), -'usernames' => self::deserialize_type_array_of_Username($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '麉Q' => self::deserialize_updateNewAuthorization($stream), '蝦' => [ @@ -35945,7 +37738,10 @@ default => self::err($stream) ], 's^' => [ '_' => 'updateDcOptions', -'dc_options' => self::deserialize_type_array_of_DcOption($stream), +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '髼職' => [ '_' => 'updateNotifySettings', @@ -36031,7 +37827,10 @@ default => self::err($stream) default => self::err($stream) } , -'rules' => self::deserialize_type_array_of_PrivacyRule($stream), +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '*I' => [ '_' => 'updateUserPhone', @@ -36090,7 +37889,10 @@ default => self::err($stream) '[-' => [ '_' => 'updateDeleteChannelMessages', 'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -36118,9 +37920,18 @@ default => self::err($stream) default => self::err($stream) } , -'packs' => self::deserialize_type_array_of_StickerPack($stream), -'keywords' => self::deserialize_type_array_of_StickerKeyword($stream), -'documents' => self::deserialize_type_array_of_Document($stream), +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '$齾' => [ '_' => 'messages.stickerSetNotModified', @@ -36270,7 +38081,10 @@ default => self::err($stream) 'lang_code' => self::deserialize_string($stream), 'from_version' => unpack('l', stream_get_contents($stream, 4))[1], 'version' => unpack('l', stream_get_contents($stream, 4))[1], -'strings' => self::deserialize_type_array_of_LangPackString($stream), +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), default => self::err($stream) @@ -36311,7 +38125,10 @@ default => self::err($stream) ], ' 6' => [ '_' => 'updateFolderPeers', -'folder_peers' => self::deserialize_type_array_of_FolderPeer($stream), +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'pts' => unpack('l', stream_get_contents($stream, 4))[1], 'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], ], @@ -36334,7 +38151,10 @@ default => self::err($stream) ], '區秩' => [ '_' => 'updatePeerLocated', -'peers' => self::deserialize_type_array_of_PeerLocated($stream), +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '9' => [ '_' => 'updateNewScheduledMessage', @@ -36357,7 +38177,10 @@ default => self::err($stream) default => self::err($stream) } , -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '' => [ '_' => 'updateTheme', @@ -36394,13 +38217,19 @@ default => self::err($stream) default => self::err($stream) } , -'options' => self::deserialize_type_array_of_bytes($stream), +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], '}&' => self::deserialize_updateDialogFilter($stream), '!蚰' => [ '_' => 'updateDialogFilterOrder', -'order' => self::deserialize_type_array_of_int($stream), +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'O5' => [ '_' => 'updateDialogFilters', @@ -36443,7 +38272,10 @@ default => self::err($stream) default => self::err($stream) } , -'participants' => self::deserialize_type_array_of_GroupCallParticipant($stream), +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'version' => unpack('l', stream_get_contents($stream, 4))[1], ], '' . "\0" . 'E' => [ @@ -36485,7 +38317,10 @@ default => self::err($stream) } , 'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], -'commands' => self::deserialize_type_array_of_BotCommand($stream), +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '袺cp' => [ '_' => 'updatePendingJoinRequests', @@ -36498,7 +38333,10 @@ default => self::err($stream) } , 'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], -'recent_requesters' => self::deserialize_type_array_of_long($stream), +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '拋' => [ '_' => 'updateBotChatInviteRequester', @@ -36827,8 +38665,14 @@ default => self::err($stream) default => self::err($stream) } , -'old_reactions' => self::deserialize_type_array_of_Reaction($stream), -'new_reactions' => self::deserialize_type_array_of_Reaction($stream), +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 'Yw ' => [ @@ -36843,7 +38687,10 @@ default => self::err($stream) , 'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], 'date' => unpack('l', stream_get_contents($stream, 4))[1], -'reactions' => self::deserialize_type_array_of_ReactionCount($stream), +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'qts' => unpack('l', stream_get_contents($stream, 4))[1], ], 't祚' => self::deserialize_updateSavedDialogPinned($stream), @@ -36858,7 +38705,10 @@ default => self::err($stream) ' G' => [ '_' => 'updateQuickReplies', -'quick_replies' => self::deserialize_type_array_of_QuickReply($stream), +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '=' => [ '_' => 'updateNewQuickReply', @@ -36893,14 +38743,5533 @@ default => self::err($stream) '侻oV' => [ '_' => 'updateDeleteQuickReplyMessages', 'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], -'messages' => self::deserialize_type_array_of_int($stream), +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => self::deserialize_type_Update(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'[r' => [ +'_' => 'updatesCombined', +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq_start' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +], +'@B差' => [ +'_' => 'updates', +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => self::deserialize_updateShortSentMessage($stream), +'篳7' => self::deserialize_wallPaper($stream), +'A' => self::deserialize_wallPaperNoFile($stream), +'&珅c' => [ +'_' => 'account.autoDownloadSettings', +'low' => match (stream_get_contents($stream, 4)) { +'(v朮' => self::deserialize_autoDownloadSettings($stream), +'+r0' => self::deserialize_type_AutoDownloadSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'medium' => match (stream_get_contents($stream, 4)) { +'(v朮' => self::deserialize_autoDownloadSettings($stream), +'+r0' => self::deserialize_type_AutoDownloadSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'high' => match (stream_get_contents($stream, 4)) { +'(v朮' => self::deserialize_autoDownloadSettings($stream), +'+r0' => self::deserialize_type_AutoDownloadSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'q6' => [ +'_' => 'documentEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'媊' => self::deserialize_document($stream), +'狿' => self::deserialize_theme($stream), +'"' => [ +'_' => 'account.themesNotModified', +], +'m=' => [ +'_' => 'account.themes', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'themes' => self::deserialize_type_array_of_Theme(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'!榳' => self::deserialize_account___contentSettings($stream), +'汧Ls' => self::deserialize_globalPrivacySettings($stream), +'aw' => [ +'_' => 'account.resetPasswordFailedWait', +'retry_date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}毉' => [ +'_' => 'account.resetPasswordRequestedWait', +'until_date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'>&' => [ +'_' => 'account.resetPasswordOk', +], +'梯籜' => [ +'_' => 'account.savedRingtonesNotModified', +], +',橧' => [ +'_' => 'account.savedRingtones', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'ringtones' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'m?&' => [ +'_' => 'account.savedRingtone', +], +'業0' => [ +'_' => 'account.savedRingtoneConverted', +'document' => match (stream_get_contents($stream, 4)) { +'q6' => [ +'_' => 'documentEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'媊' => self::deserialize_document($stream), +'+r0' => self::deserialize_type_Document(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'E' => [ +'_' => 'account.emojiStatusesNotModified', +], +'宭' => [ +'_' => 'account.emojiStatuses', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'statuses' => self::deserialize_type_array_of_EmojiStatus(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'H' => [ +'_' => 'emojiListNotModified', +], +'z' => [ +'_' => 'emojiList', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'document_id' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'>L' => [ +'_' => 'account.autoSaveSettings', +'users_settings' => match (stream_get_contents($stream, 4)) { +'4H' => self::deserialize_autoSaveSettings($stream), +'+r0' => self::deserialize_type_AutoSaveSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats_settings' => match (stream_get_contents($stream, 4)) { +'4H' => self::deserialize_autoSaveSettings($stream), +'+r0' => self::deserialize_type_AutoSaveSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'broadcasts_settings' => match (stream_get_contents($stream, 4)) { +'4H' => self::deserialize_autoSaveSettings($stream), +'+r0' => self::deserialize_type_AutoSaveSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'exceptions' => self::deserialize_type_array_of_AutoSaveException(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'{鱧' => [ +'_' => 'account.connectedBots', +'connected_bots' => self::deserialize_type_array_of_ConnectedBot(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'.m;' => [ +'_' => 'users.userFull', +'full_user' => match (stream_get_contents($stream, 4)) { +'>"' => self::deserialize_userFull($stream), +'+r0' => self::deserialize_type_UserFull(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'狻K' => [ +'_' => 'contacts.contactsNotModified', +], +'B~鴀' => [ +'_' => 'contacts.contacts', +'contacts' => self::deserialize_type_array_of_Contact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'saved_count' => unpack('l', stream_get_contents($stream, 4))[1], +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +';苡' => [ +'_' => 'contacts.importedContacts', +'imported' => self::deserialize_type_array_of_ImportedContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'popular_invites' => self::deserialize_type_array_of_PopularContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'retry_contacts' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +' +' => [ +'_' => 'contacts.blocked', +'blocked' => self::deserialize_type_array_of_PeerBlocked(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'Af' => [ +'_' => 'contacts.blockedSlice', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'blocked' => self::deserialize_type_array_of_PeerBlocked(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'M' => [ +'_' => 'contacts.found', +'my_results' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'results' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'斝' => [ +'_' => 'contacts.resolvedPeer', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'鰒&' => [ +'_' => 'contacts.topPeersNotModified', +], +'禿搆' => [ +'_' => 'contacts.topPeers', +'categories' => self::deserialize_type_array_of_TopPeerCategoryPeers(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +',' => [ +'_' => 'contacts.topPeersDisabled', +], +'澤' => [ +'_' => 'exportedContactToken', +'url' => self::deserialize_string($stream), +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'q' => [ +'_' => 'messages.messages', +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'^hT:' => self::deserialize_messages___messagesSlice($stream), +'N漓' => self::deserialize_messages___channelMessages($stream), +'!_St' => [ +'_' => 'messages.messagesNotModified', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'@l' => [ +'_' => 'messages.dialogs', +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'跲' => [ +'_' => 'messages.dialogsSlice', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'樍' => [ +'_' => 'messages.dialogsNotModified', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'messages.affectedMessages', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'尃\\' => [ +'_' => 'messages.affectedHistory', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Mh' => [ +'_' => 'messages.peerSettings', +'settings' => match (stream_get_contents($stream, 4)) { +' ' => self::deserialize_peerSettings($stream), +'+r0' => self::deserialize_type_PeerSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'d' => [ +'_' => 'messages.chats', +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'D' => [ +'_' => 'messages.chatsSlice', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'朒' => [ +'_' => 'messages.chatFull', +'full_chat' => match (stream_get_contents($stream, 4)) { +'8蚕' => self::deserialize_chatFull($stream), +'劫錮' => self::deserialize_channelFull($stream), +'+r0' => self::deserialize_type_ChatFull(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'5F熏' => [ +'_' => 'messages.dhConfigNotModified', +'random' => self::deserialize_bytes($stream), +], +'",' => [ +'_' => 'messages.dhConfig', +'g' => unpack('l', stream_get_contents($stream, 4))[1], +'p' => self::deserialize_bytes($stream), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +'random' => self::deserialize_bytes($stream), +], +'嚇' => [ +'_' => 'encryptedChatEmpty', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'SY淬' => [ +'_' => 'encryptedChatWaiting', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L渫H' => self::deserialize_encryptedChatRequested($stream), +'л簜' => [ +'_' => 'encryptedChat', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +'g_a_or_b' => self::deserialize_bytes($stream), +'key_fingerprint' => stream_get_contents($stream, 8), +], +'E|' => self::deserialize_encryptedChatDiscarded($stream), +'5V' => [ +'_' => 'messages.sentEncryptedMessage', +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'2' => [ +'_' => 'messages.sentEncryptedFile', +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'file' => match (stream_get_contents($stream, 4)) { +'~I' => [ +'_' => 'encryptedFileEmpty', +], +'' . "\0" . '' => [ +'_' => 'encryptedFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'key_fingerprint' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EncryptedFile(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'"t' => [ +'_' => 'messages.stickersNotModified', +], +'~鴞0' => [ +'_' => 'messages.stickers', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'f' => [ +'_' => 'messages.allStickersNotModified', +], +'銜銓' => [ +'_' => 'messages.allStickers', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'sets' => self::deserialize_type_array_of_StickerSet(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +' c=' => [ +'_' => 'messageMediaEmpty', +], +'脝Qi' => self::deserialize_messageMediaPhoto($stream), +'t婄V' => [ +'_' => 'messageMediaGeo', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'I)2p' => [ +'_' => 'messageMediaContact', +'phone_number' => self::deserialize_string($stream), +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'vcard' => self::deserialize_string($stream), +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'' => [ +'_' => 'messageMediaUnsupported', +], +'-酚L' => self::deserialize_messageMediaDocument($stream), +'; 鵚' => self::deserialize_messageMediaWebPage($stream), +'?S.' => [ +'_' => 'messageMediaVenue', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +'title' => self::deserialize_string($stream), +'address' => self::deserialize_string($stream), +'provider' => self::deserialize_string($stream), +'venue_id' => self::deserialize_string($stream), +'venue_type' => self::deserialize_string($stream), +], +'欲' => [ +'_' => 'messageMediaGame', +'game' => match (stream_get_contents($stream, 4)) { +';e虌' => self::deserialize_game($stream), +'+r0' => self::deserialize_type_Game(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'笒仳' => self::deserialize_messageMediaInvoice($stream), +'f讖' => self::deserialize_messageMediaGeoLive($stream), +'誸K' => [ +'_' => 'messageMediaPoll', +'poll' => match (stream_get_contents($stream, 4)) { +'a' => self::deserialize_poll($stream), +'+r0' => self::deserialize_type_Poll(self::gzdecode($stream)), +default => self::err($stream) +} +, +'results' => match (stream_get_contents($stream, 4)) { +' $朡' => self::deserialize_pollResults($stream), +'+r0' => self::deserialize_type_PollResults(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'憉?' => [ +'_' => 'messageMediaDice', +'value' => unpack('l', stream_get_contents($stream, 4))[1], +'emoticon' => self::deserialize_string($stream), +], +'b玕' => self::deserialize_messageMediaStory($stream), +'俾' => self::deserialize_messageMediaGiveaway($stream), +'h' => self::deserialize_messageMediaGiveawayResults($stream), +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'|mhZ' => [ +'_' => 'chatInviteAlready', +'chat' => match (stream_get_contents($stream, 4)) { +'e(V)' => [ +'_' => 'chatEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'V藨A' => self::deserialize_chat($stream), +'均e' => [ +'_' => 'chatForbidden', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'title' => self::deserialize_string($stream), +], +' +' => self::deserialize_channel($stream), +'' => self::deserialize_channelForbidden($stream), +'+r0' => self::deserialize_type_Chat(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'@憵' => self::deserialize_chatInvite($stream), +'豹\ia' => [ +'_' => 'chatInvitePeek', +'chat' => match (stream_get_contents($stream, 4)) { +'e(V)' => [ +'_' => 'chatEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'V藨A' => self::deserialize_chat($stream), +'均e' => [ +'_' => 'chatForbidden', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'title' => self::deserialize_string($stream), +], +' +' => self::deserialize_channel($stream), +'' => self::deserialize_channelForbidden($stream), +'+r0' => self::deserialize_type_Chat(self::gzdecode($stream)), +default => self::err($stream) +} +, +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?n' => [ +'_' => 'messages.stickerSet', +'set' => match (stream_get_contents($stream, 4)) { +'逴-' => self::deserialize_stickerSet($stream), +'+r0' => self::deserialize_type_StickerSet(self::gzdecode($stream)), +default => self::err($stream) +} +, +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'$齾' => [ +'_' => 'messages.stickerSetNotModified', +], +'(d8' => [ +'_' => 'messages.stickerSetInstallResultSuccess', +], +'5' => [ +'_' => 'messages.stickerSetInstallResultArchive', +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'C囃' => [ +'_' => 'messages.messageViews', +'views' => self::deserialize_type_array_of_MessageViews(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'兝\' => [ +'_' => 'messages.savedGifsNotModified', +], +' *' => [ +'_' => 'messages.savedGifs', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'gifs' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'瓙!' => self::deserialize_messages___botResults($stream), +'篊&' => self::deserialize_messages___messageEditData($stream), +'乞X6' => self::deserialize_messages___botCallbackAnswer($stream), +'T櫚3' => [ +'_' => 'messages.peerDialogs', +'dialogs' => self::deserialize_type_array_of_Dialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'state' => match (stream_get_contents($stream, 4)) { +'>*l' => [ +'_' => 'updates.state', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +'unread_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_updates___State(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'f 剺' => [ +'_' => 'messages.featuredStickersNotModified', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +')8' => self::deserialize_messages___featuredStickers($stream), +' ' => [ +'_' => 'messages.recentStickersNotModified', +], +'V|' => [ +'_' => 'messages.recentStickers', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'dates' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'怩O' => [ +'_' => 'messages.archivedStickers', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +';' => [ +'_' => 'messages.highScores', +'scores' => self::deserialize_type_array_of_HighScore(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'^' => [ +'_' => 'messages.webPage', +'webpage' => match (stream_get_contents($stream, 4)) { +'!' => self::deserialize_webPageEmpty($stream), +'G>扆' => self::deserialize_webPagePending($stream), +'淳' => self::deserialize_webPage($stream), +'s' => self::deserialize_webPageNotModified($stream), +'+r0' => self::deserialize_type_WebPage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'茼' => [ +'_' => 'messages.favedStickersNotModified', +], +',' => [ +'_' => 'messages.favedStickers', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stickers' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'~I' => [ +'_' => 'encryptedFileEmpty', +], +'' . "\0" . '' => [ +'_' => 'encryptedFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'key_fingerprint' => unpack('l', stream_get_contents($stream, 4))[1], +], +']貿 ' => [ +'_' => 'messages.foundStickerSetsNotModified', +], +'' => [ +'_' => 'messages.foundStickerSets', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'sets' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'P槎' => [ +'_' => 'chatOnlines', +'onlines' => unpack('l', stream_get_contents($stream, 4))[1], +], +'窮ツ\' => [ +'_' => 'emojiKeywordsDifference', +'lang_code' => self::deserialize_string($stream), +'from_version' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +'keywords' => self::deserialize_type_array_of_EmojiKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'su' => [ +'_' => 'emojiURL', +'url' => self::deserialize_string($stream), +], +':' => self::deserialize_urlAuthResultRequest($stream), +'N' => [ +'_' => 'urlAuthResultAccepted', +'url' => self::deserialize_string($stream), +], +'詎' => [ +'_' => 'urlAuthResultDefault', +], +'NHH' => self::deserialize_messages___votesList($stream), +'7*' => self::deserialize_messages___dialogFilters($stream), +'4' => self::deserialize_messages___discussionMessage($stream), +'l>' => [ +'_' => 'messages.affectedFoundMessages', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +'offset' => unpack('l', stream_get_contents($stream, 4))[1], +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'僩^' => self::deserialize_messages___historyImportParsed($stream), +' 畜' => [ +'_' => 'messages.historyImport', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'-す' => [ +'_' => 'messages.exportedChatInvites', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'invites' => self::deserialize_type_array_of_ExportedChatInvite(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'P駑' => [ +'_' => 'messages.exportedChatInvite', +'invite' => match (stream_get_contents($stream, 4)) { +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'+r0' => self::deserialize_type_ExportedChatInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' . "\0" . '&"' => [ +'_' => 'messages.exportedChatInviteReplaced', +'invite' => match (stream_get_contents($stream, 4)) { +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'+r0' => self::deserialize_type_ExportedChatInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +'new_invite' => match (stream_get_contents($stream, 4)) { +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'+r0' => self::deserialize_type_ExportedChatInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'莈' => [ +'_' => 'messages.chatAdminsWithInvites', +'admins' => self::deserialize_type_array_of_ChatAdminWithInvites(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +' +偉' => [ +'_' => 'messages.chatInviteImporters', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'importers' => self::deserialize_type_array_of_ChatInviteImporter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'蔻' => [ +'_' => 'messages.checkedHistoryImportPeer', +'confirm_text' => self::deserialize_string($stream), +], +'<漊' => self::deserialize_messages___searchResultsCalendar($stream), +'+淞' => [ +'_' => 'messages.searchResultsPositions', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'positions' => self::deserialize_type_array_of_SearchResultsPosition(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'-I1' => self::deserialize_messages___messageReactionsList($stream), +'W' => [ +'_' => 'messages.availableReactionsNotModified', +], +':v' => [ +'_' => 'messages.availableReactions', +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +'reactions' => self::deserialize_type_array_of_AvailableReaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'23' => [ +'_' => 'messages.translateResult', +'result' => self::deserialize_type_array_of_TextWithEntities(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'\\嵅' => [ +'_' => 'attachMenuBotsNotModified', +], +'C<' => [ +'_' => 'attachMenuBots', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'bots' => self::deserialize_type_array_of_AttachMenuBot(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'f' => [ +'_' => 'attachMenuBotsBot', +'bot' => match (stream_get_contents($stream, 4)) { +' ' => self::deserialize_attachMenuBot($stream), +'+r0' => self::deserialize_type_AttachMenuBot(self::gzdecode($stream)), +default => self::err($stream) +} +, +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'|U ' => [ +'_' => 'webViewResultUrl', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +'url' => self::deserialize_string($stream), +], +'裯/' => [ +'_' => 'simpleWebViewResultUrl', +'url' => self::deserialize_string($stream), +], +'Q ' => self::deserialize_webViewMessageSent($stream), +'W椐' => self::deserialize_messages___transcribedAudio($stream), +'葾o' => [ +'_' => 'messages.reactionsNotModified', +], +'襳' => [ +'_' => 'messages.reactions', +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +'reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +' k媒' => [ +'_' => 'defaultHistoryTTL', +'period' => unpack('l', stream_get_contents($stream, 4))[1], +], +'韭o' => [ +'_' => 'messages.emojiGroupsNotModified', +], +'K' => [ +'_' => 'messages.emojiGroups', +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +'groups' => self::deserialize_type_array_of_EmojiGroup(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'鶩P' => self::deserialize_messages___botApp($stream), +' O<' => [ +'_' => 'appWebViewResultUrl', +'url' => self::deserialize_string($stream), +], +'!:' => [ +'_' => 'messages.savedDialogs', +'dialogs' => self::deserialize_type_array_of_SavedDialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'慣' => [ +'_' => 'messages.savedDialogsSlice', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'dialogs' => self::deserialize_type_array_of_SavedDialog(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'鋌' => [ +'_' => 'messages.savedDialogsNotModified', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'駺' => [ +'_' => 'messages.savedReactionTagsNotModified', +], +' +Y2' => [ +'_' => 'messages.savedReactionTags', +'tags' => self::deserialize_type_array_of_SavedReactionTag(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'拾;' => [ +'_' => 'outboxReadDate', +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'f' => [ +'_' => 'messages.quickReplies', +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'[_' => [ +'_' => 'messages.quickRepliesNotModified', +], +'>*l' => [ +'_' => 'updates.state', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +'unread_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'8「]' => [ +'_' => 'updates.differenceEmpty', +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' . "\0" . '' => [ +'_' => 'updates.difference', +'new_messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'other_updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'state' => match (stream_get_contents($stream, 4)) { +'>*l' => [ +'_' => 'updates.state', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +'unread_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_updates___State(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'' => [ +'_' => 'updates.differenceSlice', +'new_messages' => self::deserialize_type_array_of_Message(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_encrypted_messages' => self::deserialize_type_array_of_EncryptedMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'other_updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'intermediate_state' => match (stream_get_contents($stream, 4)) { +'>*l' => [ +'_' => 'updates.state', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +'unread_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_updates___State(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'mJ' => [ +'_' => 'updates.differenceTooLong', +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'>' => self::deserialize_updates___channelDifferenceEmpty($stream), +'じ' => self::deserialize_updates___channelDifferenceTooLong($stream), +'Ngd ' => self::deserialize_updates___channelDifference($stream), +',! ' => [ +'_' => 'photos.photo', +'photo' => match (stream_get_contents($stream, 4)) { +'-1#' => [ +'_' => 'photoEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ez' => self::deserialize_photo($stream), +'+r0' => self::deserialize_type_Photo(self::gzdecode($stream)), +default => self::err($stream) +} +, +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'古' => [ +'_' => 'photos.photos', +'photos' => self::deserialize_type_array_of_Photo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'T' => [ +'_' => 'photos.photosSlice', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'photos' => self::deserialize_type_array_of_Photo(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'j ' => [ +'_' => 'upload.file', +'type' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'storage.fileUnknown', +], +'Ro劇' => [ +'_' => 'storage.filePartial', +], +'~' . "\0" . '' => [ +'_' => 'storage.fileJpeg', +], +'萿慲' => [ +'_' => 'storage.fileGif', +], +'駢O +' => [ +'_' => 'storage.filePng', +], +'P' => [ +'_' => 'storage.filePdf', +], +'wR' => [ +'_' => 'storage.fileMp3', +], +'潺 K' => [ +'_' => 'storage.fileMov', +], +'帠' => [ +'_' => 'storage.fileMp4', +], +'LF' => [ +'_' => 'storage.fileWebp', +], +'+r0' => self::deserialize_type_storage___FileType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'mtime' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +], +'D' => [ +'_' => 'upload.fileCdnRedirect', +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'file_token' => self::deserialize_string($stream), +'encryption_key' => self::deserialize_string($stream), +'encryption_iv' => self::deserialize_string($stream), +'file_hashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'嘯!' => [ +'_' => 'upload.webFile', +'size' => unpack('l', stream_get_contents($stream, 4))[1], +'mime_type' => self::deserialize_string($stream), +'file_type' => match (stream_get_contents($stream, 4)) { +';' => [ +'_' => 'storage.fileUnknown', +], +'Ro劇' => [ +'_' => 'storage.filePartial', +], +'~' . "\0" . '' => [ +'_' => 'storage.fileJpeg', +], +'萿慲' => [ +'_' => 'storage.fileGif', +], +'駢O +' => [ +'_' => 'storage.filePng', +], +'P' => [ +'_' => 'storage.filePdf', +], +'wR' => [ +'_' => 'storage.fileMp3', +], +'潺 K' => [ +'_' => 'storage.fileMov', +], +'帠' => [ +'_' => 'storage.fileMp4', +], +'LF' => [ +'_' => 'storage.fileWebp', +], +'+r0' => self::deserialize_type_storage___FileType(self::gzdecode($stream)), +default => self::err($stream) +} +, +'mtime' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +], +'n鋮' => [ +'_' => 'upload.cdnFileReuploadNeeded', +'request_token' => self::deserialize_bytes($stream), +], +'O' => [ +'_' => 'upload.cdnFile', +'bytes' => self::deserialize_bytes($stream), +], +'$' => self::deserialize_config($stream), +'u' => [ +'_' => 'nearestDc', +'country' => self::deserialize_string($stream), +'this_dc' => unpack('l', stream_get_contents($stream, 4))[1], +'nearest_dc' => unpack('l', stream_get_contents($stream, 4))[1], +], +'0弇' => self::deserialize_help___appUpdate($stream), +'6eZ' => [ +'_' => 'help.noAppUpdate', +], +'x' => [ +'_' => 'help.inviteText', +'message' => self::deserialize_string($stream), +], +'鷁' => [ +'_' => 'help.support', +'phone_number' => self::deserialize_string($stream), +'user' => match (stream_get_contents($stream, 4)) { +'zK樓' => [ +'_' => 'userEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'8D\\!' => self::deserialize_user($stream), +'+r0' => self::deserialize_type_User(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +' +%W' => [ +'_' => 'cdnConfig', +'public_keys' => self::deserialize_type_array_of_CdnPublicKey(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => [ +'_' => 'help.recentMeUrls', +'urls' => self::deserialize_type_array_of_RecentMeUrl(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'0' => [ +'_' => 'help.termsOfServiceUpdateEmpty', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'a(' => [ +'_' => 'help.termsOfServiceUpdate', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +'terms_of_service' => match (stream_get_contents($stream, 4)) { +' +x' => self::deserialize_help___termsOfService($stream), +'+r0' => self::deserialize_type_help___TermsOfService(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'f*f' => [ +'_' => 'help.deepLinkInfoEmpty', +], +'2輗j' => self::deserialize_help___deepLinkInfo($stream), +'d煟' => [ +'_' => 'help.appConfigNotModified', +], +'.x' => [ +'_' => 'help.appConfig', +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +'config' => match (stream_get_contents($stream, 4)) { +'h{m?' => null, +'j^4' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +'心+' => unpack('d', stream_get_contents($stream, 8))[1], +'zv' => self::deserialize_string($stream), +'cGD' => $this->deserialize_type_array_of_JSONValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'埡' => self::deserialize_type_array_of_JSONObjectValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'+r0' => $this->deserialize_type_JSONValue(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'W藿' => [ +'_' => 'help.passportConfigNotModified', +], +'胱' => [ +'_' => 'help.passportConfig', +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +'countries_langs' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'朸' => [ +'_' => 'help.supportName', +'name' => self::deserialize_string($stream), +], +'.氦' => [ +'_' => 'help.userInfoEmpty', +], +'X7' => [ +'_' => 'help.userInfo', +'message' => self::deserialize_string($stream), +'entities' => self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'author' => self::deserialize_string($stream), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'u紀' => [ +'_' => 'help.promoDataEmpty', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?y9' => self::deserialize_help___promoData($stream), +'2' => [ +'_' => 'help.countriesListNotModified', +], +'u' => [ +'_' => 'help.countriesList', +'countries' => self::deserialize_type_array_of_help___Country(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +], +'u4S' => [ +'_' => 'help.premiumPromo', +'status_text' => self::deserialize_string($stream), +'status_entities' => self::deserialize_type_array_of_MessageEntity(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'video_sections' => self::deserialize_type_array_of_string(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'videos' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'period_options' => self::deserialize_type_array_of_PremiumSubscriptionOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'昝+' => [ +'_' => 'help.peerColorsNotModified', +], +'薠' . "\0" . '' => [ +'_' => 'help.peerColors', +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +'colors' => self::deserialize_type_array_of_help___PeerColorOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => [ +'_' => 'help.timezonesListNotModified', +], +'q癃{' => [ +'_' => 'help.timezonesList', +'timezones' => self::deserialize_type_array_of_Timezone(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'hash' => unpack('l', stream_get_contents($stream, 4))[1], +], +'荃' => [ +'_' => 'channels.channelParticipants', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'participants' => self::deserialize_type_array_of_ChannelParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'?' => [ +'_' => 'channels.channelParticipantsNotModified', +], +'詢' => [ +'_' => 'channels.channelParticipant', +'participant' => match (stream_get_contents($stream, 4)) { +' ' => [ +'_' => 'channelParticipant', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'尿5' => self::deserialize_channelParticipantSelf($stream), +'/' => self::deserialize_channelParticipantCreator($stream), +'S酵4' => self::deserialize_channelParticipantAdmin($stream), +'N鷰' => self::deserialize_channelParticipantBanned($stream), +'' => [ +'_' => 'channelParticipantLeft', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_ChannelParticipant(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'侷' => [ +'_' => 'exportedMessageLink', +'link' => self::deserialize_string($stream), +'html' => self::deserialize_string($stream), +], +'M' => [ +'_' => 'channels.adminLogResults', +'events' => self::deserialize_type_array_of_ChannelAdminLogEvent(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'讒\'' => [ +'_' => 'messages.inactiveChats', +'dates' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'醟' => self::deserialize_messages___sponsoredMessages($stream), +'I9' => [ +'_' => 'messages.sponsoredMessagesEmpty', +], +'が' => [ +'_' => 'channels.sendAsPeers', +'peers' => self::deserialize_type_array_of_SendAsPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'v6' => self::deserialize_messages___forumTopics($stream), +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'3u' => [ +'_' => 'botMenuButtonDefault', +], +'擴B' => [ +'_' => 'botMenuButtonCommands', +], +'獡腎' => [ +'_' => 'botMenuButton', +'text' => self::deserialize_string($stream), +'url' => self::deserialize_string($stream), +], +'酌扯' => [ +'_' => 'bots.botInfo', +'name' => self::deserialize_string($stream), +'about' => self::deserialize_string($stream), +'description' => self::deserialize_string($stream), +], +'Q' => self::deserialize_payments___paymentForm($stream), +'癥' => self::deserialize_payments___paymentReceipt($stream), +'E' => self::deserialize_payments___validatedRequestedInfo($stream), +' _N' => [ +'_' => 'payments.paymentResult', +'updates' => match (stream_get_contents($stream, 4)) { +'~' => [ +'_' => 'updatesTooLong', +], +'醾;1' => self::deserialize_updateShortMessage($stream), +'伍mM' => self::deserialize_updateShortChatMessage($stream), +'醣啑' => [ +'_' => 'updateShort', +'update' => match (stream_get_contents($stream, 4)) { +' ++' => [ +'_' => 'updateNewMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'祪N' => [ +'_' => 'updateMessageID', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'撠 ' => [ +'_' => 'updateDeleteMessages', +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'updateUserTyping', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'action' => match (stream_get_contents($stream, 4)) { +'Nt' => [ +'_' => 'sendMessageTypingAction', +], +'孇^' => [ +'_' => 'sendMessageCancelAction', +], +'o' => [ +'_' => 'sendMessageRecordVideoAction', +], +':v' => [ +'_' => 'sendMessageUploadVideoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顪/' => [ +'_' => 'sendMessageRecordAudioAction', +], +'度Q' => [ +'_' => 'sendMessageUploadAudioAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&J衭' => [ +'_' => 'sendMessageUploadPhotoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'駇 ' => [ +'_' => 'sendMessageUploadDocumentAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'o' => [ +'_' => 'sendMessageGeoLocationAction', +], +'ob' => [ +'_' => 'sendMessageChooseContactAction', +], +'Hj' => [ +'_' => 'sendMessageGamePlayAction', +], +'' => [ +'_' => 'sendMessageRecordRoundAction', +], +'f>$' => [ +'_' => 'sendMessageUploadRoundAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'",' => [ +'_' => 'speakingInGroupCallAction', +], +'F窙' => [ +'_' => 'sendMessageHistoryImportAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'排Z' => [ +'_' => 'sendMessageChooseStickerAction', +], +'+%' => [ +'_' => 'sendMessageEmojiInteraction', +'emoticon' => self::deserialize_string($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'interaction' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'.e' => [ +'_' => 'sendMessageEmojiInteractionSeen', +'emoticon' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'翷H' => [ +'_' => 'updateChatUserTyping', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'from_id' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'action' => match (stream_get_contents($stream, 4)) { +'Nt' => [ +'_' => 'sendMessageTypingAction', +], +'孇^' => [ +'_' => 'sendMessageCancelAction', +], +'o' => [ +'_' => 'sendMessageRecordVideoAction', +], +':v' => [ +'_' => 'sendMessageUploadVideoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顪/' => [ +'_' => 'sendMessageRecordAudioAction', +], +'度Q' => [ +'_' => 'sendMessageUploadAudioAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&J衭' => [ +'_' => 'sendMessageUploadPhotoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'駇 ' => [ +'_' => 'sendMessageUploadDocumentAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'o' => [ +'_' => 'sendMessageGeoLocationAction', +], +'ob' => [ +'_' => 'sendMessageChooseContactAction', +], +'Hj' => [ +'_' => 'sendMessageGamePlayAction', +], +'' => [ +'_' => 'sendMessageRecordRoundAction', +], +'f>$' => [ +'_' => 'sendMessageUploadRoundAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'",' => [ +'_' => 'speakingInGroupCallAction', +], +'F窙' => [ +'_' => 'sendMessageHistoryImportAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'排Z' => [ +'_' => 'sendMessageChooseStickerAction', +], +'+%' => [ +'_' => 'sendMessageEmojiInteraction', +'emoticon' => self::deserialize_string($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'interaction' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'.e' => [ +'_' => 'sendMessageEmojiInteractionSeen', +'emoticon' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'v' => [ +'_' => 'updateChatParticipants', +'participants' => match (stream_get_contents($stream, 4)) { +'慪c' => self::deserialize_chatParticipantsForbidden($stream), +'<' => [ +'_' => 'chatParticipants', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'稘賢' => [ +'_' => 'updateUserStatus', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'status' => match (stream_get_contents($stream, 4)) { +'IP ' => [ +'_' => 'userStatusEmpty', +], +'I9寤' => [ +'_' => 'userStatusOnline', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?p' . "\0" . '' => [ +'_' => 'userStatusOffline', +'was_online' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}{' => self::deserialize_userStatusRecently($stream), +'T' => self::deserialize_userStatusLastWeek($stream), +'we' => self::deserialize_userStatusLastMonth($stream), +'+r0' => self::deserialize_type_UserStatus(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'$' => [ +'_' => 'updateUserName', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'麉Q' => self::deserialize_updateNewAuthorization($stream), +'蝦' => [ +'_' => 'updateNewEncryptedMessage', +'message' => match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'encryptedMessage', +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +'file' => match (stream_get_contents($stream, 4)) { +'~I' => [ +'_' => 'encryptedFileEmpty', +], +'' . "\0" . '' => [ +'_' => 'encryptedFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'key_fingerprint' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EncryptedFile(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'Ks#' => [ +'_' => 'encryptedMessageService', +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_EncryptedMessage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'V' => [ +'_' => 'updateEncryptedChatTyping', +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鋡' => [ +'_' => 'updateEncryption', +'chat' => match (stream_get_contents($stream, 4)) { +'嚇' => [ +'_' => 'encryptedChatEmpty', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'SY淬' => [ +'_' => 'encryptedChatWaiting', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L渫H' => self::deserialize_encryptedChatRequested($stream), +'л簜' => [ +'_' => 'encryptedChat', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +'g_a_or_b' => self::deserialize_bytes($stream), +'key_fingerprint' => stream_get_contents($stream, 8), +], +'E|' => self::deserialize_encryptedChatDiscarded($stream), +'+r0' => self::deserialize_type_EncryptedChat(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'%8' => [ +'_' => 'updateEncryptedMessagesRead', +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'max_date' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'QT=' => [ +'_' => 'updateChatParticipantAdd', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'inviter_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'w=/' => [ +'_' => 'updateChatParticipantDelete', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'s^' => [ +'_' => 'updateDcOptions', +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'髼職' => [ +'_' => 'updateNotifySettings', +'peer' => match (stream_get_contents($stream, 4)) { +' ' => [ +'_' => 'notifyPeer', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'L;' => [ +'_' => 'notifyUsers', +], +'襞' => [ +'_' => 'notifyChats', +], +'歞' => [ +'_' => 'notifyBroadcasts', +], +'cn"' => [ +'_' => 'notifyForumTopic', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'top_msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_NotifyPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'notify_settings' => match (stream_get_contents($stream, 4)) { +' ,b' => self::deserialize_peerNotifySettings($stream), +'+r0' => self::deserialize_type_PeerNotifySettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'h儇' => self::deserialize_updateServiceNotification($stream), +'*\';' => [ +'_' => 'updatePrivacy', +'key' => match (stream_get_contents($stream, 4)) { +'0.' => [ +'_' => 'privacyKeyStatusTimestamp', +], +'mP' => [ +'_' => 'privacyKeyChatInvite', +], +'{+f=' => [ +'_' => 'privacyKeyPhoneCall', +], +'I9' => [ +'_' => 'privacyKeyPhoneP2P', +], +'Τ駧' => [ +'_' => 'privacyKeyForwards', +], +'' => [ +'_' => 'privacyKeyProfilePhoto', +], +'m' => [ +'_' => 'privacyKeyPhoneNumber', +], +'+B' => [ +'_' => 'privacyKeyAddedByPhone', +], +'' => [ +'_' => 'privacyKeyVoiceMessages', +], +'a' => [ +'_' => 'privacyKeyAbout', +], +'+r0' => self::deserialize_type_PrivacyKey(self::gzdecode($stream)), +default => self::err($stream) +} +, +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'*I' => [ +'_' => 'updateUserPhone', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'phone' => self::deserialize_string($stream), +], +'筰' => self::deserialize_updateReadHistoryInbox($stream), +'!//' => [ +'_' => 'updateReadHistoryOutbox', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'updateWebPage', +'webpage' => match (stream_get_contents($stream, 4)) { +'!' => self::deserialize_webPageEmpty($stream), +'G>扆' => self::deserialize_webPagePending($stream), +'淳' => self::deserialize_webPage($stream), +'s' => self::deserialize_webPageNotModified($stream), +'+r0' => self::deserialize_type_WebPage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'q"' => self::deserialize_updateReadMessagesContents($stream), +'' => self::deserialize_updateChannelTooLong($stream), +' L[c' => [ +'_' => 'updateChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'槓' => [ +'_' => 'updateNewChannelMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'n.' => self::deserialize_updateReadChannelInbox($stream), +'[-' => [ +'_' => 'updateDeleteChannelMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&' => [ +'_' => 'updateChannelMessageViews', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'views' => unpack('l', stream_get_contents($stream, 4))[1], +], +'糎忑' => [ +'_' => 'updateChatParticipantAdmin', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'is_admin' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'0h' => [ +'_' => 'updateNewStickerSet', +'stickerset' => match (stream_get_contents($stream, 4)) { +'?n' => [ +'_' => 'messages.stickerSet', +'set' => match (stream_get_contents($stream, 4)) { +'逴-' => self::deserialize_stickerSet($stream), +'+r0' => self::deserialize_type_StickerSet(self::gzdecode($stream)), +default => self::err($stream) +} +, +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'$齾' => [ +'_' => 'messages.stickerSetNotModified', +], +'+r0' => self::deserialize_type_messages___StickerSet(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'珩 ' => self::deserialize_updateStickerSetsOrder($stream), +'H1' => self::deserialize_updateStickerSets($stream), +'4u' => [ +'_' => 'updateSavedGifs', +], +'7oI' => self::deserialize_updateBotInlineQuery($stream), +'*' => self::deserialize_updateBotInlineSend($stream), +'蠬?' => [ +'_' => 'updateEditChannelMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鰍' => self::deserialize_updateBotCallbackQuery($stream), +'φ' => [ +'_' => 'updateEditMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Ri' => self::deserialize_updateInlineBotCallbackQuery($stream), +'_' => [ +'_' => 'updateReadChannelOutbox', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'m閹' => self::deserialize_updateDraftMessage($stream), +'B\'W' => [ +'_' => 'updateReadFeaturedStickers', +], +' ,B' => [ +'_' => 'updateRecentStickers', +], +')' => [ +'_' => 'updateConfig', +], +'gT3' => [ +'_' => 'updatePtsChanged', +], +'+/' => [ +'_' => 'updateChannelWebPage', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'webpage' => match (stream_get_contents($stream, 4)) { +'!' => self::deserialize_webPageEmpty($stream), +'G>扆' => self::deserialize_webPagePending($stream), +'淳' => self::deserialize_webPage($stream), +'s' => self::deserialize_webPageNotModified($stream), +'+r0' => self::deserialize_type_WebPage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'幝n' => self::deserialize_updateDialogPinned($stream), +'<' => self::deserialize_updatePinnedDialogs($stream), +'藝' => [ +'_' => 'updateBotWebhookJSON', +'data' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'共' => [ +'_' => 'updateBotWebhookJSONQuery', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +'data' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +'timeout' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}挾' => [ +'_' => 'updateBotShippingQuery', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'payload' => self::deserialize_bytes($stream), +'shipping_address' => match (stream_get_contents($stream, 4)) { +'諈' => [ +'_' => 'postAddress', +'street_line1' => self::deserialize_string($stream), +'street_line2' => self::deserialize_string($stream), +'city' => self::deserialize_string($stream), +'state' => self::deserialize_string($stream), +'country_iso2' => self::deserialize_string($stream), +'post_code' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_PostAddress(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'' => self::deserialize_updateBotPrecheckoutQuery($stream), +'k' => [ +'_' => 'updatePhoneCall', +'phone_call' => match (stream_get_contents($stream, 4)) { +'仜S' => [ +'_' => 'phoneCallEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'o"' => self::deserialize_phoneCallWaiting($stream), +' 禨' => self::deserialize_phoneCallRequested($stream), +'嚥6' => self::deserialize_phoneCallAccepted($stream), +'g|' => self::deserialize_phoneCall($stream), +'嘜襾' => self::deserialize_phoneCallDiscarded($stream), +'+r0' => self::deserialize_type_PhoneCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'dVF' => [ +'_' => 'updateLangPackTooLong', +'lang_code' => self::deserialize_string($stream), +], +'M/V' => [ +'_' => 'updateLangPack', +'difference' => match (stream_get_contents($stream, 4)) { +'鶬' => [ +'_' => 'langPackDifference', +'lang_code' => self::deserialize_string($stream), +'from_version' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'m' => [ +'_' => 'updateFavedStickers', +], +'])' => self::deserialize_updateChannelReadMessagesContents($stream), +'儒p' => [ +'_' => 'updateContactsReset', +], +'?' => [ +'_' => 'updateChannelAvailableMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'available_min_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鵑d' => self::deserialize_updateDialogUnreadMark($stream), +'{e′' => self::deserialize_updateMessagePoll($stream), +'P鞘' => [ +'_' => 'updateChatDefaultBannedRights', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'default_banned_rights' => match (stream_get_contents($stream, 4)) { +'' => self::deserialize_chatBannedRights($stream), +'+r0' => self::deserialize_type_ChatBannedRights(self::gzdecode($stream)), +default => self::err($stream) +} +, +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +' 6' => [ +'_' => 'updateFolderPeers', +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'fs~j' => [ +'_' => 'updatePeerSettings', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'settings' => match (stream_get_contents($stream, 4)) { +' ' => self::deserialize_peerSettings($stream), +'+r0' => self::deserialize_type_PeerSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'區秩' => [ +'_' => 'updatePeerLocated', +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'9' => [ +'_' => 'updateNewScheduledMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'螿' => [ +'_' => 'updateDeleteScheduledMessages', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => [ +'_' => 'updateTheme', +'theme' => match (stream_get_contents($stream, 4)) { +'狿' => self::deserialize_theme($stream), +'+r0' => self::deserialize_type_Theme(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'9' => [ +'_' => 'updateGeoLiveViewed', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'潗V' => [ +'_' => 'updateLoginToken', +], +'w$' => [ +'_' => 'updateMessagePollVote', +'poll_id' => unpack('q', stream_get_contents($stream, 8))[1], +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}&' => self::deserialize_updateDialogFilter($stream), +'!蚰' => [ +'_' => 'updateDialogFilterOrder', +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'O5' => [ +'_' => 'updateDialogFilters', +], +' 瘸&' => [ +'_' => 'updatePhoneCallSignalingData', +'phone_call_id' => unpack('q', stream_get_contents($stream, 8))[1], +'data' => self::deserialize_bytes($stream), +], +'瀵'' => [ +'_' => 'updateChannelMessageForwards', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'forwards' => unpack('l', stream_get_contents($stream, 4))[1], +], +'F敔' => self::deserialize_updateReadChannelDiscussionInbox($stream), +'|\\i' => [ +'_' => 'updateReadChannelDiscussionOutbox', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'top_msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'read_max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Rw鳪' => self::deserialize_updatePeerBlocked($stream), +'#' => self::deserialize_updateChannelUserTyping($stream), +'虛' => self::deserialize_updatePinnedMessages($stream), +'鉀' => self::deserialize_updatePinnedChannelMessages($stream), +'Nj' => [ +'_' => 'updateChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'N貹' => [ +'_' => 'updateGroupCallParticipants', +'call' => match (stream_get_contents($stream, 4)) { +'臾' => [ +'_' => 'inputGroupCall', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_InputGroupCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' . "\0" . 'E' => [ +'_' => 'updateGroupCall', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'call' => match (stream_get_contents($stream, 4)) { +'智w' => [ +'_' => 'groupCallDiscarded', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'duration' => unpack('l', stream_get_contents($stream, 4))[1], +], +' e' => self::deserialize_groupCall($stream), +'+r0' => self::deserialize_type_GroupCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'旦' => self::deserialize_updatePeerHistoryTTL($stream), +':f' => self::deserialize_updateChatParticipant($stream), +':]' => self::deserialize_updateChannelParticipant($stream), +'I +' => [ +'_' => 'updateBotStopped', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'stopped' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'9x ' => self::deserialize_updateGroupCallConnection($stream), +'./qM' => [ +'_' => 'updateBotCommands', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'袺cp' => [ +'_' => 'updatePendingJoinRequests', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'拋' => [ +'_' => 'updateBotChatInviteRequester', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'about' => self::deserialize_string($stream), +'invite' => match (stream_get_contents($stream, 4)) { +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'+r0' => self::deserialize_type_ExportedChatInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'<^' => self::deserialize_updateMessageReactions($stream), +' 8' => [ +'_' => 'updateAttachMenuBots', +], +'' => [ +'_' => 'updateWebViewResultSent', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'X' => [ +'_' => 'updateBotMenuButton', +'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], +'button' => match (stream_get_contents($stream, 4)) { +'3u' => [ +'_' => 'botMenuButtonDefault', +], +'擴B' => [ +'_' => 'botMenuButtonCommands', +], +'獡腎' => [ +'_' => 'botMenuButton', +'text' => self::deserialize_string($stream), +'url' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_BotMenuButton(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'撻t' => [ +'_' => 'updateSavedRingtones', +], +'Z' . "\0" . '' => self::deserialize_updateTranscribedAudio($stream), +'lIL' => [ +'_' => 'updateReadFeaturedEmojiStickers', +], +'57(' => [ +'_' => 'updateUserEmojiStatus', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'emoji_status' => match (stream_get_contents($stream, 4)) { +'-' => [ +'_' => 'emojiStatusEmpty', +], +'a' => [ +'_' => 'emojiStatus', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ヮ0' => [ +'_' => 'emojiStatusUntil', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'until' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EmojiStatus(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'羡0' => [ +'_' => 'updateRecentEmojiStatuses', +], +'瀿xo' => [ +'_' => 'updateRecentReactions', +], +'秖' => self::deserialize_updateMoveStickerSetToTop($stream), +'孟Z' => [ +'_' => 'updateMessageExtendedMedia', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'extended_media' => match (stream_get_contents($stream, 4)) { +'b' => self::deserialize_messageExtendedMediaPreview($stream), +'dG' => [ +'_' => 'messageExtendedMedia', +'media' => match (stream_get_contents($stream, 4)) { +' c=' => [ +'_' => 'messageMediaEmpty', +], +'脝Qi' => self::deserialize_messageMediaPhoto($stream), +'t婄V' => [ +'_' => 'messageMediaGeo', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'I)2p' => [ +'_' => 'messageMediaContact', +'phone_number' => self::deserialize_string($stream), +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'vcard' => self::deserialize_string($stream), +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'' => [ +'_' => 'messageMediaUnsupported', +], +'-酚L' => self::deserialize_messageMediaDocument($stream), +'; 鵚' => self::deserialize_messageMediaWebPage($stream), +'?S.' => [ +'_' => 'messageMediaVenue', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +'title' => self::deserialize_string($stream), +'address' => self::deserialize_string($stream), +'provider' => self::deserialize_string($stream), +'venue_id' => self::deserialize_string($stream), +'venue_type' => self::deserialize_string($stream), +], +'欲' => [ +'_' => 'messageMediaGame', +'game' => match (stream_get_contents($stream, 4)) { +';e虌' => self::deserialize_game($stream), +'+r0' => self::deserialize_type_Game(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'笒仳' => self::deserialize_messageMediaInvoice($stream), +'f讖' => self::deserialize_messageMediaGeoLive($stream), +'誸K' => [ +'_' => 'messageMediaPoll', +'poll' => match (stream_get_contents($stream, 4)) { +'a' => self::deserialize_poll($stream), +'+r0' => self::deserialize_type_Poll(self::gzdecode($stream)), +default => self::err($stream) +} +, +'results' => match (stream_get_contents($stream, 4)) { +' $朡' => self::deserialize_pollResults($stream), +'+r0' => self::deserialize_type_PollResults(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'憉?' => [ +'_' => 'messageMediaDice', +'value' => unpack('l', stream_get_contents($stream, 4))[1], +'emoticon' => self::deserialize_string($stream), +], +'b玕' => self::deserialize_messageMediaStory($stream), +'俾' => self::deserialize_messageMediaGiveaway($stream), +'h' => self::deserialize_messageMediaGiveawayResults($stream), +'+r0' => self::deserialize_type_MessageMedia(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_MessageExtendedMedia(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'裮.' => self::deserialize_updateChannelPinnedTopic($stream), +'' => self::deserialize_updateChannelPinnedTopics($stream), +'8R ' => [ +'_' => 'updateUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'' => [ +'_' => 'updateAutoSaveSettings', +], +'蟗' => [ +'_' => 'updateGroupInvitePrivacyForbidden', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'歲u' => [ +'_' => 'updateStory', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story' => match (stream_get_contents($stream, 4)) { +'O鍻Q' => [ +'_' => 'storyItemDeleted', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'伬' => self::deserialize_storyItemSkipped($stream), +'$j球' => self::deserialize_storyItem($stream), +'+r0' => self::deserialize_type_StoryItem(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+N' => [ +'_' => 'updateReadStories', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'5' => [ +'_' => 'updateStoryID', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'簍,' => [ +'_' => 'updateStoriesStealthMode', +'stealth_mode' => match (stream_get_contents($stream, 4)) { +'\'.q' => self::deserialize_storiesStealthMode($stream), +'+r0' => self::deserialize_type_StoriesStealthMode(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'vb}' => [ +'_' => 'updateSentStoryReaction', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_id' => unpack('l', stream_get_contents($stream, 4))[1], +'reaction' => match (stream_get_contents($stream, 4)) { +'崋y' => [ +'_' => 'reactionEmpty', +], +'"' => [ +'_' => 'reactionEmoji', +'emoticon' => self::deserialize_string($stream), +], +'s5' => [ +'_' => 'reactionCustomEmoji', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_Reaction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'偪' => [ +'_' => 'updateBotChatBoost', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'boost' => match (stream_get_contents($stream, 4)) { +'q*' => self::deserialize_boost($stream), +'+r0' => self::deserialize_type_Boost(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +' ' => [ +'_' => 'updateChannelViewForumAsMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'enabled' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +], +'?' => self::deserialize_updatePeerWallpaper($stream), +'扃!' => [ +'_' => 'updateBotMessageReaction', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'actor' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Yw ' => [ +'_' => 'updateBotMessageReactions', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'t祚' => self::deserialize_updateSavedDialogPinned($stream), +'lh' => self::deserialize_updatePinnedSavedDialogs($stream), +'2t9' => [ +'_' => 'updateSavedReactionTags', +], +'剫b' => [ +'_' => 'updateSmsJob', +'job_id' => self::deserialize_string($stream), +], +' +G' => [ +'_' => 'updateQuickReplies', +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'=' => [ +'_' => 'updateNewQuickReply', +'quick_reply' => match (stream_get_contents($stream, 4)) { +'+' => [ +'_' => 'quickReply', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +'shortcut' => self::deserialize_string($stream), +'top_message' => unpack('l', stream_get_contents($stream, 4))[1], +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_QuickReply(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'旚漀' => [ +'_' => 'updateDeleteQuickReply', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +' >' => [ +'_' => 'updateQuickReplyMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'侻oV' => [ +'_' => 'updateDeleteQuickReplyMessages', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => self::deserialize_type_Update(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'[r' => [ +'_' => 'updatesCombined', +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq_start' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +], +'@B差' => [ +'_' => 'updates', +'updates' => self::deserialize_type_array_of_Update(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'seq' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => self::deserialize_updateShortSentMessage($stream), +'+r0' => self::deserialize_type_Updates(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'9A' => [ +'_' => 'payments.paymentVerificationNeeded', +'url' => self::deserialize_string($stream), +], +'<' => self::deserialize_payments___savedInfo($stream), +'s$>' => [ +'_' => 'payments.bankCardData', +'title' => self::deserialize_string($stream), +'open_urls' => self::deserialize_type_array_of_BankCardOpenUrl(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'椊衩' => [ +'_' => 'payments.exportedInvoice', +'url' => self::deserialize_string($stream), +], +'J(' => self::deserialize_payments___checkedGiftCode($stream), +'牚C' => self::deserialize_payments___giveawayInfo($stream), +'pU' . "\0" . '' => self::deserialize_payments___giveawayInfoResults($stream), +'?' => [ +'_' => 'stickers.suggestedShortName', +'short_name' => self::deserialize_string($stream), +], +'@' => [ +'_' => 'phone.phoneCall', +'phone_call' => match (stream_get_contents($stream, 4)) { +'仜S' => [ +'_' => 'phoneCallEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'o"' => self::deserialize_phoneCallWaiting($stream), +' 禨' => self::deserialize_phoneCallRequested($stream), +'嚥6' => self::deserialize_phoneCallAccepted($stream), +'g|' => self::deserialize_phoneCall($stream), +'嘜襾' => self::deserialize_phoneCallDiscarded($stream), +'+r0' => self::deserialize_type_PhoneCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'述r' => [ +'_' => 'phone.groupCall', +'call' => match (stream_get_contents($stream, 4)) { +'智w' => [ +'_' => 'groupCallDiscarded', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'duration' => unpack('l', stream_get_contents($stream, 4))[1], +], +' e' => self::deserialize_groupCall($stream), +'+r0' => self::deserialize_type_GroupCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'participants_next_offset' => self::deserialize_string($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'貴w' => [ +'_' => 'phone.groupParticipants', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'next_offset' => self::deserialize_string($stream), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?b撖' => [ +'_' => 'phone.joinAsPeers', +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'X堲 ' => [ +'_' => 'phone.exportedGroupCallInvite', +'link' => self::deserialize_string($stream), +], +'餇' => [ +'_' => 'phone.groupCallStreamChannels', +'channels' => self::deserialize_type_array_of_GroupCallStreamChannel(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'24-' => [ +'_' => 'phone.groupCallStreamRtmpUrl', +'url' => self::deserialize_string($stream), +'key' => self::deserialize_string($stream), +], +'鶬' => [ +'_' => 'langPackDifference', +'lang_code' => self::deserialize_string($stream), +'from_version' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'箤\扻' => self::deserialize_langPackLanguage($stream), +'召9' => [ +'_' => 'stats.broadcastStats', +'period' => match (stream_get_contents($stream, 4)) { +'茫7' => [ +'_' => 'statsDateRangeDays', +'min_date' => unpack('l', stream_get_contents($stream, 4))[1], +'max_date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_StatsDateRangeDays(self::gzdecode($stream)), +default => self::err($stream) +} +, +'followers' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'views_per_post' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'shares_per_post' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'reactions_per_post' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'views_per_story' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'shares_per_story' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'reactions_per_story' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'enabled_notifications' => match (stream_get_contents($stream, 4)) { +'/恂' => [ +'_' => 'statsPercentValue', +'part' => unpack('d', stream_get_contents($stream, 8))[1], +'total' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsPercentValue(self::gzdecode($stream)), +default => self::err($stream) +} +, +'growth_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'followers_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'mute_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'top_hours_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'interactions_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'iv_interactions_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'views_by_source_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'new_followers_by_source_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'languages_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'reactions_by_emotion_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_interactions_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_reactions_by_emotion_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'recent_posts_interactions' => self::deserialize_type_array_of_PostInteractionCounters(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'' => [ +'_' => 'stats.megagroupStats', +'period' => match (stream_get_contents($stream, 4)) { +'茫7' => [ +'_' => 'statsDateRangeDays', +'min_date' => unpack('l', stream_get_contents($stream, 4))[1], +'max_date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_StatsDateRangeDays(self::gzdecode($stream)), +default => self::err($stream) +} +, +'members' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'messages' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'viewers' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'posters' => match (stream_get_contents($stream, 4)) { +'猻C' => [ +'_' => 'statsAbsValueAndPrev', +'current' => unpack('d', stream_get_contents($stream, 8))[1], +'previous' => unpack('d', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_StatsAbsValueAndPrev(self::gzdecode($stream)), +default => self::err($stream) +} +, +'growth_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'members_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'new_members_by_source_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'languages_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'messages_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'actions_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'top_hours_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'weekdays_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'top_posters' => self::deserialize_type_array_of_StatsGroupTopPoster(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'top_admins' => self::deserialize_type_array_of_StatsGroupTopAdmin(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'top_inviters' => self::deserialize_type_array_of_StatsGroupTopInviter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +' ~' => self::deserialize_stats___publicForwards($stream), +'' => [ +'_' => 'stats.messageStats', +'views_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'reactions_by_emotion_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'|炔' => [ +'_' => 'stats.storyStats', +'views_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +'reactions_by_emotion_graph' => match (stream_get_contents($stream, 4)) { +'-螏'J' => [ +'_' => 'statsGraphAsync', +'token' => self::deserialize_string($stream), +], +'"僁' => [ +'_' => 'statsGraphError', +'error' => self::deserialize_string($stream), +], +'辜' => self::deserialize_statsGraph($stream), +'+r0' => self::deserialize_type_StatsGraph(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'艾' => [ +'_' => 'chatlists.exportedChatlistInvite', +'filter' => match (stream_get_contents($stream, 4)) { +';R琯' => self::deserialize_dialogFilter($stream), +'26' => [ +'_' => 'dialogFilterDefault', +], +'' => self::deserialize_dialogFilterChatlist($stream), +'+r0' => self::deserialize_type_DialogFilter(self::gzdecode($stream)), +default => self::err($stream) +} +, +'invite' => match (stream_get_contents($stream, 4)) { +'Q ' => [ +'_' => 'exportedChatlistInvite', +'flags' => unpack('V', stream_get_contents($stream, 4))[1], +'title' => self::deserialize_string($stream), +'url' => self::deserialize_string($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => self::deserialize_type_ExportedChatlistInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'Q ' => [ +'_' => 'exportedChatlistInvite', +'flags' => unpack('V', stream_get_contents($stream, 4))[1], +'title' => self::deserialize_string($stream), +'url' => self::deserialize_string($stream), +'peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'フ' => [ +'_' => 'chatlists.exportedInvites', +'invites' => self::deserialize_type_array_of_ExportedChatlistInvite(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'Y' => [ +'_' => 'chatlists.chatlistInviteAlready', +'filter_id' => unpack('l', stream_get_contents($stream, 4))[1], +'missing_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'already_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => self::deserialize_chatlists___chatlistInvite($stream), +'' => [ +'_' => 'chatlists.chatlistUpdates', +'missing_peers' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'>X' => [ +'_' => 'stories.allStoriesNotModified', +'flags' => unpack('V', stream_get_contents($stream, 4))[1], +'state' => self::deserialize_string($stream), +'stealth_mode' => match (stream_get_contents($stream, 4)) { +'\'.q' => self::deserialize_storiesStealthMode($stream), +'+r0' => self::deserialize_type_StoriesStealthMode(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'^n' => self::deserialize_stories___allStories($stream), +'贈]' => [ +'_' => 'stories.stories', +'count' => unpack('l', stream_get_contents($stream, 4))[1], +'stories' => self::deserialize_type_array_of_StoryItem(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'莐' => self::deserialize_stories___storyViewsList($stream), +'' => [ +'_' => 'stories.storyViews', +'views' => self::deserialize_type_array_of_StoryViews(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +';?' => [ +'_' => 'exportedStoryLink', +'link' => self::deserialize_string($stream), +], +'h磉' => [ +'_' => 'stories.peerStories', +'stories' => match (stream_get_contents($stream, 4)) { +'5' => self::deserialize_peerStories($stream), +'+r0' => self::deserialize_type_PeerStories(self::gzdecode($stream)), +default => self::err($stream) +} +, +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'x_' => self::deserialize_stories___storyReactionsList($stream), +' self::deserialize_premium___boostsList($stream), +'(' => [ +'_' => 'premium.myBoosts', +'my_boosts' => self::deserialize_type_array_of_MyBoost(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chats' => self::deserialize_type_array_of_Chat(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'zBYI' => self::deserialize_premium___boostsStatus($stream), +'柀' => [ +'_' => 'smsjobs.eligibleToJoin', +'terms_url' => self::deserialize_string($stream), +'monthly_sent_sms' => unpack('l', stream_get_contents($stream, 4))[1], +], +'*' => self::deserialize_smsjobs___status($stream), +'賃⊥' => [ +'_' => 'smsJob', +'job_id' => self::deserialize_string($stream), +'phone_number' => self::deserialize_string($stream), +'text' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_MethodResult(self::gzdecode($stream), $method), +'警' => match ($method) { +'account.getAllSecureValues' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'account.getSecureValue' => self::deserialize_type_array_of_SecureValue(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'account.getMultiWallPapers' => self::deserialize_type_array_of_WallPaper(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users.getUsers' => self::deserialize_type_array_of_User(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'users.getIsPremiumRequiredToContact' => self::deserialize_type_array_of_Bool(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getContactIDs' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getStatuses' => self::deserialize_type_array_of_ContactStatus(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'contacts.getSaved' => self::deserialize_type_array_of_SavedContact(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.receivedMessages' => self::deserialize_type_array_of_ReceivedNotifyMessage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.receivedQueue' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getAttachedStickers' => self::deserialize_type_array_of_StickerSetCovered(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSplitRanges' => self::deserialize_type_array_of_MessageRange(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getDialogUnreadMarks' => self::deserialize_type_array_of_DialogPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getEmojiKeywordsLanguages' => self::deserialize_type_array_of_EmojiLanguage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSearchCounters' => self::deserialize_type_array_of_messages___SearchCounter(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getSuggestedDialogFilters' => self::deserialize_type_array_of_DialogFilterSuggested(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getMessageReadParticipants' => self::deserialize_type_array_of_ReadParticipantDate(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'messages.getCustomEmojiDocuments' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'photos.deletePhotos' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.reuploadCdnFile' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.getCdnFileHashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'upload.getFileHashes' => self::deserialize_type_array_of_FileHash(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'bots.getBotCommands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'payments.getPremiumGiftCodeOptions' => self::deserialize_type_array_of_PremiumGiftCodeOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'phone.checkGroupCall' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'langpack.getStrings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'langpack.getLanguages' => self::deserialize_type_array_of_LangPackLanguage(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'chatlists.getLeaveChatlistSuggestions' => self::deserialize_type_array_of_Peer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.deleteStories' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.togglePinned' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.readStories' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'stories.getPeerMaxIDs' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +}, +default => self::err($stream) +} +; + if (isset($this->afterMethodResponseDeserialization[$method])) { + foreach ($this->afterMethodResponseDeserialization[$method] as $callback) { + $callback($tmp); + } + } + return $tmp; + + } + private function deserialize_type_array_of_future_salt(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= [ +'_' => 'future_salt', +'valid_since' => unpack('l', stream_get_contents($stream, 4))[1], +'valid_until' => unpack('l', stream_get_contents($stream, 4))[1], +'salt' => unpack('q', stream_get_contents($stream, 8))[1], +]; + } + return $result; + + } + private function deserialize_type_array_of_MTmessage(mixed $stream): array { + + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + $result []= [ +'_' => 'MTmessage', +'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], +'seqno' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => unpack('l', stream_get_contents($stream, 4))[1], +'body' => match (stream_get_contents($stream, 4)) { +'+r0' => $this->deserialize_type_Object(self::gzdecode($stream)), +default => self::err($stream) +} +, +]; + } + return $result; + + } + private function deserialize_type_MTMessage(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +'撣[' => [ +'_' => 'MTmessage', +'msg_id' => unpack('q', stream_get_contents($stream, 8))[1], +'seqno' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => unpack('l', stream_get_contents($stream, 4))[1], +'body' => match (stream_get_contents($stream, 4)) { +'+r0' => $this->deserialize_type_Object(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => $this->deserialize_type_MTMessage(self::gzdecode($stream)), +default => self::err($stream) +} +; + } + public function deserialize_type_Object(mixed $stream): mixed { +return match (stream_get_contents($stream, 4)) { +' ++' => [ +'_' => 'updateNewMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'祪N' => [ +'_' => 'updateMessageID', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'撠 ' => [ +'_' => 'updateDeleteMessages', +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'updateUserTyping', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'action' => match (stream_get_contents($stream, 4)) { +'Nt' => [ +'_' => 'sendMessageTypingAction', +], +'孇^' => [ +'_' => 'sendMessageCancelAction', +], +'o' => [ +'_' => 'sendMessageRecordVideoAction', +], +':v' => [ +'_' => 'sendMessageUploadVideoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顪/' => [ +'_' => 'sendMessageRecordAudioAction', +], +'度Q' => [ +'_' => 'sendMessageUploadAudioAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&J衭' => [ +'_' => 'sendMessageUploadPhotoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'駇 ' => [ +'_' => 'sendMessageUploadDocumentAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'o' => [ +'_' => 'sendMessageGeoLocationAction', +], +'ob' => [ +'_' => 'sendMessageChooseContactAction', +], +'Hj' => [ +'_' => 'sendMessageGamePlayAction', +], +'' => [ +'_' => 'sendMessageRecordRoundAction', +], +'f>$' => [ +'_' => 'sendMessageUploadRoundAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'",' => [ +'_' => 'speakingInGroupCallAction', +], +'F窙' => [ +'_' => 'sendMessageHistoryImportAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'排Z' => [ +'_' => 'sendMessageChooseStickerAction', +], +'+%' => [ +'_' => 'sendMessageEmojiInteraction', +'emoticon' => self::deserialize_string($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'interaction' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'.e' => [ +'_' => 'sendMessageEmojiInteractionSeen', +'emoticon' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'翷H' => [ +'_' => 'updateChatUserTyping', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'from_id' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'action' => match (stream_get_contents($stream, 4)) { +'Nt' => [ +'_' => 'sendMessageTypingAction', +], +'孇^' => [ +'_' => 'sendMessageCancelAction', +], +'o' => [ +'_' => 'sendMessageRecordVideoAction', +], +':v' => [ +'_' => 'sendMessageUploadVideoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'顪/' => [ +'_' => 'sendMessageRecordAudioAction', +], +'度Q' => [ +'_' => 'sendMessageUploadAudioAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&J衭' => [ +'_' => 'sendMessageUploadPhotoAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'駇 ' => [ +'_' => 'sendMessageUploadDocumentAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'o' => [ +'_' => 'sendMessageGeoLocationAction', +], +'ob' => [ +'_' => 'sendMessageChooseContactAction', +], +'Hj' => [ +'_' => 'sendMessageGamePlayAction', +], +'' => [ +'_' => 'sendMessageRecordRoundAction', +], +'f>$' => [ +'_' => 'sendMessageUploadRoundAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'",' => [ +'_' => 'speakingInGroupCallAction', +], +'F窙' => [ +'_' => 'sendMessageHistoryImportAction', +'progress' => unpack('l', stream_get_contents($stream, 4))[1], +], +'排Z' => [ +'_' => 'sendMessageChooseStickerAction', +], +'+%' => [ +'_' => 'sendMessageEmojiInteraction', +'emoticon' => self::deserialize_string($stream), +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'interaction' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'.e' => [ +'_' => 'sendMessageEmojiInteractionSeen', +'emoticon' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_SendMessageAction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'v' => [ +'_' => 'updateChatParticipants', +'participants' => match (stream_get_contents($stream, 4)) { +'慪c' => self::deserialize_chatParticipantsForbidden($stream), +'<' => [ +'_' => 'chatParticipants', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participants' => self::deserialize_type_array_of_ChatParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_ChatParticipants(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'稘賢' => [ +'_' => 'updateUserStatus', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'status' => match (stream_get_contents($stream, 4)) { +'IP ' => [ +'_' => 'userStatusEmpty', +], +'I9寤' => [ +'_' => 'userStatusOnline', +'expires' => unpack('l', stream_get_contents($stream, 4))[1], +], +'?p' . "\0" . '' => [ +'_' => 'userStatusOffline', +'was_online' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}{' => self::deserialize_userStatusRecently($stream), +'T' => self::deserialize_userStatusLastWeek($stream), +'we' => self::deserialize_userStatusLastMonth($stream), +'+r0' => self::deserialize_type_UserStatus(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'$' => [ +'_' => 'updateUserName', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'usernames' => self::deserialize_type_array_of_Username(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'麉Q' => self::deserialize_updateNewAuthorization($stream), +'蝦' => [ +'_' => 'updateNewEncryptedMessage', +'message' => match (stream_get_contents($stream, 4)) { +'' => [ +'_' => 'encryptedMessage', +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +'file' => match (stream_get_contents($stream, 4)) { +'~I' => [ +'_' => 'encryptedFileEmpty', +], +'' . "\0" . '' => [ +'_' => 'encryptedFile', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'size' => unpack('q', stream_get_contents($stream, 8))[1], +'dc_id' => unpack('l', stream_get_contents($stream, 4))[1], +'key_fingerprint' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EncryptedFile(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'Ks#' => [ +'_' => 'encryptedMessageService', +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'bytes' => self::deserialize_bytes($stream), +], +'+r0' => self::deserialize_type_EncryptedMessage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'V' => [ +'_' => 'updateEncryptedChatTyping', +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鋡' => [ +'_' => 'updateEncryption', +'chat' => match (stream_get_contents($stream, 4)) { +'嚇' => [ +'_' => 'encryptedChatEmpty', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'SY淬' => [ +'_' => 'encryptedChatWaiting', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'L渫H' => self::deserialize_encryptedChatRequested($stream), +'л簜' => [ +'_' => 'encryptedChat', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'admin_id' => unpack('q', stream_get_contents($stream, 8))[1], +'participant_id' => unpack('q', stream_get_contents($stream, 8))[1], +'g_a_or_b' => self::deserialize_bytes($stream), +'key_fingerprint' => stream_get_contents($stream, 8), +], +'E|' => self::deserialize_encryptedChatDiscarded($stream), +'+r0' => self::deserialize_type_EncryptedChat(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'%8' => [ +'_' => 'updateEncryptedMessagesRead', +'chat_id' => unpack('l', stream_get_contents($stream, 4))[1], +'max_date' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +], +'QT=' => [ +'_' => 'updateChatParticipantAdd', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'inviter_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'w=/' => [ +'_' => 'updateChatParticipantDelete', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'s^' => [ +'_' => 'updateDcOptions', +'dc_options' => self::deserialize_type_array_of_DcOption(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'髼職' => [ +'_' => 'updateNotifySettings', +'peer' => match (stream_get_contents($stream, 4)) { +' ' => [ +'_' => 'notifyPeer', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'L;' => [ +'_' => 'notifyUsers', +], +'襞' => [ +'_' => 'notifyChats', +], +'歞' => [ +'_' => 'notifyBroadcasts', +], +'cn"' => [ +'_' => 'notifyForumTopic', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'top_msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_NotifyPeer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'notify_settings' => match (stream_get_contents($stream, 4)) { +' ,b' => self::deserialize_peerNotifySettings($stream), +'+r0' => self::deserialize_type_PeerNotifySettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'h儇' => self::deserialize_updateServiceNotification($stream), +'*\';' => [ +'_' => 'updatePrivacy', +'key' => match (stream_get_contents($stream, 4)) { +'0.' => [ +'_' => 'privacyKeyStatusTimestamp', +], +'mP' => [ +'_' => 'privacyKeyChatInvite', +], +'{+f=' => [ +'_' => 'privacyKeyPhoneCall', +], +'I9' => [ +'_' => 'privacyKeyPhoneP2P', +], +'Τ駧' => [ +'_' => 'privacyKeyForwards', +], +'' => [ +'_' => 'privacyKeyProfilePhoto', +], +'m' => [ +'_' => 'privacyKeyPhoneNumber', +], +'+B' => [ +'_' => 'privacyKeyAddedByPhone', +], +'' => [ +'_' => 'privacyKeyVoiceMessages', +], +'a' => [ +'_' => 'privacyKeyAbout', +], +'+r0' => self::deserialize_type_PrivacyKey(self::gzdecode($stream)), +default => self::err($stream) +} +, +'rules' => self::deserialize_type_array_of_PrivacyRule(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'*I' => [ +'_' => 'updateUserPhone', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'phone' => self::deserialize_string($stream), +], +'筰' => self::deserialize_updateReadHistoryInbox($stream), +'!//' => [ +'_' => 'updateReadHistoryOutbox', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' => [ +'_' => 'updateWebPage', +'webpage' => match (stream_get_contents($stream, 4)) { +'!' => self::deserialize_webPageEmpty($stream), +'G>扆' => self::deserialize_webPagePending($stream), +'淳' => self::deserialize_webPage($stream), +'s' => self::deserialize_webPageNotModified($stream), +'+r0' => self::deserialize_type_WebPage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'q"' => self::deserialize_updateReadMessagesContents($stream), +'' => self::deserialize_updateChannelTooLong($stream), +' L[c' => [ +'_' => 'updateChannel', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'槓' => [ +'_' => 'updateNewChannelMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'n.' => self::deserialize_updateReadChannelInbox($stream), +'[-' => [ +'_' => 'updateDeleteChannelMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'&' => [ +'_' => 'updateChannelMessageViews', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'views' => unpack('l', stream_get_contents($stream, 4))[1], +], +'糎忑' => [ +'_' => 'updateChatParticipantAdmin', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'is_admin' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'0h' => [ +'_' => 'updateNewStickerSet', +'stickerset' => match (stream_get_contents($stream, 4)) { +'?n' => [ +'_' => 'messages.stickerSet', +'set' => match (stream_get_contents($stream, 4)) { +'逴-' => self::deserialize_stickerSet($stream), +'+r0' => self::deserialize_type_StickerSet(self::gzdecode($stream)), +default => self::err($stream) +} +, +'packs' => self::deserialize_type_array_of_StickerPack(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'keywords' => self::deserialize_type_array_of_StickerKeyword(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'documents' => self::deserialize_type_array_of_Document(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'$齾' => [ +'_' => 'messages.stickerSetNotModified', +], +'+r0' => self::deserialize_type_messages___StickerSet(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'珩 ' => self::deserialize_updateStickerSetsOrder($stream), +'H1' => self::deserialize_updateStickerSets($stream), +'4u' => [ +'_' => 'updateSavedGifs', +], +'7oI' => self::deserialize_updateBotInlineQuery($stream), +'*' => self::deserialize_updateBotInlineSend($stream), +'蠬?' => [ +'_' => 'updateEditChannelMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鰍' => self::deserialize_updateBotCallbackQuery($stream), +'φ' => [ +'_' => 'updateEditMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Ri' => self::deserialize_updateInlineBotCallbackQuery($stream), +'_' => [ +'_' => 'updateReadChannelOutbox', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'m閹' => self::deserialize_updateDraftMessage($stream), +'B\'W' => [ +'_' => 'updateReadFeaturedStickers', +], +' ,B' => [ +'_' => 'updateRecentStickers', +], +')' => [ +'_' => 'updateConfig', +], +'gT3' => [ +'_' => 'updatePtsChanged', +], +'+/' => [ +'_' => 'updateChannelWebPage', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'webpage' => match (stream_get_contents($stream, 4)) { +'!' => self::deserialize_webPageEmpty($stream), +'G>扆' => self::deserialize_webPagePending($stream), +'淳' => self::deserialize_webPage($stream), +'s' => self::deserialize_webPageNotModified($stream), +'+r0' => self::deserialize_type_WebPage(self::gzdecode($stream)), +default => self::err($stream) +} +, +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'幝n' => self::deserialize_updateDialogPinned($stream), +'<' => self::deserialize_updatePinnedDialogs($stream), +'藝' => [ +'_' => 'updateBotWebhookJSON', +'data' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'共' => [ +'_' => 'updateBotWebhookJSONQuery', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +'data' => match (stream_get_contents($stream, 4)) { +'t}' => json_decode(self::deserialize_string($stream), true, 512, \JSON_THROW_ON_ERROR), +'+r0' => self::deserialize_type_DataJSON(self::gzdecode($stream)), +default => self::err($stream) +} +, +'timeout' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}挾' => [ +'_' => 'updateBotShippingQuery', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'payload' => self::deserialize_bytes($stream), +'shipping_address' => match (stream_get_contents($stream, 4)) { +'諈' => [ +'_' => 'postAddress', +'street_line1' => self::deserialize_string($stream), +'street_line2' => self::deserialize_string($stream), +'city' => self::deserialize_string($stream), +'state' => self::deserialize_string($stream), +'country_iso2' => self::deserialize_string($stream), +'post_code' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_PostAddress(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'' => self::deserialize_updateBotPrecheckoutQuery($stream), +'k' => [ +'_' => 'updatePhoneCall', +'phone_call' => match (stream_get_contents($stream, 4)) { +'仜S' => [ +'_' => 'phoneCallEmpty', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'o"' => self::deserialize_phoneCallWaiting($stream), +' 禨' => self::deserialize_phoneCallRequested($stream), +'嚥6' => self::deserialize_phoneCallAccepted($stream), +'g|' => self::deserialize_phoneCall($stream), +'嘜襾' => self::deserialize_phoneCallDiscarded($stream), +'+r0' => self::deserialize_type_PhoneCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'dVF' => [ +'_' => 'updateLangPackTooLong', +'lang_code' => self::deserialize_string($stream), +], +'M/V' => [ +'_' => 'updateLangPack', +'difference' => match (stream_get_contents($stream, 4)) { +'鶬' => [ +'_' => 'langPackDifference', +'lang_code' => self::deserialize_string($stream), +'from_version' => unpack('l', stream_get_contents($stream, 4))[1], +'version' => unpack('l', stream_get_contents($stream, 4))[1], +'strings' => self::deserialize_type_array_of_LangPackString(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'+r0' => self::deserialize_type_LangPackDifference(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'m' => [ +'_' => 'updateFavedStickers', +], +'])' => self::deserialize_updateChannelReadMessagesContents($stream), +'儒p' => [ +'_' => 'updateContactsReset', +], +'?' => [ +'_' => 'updateChannelAvailableMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'available_min_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'鵑d' => self::deserialize_updateDialogUnreadMark($stream), +'{e′' => self::deserialize_updateMessagePoll($stream), +'P鞘' => [ +'_' => 'updateChatDefaultBannedRights', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'default_banned_rights' => match (stream_get_contents($stream, 4)) { +'' => self::deserialize_chatBannedRights($stream), +'+r0' => self::deserialize_type_ChatBannedRights(self::gzdecode($stream)), +default => self::err($stream) +} +, +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +' 6' => [ +'_' => 'updateFolderPeers', +'folder_peers' => self::deserialize_type_array_of_FolderPeer(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'pts' => unpack('l', stream_get_contents($stream, 4))[1], +'pts_count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'fs~j' => [ +'_' => 'updatePeerSettings', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'settings' => match (stream_get_contents($stream, 4)) { +' ' => self::deserialize_peerSettings($stream), +'+r0' => self::deserialize_type_PeerSettings(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'區秩' => [ +'_' => 'updatePeerLocated', +'peers' => self::deserialize_type_array_of_PeerLocated(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'9' => [ +'_' => 'updateNewScheduledMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'螿' => [ +'_' => 'updateDeleteScheduledMessages', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'' => [ +'_' => 'updateTheme', +'theme' => match (stream_get_contents($stream, 4)) { +'狿' => self::deserialize_theme($stream), +'+r0' => self::deserialize_type_Theme(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'9' => [ +'_' => 'updateGeoLiveViewed', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'潗V' => [ +'_' => 'updateLoginToken', +], +'w$' => [ +'_' => 'updateMessagePollVote', +'poll_id' => unpack('q', stream_get_contents($stream, 8))[1], +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'options' => self::deserialize_type_array_of_bytes(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'}&' => self::deserialize_updateDialogFilter($stream), +'!蚰' => [ +'_' => 'updateDialogFilterOrder', +'order' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'O5' => [ +'_' => 'updateDialogFilters', +], +' 瘸&' => [ +'_' => 'updatePhoneCallSignalingData', +'phone_call_id' => unpack('q', stream_get_contents($stream, 8))[1], +'data' => self::deserialize_bytes($stream), +], +'瀵'' => [ +'_' => 'updateChannelMessageForwards', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'forwards' => unpack('l', stream_get_contents($stream, 4))[1], +], +'F敔' => self::deserialize_updateReadChannelDiscussionInbox($stream), +'|\\i' => [ +'_' => 'updateReadChannelDiscussionOutbox', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'top_msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'read_max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Rw鳪' => self::deserialize_updatePeerBlocked($stream), +'#' => self::deserialize_updateChannelUserTyping($stream), +'虛' => self::deserialize_updatePinnedMessages($stream), +'鉀' => self::deserialize_updatePinnedChannelMessages($stream), +'Nj' => [ +'_' => 'updateChat', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'N貹' => [ +'_' => 'updateGroupCallParticipants', +'call' => match (stream_get_contents($stream, 4)) { +'臾' => [ +'_' => 'inputGroupCall', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_InputGroupCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +'participants' => self::deserialize_type_array_of_GroupCallParticipant(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'version' => unpack('l', stream_get_contents($stream, 4))[1], +], +'' . "\0" . 'E' => [ +'_' => 'updateGroupCall', +'chat_id' => unpack('q', stream_get_contents($stream, 8))[1], +'call' => match (stream_get_contents($stream, 4)) { +'智w' => [ +'_' => 'groupCallDiscarded', +'id' => unpack('q', stream_get_contents($stream, 8))[1], +'access_hash' => unpack('q', stream_get_contents($stream, 8))[1], +'duration' => unpack('l', stream_get_contents($stream, 4))[1], +], +' e' => self::deserialize_groupCall($stream), +'+r0' => self::deserialize_type_GroupCall(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'旦' => self::deserialize_updatePeerHistoryTTL($stream), +':f' => self::deserialize_updateChatParticipant($stream), +':]' => self::deserialize_updateChannelParticipant($stream), +'I +' => [ +'_' => 'updateBotStopped', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'stopped' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'9x ' => self::deserialize_updateGroupCallConnection($stream), +'./qM' => [ +'_' => 'updateBotCommands', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], +'commands' => self::deserialize_type_array_of_BotCommand(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'袺cp' => [ +'_' => 'updatePendingJoinRequests', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'requests_pending' => unpack('l', stream_get_contents($stream, 4))[1], +'recent_requesters' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'拋' => [ +'_' => 'updateBotChatInviteRequester', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'about' => self::deserialize_string($stream), +'invite' => match (stream_get_contents($stream, 4)) { +'迄 +' => self::deserialize_chatInviteExported($stream), +'暘' => [ +'_' => 'chatInvitePublicJoinRequests', +], +'+r0' => self::deserialize_type_ExportedChatInvite(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'<^' => self::deserialize_updateMessageReactions($stream), +' 8' => [ +'_' => 'updateAttachMenuBots', +], +'' => [ +'_' => 'updateWebViewResultSent', +'query_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'X' => [ +'_' => 'updateBotMenuButton', +'bot_id' => unpack('q', stream_get_contents($stream, 8))[1], +'button' => match (stream_get_contents($stream, 4)) { +'3u' => [ +'_' => 'botMenuButtonDefault', +], +'擴B' => [ +'_' => 'botMenuButtonCommands', +], +'獡腎' => [ +'_' => 'botMenuButton', +'text' => self::deserialize_string($stream), +'url' => self::deserialize_string($stream), +], +'+r0' => self::deserialize_type_BotMenuButton(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'撻t' => [ +'_' => 'updateSavedRingtones', +], +'Z' . "\0" . '' => self::deserialize_updateTranscribedAudio($stream), +'lIL' => [ +'_' => 'updateReadFeaturedEmojiStickers', +], +'57(' => [ +'_' => 'updateUserEmojiStatus', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +'emoji_status' => match (stream_get_contents($stream, 4)) { +'-' => [ +'_' => 'emojiStatusEmpty', +], +'a' => [ +'_' => 'emojiStatus', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'ヮ0' => [ +'_' => 'emojiStatusUntil', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +'until' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_EmojiStatus(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'羡0' => [ +'_' => 'updateRecentEmojiStatuses', +], +'瀿xo' => [ +'_' => 'updateRecentReactions', +], +'秖' => self::deserialize_updateMoveStickerSetToTop($stream), +'孟Z' => [ +'_' => 'updateMessageExtendedMedia', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'extended_media' => match (stream_get_contents($stream, 4)) { +'b' => self::deserialize_messageExtendedMediaPreview($stream), +'dG' => [ +'_' => 'messageExtendedMedia', +'media' => match (stream_get_contents($stream, 4)) { +' c=' => [ +'_' => 'messageMediaEmpty', +], +'脝Qi' => self::deserialize_messageMediaPhoto($stream), +'t婄V' => [ +'_' => 'messageMediaGeo', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'I)2p' => [ +'_' => 'messageMediaContact', +'phone_number' => self::deserialize_string($stream), +'first_name' => self::deserialize_string($stream), +'last_name' => self::deserialize_string($stream), +'vcard' => self::deserialize_string($stream), +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'' => [ +'_' => 'messageMediaUnsupported', +], +'-酚L' => self::deserialize_messageMediaDocument($stream), +'; 鵚' => self::deserialize_messageMediaWebPage($stream), +'?S.' => [ +'_' => 'messageMediaVenue', +'geo' => match (stream_get_contents($stream, 4)) { +'_' => [ +'_' => 'geoPointEmpty', +], +'c髍' => self::deserialize_geoPoint($stream), +'+r0' => self::deserialize_type_GeoPoint(self::gzdecode($stream)), +default => self::err($stream) +} +, +'title' => self::deserialize_string($stream), +'address' => self::deserialize_string($stream), +'provider' => self::deserialize_string($stream), +'venue_id' => self::deserialize_string($stream), +'venue_type' => self::deserialize_string($stream), +], +'欲' => [ +'_' => 'messageMediaGame', +'game' => match (stream_get_contents($stream, 4)) { +';e虌' => self::deserialize_game($stream), +'+r0' => self::deserialize_type_Game(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'笒仳' => self::deserialize_messageMediaInvoice($stream), +'f讖' => self::deserialize_messageMediaGeoLive($stream), +'誸K' => [ +'_' => 'messageMediaPoll', +'poll' => match (stream_get_contents($stream, 4)) { +'a' => self::deserialize_poll($stream), +'+r0' => self::deserialize_type_Poll(self::gzdecode($stream)), +default => self::err($stream) +} +, +'results' => match (stream_get_contents($stream, 4)) { +' $朡' => self::deserialize_pollResults($stream), +'+r0' => self::deserialize_type_PollResults(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'憉?' => [ +'_' => 'messageMediaDice', +'value' => unpack('l', stream_get_contents($stream, 4))[1], +'emoticon' => self::deserialize_string($stream), +], +'b玕' => self::deserialize_messageMediaStory($stream), +'俾' => self::deserialize_messageMediaGiveaway($stream), +'h' => self::deserialize_messageMediaGiveawayResults($stream), +'+r0' => self::deserialize_type_MessageMedia(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+r0' => self::deserialize_type_MessageExtendedMedia(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'裮.' => self::deserialize_updateChannelPinnedTopic($stream), +'' => self::deserialize_updateChannelPinnedTopics($stream), +'8R ' => [ +'_' => 'updateUser', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'' => [ +'_' => 'updateAutoSaveSettings', +], +'蟗' => [ +'_' => 'updateGroupInvitePrivacyForbidden', +'user_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'歲u' => [ +'_' => 'updateStory', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story' => match (stream_get_contents($stream, 4)) { +'O鍻Q' => [ +'_' => 'storyItemDeleted', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'伬' => self::deserialize_storyItemSkipped($stream), +'$j球' => self::deserialize_storyItem($stream), +'+r0' => self::deserialize_type_StoryItem(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'+N' => [ +'_' => 'updateReadStories', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'max_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +'5' => [ +'_' => 'updateStoryID', +'id' => unpack('l', stream_get_contents($stream, 4))[1], +'random_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'簍,' => [ +'_' => 'updateStoriesStealthMode', +'stealth_mode' => match (stream_get_contents($stream, 4)) { +'\'.q' => self::deserialize_storiesStealthMode($stream), +'+r0' => self::deserialize_type_StoriesStealthMode(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'vb}' => [ +'_' => 'updateSentStoryReaction', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'story_id' => unpack('l', stream_get_contents($stream, 4))[1], +'reaction' => match (stream_get_contents($stream, 4)) { +'崋y' => [ +'_' => 'reactionEmpty', +], +'"' => [ +'_' => 'reactionEmoji', +'emoticon' => self::deserialize_string($stream), +], +'s5' => [ +'_' => 'reactionCustomEmoji', +'document_id' => unpack('q', stream_get_contents($stream, 8))[1], +], +'+r0' => self::deserialize_type_Reaction(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'偪' => [ +'_' => 'updateBotChatBoost', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'boost' => match (stream_get_contents($stream, 4)) { +'q*' => self::deserialize_boost($stream), +'+r0' => self::deserialize_type_Boost(self::gzdecode($stream)), +default => self::err($stream) +} +, +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +' ' => [ +'_' => 'updateChannelViewForumAsMessages', +'channel_id' => unpack('q', stream_get_contents($stream, 8))[1], +'enabled' => match (stream_get_contents($stream, 4)) {'短r' => true,'7y' => false, default => self::err($stream) }, +], +'?' => self::deserialize_updatePeerWallpaper($stream), +'扃!' => [ +'_' => 'updateBotMessageReaction', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'actor' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'old_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'new_reactions' => self::deserialize_type_array_of_Reaction(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'Yw ' => [ +'_' => 'updateBotMessageReactions', +'peer' => match (stream_get_contents($stream, 4)) { +'"QY' => unpack('q', stream_get_contents($stream, 8))[1], +'6' => -unpack('q', stream_get_contents($stream, 8))[1], +'7失' => -1000000000000 - unpack('q', stream_get_contents($stream, 8))[1], +'+r0' => self::deserialize_type_Peer(self::gzdecode($stream)), +default => self::err($stream) +} +, +'msg_id' => unpack('l', stream_get_contents($stream, 4))[1], +'date' => unpack('l', stream_get_contents($stream, 4))[1], +'reactions' => self::deserialize_type_array_of_ReactionCount(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +'qts' => unpack('l', stream_get_contents($stream, 4))[1], +], +'t祚' => self::deserialize_updateSavedDialogPinned($stream), +'lh' => self::deserialize_updatePinnedSavedDialogs($stream), +'2t9' => [ +'_' => 'updateSavedReactionTags', +], +'剫b' => [ +'_' => 'updateSmsJob', +'job_id' => self::deserialize_string($stream), +], +' +G' => [ +'_' => 'updateQuickReplies', +'quick_replies' => self::deserialize_type_array_of_QuickReply(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), +], +'=' => [ +'_' => 'updateNewQuickReply', +'quick_reply' => match (stream_get_contents($stream, 4)) { +'+' => [ +'_' => 'quickReply', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +'shortcut' => self::deserialize_string($stream), +'top_message' => unpack('l', stream_get_contents($stream, 4))[1], +'count' => unpack('l', stream_get_contents($stream, 4))[1], +], +'+r0' => self::deserialize_type_QuickReply(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'旚漀' => [ +'_' => 'updateDeleteQuickReply', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +], +' >' => [ +'_' => 'updateQuickReplyMessage', +'message' => match (stream_get_contents($stream, 4)) { +'呇' => self::deserialize_messageEmpty($stream), +'~l' => self::deserialize_message($stream), +'bX+' => self::deserialize_messageService($stream), +'+r0' => self::deserialize_type_Message(self::gzdecode($stream)), +default => self::err($stream) +} +, +], +'侻oV' => [ +'_' => 'updateDeleteQuickReplyMessages', +'shortcut_id' => unpack('l', stream_get_contents($stream, 4))[1], +'messages' => self::deserialize_type_array_of_int(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'c$' => [ '_' => 'resPQ', 'nonce' => stream_get_contents($stream, 16), 'server_nonce' => stream_get_contents($stream, 16), 'pq' => self::deserialize_string($stream), -'server_public_key_fingerprints' => self::deserialize_type_array_of_strlong($stream), +'server_public_key_fingerprints' => self::deserialize_type_array_of_strlong(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '警' => [ '_' => 'vector', @@ -36980,11 +44349,7 @@ default => self::err($stream) 'temp_session_id' => unpack('q', stream_get_contents($stream, 8))[1], 'expires_at' => unpack('l', stream_get_contents($stream, 4))[1], ], -'m\\' => [ -'_' => 'rpc_result', -'req_msg_id' => unpack('q', stream_get_contents($stream, 8))[1], -'result' => self::deserialize_type_MethodResult($stream), -], +'m\\' => self::deserialize_rpc_result($stream), 'n*^' => [ '_' => 'rpc_answer_unknown', ], @@ -37053,7 +44418,10 @@ default => self::err($stream) ], 'Y棉b' => [ '_' => 'msgs_ack', -'msg_ids' => self::deserialize_type_array_of_long($stream), +'msg_ids' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '攮' => [ '_' => 'bad_msg_notification', @@ -37070,15 +44438,24 @@ default => self::err($stream) ], '赮' => [ '_' => 'msg_resend_ans_req', -'msg_ids' => self::deserialize_type_array_of_long($stream), +'msg_ids' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '}' => [ '_' => 'msg_resend_req', -'msg_ids' => self::deserialize_type_array_of_long($stream), +'msg_ids' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], 'Ri' => [ '_' => 'msgs_state_req', -'msg_ids' => self::deserialize_type_array_of_long($stream), +'msg_ids' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), ], '}萌' => [ '_' => 'msgs_state_info', @@ -37087,7 +44464,10 @@ default => self::err($stream) ], '1挴' => [ '_' => 'msgs_all_info', -'msg_ids' => self::deserialize_type_array_of_long($stream), +'msg_ids' => self::deserialize_type_array_of_long(match(stream_get_contents($stream, 4)) { + '警' => $stream, + '+r0' => self::gzdecode_vector($stream) + }), 'info' => self::deserialize_string($stream), ], '>m\'' => [ diff --git a/tools/TL/Builder.php b/tools/TL/Builder.php index c4ebf06dd..8fcb5f482 100644 --- a/tools/TL/Builder.php +++ b/tools/TL/Builder.php @@ -40,6 +40,7 @@ final class Builder private readonly array $idByPredicate; private readonly array $typeByPredicate; private readonly array $constructorByPredicate; + private readonly array $methodVectorTypes; private $output; public function __construct( TLSchema $settings, @@ -68,17 +69,20 @@ final class Builder $param['type'] = 'inflated'; } - if ($constructor['predicate'] === 'rpc_result' && $param['name'] === 'result') { - $param['type'] = 'MethodResult'; - } - if ($param['name'] === 'random_bytes') { $param['type'] = 'random_bytes'; } + + if (isset($param['subtype'])) { + $param['type'] = match ($param['type']) { + 'Vector t' => "Vector<{$param['subtype']}>", + 'vector' => "vector<{$param['subtype']}>", + }; + } } if (isset($constructor['layer'])) { - $constructor['predicate'] .= '_'.$constructor['layer']; + continue; } $constructor['id'] = $id; @@ -87,15 +91,39 @@ final class Builder $typeByPredicate[$constructor['predicate']] = $constructor['type']; $byType[$constructor['type']][$id]= $constructor; } - $this->byType = $byType; $this->idByPredicate = $idByPredicate; $this->typeByPredicate = $typeByPredicate; $this->constructorByPredicate = $constructorByPredicate; + + $methodConstructors = []; + $methodVectorTypes = []; + foreach ($this->TL->getMethods()->by_id as $c) { + ['type' => $type, 'method' => $name, 'encrypted' => $encrypted] = $c; + if (!$encrypted) { + continue; + } + // TODO + if ($type === 'X') { + continue; + } + if (isset($c['subtype'])) { + $methodVectorTypes[$name] = match ($c['type']) { + 'Vector t' => "Vector<{$c['subtype']}>", + 'vector' => "vector<{$c['subtype']}>", + }; + continue; + } + $methodConstructors = array_merge($methodConstructors, $byType[$type]); + } + + $byType['MethodResult'] = $methodConstructors; + $this->methodVectorTypes = $methodVectorTypes; + $this->byType = $byType; } private static function escapeConstructorName(array $constructor): string { - return str_replace(['.', ' '], '___', $constructor['predicate']).(isset($constructor['layer']) ?'_'.$constructor['layer'] : ''); + return str_replace(['.', ' '], '___', $constructor['predicate']); } private static function escapeTypeName(string $name): string { @@ -135,7 +163,22 @@ final class Builder $result .= $this->buildConstructor($predicate); $result .= ",\n"; } - $result .= $this->idByPredicate['gzip_packed']." => ".$this->methodCall("deserialize$typeMethod", 'self::gzdecode($stream)').",\n"; + if ($type === 'MethodResult') { + $result .= $this->idByPredicate['gzip_packed']." => ".$this->methodCall( + "deserialize$typeMethod", + 'self::gzdecode($stream), $method' + ).",\n"; + $result .= $this->idByPredicate['vector']." => match (\$method) {\n"; + foreach ($this->methodVectorTypes as $method => $type) { + $result .= var_export($method, true) . ' => '.$this->buildType($type).",\n"; + } + $result .= "},\n"; + } else { + $result .= $this->idByPredicate['gzip_packed']." => ".$this->methodCall( + "deserialize$typeMethod", + 'self::gzdecode($stream)' + ).",\n"; + } $result .= "default => self::err(\$stream)\n"; return $result."}\n"; } @@ -148,7 +191,25 @@ final class Builder 'flags' => $flags, 'params' => $params, ] = $constructor; - if ($flags) { + + if ($predicate === 'rpc_result') { + $result = "\$tmp = ['_' => '$predicate', 'req_msg_id' => \$id = {$this->buildType('long')}];\n"; + $result .= '$message = $this->connection->outgoing_messages[$id]; + $method = $message->constructor; + if (isset($this->beforeMethodResponseDeserialization[$method])) { + foreach ($this->beforeMethodResponseDeserialization[$method] as $callback) { + $callback($method); + } + } + $tmp["result"] = '.$this->buildType('MethodResult').'; + if (isset($this->afterMethodResponseDeserialization[$method])) { + foreach ($this->afterMethodResponseDeserialization[$method] as $callback) { + $callback($tmp); + } + } + return $tmp; + '; + } elseif ($flags) { $result = $this->buildConstructorFull($predicate, $params, $flags); } else { $result = $this->buildConstructorShort($predicate, $params, $flags); @@ -159,11 +220,11 @@ final class Builder } $pre = ''; - foreach ($this->TL->beforeConstructorDeserialization as $closure) { + foreach ($this->TL->beforeConstructorDeserialization[$predicate] ?? [] as $closure) { $pre .= self::methodFromClosure($closure)."('$predicate');\n"; } $result = $pre.$result; - foreach ($this->TL->afterConstructorDeserialization as $closure) { + foreach ($this->TL->afterConstructorDeserialization[$predicate] ?? [] as $closure) { $result .= self::methodFromClosure($closure)."(\$tmp);\n"; } @@ -185,7 +246,7 @@ final class Builder foreach ($params as $param) { $name = $param['name']; if (!isset($param['pow'])) { - $code = $this->buildParam($param); + $code = $this->buildType($param['type']); if (isset($flagNames[$name])) { $result .= "\$$name = $code;\n"; @@ -199,7 +260,7 @@ final class Builder $result .= "\$tmp['$name'] = $flag;\n"; continue; } - $code = $this->buildParam($param); + $code = $this->buildType($param['type']); $result .= "if ($flag) \$tmp['$name'] = $code;\n"; } return "$result\nreturn \$tmp;"; @@ -208,7 +269,7 @@ final class Builder private function buildConstructorShort(string $predicate, array $params = []): string { if ($predicate === 'dataJSON') { - return 'json_decode('.$this->buildParam(['type' => 'string']).', true, 512, \\JSON_THROW_ON_ERROR)'; + return 'json_decode('.$this->buildType('string').', true, 512, \\JSON_THROW_ON_ERROR)'; } if ($predicate === 'jsonNull') { return 'null'; @@ -222,7 +283,7 @@ final class Builder $result .= "'_' => '$predicate',\n"; } foreach ($params as $param) { - $code = $this->buildParam($param); + $code = $this->buildType($param['type']); if ($superBare) { $result .= $code; @@ -241,13 +302,49 @@ final class Builder return $result; } - private function buildParam(array $param): string + private array $createdVectors = []; + private function buildVector(string $type, bool $bare, ?string $payload = null): string { - if (isset($param['subtype'])) { - return $this->buildVector($param['subtype']); + if (!isset($this->createdVectors[$type])) { + $this->createdVectors[$type] = true; + if ($type === 'JSONObjectValue') { + $payload = '$result['.$this->buildType('string').'] = '.$this->buildType('JSONValue'); + } elseif (isset($this->byType[$type])) { + $payload = '$result []= '.$this->buildTypes($this->byType[$type], $type); + } elseif ($payload === null) { + if ($type === '%MTMessage') { + $type = 'MTmessage'; + } + $payload = '$result []= '.$this->buildConstructor($type); + } + $this->m("deserialize_type_array_of_{$this->escapeTypeName($type)}", ' + $result = []; + for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { + '.$payload.'; + } + return $result; + ', 'array', static: $type === 'JSONValue'); } + return $this->methodCall( + "deserialize_type_array_of_{$this->escapeTypeName($type)}", + $bare ? '$stream' : 'match(stream_get_contents($stream, 4)) { + '.$this->idByPredicate['vector'].' => $stream, + '.$this->idByPredicate['gzip_packed'].' => self::gzdecode_vector($stream) + }' + ); + } - return match ($type = $param['type']) { + private array $createdTypes = ['Object' => true]; + private array $typeStack = []; + private function buildType(string $type): string + { + if (str_starts_with($type, 'Vector<')) { + return $this->buildVector(str_replace(['Vector<', '>'], '', $type), false); + } + if (str_starts_with($type, 'vector<')) { + return $this->buildVector(str_replace(['vector<', '>'], '', $type), true); + } + $tmp = match ($type) { '#' => "unpack('V', stream_get_contents(\$stream, 4))[1]", 'int' => "unpack('l', stream_get_contents(\$stream, 4))[1]", 'long' => "unpack('q', stream_get_contents(\$stream, 8))[1]", @@ -263,46 +360,15 @@ final class Builder $this->methodCall("deserialize_$type"), 'inflated' => 'new Types\Bytes(Tools::inflateStripped('.$this->methodCall("deserialize_string").'))', - default => $this->buildType($type) + default => null }; - } - - private array $createdVectors = []; - private function buildVector(string $type, ?string $payload = null): string - { - if (!isset($this->createdVectors[$type])) { - $this->createdVectors[$type] = true; - if ($type === 'JSONObjectValue') { - $payload = '$result['.$this->buildParam(['type' => 'string']).'] = '.$this->buildParam(['type' => 'JSONValue']); - } elseif (isset($this->byType[$type])) { - $payload = '$result []= '.$this->buildTypes($this->byType[$type], $type); - } elseif ($payload === null) { - if ($type === '%MTMessage') { - $type = 'MTmessage'; - } - $payload = '$result []= '.$this->buildConstructor($type); - } - $this->m("deserialize_type_array_of_{$this->escapeTypeName($type)}", ' - $stream = match(stream_get_contents($stream, 4)) { - '.$this->idByPredicate['vector'].' => $stream, - '.$this->idByPredicate['gzip_packed'].' => self::gzdecode_vector($stream) - }; - $result = []; - for ($x = unpack("V", stream_get_contents($stream, 4))[1]; $x > 0; --$x) { - '.$payload.'; - } - return $result; - ', 'array', static: $type === 'JSONValue'); + if ($tmp !== null) { + return $tmp; } - return $this->methodCall("deserialize_type_array_of_{$this->escapeTypeName($type)}"); - } - private array $createdTypes = ['Object' => true, 'MethodResult' => true]; - private array $typeStack = []; - private function buildType(string $type): string - { if (!isset($this->createdTypes[$type])) { $this->createdTypes[$type] = true; + $this->m( "deserialize_type_{$this->escapeTypeName($type)}", "return {$this->buildTypes($this->byType[$type], $type)};", @@ -313,7 +379,7 @@ final class Builder $had = array_search($type, $this->typeStack) !== false; $this->typeStack []= $type; try { - if (!$had && $type !== 'MethodResult') { + if (!$had) { return $this->buildTypes($this->byType[$type], $type); } return $this->methodCall("deserialize_type_{$this->escapeTypeName($type)}"); @@ -330,7 +396,7 @@ final class Builder : "self::$method($stream)"; } - public function m(string $methodName, string $body, string $returnType = 'mixed', bool $public = false, bool $static = false): void + public function m(string $methodName, string $body, string $returnType = 'mixed', bool $public = false, bool $static = false, string $extraArg = ''): void { if (isset($this->methodsCreated[$methodName])) { throw new AssertionError("Already created $methodName!"); @@ -339,7 +405,7 @@ final class Builder $this->methodsCreated[$methodName] = $static; $public = $public ? 'public' : 'private'; $static = $static ? 'static' : ''; - $this->w(" $public $static function $methodName(mixed \$stream): $returnType {\n{$body}\n }\n"); + $this->w(" $public $static function $methodName(mixed \$stream$extraArg): $returnType {\n{$body}\n }\n"); } private function w(string $data): void { @@ -431,20 +497,9 @@ final class Builder ', 'void'); foreach (['int', 'long', 'double', 'strlong', 'string', 'bytes'] as $type) { - $this->buildVector($type, $this->buildParam(['type' => $type])); + $this->buildVector($type, false, '$result []= '.$this->buildType($type)); } - $methodConstructors = []; - foreach ($this->TL->getMethods()->by_id as ['type' => $type]) { - // TODO - if ($type === 'X') { - continue; - } - $methodConstructors = array_merge($methodConstructors, $this->byType[$type]); - } - - $this->m("deserialize_type_MethodResult", "return {$this->buildTypes($methodConstructors, 'MethodResult')};", 'mixed', false, static: false); - $initial_constructors = array_filter( $this->constructorByPredicate, static fn (array $arr) => (