namespace SabreTools.Models.Compression.LZX { /// /// An aligned offset block is identical to the verbatim block except for the presence of the aligned offset /// tree preceding the other trees. /// /// public class AlignedOffsetBlock { /// /// Generic block header /// #if NET48 public BlockHeader Header; #else public BlockHeader? Header; #endif /// /// Aligned offset tree /// /// 8 elements, 3 bits each #if NET48 public byte[] AlignedOffsetTree; #else public byte[]? AlignedOffsetTree; #endif /// /// Pretree for first 256 elements of main tree /// /// 20 elements, 4 bits each #if NET48 public byte[] PretreeFirst256; #else public byte[]? PretreeFirst256; #endif /// /// Path lengths of first 256 elements of main tree /// /// Encoded using pretree #if NET48 public int[] PathLengthsFirst256; #else public int[]? PathLengthsFirst256; #endif /// /// Pretree for remainder of main tree /// /// 20 elements, 4 bits each #if NET48 public byte[] PretreeRemainder; #else public byte[]? PretreeRemainder; #endif /// /// Path lengths of remaining elements of main tree /// /// Encoded using pretree #if NET48 public int[] PathLengthsRemainder; #else public int[]? PathLengthsRemainder; #endif /// /// Pretree for length tree /// /// 20 elements, 4 bits each #if NET48 public byte[] PretreeLengthTree; #else public byte[]? PretreeLengthTree; #endif /// /// Path lengths of elements in length tree /// /// Encoded using pretree #if NET48 public int[] PathLengthsLengthTree; #else public int[]? PathLengthsLengthTree; #endif // Entry Comments Size // --------------------------------------------------------------------------------------- // Token sequence (matches and literals) Specified in section 2.6 Variable } }