using System.Collections.Generic; using System.IO; using System.Text; namespace ScreenConnect; public class BinaryWriter : System.IO.BinaryWriter { public Encoding Encoding { get; } public BinaryWriter(Stream stream) : this(stream, Constants.UTF8EncodingWithoutPreamble) { } public BinaryWriter(Stream stream, Encoding encoding) : base(stream, encoding) { Encoding = encoding; } public new void Write7BitEncodedInt(int value) { base.Write7BitEncodedInt(value); } public void Write7BitEncodedLong(long value) { ulong num; for (num = (ulong)value; num >= 128; num >>= 7) { Write((byte)(num | 0x80)); } Write((byte)num); } public void Write7BitBigEndianEncodedLong(long value) { ulong num = (ulong)value; List list = new List(); list.Add((byte)(num & 0x7F)); for (num >>= 7; num != 0; num >>= 7) { list.Add((byte)(0x80 | (num & 0x7F))); } for (int num2 = list.Count - 1; num2 >= 0; num2--) { Write(list[num2]); } } }