public override void ToStream(Stream output)
        {
            output.Write(TLUtils.SignatureToBytes(Signature));
            output.Write(Id.ToBytes());
            output.Write(AccessHash.ToBytes());
            output.Write(Date.ToBytes());
            output.Write(AdminId.ToBytes());
            output.Write(ParticipantId.ToBytes());
            output.Write(GAorB.ToBytes());

            Key.NullableToStream(output);
            KeyFingerprint.NullableToStream(output);
            P.NullableToStream(output);
            G.NullableToStream(output);
            A.NullableToStream(output);
            MessageTTL.NullableToStream(output);
            FileName.NullableToStream(output);

            RawInSeqNo.NullableToStream(output);
            RawOutSeqNo.NullableToStream(output);
            Layer.NullableToStream(output);

            PFS_ExchangeId.NullableToStream(output);
            PFS_A.NullableToStream(output);
            PFS_Key.NullableToStream(output);
            PFS_KeyFingerprint.NullableToStream(output);
        }
        public override void ToStream(Stream output)
        {
            output.Write(TLUtils.SignatureToBytes(Signature));
            output.Write(Id.ToBytes());
            output.Write(AccessHash.ToBytes());
            output.Write(Date.ToBytes());
            output.Write(AdminId.ToBytes());
            output.Write(ParticipantId.ToBytes());
            output.Write(GAorB.ToBytes());

            Key.NullableToStream(output);
            KeyFingerprint.NullableToStream(output);
            P.NullableToStream(output);
            G.NullableToStream(output);
            A.NullableToStream(output);
            MessageTTL.NullableToStream(output);

            CustomFlags.NullableToStream(output);
            ToStream(output, OriginalKey, CustomFlags, (int)EncryptedChatCustomFlags.OriginalKey);
            ToStream(output, ExtendedKey, CustomFlags, (int)EncryptedChatCustomFlags.ExtendedKey);

            RawInSeqNo.NullableToStream(output);
            RawOutSeqNo.NullableToStream(output);
            Layer.NullableToStream(output);
        }