#![allow(clippy::all, clippy::pedantic, clippy::nursery, clippy::restriction)]
#[inline(always)]
fn decode1(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 32] = src[..32].try_into().unwrap();
let mut t = [0u32; 8];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..8 {
let x = (t[i] >> 7) & 0x1010101;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 6) & 0x1010101;
ints[8 + i] = x >> 24;
ints[72 + i] = (x >> 16) & 0xFF;
ints[136 + i] = (x >> 8) & 0xFF;
ints[200 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 5) & 0x1010101;
ints[16 + i] = x >> 24;
ints[80 + i] = (x >> 16) & 0xFF;
ints[144 + i] = (x >> 8) & 0xFF;
ints[208 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 4) & 0x1010101;
ints[24 + i] = x >> 24;
ints[88 + i] = (x >> 16) & 0xFF;
ints[152 + i] = (x >> 8) & 0xFF;
ints[216 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 3) & 0x1010101;
ints[32 + i] = x >> 24;
ints[96 + i] = (x >> 16) & 0xFF;
ints[160 + i] = (x >> 8) & 0xFF;
ints[224 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 2) & 0x1010101;
ints[40 + i] = x >> 24;
ints[104 + i] = (x >> 16) & 0xFF;
ints[168 + i] = (x >> 8) & 0xFF;
ints[232 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 1) & 0x1010101;
ints[48 + i] = x >> 24;
ints[112 + i] = (x >> 16) & 0xFF;
ints[176 + i] = (x >> 8) & 0xFF;
ints[240 + i] = x & 0xFF;
}
for i in 0..8 {
let x = (t[i] >> 0) & 0x1010101;
ints[56 + i] = x >> 24;
ints[120 + i] = (x >> 16) & 0xFF;
ints[184 + i] = (x >> 8) & 0xFF;
ints[248 + i] = x & 0xFF;
}
}
#[inline(always)]
fn decode2(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 64] = src[..64].try_into().unwrap();
let mut t = [0u32; 16];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..16 {
let x = (t[i] >> 6) & 0x3030303;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
for i in 0..16 {
let x = (t[i] >> 4) & 0x3030303;
ints[16 + i] = x >> 24;
ints[80 + i] = (x >> 16) & 0xFF;
ints[144 + i] = (x >> 8) & 0xFF;
ints[208 + i] = x & 0xFF;
}
for i in 0..16 {
let x = (t[i] >> 2) & 0x3030303;
ints[32 + i] = x >> 24;
ints[96 + i] = (x >> 16) & 0xFF;
ints[160 + i] = (x >> 8) & 0xFF;
ints[224 + i] = x & 0xFF;
}
for i in 0..16 {
let x = (t[i] >> 0) & 0x3030303;
ints[48 + i] = x >> 24;
ints[112 + i] = (x >> 16) & 0xFF;
ints[176 + i] = (x >> 8) & 0xFF;
ints[240 + i] = x & 0xFF;
}
}
#[inline(always)]
fn decode3(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 96] = src[..96].try_into().unwrap();
let mut t = [0u32; 24];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..24 {
let x = (t[i] >> 5) & 0x7070707;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
for i in 0..24 {
let x = (t[i] >> 2) & 0x7070707;
ints[24 + i] = x >> 24;
ints[88 + i] = (x >> 16) & 0xFF;
ints[152 + i] = (x >> 8) & 0xFF;
ints[216 + i] = x & 0xFF;
}
{
let x = ((t[0] & 0x3030303) << 1) | ((t[1] >> 1) & 0x1010101);
ints[48] = x >> 24;
ints[112] = (x >> 16) & 0xFF;
ints[176] = (x >> 8) & 0xFF;
ints[240] = x & 0xFF;
}
{
let x = ((t[1] & 0x1010101) << 2) | (t[2] & 0x3030303);
ints[49] = x >> 24;
ints[113] = (x >> 16) & 0xFF;
ints[177] = (x >> 8) & 0xFF;
ints[241] = x & 0xFF;
}
{
let x = ((t[3] & 0x3030303) << 1) | ((t[4] >> 1) & 0x1010101);
ints[50] = x >> 24;
ints[114] = (x >> 16) & 0xFF;
ints[178] = (x >> 8) & 0xFF;
ints[242] = x & 0xFF;
}
{
let x = ((t[4] & 0x1010101) << 2) | (t[5] & 0x3030303);
ints[51] = x >> 24;
ints[115] = (x >> 16) & 0xFF;
ints[179] = (x >> 8) & 0xFF;
ints[243] = x & 0xFF;
}
{
let x = ((t[6] & 0x3030303) << 1) | ((t[7] >> 1) & 0x1010101);
ints[52] = x >> 24;
ints[116] = (x >> 16) & 0xFF;
ints[180] = (x >> 8) & 0xFF;
ints[244] = x & 0xFF;
}
{
let x = ((t[7] & 0x1010101) << 2) | (t[8] & 0x3030303);
ints[53] = x >> 24;
ints[117] = (x >> 16) & 0xFF;
ints[181] = (x >> 8) & 0xFF;
ints[245] = x & 0xFF;
}
{
let x = ((t[9] & 0x3030303) << 1) | ((t[10] >> 1) & 0x1010101);
ints[54] = x >> 24;
ints[118] = (x >> 16) & 0xFF;
ints[182] = (x >> 8) & 0xFF;
ints[246] = x & 0xFF;
}
{
let x = ((t[10] & 0x1010101) << 2) | (t[11] & 0x3030303);
ints[55] = x >> 24;
ints[119] = (x >> 16) & 0xFF;
ints[183] = (x >> 8) & 0xFF;
ints[247] = x & 0xFF;
}
{
let x = ((t[12] & 0x3030303) << 1) | ((t[13] >> 1) & 0x1010101);
ints[56] = x >> 24;
ints[120] = (x >> 16) & 0xFF;
ints[184] = (x >> 8) & 0xFF;
ints[248] = x & 0xFF;
}
{
let x = ((t[13] & 0x1010101) << 2) | (t[14] & 0x3030303);
ints[57] = x >> 24;
ints[121] = (x >> 16) & 0xFF;
ints[185] = (x >> 8) & 0xFF;
ints[249] = x & 0xFF;
}
{
let x = ((t[15] & 0x3030303) << 1) | ((t[16] >> 1) & 0x1010101);
ints[58] = x >> 24;
ints[122] = (x >> 16) & 0xFF;
ints[186] = (x >> 8) & 0xFF;
ints[250] = x & 0xFF;
}
{
let x = ((t[16] & 0x1010101) << 2) | (t[17] & 0x3030303);
ints[59] = x >> 24;
ints[123] = (x >> 16) & 0xFF;
ints[187] = (x >> 8) & 0xFF;
ints[251] = x & 0xFF;
}
{
let x = ((t[18] & 0x3030303) << 1) | ((t[19] >> 1) & 0x1010101);
ints[60] = x >> 24;
ints[124] = (x >> 16) & 0xFF;
ints[188] = (x >> 8) & 0xFF;
ints[252] = x & 0xFF;
}
{
let x = ((t[19] & 0x1010101) << 2) | (t[20] & 0x3030303);
ints[61] = x >> 24;
ints[125] = (x >> 16) & 0xFF;
ints[189] = (x >> 8) & 0xFF;
ints[253] = x & 0xFF;
}
{
let x = ((t[21] & 0x3030303) << 1) | ((t[22] >> 1) & 0x1010101);
ints[62] = x >> 24;
ints[126] = (x >> 16) & 0xFF;
ints[190] = (x >> 8) & 0xFF;
ints[254] = x & 0xFF;
}
{
let x = ((t[22] & 0x1010101) << 2) | (t[23] & 0x3030303);
ints[63] = x >> 24;
ints[127] = (x >> 16) & 0xFF;
ints[191] = (x >> 8) & 0xFF;
ints[255] = x & 0xFF;
}
}
#[inline(always)]
fn decode4(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 128] = src[..128].try_into().unwrap();
let mut t = [0u32; 32];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..32 {
let x = (t[i] >> 4) & 0xf0f0f0f;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
for i in 0..32 {
let x = (t[i] >> 0) & 0xf0f0f0f;
ints[32 + i] = x >> 24;
ints[96 + i] = (x >> 16) & 0xFF;
ints[160 + i] = (x >> 8) & 0xFF;
ints[224 + i] = x & 0xFF;
}
}
#[inline(always)]
fn decode5(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 160] = src[..160].try_into().unwrap();
let mut t = [0u32; 40];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..40 {
let x = (t[i] >> 3) & 0x1f1f1f1f;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
{
let x = ((t[0] & 0x7070707) << 2) | ((t[1] >> 1) & 0x3030303);
ints[40] = x >> 24;
ints[104] = (x >> 16) & 0xFF;
ints[168] = (x >> 8) & 0xFF;
ints[232] = x & 0xFF;
}
{
let x = ((t[1] & 0x1010101) << 4) | ((t[2] & 0x7070707) << 1) | ((t[3] >> 2) & 0x1010101);
ints[41] = x >> 24;
ints[105] = (x >> 16) & 0xFF;
ints[169] = (x >> 8) & 0xFF;
ints[233] = x & 0xFF;
}
{
let x = ((t[3] & 0x3030303) << 3) | (t[4] & 0x7070707);
ints[42] = x >> 24;
ints[106] = (x >> 16) & 0xFF;
ints[170] = (x >> 8) & 0xFF;
ints[234] = x & 0xFF;
}
{
let x = ((t[5] & 0x7070707) << 2) | ((t[6] >> 1) & 0x3030303);
ints[43] = x >> 24;
ints[107] = (x >> 16) & 0xFF;
ints[171] = (x >> 8) & 0xFF;
ints[235] = x & 0xFF;
}
{
let x = ((t[6] & 0x1010101) << 4) | ((t[7] & 0x7070707) << 1) | ((t[8] >> 2) & 0x1010101);
ints[44] = x >> 24;
ints[108] = (x >> 16) & 0xFF;
ints[172] = (x >> 8) & 0xFF;
ints[236] = x & 0xFF;
}
{
let x = ((t[8] & 0x3030303) << 3) | (t[9] & 0x7070707);
ints[45] = x >> 24;
ints[109] = (x >> 16) & 0xFF;
ints[173] = (x >> 8) & 0xFF;
ints[237] = x & 0xFF;
}
{
let x = ((t[10] & 0x7070707) << 2) | ((t[11] >> 1) & 0x3030303);
ints[46] = x >> 24;
ints[110] = (x >> 16) & 0xFF;
ints[174] = (x >> 8) & 0xFF;
ints[238] = x & 0xFF;
}
{
let x =
((t[11] & 0x1010101) << 4) | ((t[12] & 0x7070707) << 1) | ((t[13] >> 2) & 0x1010101);
ints[47] = x >> 24;
ints[111] = (x >> 16) & 0xFF;
ints[175] = (x >> 8) & 0xFF;
ints[239] = x & 0xFF;
}
{
let x = ((t[13] & 0x3030303) << 3) | (t[14] & 0x7070707);
ints[48] = x >> 24;
ints[112] = (x >> 16) & 0xFF;
ints[176] = (x >> 8) & 0xFF;
ints[240] = x & 0xFF;
}
{
let x = ((t[15] & 0x7070707) << 2) | ((t[16] >> 1) & 0x3030303);
ints[49] = x >> 24;
ints[113] = (x >> 16) & 0xFF;
ints[177] = (x >> 8) & 0xFF;
ints[241] = x & 0xFF;
}
{
let x =
((t[16] & 0x1010101) << 4) | ((t[17] & 0x7070707) << 1) | ((t[18] >> 2) & 0x1010101);
ints[50] = x >> 24;
ints[114] = (x >> 16) & 0xFF;
ints[178] = (x >> 8) & 0xFF;
ints[242] = x & 0xFF;
}
{
let x = ((t[18] & 0x3030303) << 3) | (t[19] & 0x7070707);
ints[51] = x >> 24;
ints[115] = (x >> 16) & 0xFF;
ints[179] = (x >> 8) & 0xFF;
ints[243] = x & 0xFF;
}
{
let x = ((t[20] & 0x7070707) << 2) | ((t[21] >> 1) & 0x3030303);
ints[52] = x >> 24;
ints[116] = (x >> 16) & 0xFF;
ints[180] = (x >> 8) & 0xFF;
ints[244] = x & 0xFF;
}
{
let x =
((t[21] & 0x1010101) << 4) | ((t[22] & 0x7070707) << 1) | ((t[23] >> 2) & 0x1010101);
ints[53] = x >> 24;
ints[117] = (x >> 16) & 0xFF;
ints[181] = (x >> 8) & 0xFF;
ints[245] = x & 0xFF;
}
{
let x = ((t[23] & 0x3030303) << 3) | (t[24] & 0x7070707);
ints[54] = x >> 24;
ints[118] = (x >> 16) & 0xFF;
ints[182] = (x >> 8) & 0xFF;
ints[246] = x & 0xFF;
}
{
let x = ((t[25] & 0x7070707) << 2) | ((t[26] >> 1) & 0x3030303);
ints[55] = x >> 24;
ints[119] = (x >> 16) & 0xFF;
ints[183] = (x >> 8) & 0xFF;
ints[247] = x & 0xFF;
}
{
let x =
((t[26] & 0x1010101) << 4) | ((t[27] & 0x7070707) << 1) | ((t[28] >> 2) & 0x1010101);
ints[56] = x >> 24;
ints[120] = (x >> 16) & 0xFF;
ints[184] = (x >> 8) & 0xFF;
ints[248] = x & 0xFF;
}
{
let x = ((t[28] & 0x3030303) << 3) | (t[29] & 0x7070707);
ints[57] = x >> 24;
ints[121] = (x >> 16) & 0xFF;
ints[185] = (x >> 8) & 0xFF;
ints[249] = x & 0xFF;
}
{
let x = ((t[30] & 0x7070707) << 2) | ((t[31] >> 1) & 0x3030303);
ints[58] = x >> 24;
ints[122] = (x >> 16) & 0xFF;
ints[186] = (x >> 8) & 0xFF;
ints[250] = x & 0xFF;
}
{
let x =
((t[31] & 0x1010101) << 4) | ((t[32] & 0x7070707) << 1) | ((t[33] >> 2) & 0x1010101);
ints[59] = x >> 24;
ints[123] = (x >> 16) & 0xFF;
ints[187] = (x >> 8) & 0xFF;
ints[251] = x & 0xFF;
}
{
let x = ((t[33] & 0x3030303) << 3) | (t[34] & 0x7070707);
ints[60] = x >> 24;
ints[124] = (x >> 16) & 0xFF;
ints[188] = (x >> 8) & 0xFF;
ints[252] = x & 0xFF;
}
{
let x = ((t[35] & 0x7070707) << 2) | ((t[36] >> 1) & 0x3030303);
ints[61] = x >> 24;
ints[125] = (x >> 16) & 0xFF;
ints[189] = (x >> 8) & 0xFF;
ints[253] = x & 0xFF;
}
{
let x =
((t[36] & 0x1010101) << 4) | ((t[37] & 0x7070707) << 1) | ((t[38] >> 2) & 0x1010101);
ints[62] = x >> 24;
ints[126] = (x >> 16) & 0xFF;
ints[190] = (x >> 8) & 0xFF;
ints[254] = x & 0xFF;
}
{
let x = ((t[38] & 0x3030303) << 3) | (t[39] & 0x7070707);
ints[63] = x >> 24;
ints[127] = (x >> 16) & 0xFF;
ints[191] = (x >> 8) & 0xFF;
ints[255] = x & 0xFF;
}
}
#[inline(always)]
fn decode6(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 192] = src[..192].try_into().unwrap();
let mut t = [0u32; 48];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..48 {
let x = (t[i] >> 2) & 0x3f3f3f3f;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
{
let x = ((t[0] & 0x3030303) << 4) | ((t[1] & 0x3030303) << 2) | (t[2] & 0x3030303);
ints[48] = x >> 24;
ints[112] = (x >> 16) & 0xFF;
ints[176] = (x >> 8) & 0xFF;
ints[240] = x & 0xFF;
}
{
let x = ((t[3] & 0x3030303) << 4) | ((t[4] & 0x3030303) << 2) | (t[5] & 0x3030303);
ints[49] = x >> 24;
ints[113] = (x >> 16) & 0xFF;
ints[177] = (x >> 8) & 0xFF;
ints[241] = x & 0xFF;
}
{
let x = ((t[6] & 0x3030303) << 4) | ((t[7] & 0x3030303) << 2) | (t[8] & 0x3030303);
ints[50] = x >> 24;
ints[114] = (x >> 16) & 0xFF;
ints[178] = (x >> 8) & 0xFF;
ints[242] = x & 0xFF;
}
{
let x = ((t[9] & 0x3030303) << 4) | ((t[10] & 0x3030303) << 2) | (t[11] & 0x3030303);
ints[51] = x >> 24;
ints[115] = (x >> 16) & 0xFF;
ints[179] = (x >> 8) & 0xFF;
ints[243] = x & 0xFF;
}
{
let x = ((t[12] & 0x3030303) << 4) | ((t[13] & 0x3030303) << 2) | (t[14] & 0x3030303);
ints[52] = x >> 24;
ints[116] = (x >> 16) & 0xFF;
ints[180] = (x >> 8) & 0xFF;
ints[244] = x & 0xFF;
}
{
let x = ((t[15] & 0x3030303) << 4) | ((t[16] & 0x3030303) << 2) | (t[17] & 0x3030303);
ints[53] = x >> 24;
ints[117] = (x >> 16) & 0xFF;
ints[181] = (x >> 8) & 0xFF;
ints[245] = x & 0xFF;
}
{
let x = ((t[18] & 0x3030303) << 4) | ((t[19] & 0x3030303) << 2) | (t[20] & 0x3030303);
ints[54] = x >> 24;
ints[118] = (x >> 16) & 0xFF;
ints[182] = (x >> 8) & 0xFF;
ints[246] = x & 0xFF;
}
{
let x = ((t[21] & 0x3030303) << 4) | ((t[22] & 0x3030303) << 2) | (t[23] & 0x3030303);
ints[55] = x >> 24;
ints[119] = (x >> 16) & 0xFF;
ints[183] = (x >> 8) & 0xFF;
ints[247] = x & 0xFF;
}
{
let x = ((t[24] & 0x3030303) << 4) | ((t[25] & 0x3030303) << 2) | (t[26] & 0x3030303);
ints[56] = x >> 24;
ints[120] = (x >> 16) & 0xFF;
ints[184] = (x >> 8) & 0xFF;
ints[248] = x & 0xFF;
}
{
let x = ((t[27] & 0x3030303) << 4) | ((t[28] & 0x3030303) << 2) | (t[29] & 0x3030303);
ints[57] = x >> 24;
ints[121] = (x >> 16) & 0xFF;
ints[185] = (x >> 8) & 0xFF;
ints[249] = x & 0xFF;
}
{
let x = ((t[30] & 0x3030303) << 4) | ((t[31] & 0x3030303) << 2) | (t[32] & 0x3030303);
ints[58] = x >> 24;
ints[122] = (x >> 16) & 0xFF;
ints[186] = (x >> 8) & 0xFF;
ints[250] = x & 0xFF;
}
{
let x = ((t[33] & 0x3030303) << 4) | ((t[34] & 0x3030303) << 2) | (t[35] & 0x3030303);
ints[59] = x >> 24;
ints[123] = (x >> 16) & 0xFF;
ints[187] = (x >> 8) & 0xFF;
ints[251] = x & 0xFF;
}
{
let x = ((t[36] & 0x3030303) << 4) | ((t[37] & 0x3030303) << 2) | (t[38] & 0x3030303);
ints[60] = x >> 24;
ints[124] = (x >> 16) & 0xFF;
ints[188] = (x >> 8) & 0xFF;
ints[252] = x & 0xFF;
}
{
let x = ((t[39] & 0x3030303) << 4) | ((t[40] & 0x3030303) << 2) | (t[41] & 0x3030303);
ints[61] = x >> 24;
ints[125] = (x >> 16) & 0xFF;
ints[189] = (x >> 8) & 0xFF;
ints[253] = x & 0xFF;
}
{
let x = ((t[42] & 0x3030303) << 4) | ((t[43] & 0x3030303) << 2) | (t[44] & 0x3030303);
ints[62] = x >> 24;
ints[126] = (x >> 16) & 0xFF;
ints[190] = (x >> 8) & 0xFF;
ints[254] = x & 0xFF;
}
{
let x = ((t[45] & 0x3030303) << 4) | ((t[46] & 0x3030303) << 2) | (t[47] & 0x3030303);
ints[63] = x >> 24;
ints[127] = (x >> 16) & 0xFF;
ints[191] = (x >> 8) & 0xFF;
ints[255] = x & 0xFF;
}
}
#[inline(always)]
fn decode7(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 224] = src[..224].try_into().unwrap();
let mut t = [0u32; 56];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..56 {
let x = (t[i] >> 1) & 0x7f7f7f7f;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
{
let x = ((t[0] & 0x1010101) << 6)
| ((t[1] & 0x1010101) << 5)
| ((t[2] & 0x1010101) << 4)
| ((t[3] & 0x1010101) << 3)
| ((t[4] & 0x1010101) << 2)
| ((t[5] & 0x1010101) << 1)
| (t[6] & 0x1010101);
ints[56] = x >> 24;
ints[120] = (x >> 16) & 0xFF;
ints[184] = (x >> 8) & 0xFF;
ints[248] = x & 0xFF;
}
{
let x = ((t[7] & 0x1010101) << 6)
| ((t[8] & 0x1010101) << 5)
| ((t[9] & 0x1010101) << 4)
| ((t[10] & 0x1010101) << 3)
| ((t[11] & 0x1010101) << 2)
| ((t[12] & 0x1010101) << 1)
| (t[13] & 0x1010101);
ints[57] = x >> 24;
ints[121] = (x >> 16) & 0xFF;
ints[185] = (x >> 8) & 0xFF;
ints[249] = x & 0xFF;
}
{
let x = ((t[14] & 0x1010101) << 6)
| ((t[15] & 0x1010101) << 5)
| ((t[16] & 0x1010101) << 4)
| ((t[17] & 0x1010101) << 3)
| ((t[18] & 0x1010101) << 2)
| ((t[19] & 0x1010101) << 1)
| (t[20] & 0x1010101);
ints[58] = x >> 24;
ints[122] = (x >> 16) & 0xFF;
ints[186] = (x >> 8) & 0xFF;
ints[250] = x & 0xFF;
}
{
let x = ((t[21] & 0x1010101) << 6)
| ((t[22] & 0x1010101) << 5)
| ((t[23] & 0x1010101) << 4)
| ((t[24] & 0x1010101) << 3)
| ((t[25] & 0x1010101) << 2)
| ((t[26] & 0x1010101) << 1)
| (t[27] & 0x1010101);
ints[59] = x >> 24;
ints[123] = (x >> 16) & 0xFF;
ints[187] = (x >> 8) & 0xFF;
ints[251] = x & 0xFF;
}
{
let x = ((t[28] & 0x1010101) << 6)
| ((t[29] & 0x1010101) << 5)
| ((t[30] & 0x1010101) << 4)
| ((t[31] & 0x1010101) << 3)
| ((t[32] & 0x1010101) << 2)
| ((t[33] & 0x1010101) << 1)
| (t[34] & 0x1010101);
ints[60] = x >> 24;
ints[124] = (x >> 16) & 0xFF;
ints[188] = (x >> 8) & 0xFF;
ints[252] = x & 0xFF;
}
{
let x = ((t[35] & 0x1010101) << 6)
| ((t[36] & 0x1010101) << 5)
| ((t[37] & 0x1010101) << 4)
| ((t[38] & 0x1010101) << 3)
| ((t[39] & 0x1010101) << 2)
| ((t[40] & 0x1010101) << 1)
| (t[41] & 0x1010101);
ints[61] = x >> 24;
ints[125] = (x >> 16) & 0xFF;
ints[189] = (x >> 8) & 0xFF;
ints[253] = x & 0xFF;
}
{
let x = ((t[42] & 0x1010101) << 6)
| ((t[43] & 0x1010101) << 5)
| ((t[44] & 0x1010101) << 4)
| ((t[45] & 0x1010101) << 3)
| ((t[46] & 0x1010101) << 2)
| ((t[47] & 0x1010101) << 1)
| (t[48] & 0x1010101);
ints[62] = x >> 24;
ints[126] = (x >> 16) & 0xFF;
ints[190] = (x >> 8) & 0xFF;
ints[254] = x & 0xFF;
}
{
let x = ((t[49] & 0x1010101) << 6)
| ((t[50] & 0x1010101) << 5)
| ((t[51] & 0x1010101) << 4)
| ((t[52] & 0x1010101) << 3)
| ((t[53] & 0x1010101) << 2)
| ((t[54] & 0x1010101) << 1)
| (t[55] & 0x1010101);
ints[63] = x >> 24;
ints[127] = (x >> 16) & 0xFF;
ints[191] = (x >> 8) & 0xFF;
ints[255] = x & 0xFF;
}
}
#[inline(always)]
fn decode8(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 256] = src[..256].try_into().unwrap();
let mut t = [0u32; 64];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..64 {
let x = (t[i] >> 0) & 0xffffffff;
ints[0 + i] = x >> 24;
ints[64 + i] = (x >> 16) & 0xFF;
ints[128 + i] = (x >> 8) & 0xFF;
ints[192 + i] = x & 0xFF;
}
}
#[inline(always)]
fn decode9(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 288] = src[..288].try_into().unwrap();
let mut t = [0u32; 72];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..72 {
let x = (t[i] >> 7) & 0x1ff01ff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x7f007f) << 2) | ((t[1] >> 5) & 0x30003);
ints[72] = x >> 16;
ints[200] = x & 0xFFFF;
}
{
let x = ((t[1] & 0x1f001f) << 4) | ((t[2] >> 3) & 0xf000f);
ints[73] = x >> 16;
ints[201] = x & 0xFFFF;
}
{
let x = ((t[2] & 0x70007) << 6) | ((t[3] >> 1) & 0x3f003f);
ints[74] = x >> 16;
ints[202] = x & 0xFFFF;
}
{
let x = ((t[3] & 0x10001) << 8) | ((t[4] & 0x7f007f) << 1) | ((t[5] >> 6) & 0x10001);
ints[75] = x >> 16;
ints[203] = x & 0xFFFF;
}
{
let x = ((t[5] & 0x3f003f) << 3) | ((t[6] >> 4) & 0x70007);
ints[76] = x >> 16;
ints[204] = x & 0xFFFF;
}
{
let x = ((t[6] & 0xf000f) << 5) | ((t[7] >> 2) & 0x1f001f);
ints[77] = x >> 16;
ints[205] = x & 0xFFFF;
}
{
let x = ((t[7] & 0x30003) << 7) | (t[8] & 0x7f007f);
ints[78] = x >> 16;
ints[206] = x & 0xFFFF;
}
{
let x = ((t[9] & 0x7f007f) << 2) | ((t[10] >> 5) & 0x30003);
ints[79] = x >> 16;
ints[207] = x & 0xFFFF;
}
{
let x = ((t[10] & 0x1f001f) << 4) | ((t[11] >> 3) & 0xf000f);
ints[80] = x >> 16;
ints[208] = x & 0xFFFF;
}
{
let x = ((t[11] & 0x70007) << 6) | ((t[12] >> 1) & 0x3f003f);
ints[81] = x >> 16;
ints[209] = x & 0xFFFF;
}
{
let x = ((t[12] & 0x10001) << 8) | ((t[13] & 0x7f007f) << 1) | ((t[14] >> 6) & 0x10001);
ints[82] = x >> 16;
ints[210] = x & 0xFFFF;
}
{
let x = ((t[14] & 0x3f003f) << 3) | ((t[15] >> 4) & 0x70007);
ints[83] = x >> 16;
ints[211] = x & 0xFFFF;
}
{
let x = ((t[15] & 0xf000f) << 5) | ((t[16] >> 2) & 0x1f001f);
ints[84] = x >> 16;
ints[212] = x & 0xFFFF;
}
{
let x = ((t[16] & 0x30003) << 7) | (t[17] & 0x7f007f);
ints[85] = x >> 16;
ints[213] = x & 0xFFFF;
}
{
let x = ((t[18] & 0x7f007f) << 2) | ((t[19] >> 5) & 0x30003);
ints[86] = x >> 16;
ints[214] = x & 0xFFFF;
}
{
let x = ((t[19] & 0x1f001f) << 4) | ((t[20] >> 3) & 0xf000f);
ints[87] = x >> 16;
ints[215] = x & 0xFFFF;
}
{
let x = ((t[20] & 0x70007) << 6) | ((t[21] >> 1) & 0x3f003f);
ints[88] = x >> 16;
ints[216] = x & 0xFFFF;
}
{
let x = ((t[21] & 0x10001) << 8) | ((t[22] & 0x7f007f) << 1) | ((t[23] >> 6) & 0x10001);
ints[89] = x >> 16;
ints[217] = x & 0xFFFF;
}
{
let x = ((t[23] & 0x3f003f) << 3) | ((t[24] >> 4) & 0x70007);
ints[90] = x >> 16;
ints[218] = x & 0xFFFF;
}
{
let x = ((t[24] & 0xf000f) << 5) | ((t[25] >> 2) & 0x1f001f);
ints[91] = x >> 16;
ints[219] = x & 0xFFFF;
}
{
let x = ((t[25] & 0x30003) << 7) | (t[26] & 0x7f007f);
ints[92] = x >> 16;
ints[220] = x & 0xFFFF;
}
{
let x = ((t[27] & 0x7f007f) << 2) | ((t[28] >> 5) & 0x30003);
ints[93] = x >> 16;
ints[221] = x & 0xFFFF;
}
{
let x = ((t[28] & 0x1f001f) << 4) | ((t[29] >> 3) & 0xf000f);
ints[94] = x >> 16;
ints[222] = x & 0xFFFF;
}
{
let x = ((t[29] & 0x70007) << 6) | ((t[30] >> 1) & 0x3f003f);
ints[95] = x >> 16;
ints[223] = x & 0xFFFF;
}
{
let x = ((t[30] & 0x10001) << 8) | ((t[31] & 0x7f007f) << 1) | ((t[32] >> 6) & 0x10001);
ints[96] = x >> 16;
ints[224] = x & 0xFFFF;
}
{
let x = ((t[32] & 0x3f003f) << 3) | ((t[33] >> 4) & 0x70007);
ints[97] = x >> 16;
ints[225] = x & 0xFFFF;
}
{
let x = ((t[33] & 0xf000f) << 5) | ((t[34] >> 2) & 0x1f001f);
ints[98] = x >> 16;
ints[226] = x & 0xFFFF;
}
{
let x = ((t[34] & 0x30003) << 7) | (t[35] & 0x7f007f);
ints[99] = x >> 16;
ints[227] = x & 0xFFFF;
}
{
let x = ((t[36] & 0x7f007f) << 2) | ((t[37] >> 5) & 0x30003);
ints[100] = x >> 16;
ints[228] = x & 0xFFFF;
}
{
let x = ((t[37] & 0x1f001f) << 4) | ((t[38] >> 3) & 0xf000f);
ints[101] = x >> 16;
ints[229] = x & 0xFFFF;
}
{
let x = ((t[38] & 0x70007) << 6) | ((t[39] >> 1) & 0x3f003f);
ints[102] = x >> 16;
ints[230] = x & 0xFFFF;
}
{
let x = ((t[39] & 0x10001) << 8) | ((t[40] & 0x7f007f) << 1) | ((t[41] >> 6) & 0x10001);
ints[103] = x >> 16;
ints[231] = x & 0xFFFF;
}
{
let x = ((t[41] & 0x3f003f) << 3) | ((t[42] >> 4) & 0x70007);
ints[104] = x >> 16;
ints[232] = x & 0xFFFF;
}
{
let x = ((t[42] & 0xf000f) << 5) | ((t[43] >> 2) & 0x1f001f);
ints[105] = x >> 16;
ints[233] = x & 0xFFFF;
}
{
let x = ((t[43] & 0x30003) << 7) | (t[44] & 0x7f007f);
ints[106] = x >> 16;
ints[234] = x & 0xFFFF;
}
{
let x = ((t[45] & 0x7f007f) << 2) | ((t[46] >> 5) & 0x30003);
ints[107] = x >> 16;
ints[235] = x & 0xFFFF;
}
{
let x = ((t[46] & 0x1f001f) << 4) | ((t[47] >> 3) & 0xf000f);
ints[108] = x >> 16;
ints[236] = x & 0xFFFF;
}
{
let x = ((t[47] & 0x70007) << 6) | ((t[48] >> 1) & 0x3f003f);
ints[109] = x >> 16;
ints[237] = x & 0xFFFF;
}
{
let x = ((t[48] & 0x10001) << 8) | ((t[49] & 0x7f007f) << 1) | ((t[50] >> 6) & 0x10001);
ints[110] = x >> 16;
ints[238] = x & 0xFFFF;
}
{
let x = ((t[50] & 0x3f003f) << 3) | ((t[51] >> 4) & 0x70007);
ints[111] = x >> 16;
ints[239] = x & 0xFFFF;
}
{
let x = ((t[51] & 0xf000f) << 5) | ((t[52] >> 2) & 0x1f001f);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[52] & 0x30003) << 7) | (t[53] & 0x7f007f);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[54] & 0x7f007f) << 2) | ((t[55] >> 5) & 0x30003);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[55] & 0x1f001f) << 4) | ((t[56] >> 3) & 0xf000f);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[56] & 0x70007) << 6) | ((t[57] >> 1) & 0x3f003f);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[57] & 0x10001) << 8) | ((t[58] & 0x7f007f) << 1) | ((t[59] >> 6) & 0x10001);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[59] & 0x3f003f) << 3) | ((t[60] >> 4) & 0x70007);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[60] & 0xf000f) << 5) | ((t[61] >> 2) & 0x1f001f);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[61] & 0x30003) << 7) | (t[62] & 0x7f007f);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[63] & 0x7f007f) << 2) | ((t[64] >> 5) & 0x30003);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[64] & 0x1f001f) << 4) | ((t[65] >> 3) & 0xf000f);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[65] & 0x70007) << 6) | ((t[66] >> 1) & 0x3f003f);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[66] & 0x10001) << 8) | ((t[67] & 0x7f007f) << 1) | ((t[68] >> 6) & 0x10001);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[68] & 0x3f003f) << 3) | ((t[69] >> 4) & 0x70007);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[69] & 0xf000f) << 5) | ((t[70] >> 2) & 0x1f001f);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[70] & 0x30003) << 7) | (t[71] & 0x7f007f);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode10(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 320] = src[..320].try_into().unwrap();
let mut t = [0u32; 80];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..80 {
let x = (t[i] >> 6) & 0x3ff03ff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x3f003f) << 4) | ((t[1] >> 2) & 0xf000f);
ints[80] = x >> 16;
ints[208] = x & 0xFFFF;
}
{
let x = ((t[1] & 0x30003) << 8) | ((t[2] & 0x3f003f) << 2) | ((t[3] >> 4) & 0x30003);
ints[81] = x >> 16;
ints[209] = x & 0xFFFF;
}
{
let x = ((t[3] & 0xf000f) << 6) | (t[4] & 0x3f003f);
ints[82] = x >> 16;
ints[210] = x & 0xFFFF;
}
{
let x = ((t[5] & 0x3f003f) << 4) | ((t[6] >> 2) & 0xf000f);
ints[83] = x >> 16;
ints[211] = x & 0xFFFF;
}
{
let x = ((t[6] & 0x30003) << 8) | ((t[7] & 0x3f003f) << 2) | ((t[8] >> 4) & 0x30003);
ints[84] = x >> 16;
ints[212] = x & 0xFFFF;
}
{
let x = ((t[8] & 0xf000f) << 6) | (t[9] & 0x3f003f);
ints[85] = x >> 16;
ints[213] = x & 0xFFFF;
}
{
let x = ((t[10] & 0x3f003f) << 4) | ((t[11] >> 2) & 0xf000f);
ints[86] = x >> 16;
ints[214] = x & 0xFFFF;
}
{
let x = ((t[11] & 0x30003) << 8) | ((t[12] & 0x3f003f) << 2) | ((t[13] >> 4) & 0x30003);
ints[87] = x >> 16;
ints[215] = x & 0xFFFF;
}
{
let x = ((t[13] & 0xf000f) << 6) | (t[14] & 0x3f003f);
ints[88] = x >> 16;
ints[216] = x & 0xFFFF;
}
{
let x = ((t[15] & 0x3f003f) << 4) | ((t[16] >> 2) & 0xf000f);
ints[89] = x >> 16;
ints[217] = x & 0xFFFF;
}
{
let x = ((t[16] & 0x30003) << 8) | ((t[17] & 0x3f003f) << 2) | ((t[18] >> 4) & 0x30003);
ints[90] = x >> 16;
ints[218] = x & 0xFFFF;
}
{
let x = ((t[18] & 0xf000f) << 6) | (t[19] & 0x3f003f);
ints[91] = x >> 16;
ints[219] = x & 0xFFFF;
}
{
let x = ((t[20] & 0x3f003f) << 4) | ((t[21] >> 2) & 0xf000f);
ints[92] = x >> 16;
ints[220] = x & 0xFFFF;
}
{
let x = ((t[21] & 0x30003) << 8) | ((t[22] & 0x3f003f) << 2) | ((t[23] >> 4) & 0x30003);
ints[93] = x >> 16;
ints[221] = x & 0xFFFF;
}
{
let x = ((t[23] & 0xf000f) << 6) | (t[24] & 0x3f003f);
ints[94] = x >> 16;
ints[222] = x & 0xFFFF;
}
{
let x = ((t[25] & 0x3f003f) << 4) | ((t[26] >> 2) & 0xf000f);
ints[95] = x >> 16;
ints[223] = x & 0xFFFF;
}
{
let x = ((t[26] & 0x30003) << 8) | ((t[27] & 0x3f003f) << 2) | ((t[28] >> 4) & 0x30003);
ints[96] = x >> 16;
ints[224] = x & 0xFFFF;
}
{
let x = ((t[28] & 0xf000f) << 6) | (t[29] & 0x3f003f);
ints[97] = x >> 16;
ints[225] = x & 0xFFFF;
}
{
let x = ((t[30] & 0x3f003f) << 4) | ((t[31] >> 2) & 0xf000f);
ints[98] = x >> 16;
ints[226] = x & 0xFFFF;
}
{
let x = ((t[31] & 0x30003) << 8) | ((t[32] & 0x3f003f) << 2) | ((t[33] >> 4) & 0x30003);
ints[99] = x >> 16;
ints[227] = x & 0xFFFF;
}
{
let x = ((t[33] & 0xf000f) << 6) | (t[34] & 0x3f003f);
ints[100] = x >> 16;
ints[228] = x & 0xFFFF;
}
{
let x = ((t[35] & 0x3f003f) << 4) | ((t[36] >> 2) & 0xf000f);
ints[101] = x >> 16;
ints[229] = x & 0xFFFF;
}
{
let x = ((t[36] & 0x30003) << 8) | ((t[37] & 0x3f003f) << 2) | ((t[38] >> 4) & 0x30003);
ints[102] = x >> 16;
ints[230] = x & 0xFFFF;
}
{
let x = ((t[38] & 0xf000f) << 6) | (t[39] & 0x3f003f);
ints[103] = x >> 16;
ints[231] = x & 0xFFFF;
}
{
let x = ((t[40] & 0x3f003f) << 4) | ((t[41] >> 2) & 0xf000f);
ints[104] = x >> 16;
ints[232] = x & 0xFFFF;
}
{
let x = ((t[41] & 0x30003) << 8) | ((t[42] & 0x3f003f) << 2) | ((t[43] >> 4) & 0x30003);
ints[105] = x >> 16;
ints[233] = x & 0xFFFF;
}
{
let x = ((t[43] & 0xf000f) << 6) | (t[44] & 0x3f003f);
ints[106] = x >> 16;
ints[234] = x & 0xFFFF;
}
{
let x = ((t[45] & 0x3f003f) << 4) | ((t[46] >> 2) & 0xf000f);
ints[107] = x >> 16;
ints[235] = x & 0xFFFF;
}
{
let x = ((t[46] & 0x30003) << 8) | ((t[47] & 0x3f003f) << 2) | ((t[48] >> 4) & 0x30003);
ints[108] = x >> 16;
ints[236] = x & 0xFFFF;
}
{
let x = ((t[48] & 0xf000f) << 6) | (t[49] & 0x3f003f);
ints[109] = x >> 16;
ints[237] = x & 0xFFFF;
}
{
let x = ((t[50] & 0x3f003f) << 4) | ((t[51] >> 2) & 0xf000f);
ints[110] = x >> 16;
ints[238] = x & 0xFFFF;
}
{
let x = ((t[51] & 0x30003) << 8) | ((t[52] & 0x3f003f) << 2) | ((t[53] >> 4) & 0x30003);
ints[111] = x >> 16;
ints[239] = x & 0xFFFF;
}
{
let x = ((t[53] & 0xf000f) << 6) | (t[54] & 0x3f003f);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[55] & 0x3f003f) << 4) | ((t[56] >> 2) & 0xf000f);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[56] & 0x30003) << 8) | ((t[57] & 0x3f003f) << 2) | ((t[58] >> 4) & 0x30003);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[58] & 0xf000f) << 6) | (t[59] & 0x3f003f);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[60] & 0x3f003f) << 4) | ((t[61] >> 2) & 0xf000f);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[61] & 0x30003) << 8) | ((t[62] & 0x3f003f) << 2) | ((t[63] >> 4) & 0x30003);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[63] & 0xf000f) << 6) | (t[64] & 0x3f003f);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[65] & 0x3f003f) << 4) | ((t[66] >> 2) & 0xf000f);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[66] & 0x30003) << 8) | ((t[67] & 0x3f003f) << 2) | ((t[68] >> 4) & 0x30003);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[68] & 0xf000f) << 6) | (t[69] & 0x3f003f);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[70] & 0x3f003f) << 4) | ((t[71] >> 2) & 0xf000f);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[71] & 0x30003) << 8) | ((t[72] & 0x3f003f) << 2) | ((t[73] >> 4) & 0x30003);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[73] & 0xf000f) << 6) | (t[74] & 0x3f003f);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[75] & 0x3f003f) << 4) | ((t[76] >> 2) & 0xf000f);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[76] & 0x30003) << 8) | ((t[77] & 0x3f003f) << 2) | ((t[78] >> 4) & 0x30003);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[78] & 0xf000f) << 6) | (t[79] & 0x3f003f);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode11(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 352] = src[..352].try_into().unwrap();
let mut t = [0u32; 88];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..88 {
let x = (t[i] >> 5) & 0x7ff07ff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x1f001f) << 6) | ((t[1] & 0x1f001f) << 1) | ((t[2] >> 4) & 0x10001);
ints[88] = x >> 16;
ints[216] = x & 0xFFFF;
}
{
let x = ((t[2] & 0xf000f) << 7) | ((t[3] & 0x1f001f) << 2) | ((t[4] >> 3) & 0x30003);
ints[89] = x >> 16;
ints[217] = x & 0xFFFF;
}
{
let x = ((t[4] & 0x70007) << 8) | ((t[5] & 0x1f001f) << 3) | ((t[6] >> 2) & 0x70007);
ints[90] = x >> 16;
ints[218] = x & 0xFFFF;
}
{
let x = ((t[6] & 0x30003) << 9) | ((t[7] & 0x1f001f) << 4) | ((t[8] >> 1) & 0xf000f);
ints[91] = x >> 16;
ints[219] = x & 0xFFFF;
}
{
let x = ((t[8] & 0x10001) << 10) | ((t[9] & 0x1f001f) << 5) | (t[10] & 0x1f001f);
ints[92] = x >> 16;
ints[220] = x & 0xFFFF;
}
{
let x = ((t[11] & 0x1f001f) << 6) | ((t[12] & 0x1f001f) << 1) | ((t[13] >> 4) & 0x10001);
ints[93] = x >> 16;
ints[221] = x & 0xFFFF;
}
{
let x = ((t[13] & 0xf000f) << 7) | ((t[14] & 0x1f001f) << 2) | ((t[15] >> 3) & 0x30003);
ints[94] = x >> 16;
ints[222] = x & 0xFFFF;
}
{
let x = ((t[15] & 0x70007) << 8) | ((t[16] & 0x1f001f) << 3) | ((t[17] >> 2) & 0x70007);
ints[95] = x >> 16;
ints[223] = x & 0xFFFF;
}
{
let x = ((t[17] & 0x30003) << 9) | ((t[18] & 0x1f001f) << 4) | ((t[19] >> 1) & 0xf000f);
ints[96] = x >> 16;
ints[224] = x & 0xFFFF;
}
{
let x = ((t[19] & 0x10001) << 10) | ((t[20] & 0x1f001f) << 5) | (t[21] & 0x1f001f);
ints[97] = x >> 16;
ints[225] = x & 0xFFFF;
}
{
let x = ((t[22] & 0x1f001f) << 6) | ((t[23] & 0x1f001f) << 1) | ((t[24] >> 4) & 0x10001);
ints[98] = x >> 16;
ints[226] = x & 0xFFFF;
}
{
let x = ((t[24] & 0xf000f) << 7) | ((t[25] & 0x1f001f) << 2) | ((t[26] >> 3) & 0x30003);
ints[99] = x >> 16;
ints[227] = x & 0xFFFF;
}
{
let x = ((t[26] & 0x70007) << 8) | ((t[27] & 0x1f001f) << 3) | ((t[28] >> 2) & 0x70007);
ints[100] = x >> 16;
ints[228] = x & 0xFFFF;
}
{
let x = ((t[28] & 0x30003) << 9) | ((t[29] & 0x1f001f) << 4) | ((t[30] >> 1) & 0xf000f);
ints[101] = x >> 16;
ints[229] = x & 0xFFFF;
}
{
let x = ((t[30] & 0x10001) << 10) | ((t[31] & 0x1f001f) << 5) | (t[32] & 0x1f001f);
ints[102] = x >> 16;
ints[230] = x & 0xFFFF;
}
{
let x = ((t[33] & 0x1f001f) << 6) | ((t[34] & 0x1f001f) << 1) | ((t[35] >> 4) & 0x10001);
ints[103] = x >> 16;
ints[231] = x & 0xFFFF;
}
{
let x = ((t[35] & 0xf000f) << 7) | ((t[36] & 0x1f001f) << 2) | ((t[37] >> 3) & 0x30003);
ints[104] = x >> 16;
ints[232] = x & 0xFFFF;
}
{
let x = ((t[37] & 0x70007) << 8) | ((t[38] & 0x1f001f) << 3) | ((t[39] >> 2) & 0x70007);
ints[105] = x >> 16;
ints[233] = x & 0xFFFF;
}
{
let x = ((t[39] & 0x30003) << 9) | ((t[40] & 0x1f001f) << 4) | ((t[41] >> 1) & 0xf000f);
ints[106] = x >> 16;
ints[234] = x & 0xFFFF;
}
{
let x = ((t[41] & 0x10001) << 10) | ((t[42] & 0x1f001f) << 5) | (t[43] & 0x1f001f);
ints[107] = x >> 16;
ints[235] = x & 0xFFFF;
}
{
let x = ((t[44] & 0x1f001f) << 6) | ((t[45] & 0x1f001f) << 1) | ((t[46] >> 4) & 0x10001);
ints[108] = x >> 16;
ints[236] = x & 0xFFFF;
}
{
let x = ((t[46] & 0xf000f) << 7) | ((t[47] & 0x1f001f) << 2) | ((t[48] >> 3) & 0x30003);
ints[109] = x >> 16;
ints[237] = x & 0xFFFF;
}
{
let x = ((t[48] & 0x70007) << 8) | ((t[49] & 0x1f001f) << 3) | ((t[50] >> 2) & 0x70007);
ints[110] = x >> 16;
ints[238] = x & 0xFFFF;
}
{
let x = ((t[50] & 0x30003) << 9) | ((t[51] & 0x1f001f) << 4) | ((t[52] >> 1) & 0xf000f);
ints[111] = x >> 16;
ints[239] = x & 0xFFFF;
}
{
let x = ((t[52] & 0x10001) << 10) | ((t[53] & 0x1f001f) << 5) | (t[54] & 0x1f001f);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[55] & 0x1f001f) << 6) | ((t[56] & 0x1f001f) << 1) | ((t[57] >> 4) & 0x10001);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[57] & 0xf000f) << 7) | ((t[58] & 0x1f001f) << 2) | ((t[59] >> 3) & 0x30003);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[59] & 0x70007) << 8) | ((t[60] & 0x1f001f) << 3) | ((t[61] >> 2) & 0x70007);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[61] & 0x30003) << 9) | ((t[62] & 0x1f001f) << 4) | ((t[63] >> 1) & 0xf000f);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[63] & 0x10001) << 10) | ((t[64] & 0x1f001f) << 5) | (t[65] & 0x1f001f);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[66] & 0x1f001f) << 6) | ((t[67] & 0x1f001f) << 1) | ((t[68] >> 4) & 0x10001);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[68] & 0xf000f) << 7) | ((t[69] & 0x1f001f) << 2) | ((t[70] >> 3) & 0x30003);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[70] & 0x70007) << 8) | ((t[71] & 0x1f001f) << 3) | ((t[72] >> 2) & 0x70007);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[72] & 0x30003) << 9) | ((t[73] & 0x1f001f) << 4) | ((t[74] >> 1) & 0xf000f);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[74] & 0x10001) << 10) | ((t[75] & 0x1f001f) << 5) | (t[76] & 0x1f001f);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[77] & 0x1f001f) << 6) | ((t[78] & 0x1f001f) << 1) | ((t[79] >> 4) & 0x10001);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[79] & 0xf000f) << 7) | ((t[80] & 0x1f001f) << 2) | ((t[81] >> 3) & 0x30003);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[81] & 0x70007) << 8) | ((t[82] & 0x1f001f) << 3) | ((t[83] >> 2) & 0x70007);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[83] & 0x30003) << 9) | ((t[84] & 0x1f001f) << 4) | ((t[85] >> 1) & 0xf000f);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[85] & 0x10001) << 10) | ((t[86] & 0x1f001f) << 5) | (t[87] & 0x1f001f);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode12(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 384] = src[..384].try_into().unwrap();
let mut t = [0u32; 96];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..96 {
let x = (t[i] >> 4) & 0xfff0fff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0xf000f) << 8) | ((t[1] & 0xf000f) << 4) | (t[2] & 0xf000f);
ints[96] = x >> 16;
ints[224] = x & 0xFFFF;
}
{
let x = ((t[3] & 0xf000f) << 8) | ((t[4] & 0xf000f) << 4) | (t[5] & 0xf000f);
ints[97] = x >> 16;
ints[225] = x & 0xFFFF;
}
{
let x = ((t[6] & 0xf000f) << 8) | ((t[7] & 0xf000f) << 4) | (t[8] & 0xf000f);
ints[98] = x >> 16;
ints[226] = x & 0xFFFF;
}
{
let x = ((t[9] & 0xf000f) << 8) | ((t[10] & 0xf000f) << 4) | (t[11] & 0xf000f);
ints[99] = x >> 16;
ints[227] = x & 0xFFFF;
}
{
let x = ((t[12] & 0xf000f) << 8) | ((t[13] & 0xf000f) << 4) | (t[14] & 0xf000f);
ints[100] = x >> 16;
ints[228] = x & 0xFFFF;
}
{
let x = ((t[15] & 0xf000f) << 8) | ((t[16] & 0xf000f) << 4) | (t[17] & 0xf000f);
ints[101] = x >> 16;
ints[229] = x & 0xFFFF;
}
{
let x = ((t[18] & 0xf000f) << 8) | ((t[19] & 0xf000f) << 4) | (t[20] & 0xf000f);
ints[102] = x >> 16;
ints[230] = x & 0xFFFF;
}
{
let x = ((t[21] & 0xf000f) << 8) | ((t[22] & 0xf000f) << 4) | (t[23] & 0xf000f);
ints[103] = x >> 16;
ints[231] = x & 0xFFFF;
}
{
let x = ((t[24] & 0xf000f) << 8) | ((t[25] & 0xf000f) << 4) | (t[26] & 0xf000f);
ints[104] = x >> 16;
ints[232] = x & 0xFFFF;
}
{
let x = ((t[27] & 0xf000f) << 8) | ((t[28] & 0xf000f) << 4) | (t[29] & 0xf000f);
ints[105] = x >> 16;
ints[233] = x & 0xFFFF;
}
{
let x = ((t[30] & 0xf000f) << 8) | ((t[31] & 0xf000f) << 4) | (t[32] & 0xf000f);
ints[106] = x >> 16;
ints[234] = x & 0xFFFF;
}
{
let x = ((t[33] & 0xf000f) << 8) | ((t[34] & 0xf000f) << 4) | (t[35] & 0xf000f);
ints[107] = x >> 16;
ints[235] = x & 0xFFFF;
}
{
let x = ((t[36] & 0xf000f) << 8) | ((t[37] & 0xf000f) << 4) | (t[38] & 0xf000f);
ints[108] = x >> 16;
ints[236] = x & 0xFFFF;
}
{
let x = ((t[39] & 0xf000f) << 8) | ((t[40] & 0xf000f) << 4) | (t[41] & 0xf000f);
ints[109] = x >> 16;
ints[237] = x & 0xFFFF;
}
{
let x = ((t[42] & 0xf000f) << 8) | ((t[43] & 0xf000f) << 4) | (t[44] & 0xf000f);
ints[110] = x >> 16;
ints[238] = x & 0xFFFF;
}
{
let x = ((t[45] & 0xf000f) << 8) | ((t[46] & 0xf000f) << 4) | (t[47] & 0xf000f);
ints[111] = x >> 16;
ints[239] = x & 0xFFFF;
}
{
let x = ((t[48] & 0xf000f) << 8) | ((t[49] & 0xf000f) << 4) | (t[50] & 0xf000f);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[51] & 0xf000f) << 8) | ((t[52] & 0xf000f) << 4) | (t[53] & 0xf000f);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[54] & 0xf000f) << 8) | ((t[55] & 0xf000f) << 4) | (t[56] & 0xf000f);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[57] & 0xf000f) << 8) | ((t[58] & 0xf000f) << 4) | (t[59] & 0xf000f);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[60] & 0xf000f) << 8) | ((t[61] & 0xf000f) << 4) | (t[62] & 0xf000f);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[63] & 0xf000f) << 8) | ((t[64] & 0xf000f) << 4) | (t[65] & 0xf000f);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[66] & 0xf000f) << 8) | ((t[67] & 0xf000f) << 4) | (t[68] & 0xf000f);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[69] & 0xf000f) << 8) | ((t[70] & 0xf000f) << 4) | (t[71] & 0xf000f);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[72] & 0xf000f) << 8) | ((t[73] & 0xf000f) << 4) | (t[74] & 0xf000f);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[75] & 0xf000f) << 8) | ((t[76] & 0xf000f) << 4) | (t[77] & 0xf000f);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[78] & 0xf000f) << 8) | ((t[79] & 0xf000f) << 4) | (t[80] & 0xf000f);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[81] & 0xf000f) << 8) | ((t[82] & 0xf000f) << 4) | (t[83] & 0xf000f);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[84] & 0xf000f) << 8) | ((t[85] & 0xf000f) << 4) | (t[86] & 0xf000f);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[87] & 0xf000f) << 8) | ((t[88] & 0xf000f) << 4) | (t[89] & 0xf000f);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[90] & 0xf000f) << 8) | ((t[91] & 0xf000f) << 4) | (t[92] & 0xf000f);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[93] & 0xf000f) << 8) | ((t[94] & 0xf000f) << 4) | (t[95] & 0xf000f);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode13(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 416] = src[..416].try_into().unwrap();
let mut t = [0u32; 104];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..104 {
let x = (t[i] >> 3) & 0x1fff1fff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x70007) << 10)
| ((t[1] & 0x70007) << 7)
| ((t[2] & 0x70007) << 4)
| ((t[3] & 0x70007) << 1)
| ((t[4] >> 2) & 0x10001);
ints[104] = x >> 16;
ints[232] = x & 0xFFFF;
}
{
let x = ((t[4] & 0x30003) << 11)
| ((t[5] & 0x70007) << 8)
| ((t[6] & 0x70007) << 5)
| ((t[7] & 0x70007) << 2)
| ((t[8] >> 1) & 0x30003);
ints[105] = x >> 16;
ints[233] = x & 0xFFFF;
}
{
let x = ((t[8] & 0x10001) << 12)
| ((t[9] & 0x70007) << 9)
| ((t[10] & 0x70007) << 6)
| ((t[11] & 0x70007) << 3)
| (t[12] & 0x70007);
ints[106] = x >> 16;
ints[234] = x & 0xFFFF;
}
{
let x = ((t[13] & 0x70007) << 10)
| ((t[14] & 0x70007) << 7)
| ((t[15] & 0x70007) << 4)
| ((t[16] & 0x70007) << 1)
| ((t[17] >> 2) & 0x10001);
ints[107] = x >> 16;
ints[235] = x & 0xFFFF;
}
{
let x = ((t[17] & 0x30003) << 11)
| ((t[18] & 0x70007) << 8)
| ((t[19] & 0x70007) << 5)
| ((t[20] & 0x70007) << 2)
| ((t[21] >> 1) & 0x30003);
ints[108] = x >> 16;
ints[236] = x & 0xFFFF;
}
{
let x = ((t[21] & 0x10001) << 12)
| ((t[22] & 0x70007) << 9)
| ((t[23] & 0x70007) << 6)
| ((t[24] & 0x70007) << 3)
| (t[25] & 0x70007);
ints[109] = x >> 16;
ints[237] = x & 0xFFFF;
}
{
let x = ((t[26] & 0x70007) << 10)
| ((t[27] & 0x70007) << 7)
| ((t[28] & 0x70007) << 4)
| ((t[29] & 0x70007) << 1)
| ((t[30] >> 2) & 0x10001);
ints[110] = x >> 16;
ints[238] = x & 0xFFFF;
}
{
let x = ((t[30] & 0x30003) << 11)
| ((t[31] & 0x70007) << 8)
| ((t[32] & 0x70007) << 5)
| ((t[33] & 0x70007) << 2)
| ((t[34] >> 1) & 0x30003);
ints[111] = x >> 16;
ints[239] = x & 0xFFFF;
}
{
let x = ((t[34] & 0x10001) << 12)
| ((t[35] & 0x70007) << 9)
| ((t[36] & 0x70007) << 6)
| ((t[37] & 0x70007) << 3)
| (t[38] & 0x70007);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[39] & 0x70007) << 10)
| ((t[40] & 0x70007) << 7)
| ((t[41] & 0x70007) << 4)
| ((t[42] & 0x70007) << 1)
| ((t[43] >> 2) & 0x10001);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[43] & 0x30003) << 11)
| ((t[44] & 0x70007) << 8)
| ((t[45] & 0x70007) << 5)
| ((t[46] & 0x70007) << 2)
| ((t[47] >> 1) & 0x30003);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[47] & 0x10001) << 12)
| ((t[48] & 0x70007) << 9)
| ((t[49] & 0x70007) << 6)
| ((t[50] & 0x70007) << 3)
| (t[51] & 0x70007);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[52] & 0x70007) << 10)
| ((t[53] & 0x70007) << 7)
| ((t[54] & 0x70007) << 4)
| ((t[55] & 0x70007) << 1)
| ((t[56] >> 2) & 0x10001);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[56] & 0x30003) << 11)
| ((t[57] & 0x70007) << 8)
| ((t[58] & 0x70007) << 5)
| ((t[59] & 0x70007) << 2)
| ((t[60] >> 1) & 0x30003);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[60] & 0x10001) << 12)
| ((t[61] & 0x70007) << 9)
| ((t[62] & 0x70007) << 6)
| ((t[63] & 0x70007) << 3)
| (t[64] & 0x70007);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[65] & 0x70007) << 10)
| ((t[66] & 0x70007) << 7)
| ((t[67] & 0x70007) << 4)
| ((t[68] & 0x70007) << 1)
| ((t[69] >> 2) & 0x10001);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[69] & 0x30003) << 11)
| ((t[70] & 0x70007) << 8)
| ((t[71] & 0x70007) << 5)
| ((t[72] & 0x70007) << 2)
| ((t[73] >> 1) & 0x30003);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[73] & 0x10001) << 12)
| ((t[74] & 0x70007) << 9)
| ((t[75] & 0x70007) << 6)
| ((t[76] & 0x70007) << 3)
| (t[77] & 0x70007);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[78] & 0x70007) << 10)
| ((t[79] & 0x70007) << 7)
| ((t[80] & 0x70007) << 4)
| ((t[81] & 0x70007) << 1)
| ((t[82] >> 2) & 0x10001);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[82] & 0x30003) << 11)
| ((t[83] & 0x70007) << 8)
| ((t[84] & 0x70007) << 5)
| ((t[85] & 0x70007) << 2)
| ((t[86] >> 1) & 0x30003);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[86] & 0x10001) << 12)
| ((t[87] & 0x70007) << 9)
| ((t[88] & 0x70007) << 6)
| ((t[89] & 0x70007) << 3)
| (t[90] & 0x70007);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[91] & 0x70007) << 10)
| ((t[92] & 0x70007) << 7)
| ((t[93] & 0x70007) << 4)
| ((t[94] & 0x70007) << 1)
| ((t[95] >> 2) & 0x10001);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[95] & 0x30003) << 11)
| ((t[96] & 0x70007) << 8)
| ((t[97] & 0x70007) << 5)
| ((t[98] & 0x70007) << 2)
| ((t[99] >> 1) & 0x30003);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[99] & 0x10001) << 12)
| ((t[100] & 0x70007) << 9)
| ((t[101] & 0x70007) << 6)
| ((t[102] & 0x70007) << 3)
| (t[103] & 0x70007);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode14(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 448] = src[..448].try_into().unwrap();
let mut t = [0u32; 112];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..112 {
let x = (t[i] >> 2) & 0x3fff3fff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x30003) << 12)
| ((t[1] & 0x30003) << 10)
| ((t[2] & 0x30003) << 8)
| ((t[3] & 0x30003) << 6)
| ((t[4] & 0x30003) << 4)
| ((t[5] & 0x30003) << 2)
| (t[6] & 0x30003);
ints[112] = x >> 16;
ints[240] = x & 0xFFFF;
}
{
let x = ((t[7] & 0x30003) << 12)
| ((t[8] & 0x30003) << 10)
| ((t[9] & 0x30003) << 8)
| ((t[10] & 0x30003) << 6)
| ((t[11] & 0x30003) << 4)
| ((t[12] & 0x30003) << 2)
| (t[13] & 0x30003);
ints[113] = x >> 16;
ints[241] = x & 0xFFFF;
}
{
let x = ((t[14] & 0x30003) << 12)
| ((t[15] & 0x30003) << 10)
| ((t[16] & 0x30003) << 8)
| ((t[17] & 0x30003) << 6)
| ((t[18] & 0x30003) << 4)
| ((t[19] & 0x30003) << 2)
| (t[20] & 0x30003);
ints[114] = x >> 16;
ints[242] = x & 0xFFFF;
}
{
let x = ((t[21] & 0x30003) << 12)
| ((t[22] & 0x30003) << 10)
| ((t[23] & 0x30003) << 8)
| ((t[24] & 0x30003) << 6)
| ((t[25] & 0x30003) << 4)
| ((t[26] & 0x30003) << 2)
| (t[27] & 0x30003);
ints[115] = x >> 16;
ints[243] = x & 0xFFFF;
}
{
let x = ((t[28] & 0x30003) << 12)
| ((t[29] & 0x30003) << 10)
| ((t[30] & 0x30003) << 8)
| ((t[31] & 0x30003) << 6)
| ((t[32] & 0x30003) << 4)
| ((t[33] & 0x30003) << 2)
| (t[34] & 0x30003);
ints[116] = x >> 16;
ints[244] = x & 0xFFFF;
}
{
let x = ((t[35] & 0x30003) << 12)
| ((t[36] & 0x30003) << 10)
| ((t[37] & 0x30003) << 8)
| ((t[38] & 0x30003) << 6)
| ((t[39] & 0x30003) << 4)
| ((t[40] & 0x30003) << 2)
| (t[41] & 0x30003);
ints[117] = x >> 16;
ints[245] = x & 0xFFFF;
}
{
let x = ((t[42] & 0x30003) << 12)
| ((t[43] & 0x30003) << 10)
| ((t[44] & 0x30003) << 8)
| ((t[45] & 0x30003) << 6)
| ((t[46] & 0x30003) << 4)
| ((t[47] & 0x30003) << 2)
| (t[48] & 0x30003);
ints[118] = x >> 16;
ints[246] = x & 0xFFFF;
}
{
let x = ((t[49] & 0x30003) << 12)
| ((t[50] & 0x30003) << 10)
| ((t[51] & 0x30003) << 8)
| ((t[52] & 0x30003) << 6)
| ((t[53] & 0x30003) << 4)
| ((t[54] & 0x30003) << 2)
| (t[55] & 0x30003);
ints[119] = x >> 16;
ints[247] = x & 0xFFFF;
}
{
let x = ((t[56] & 0x30003) << 12)
| ((t[57] & 0x30003) << 10)
| ((t[58] & 0x30003) << 8)
| ((t[59] & 0x30003) << 6)
| ((t[60] & 0x30003) << 4)
| ((t[61] & 0x30003) << 2)
| (t[62] & 0x30003);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[63] & 0x30003) << 12)
| ((t[64] & 0x30003) << 10)
| ((t[65] & 0x30003) << 8)
| ((t[66] & 0x30003) << 6)
| ((t[67] & 0x30003) << 4)
| ((t[68] & 0x30003) << 2)
| (t[69] & 0x30003);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[70] & 0x30003) << 12)
| ((t[71] & 0x30003) << 10)
| ((t[72] & 0x30003) << 8)
| ((t[73] & 0x30003) << 6)
| ((t[74] & 0x30003) << 4)
| ((t[75] & 0x30003) << 2)
| (t[76] & 0x30003);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[77] & 0x30003) << 12)
| ((t[78] & 0x30003) << 10)
| ((t[79] & 0x30003) << 8)
| ((t[80] & 0x30003) << 6)
| ((t[81] & 0x30003) << 4)
| ((t[82] & 0x30003) << 2)
| (t[83] & 0x30003);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[84] & 0x30003) << 12)
| ((t[85] & 0x30003) << 10)
| ((t[86] & 0x30003) << 8)
| ((t[87] & 0x30003) << 6)
| ((t[88] & 0x30003) << 4)
| ((t[89] & 0x30003) << 2)
| (t[90] & 0x30003);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[91] & 0x30003) << 12)
| ((t[92] & 0x30003) << 10)
| ((t[93] & 0x30003) << 8)
| ((t[94] & 0x30003) << 6)
| ((t[95] & 0x30003) << 4)
| ((t[96] & 0x30003) << 2)
| (t[97] & 0x30003);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[98] & 0x30003) << 12)
| ((t[99] & 0x30003) << 10)
| ((t[100] & 0x30003) << 8)
| ((t[101] & 0x30003) << 6)
| ((t[102] & 0x30003) << 4)
| ((t[103] & 0x30003) << 2)
| (t[104] & 0x30003);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[105] & 0x30003) << 12)
| ((t[106] & 0x30003) << 10)
| ((t[107] & 0x30003) << 8)
| ((t[108] & 0x30003) << 6)
| ((t[109] & 0x30003) << 4)
| ((t[110] & 0x30003) << 2)
| (t[111] & 0x30003);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode15(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 480] = src[..480].try_into().unwrap();
let mut t = [0u32; 120];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..120 {
let x = (t[i] >> 1) & 0x7fff7fff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
{
let x = ((t[0] & 0x10001) << 14)
| ((t[1] & 0x10001) << 13)
| ((t[2] & 0x10001) << 12)
| ((t[3] & 0x10001) << 11)
| ((t[4] & 0x10001) << 10)
| ((t[5] & 0x10001) << 9)
| ((t[6] & 0x10001) << 8)
| ((t[7] & 0x10001) << 7)
| ((t[8] & 0x10001) << 6)
| ((t[9] & 0x10001) << 5)
| ((t[10] & 0x10001) << 4)
| ((t[11] & 0x10001) << 3)
| ((t[12] & 0x10001) << 2)
| ((t[13] & 0x10001) << 1)
| (t[14] & 0x10001);
ints[120] = x >> 16;
ints[248] = x & 0xFFFF;
}
{
let x = ((t[15] & 0x10001) << 14)
| ((t[16] & 0x10001) << 13)
| ((t[17] & 0x10001) << 12)
| ((t[18] & 0x10001) << 11)
| ((t[19] & 0x10001) << 10)
| ((t[20] & 0x10001) << 9)
| ((t[21] & 0x10001) << 8)
| ((t[22] & 0x10001) << 7)
| ((t[23] & 0x10001) << 6)
| ((t[24] & 0x10001) << 5)
| ((t[25] & 0x10001) << 4)
| ((t[26] & 0x10001) << 3)
| ((t[27] & 0x10001) << 2)
| ((t[28] & 0x10001) << 1)
| (t[29] & 0x10001);
ints[121] = x >> 16;
ints[249] = x & 0xFFFF;
}
{
let x = ((t[30] & 0x10001) << 14)
| ((t[31] & 0x10001) << 13)
| ((t[32] & 0x10001) << 12)
| ((t[33] & 0x10001) << 11)
| ((t[34] & 0x10001) << 10)
| ((t[35] & 0x10001) << 9)
| ((t[36] & 0x10001) << 8)
| ((t[37] & 0x10001) << 7)
| ((t[38] & 0x10001) << 6)
| ((t[39] & 0x10001) << 5)
| ((t[40] & 0x10001) << 4)
| ((t[41] & 0x10001) << 3)
| ((t[42] & 0x10001) << 2)
| ((t[43] & 0x10001) << 1)
| (t[44] & 0x10001);
ints[122] = x >> 16;
ints[250] = x & 0xFFFF;
}
{
let x = ((t[45] & 0x10001) << 14)
| ((t[46] & 0x10001) << 13)
| ((t[47] & 0x10001) << 12)
| ((t[48] & 0x10001) << 11)
| ((t[49] & 0x10001) << 10)
| ((t[50] & 0x10001) << 9)
| ((t[51] & 0x10001) << 8)
| ((t[52] & 0x10001) << 7)
| ((t[53] & 0x10001) << 6)
| ((t[54] & 0x10001) << 5)
| ((t[55] & 0x10001) << 4)
| ((t[56] & 0x10001) << 3)
| ((t[57] & 0x10001) << 2)
| ((t[58] & 0x10001) << 1)
| (t[59] & 0x10001);
ints[123] = x >> 16;
ints[251] = x & 0xFFFF;
}
{
let x = ((t[60] & 0x10001) << 14)
| ((t[61] & 0x10001) << 13)
| ((t[62] & 0x10001) << 12)
| ((t[63] & 0x10001) << 11)
| ((t[64] & 0x10001) << 10)
| ((t[65] & 0x10001) << 9)
| ((t[66] & 0x10001) << 8)
| ((t[67] & 0x10001) << 7)
| ((t[68] & 0x10001) << 6)
| ((t[69] & 0x10001) << 5)
| ((t[70] & 0x10001) << 4)
| ((t[71] & 0x10001) << 3)
| ((t[72] & 0x10001) << 2)
| ((t[73] & 0x10001) << 1)
| (t[74] & 0x10001);
ints[124] = x >> 16;
ints[252] = x & 0xFFFF;
}
{
let x = ((t[75] & 0x10001) << 14)
| ((t[76] & 0x10001) << 13)
| ((t[77] & 0x10001) << 12)
| ((t[78] & 0x10001) << 11)
| ((t[79] & 0x10001) << 10)
| ((t[80] & 0x10001) << 9)
| ((t[81] & 0x10001) << 8)
| ((t[82] & 0x10001) << 7)
| ((t[83] & 0x10001) << 6)
| ((t[84] & 0x10001) << 5)
| ((t[85] & 0x10001) << 4)
| ((t[86] & 0x10001) << 3)
| ((t[87] & 0x10001) << 2)
| ((t[88] & 0x10001) << 1)
| (t[89] & 0x10001);
ints[125] = x >> 16;
ints[253] = x & 0xFFFF;
}
{
let x = ((t[90] & 0x10001) << 14)
| ((t[91] & 0x10001) << 13)
| ((t[92] & 0x10001) << 12)
| ((t[93] & 0x10001) << 11)
| ((t[94] & 0x10001) << 10)
| ((t[95] & 0x10001) << 9)
| ((t[96] & 0x10001) << 8)
| ((t[97] & 0x10001) << 7)
| ((t[98] & 0x10001) << 6)
| ((t[99] & 0x10001) << 5)
| ((t[100] & 0x10001) << 4)
| ((t[101] & 0x10001) << 3)
| ((t[102] & 0x10001) << 2)
| ((t[103] & 0x10001) << 1)
| (t[104] & 0x10001);
ints[126] = x >> 16;
ints[254] = x & 0xFFFF;
}
{
let x = ((t[105] & 0x10001) << 14)
| ((t[106] & 0x10001) << 13)
| ((t[107] & 0x10001) << 12)
| ((t[108] & 0x10001) << 11)
| ((t[109] & 0x10001) << 10)
| ((t[110] & 0x10001) << 9)
| ((t[111] & 0x10001) << 8)
| ((t[112] & 0x10001) << 7)
| ((t[113] & 0x10001) << 6)
| ((t[114] & 0x10001) << 5)
| ((t[115] & 0x10001) << 4)
| ((t[116] & 0x10001) << 3)
| ((t[117] & 0x10001) << 2)
| ((t[118] & 0x10001) << 1)
| (t[119] & 0x10001);
ints[127] = x >> 16;
ints[255] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode16(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 512] = src[..512].try_into().unwrap();
let mut t = [0u32; 128];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..128 {
let x = (t[i] >> 0) & 0xffffffff;
ints[0 + i] = x >> 16;
ints[128 + i] = x & 0xFFFF;
}
}
#[inline(always)]
fn decode17(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 544] = src[..544].try_into().unwrap();
let mut t = [0u32; 136];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..136 {
ints[0 + i] = (t[i] >> 15) & 0x1ffff;
}
ints[136] = ((t[0] & 0x7fff) << 2) | ((t[1] >> 13) & 0x3);
ints[137] = ((t[1] & 0x1fff) << 4) | ((t[2] >> 11) & 0xf);
ints[138] = ((t[2] & 0x7ff) << 6) | ((t[3] >> 9) & 0x3f);
ints[139] = ((t[3] & 0x1ff) << 8) | ((t[4] >> 7) & 0xff);
ints[140] = ((t[4] & 0x7f) << 10) | ((t[5] >> 5) & 0x3ff);
ints[141] = ((t[5] & 0x1f) << 12) | ((t[6] >> 3) & 0xfff);
ints[142] = ((t[6] & 0x7) << 14) | ((t[7] >> 1) & 0x3fff);
ints[143] = ((t[7] & 0x1) << 16) | ((t[8] & 0x7fff) << 1) | ((t[9] >> 14) & 0x1);
ints[144] = ((t[9] & 0x3fff) << 3) | ((t[10] >> 12) & 0x7);
ints[145] = ((t[10] & 0xfff) << 5) | ((t[11] >> 10) & 0x1f);
ints[146] = ((t[11] & 0x3ff) << 7) | ((t[12] >> 8) & 0x7f);
ints[147] = ((t[12] & 0xff) << 9) | ((t[13] >> 6) & 0x1ff);
ints[148] = ((t[13] & 0x3f) << 11) | ((t[14] >> 4) & 0x7ff);
ints[149] = ((t[14] & 0xf) << 13) | ((t[15] >> 2) & 0x1fff);
ints[150] = ((t[15] & 0x3) << 15) | (t[16] & 0x7fff);
ints[151] = ((t[17] & 0x7fff) << 2) | ((t[18] >> 13) & 0x3);
ints[152] = ((t[18] & 0x1fff) << 4) | ((t[19] >> 11) & 0xf);
ints[153] = ((t[19] & 0x7ff) << 6) | ((t[20] >> 9) & 0x3f);
ints[154] = ((t[20] & 0x1ff) << 8) | ((t[21] >> 7) & 0xff);
ints[155] = ((t[21] & 0x7f) << 10) | ((t[22] >> 5) & 0x3ff);
ints[156] = ((t[22] & 0x1f) << 12) | ((t[23] >> 3) & 0xfff);
ints[157] = ((t[23] & 0x7) << 14) | ((t[24] >> 1) & 0x3fff);
ints[158] = ((t[24] & 0x1) << 16) | ((t[25] & 0x7fff) << 1) | ((t[26] >> 14) & 0x1);
ints[159] = ((t[26] & 0x3fff) << 3) | ((t[27] >> 12) & 0x7);
ints[160] = ((t[27] & 0xfff) << 5) | ((t[28] >> 10) & 0x1f);
ints[161] = ((t[28] & 0x3ff) << 7) | ((t[29] >> 8) & 0x7f);
ints[162] = ((t[29] & 0xff) << 9) | ((t[30] >> 6) & 0x1ff);
ints[163] = ((t[30] & 0x3f) << 11) | ((t[31] >> 4) & 0x7ff);
ints[164] = ((t[31] & 0xf) << 13) | ((t[32] >> 2) & 0x1fff);
ints[165] = ((t[32] & 0x3) << 15) | (t[33] & 0x7fff);
ints[166] = ((t[34] & 0x7fff) << 2) | ((t[35] >> 13) & 0x3);
ints[167] = ((t[35] & 0x1fff) << 4) | ((t[36] >> 11) & 0xf);
ints[168] = ((t[36] & 0x7ff) << 6) | ((t[37] >> 9) & 0x3f);
ints[169] = ((t[37] & 0x1ff) << 8) | ((t[38] >> 7) & 0xff);
ints[170] = ((t[38] & 0x7f) << 10) | ((t[39] >> 5) & 0x3ff);
ints[171] = ((t[39] & 0x1f) << 12) | ((t[40] >> 3) & 0xfff);
ints[172] = ((t[40] & 0x7) << 14) | ((t[41] >> 1) & 0x3fff);
ints[173] = ((t[41] & 0x1) << 16) | ((t[42] & 0x7fff) << 1) | ((t[43] >> 14) & 0x1);
ints[174] = ((t[43] & 0x3fff) << 3) | ((t[44] >> 12) & 0x7);
ints[175] = ((t[44] & 0xfff) << 5) | ((t[45] >> 10) & 0x1f);
ints[176] = ((t[45] & 0x3ff) << 7) | ((t[46] >> 8) & 0x7f);
ints[177] = ((t[46] & 0xff) << 9) | ((t[47] >> 6) & 0x1ff);
ints[178] = ((t[47] & 0x3f) << 11) | ((t[48] >> 4) & 0x7ff);
ints[179] = ((t[48] & 0xf) << 13) | ((t[49] >> 2) & 0x1fff);
ints[180] = ((t[49] & 0x3) << 15) | (t[50] & 0x7fff);
ints[181] = ((t[51] & 0x7fff) << 2) | ((t[52] >> 13) & 0x3);
ints[182] = ((t[52] & 0x1fff) << 4) | ((t[53] >> 11) & 0xf);
ints[183] = ((t[53] & 0x7ff) << 6) | ((t[54] >> 9) & 0x3f);
ints[184] = ((t[54] & 0x1ff) << 8) | ((t[55] >> 7) & 0xff);
ints[185] = ((t[55] & 0x7f) << 10) | ((t[56] >> 5) & 0x3ff);
ints[186] = ((t[56] & 0x1f) << 12) | ((t[57] >> 3) & 0xfff);
ints[187] = ((t[57] & 0x7) << 14) | ((t[58] >> 1) & 0x3fff);
ints[188] = ((t[58] & 0x1) << 16) | ((t[59] & 0x7fff) << 1) | ((t[60] >> 14) & 0x1);
ints[189] = ((t[60] & 0x3fff) << 3) | ((t[61] >> 12) & 0x7);
ints[190] = ((t[61] & 0xfff) << 5) | ((t[62] >> 10) & 0x1f);
ints[191] = ((t[62] & 0x3ff) << 7) | ((t[63] >> 8) & 0x7f);
ints[192] = ((t[63] & 0xff) << 9) | ((t[64] >> 6) & 0x1ff);
ints[193] = ((t[64] & 0x3f) << 11) | ((t[65] >> 4) & 0x7ff);
ints[194] = ((t[65] & 0xf) << 13) | ((t[66] >> 2) & 0x1fff);
ints[195] = ((t[66] & 0x3) << 15) | (t[67] & 0x7fff);
ints[196] = ((t[68] & 0x7fff) << 2) | ((t[69] >> 13) & 0x3);
ints[197] = ((t[69] & 0x1fff) << 4) | ((t[70] >> 11) & 0xf);
ints[198] = ((t[70] & 0x7ff) << 6) | ((t[71] >> 9) & 0x3f);
ints[199] = ((t[71] & 0x1ff) << 8) | ((t[72] >> 7) & 0xff);
ints[200] = ((t[72] & 0x7f) << 10) | ((t[73] >> 5) & 0x3ff);
ints[201] = ((t[73] & 0x1f) << 12) | ((t[74] >> 3) & 0xfff);
ints[202] = ((t[74] & 0x7) << 14) | ((t[75] >> 1) & 0x3fff);
ints[203] = ((t[75] & 0x1) << 16) | ((t[76] & 0x7fff) << 1) | ((t[77] >> 14) & 0x1);
ints[204] = ((t[77] & 0x3fff) << 3) | ((t[78] >> 12) & 0x7);
ints[205] = ((t[78] & 0xfff) << 5) | ((t[79] >> 10) & 0x1f);
ints[206] = ((t[79] & 0x3ff) << 7) | ((t[80] >> 8) & 0x7f);
ints[207] = ((t[80] & 0xff) << 9) | ((t[81] >> 6) & 0x1ff);
ints[208] = ((t[81] & 0x3f) << 11) | ((t[82] >> 4) & 0x7ff);
ints[209] = ((t[82] & 0xf) << 13) | ((t[83] >> 2) & 0x1fff);
ints[210] = ((t[83] & 0x3) << 15) | (t[84] & 0x7fff);
ints[211] = ((t[85] & 0x7fff) << 2) | ((t[86] >> 13) & 0x3);
ints[212] = ((t[86] & 0x1fff) << 4) | ((t[87] >> 11) & 0xf);
ints[213] = ((t[87] & 0x7ff) << 6) | ((t[88] >> 9) & 0x3f);
ints[214] = ((t[88] & 0x1ff) << 8) | ((t[89] >> 7) & 0xff);
ints[215] = ((t[89] & 0x7f) << 10) | ((t[90] >> 5) & 0x3ff);
ints[216] = ((t[90] & 0x1f) << 12) | ((t[91] >> 3) & 0xfff);
ints[217] = ((t[91] & 0x7) << 14) | ((t[92] >> 1) & 0x3fff);
ints[218] = ((t[92] & 0x1) << 16) | ((t[93] & 0x7fff) << 1) | ((t[94] >> 14) & 0x1);
ints[219] = ((t[94] & 0x3fff) << 3) | ((t[95] >> 12) & 0x7);
ints[220] = ((t[95] & 0xfff) << 5) | ((t[96] >> 10) & 0x1f);
ints[221] = ((t[96] & 0x3ff) << 7) | ((t[97] >> 8) & 0x7f);
ints[222] = ((t[97] & 0xff) << 9) | ((t[98] >> 6) & 0x1ff);
ints[223] = ((t[98] & 0x3f) << 11) | ((t[99] >> 4) & 0x7ff);
ints[224] = ((t[99] & 0xf) << 13) | ((t[100] >> 2) & 0x1fff);
ints[225] = ((t[100] & 0x3) << 15) | (t[101] & 0x7fff);
ints[226] = ((t[102] & 0x7fff) << 2) | ((t[103] >> 13) & 0x3);
ints[227] = ((t[103] & 0x1fff) << 4) | ((t[104] >> 11) & 0xf);
ints[228] = ((t[104] & 0x7ff) << 6) | ((t[105] >> 9) & 0x3f);
ints[229] = ((t[105] & 0x1ff) << 8) | ((t[106] >> 7) & 0xff);
ints[230] = ((t[106] & 0x7f) << 10) | ((t[107] >> 5) & 0x3ff);
ints[231] = ((t[107] & 0x1f) << 12) | ((t[108] >> 3) & 0xfff);
ints[232] = ((t[108] & 0x7) << 14) | ((t[109] >> 1) & 0x3fff);
ints[233] = ((t[109] & 0x1) << 16) | ((t[110] & 0x7fff) << 1) | ((t[111] >> 14) & 0x1);
ints[234] = ((t[111] & 0x3fff) << 3) | ((t[112] >> 12) & 0x7);
ints[235] = ((t[112] & 0xfff) << 5) | ((t[113] >> 10) & 0x1f);
ints[236] = ((t[113] & 0x3ff) << 7) | ((t[114] >> 8) & 0x7f);
ints[237] = ((t[114] & 0xff) << 9) | ((t[115] >> 6) & 0x1ff);
ints[238] = ((t[115] & 0x3f) << 11) | ((t[116] >> 4) & 0x7ff);
ints[239] = ((t[116] & 0xf) << 13) | ((t[117] >> 2) & 0x1fff);
ints[240] = ((t[117] & 0x3) << 15) | (t[118] & 0x7fff);
ints[241] = ((t[119] & 0x7fff) << 2) | ((t[120] >> 13) & 0x3);
ints[242] = ((t[120] & 0x1fff) << 4) | ((t[121] >> 11) & 0xf);
ints[243] = ((t[121] & 0x7ff) << 6) | ((t[122] >> 9) & 0x3f);
ints[244] = ((t[122] & 0x1ff) << 8) | ((t[123] >> 7) & 0xff);
ints[245] = ((t[123] & 0x7f) << 10) | ((t[124] >> 5) & 0x3ff);
ints[246] = ((t[124] & 0x1f) << 12) | ((t[125] >> 3) & 0xfff);
ints[247] = ((t[125] & 0x7) << 14) | ((t[126] >> 1) & 0x3fff);
ints[248] = ((t[126] & 0x1) << 16) | ((t[127] & 0x7fff) << 1) | ((t[128] >> 14) & 0x1);
ints[249] = ((t[128] & 0x3fff) << 3) | ((t[129] >> 12) & 0x7);
ints[250] = ((t[129] & 0xfff) << 5) | ((t[130] >> 10) & 0x1f);
ints[251] = ((t[130] & 0x3ff) << 7) | ((t[131] >> 8) & 0x7f);
ints[252] = ((t[131] & 0xff) << 9) | ((t[132] >> 6) & 0x1ff);
ints[253] = ((t[132] & 0x3f) << 11) | ((t[133] >> 4) & 0x7ff);
ints[254] = ((t[133] & 0xf) << 13) | ((t[134] >> 2) & 0x1fff);
ints[255] = ((t[134] & 0x3) << 15) | (t[135] & 0x7fff);
}
#[inline(always)]
fn decode18(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 576] = src[..576].try_into().unwrap();
let mut t = [0u32; 144];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..144 {
ints[0 + i] = (t[i] >> 14) & 0x3ffff;
}
ints[144] = ((t[0] & 0x3fff) << 4) | ((t[1] >> 10) & 0xf);
ints[145] = ((t[1] & 0x3ff) << 8) | ((t[2] >> 6) & 0xff);
ints[146] = ((t[2] & 0x3f) << 12) | ((t[3] >> 2) & 0xfff);
ints[147] = ((t[3] & 0x3) << 16) | ((t[4] & 0x3fff) << 2) | ((t[5] >> 12) & 0x3);
ints[148] = ((t[5] & 0xfff) << 6) | ((t[6] >> 8) & 0x3f);
ints[149] = ((t[6] & 0xff) << 10) | ((t[7] >> 4) & 0x3ff);
ints[150] = ((t[7] & 0xf) << 14) | (t[8] & 0x3fff);
ints[151] = ((t[9] & 0x3fff) << 4) | ((t[10] >> 10) & 0xf);
ints[152] = ((t[10] & 0x3ff) << 8) | ((t[11] >> 6) & 0xff);
ints[153] = ((t[11] & 0x3f) << 12) | ((t[12] >> 2) & 0xfff);
ints[154] = ((t[12] & 0x3) << 16) | ((t[13] & 0x3fff) << 2) | ((t[14] >> 12) & 0x3);
ints[155] = ((t[14] & 0xfff) << 6) | ((t[15] >> 8) & 0x3f);
ints[156] = ((t[15] & 0xff) << 10) | ((t[16] >> 4) & 0x3ff);
ints[157] = ((t[16] & 0xf) << 14) | (t[17] & 0x3fff);
ints[158] = ((t[18] & 0x3fff) << 4) | ((t[19] >> 10) & 0xf);
ints[159] = ((t[19] & 0x3ff) << 8) | ((t[20] >> 6) & 0xff);
ints[160] = ((t[20] & 0x3f) << 12) | ((t[21] >> 2) & 0xfff);
ints[161] = ((t[21] & 0x3) << 16) | ((t[22] & 0x3fff) << 2) | ((t[23] >> 12) & 0x3);
ints[162] = ((t[23] & 0xfff) << 6) | ((t[24] >> 8) & 0x3f);
ints[163] = ((t[24] & 0xff) << 10) | ((t[25] >> 4) & 0x3ff);
ints[164] = ((t[25] & 0xf) << 14) | (t[26] & 0x3fff);
ints[165] = ((t[27] & 0x3fff) << 4) | ((t[28] >> 10) & 0xf);
ints[166] = ((t[28] & 0x3ff) << 8) | ((t[29] >> 6) & 0xff);
ints[167] = ((t[29] & 0x3f) << 12) | ((t[30] >> 2) & 0xfff);
ints[168] = ((t[30] & 0x3) << 16) | ((t[31] & 0x3fff) << 2) | ((t[32] >> 12) & 0x3);
ints[169] = ((t[32] & 0xfff) << 6) | ((t[33] >> 8) & 0x3f);
ints[170] = ((t[33] & 0xff) << 10) | ((t[34] >> 4) & 0x3ff);
ints[171] = ((t[34] & 0xf) << 14) | (t[35] & 0x3fff);
ints[172] = ((t[36] & 0x3fff) << 4) | ((t[37] >> 10) & 0xf);
ints[173] = ((t[37] & 0x3ff) << 8) | ((t[38] >> 6) & 0xff);
ints[174] = ((t[38] & 0x3f) << 12) | ((t[39] >> 2) & 0xfff);
ints[175] = ((t[39] & 0x3) << 16) | ((t[40] & 0x3fff) << 2) | ((t[41] >> 12) & 0x3);
ints[176] = ((t[41] & 0xfff) << 6) | ((t[42] >> 8) & 0x3f);
ints[177] = ((t[42] & 0xff) << 10) | ((t[43] >> 4) & 0x3ff);
ints[178] = ((t[43] & 0xf) << 14) | (t[44] & 0x3fff);
ints[179] = ((t[45] & 0x3fff) << 4) | ((t[46] >> 10) & 0xf);
ints[180] = ((t[46] & 0x3ff) << 8) | ((t[47] >> 6) & 0xff);
ints[181] = ((t[47] & 0x3f) << 12) | ((t[48] >> 2) & 0xfff);
ints[182] = ((t[48] & 0x3) << 16) | ((t[49] & 0x3fff) << 2) | ((t[50] >> 12) & 0x3);
ints[183] = ((t[50] & 0xfff) << 6) | ((t[51] >> 8) & 0x3f);
ints[184] = ((t[51] & 0xff) << 10) | ((t[52] >> 4) & 0x3ff);
ints[185] = ((t[52] & 0xf) << 14) | (t[53] & 0x3fff);
ints[186] = ((t[54] & 0x3fff) << 4) | ((t[55] >> 10) & 0xf);
ints[187] = ((t[55] & 0x3ff) << 8) | ((t[56] >> 6) & 0xff);
ints[188] = ((t[56] & 0x3f) << 12) | ((t[57] >> 2) & 0xfff);
ints[189] = ((t[57] & 0x3) << 16) | ((t[58] & 0x3fff) << 2) | ((t[59] >> 12) & 0x3);
ints[190] = ((t[59] & 0xfff) << 6) | ((t[60] >> 8) & 0x3f);
ints[191] = ((t[60] & 0xff) << 10) | ((t[61] >> 4) & 0x3ff);
ints[192] = ((t[61] & 0xf) << 14) | (t[62] & 0x3fff);
ints[193] = ((t[63] & 0x3fff) << 4) | ((t[64] >> 10) & 0xf);
ints[194] = ((t[64] & 0x3ff) << 8) | ((t[65] >> 6) & 0xff);
ints[195] = ((t[65] & 0x3f) << 12) | ((t[66] >> 2) & 0xfff);
ints[196] = ((t[66] & 0x3) << 16) | ((t[67] & 0x3fff) << 2) | ((t[68] >> 12) & 0x3);
ints[197] = ((t[68] & 0xfff) << 6) | ((t[69] >> 8) & 0x3f);
ints[198] = ((t[69] & 0xff) << 10) | ((t[70] >> 4) & 0x3ff);
ints[199] = ((t[70] & 0xf) << 14) | (t[71] & 0x3fff);
ints[200] = ((t[72] & 0x3fff) << 4) | ((t[73] >> 10) & 0xf);
ints[201] = ((t[73] & 0x3ff) << 8) | ((t[74] >> 6) & 0xff);
ints[202] = ((t[74] & 0x3f) << 12) | ((t[75] >> 2) & 0xfff);
ints[203] = ((t[75] & 0x3) << 16) | ((t[76] & 0x3fff) << 2) | ((t[77] >> 12) & 0x3);
ints[204] = ((t[77] & 0xfff) << 6) | ((t[78] >> 8) & 0x3f);
ints[205] = ((t[78] & 0xff) << 10) | ((t[79] >> 4) & 0x3ff);
ints[206] = ((t[79] & 0xf) << 14) | (t[80] & 0x3fff);
ints[207] = ((t[81] & 0x3fff) << 4) | ((t[82] >> 10) & 0xf);
ints[208] = ((t[82] & 0x3ff) << 8) | ((t[83] >> 6) & 0xff);
ints[209] = ((t[83] & 0x3f) << 12) | ((t[84] >> 2) & 0xfff);
ints[210] = ((t[84] & 0x3) << 16) | ((t[85] & 0x3fff) << 2) | ((t[86] >> 12) & 0x3);
ints[211] = ((t[86] & 0xfff) << 6) | ((t[87] >> 8) & 0x3f);
ints[212] = ((t[87] & 0xff) << 10) | ((t[88] >> 4) & 0x3ff);
ints[213] = ((t[88] & 0xf) << 14) | (t[89] & 0x3fff);
ints[214] = ((t[90] & 0x3fff) << 4) | ((t[91] >> 10) & 0xf);
ints[215] = ((t[91] & 0x3ff) << 8) | ((t[92] >> 6) & 0xff);
ints[216] = ((t[92] & 0x3f) << 12) | ((t[93] >> 2) & 0xfff);
ints[217] = ((t[93] & 0x3) << 16) | ((t[94] & 0x3fff) << 2) | ((t[95] >> 12) & 0x3);
ints[218] = ((t[95] & 0xfff) << 6) | ((t[96] >> 8) & 0x3f);
ints[219] = ((t[96] & 0xff) << 10) | ((t[97] >> 4) & 0x3ff);
ints[220] = ((t[97] & 0xf) << 14) | (t[98] & 0x3fff);
ints[221] = ((t[99] & 0x3fff) << 4) | ((t[100] >> 10) & 0xf);
ints[222] = ((t[100] & 0x3ff) << 8) | ((t[101] >> 6) & 0xff);
ints[223] = ((t[101] & 0x3f) << 12) | ((t[102] >> 2) & 0xfff);
ints[224] = ((t[102] & 0x3) << 16) | ((t[103] & 0x3fff) << 2) | ((t[104] >> 12) & 0x3);
ints[225] = ((t[104] & 0xfff) << 6) | ((t[105] >> 8) & 0x3f);
ints[226] = ((t[105] & 0xff) << 10) | ((t[106] >> 4) & 0x3ff);
ints[227] = ((t[106] & 0xf) << 14) | (t[107] & 0x3fff);
ints[228] = ((t[108] & 0x3fff) << 4) | ((t[109] >> 10) & 0xf);
ints[229] = ((t[109] & 0x3ff) << 8) | ((t[110] >> 6) & 0xff);
ints[230] = ((t[110] & 0x3f) << 12) | ((t[111] >> 2) & 0xfff);
ints[231] = ((t[111] & 0x3) << 16) | ((t[112] & 0x3fff) << 2) | ((t[113] >> 12) & 0x3);
ints[232] = ((t[113] & 0xfff) << 6) | ((t[114] >> 8) & 0x3f);
ints[233] = ((t[114] & 0xff) << 10) | ((t[115] >> 4) & 0x3ff);
ints[234] = ((t[115] & 0xf) << 14) | (t[116] & 0x3fff);
ints[235] = ((t[117] & 0x3fff) << 4) | ((t[118] >> 10) & 0xf);
ints[236] = ((t[118] & 0x3ff) << 8) | ((t[119] >> 6) & 0xff);
ints[237] = ((t[119] & 0x3f) << 12) | ((t[120] >> 2) & 0xfff);
ints[238] = ((t[120] & 0x3) << 16) | ((t[121] & 0x3fff) << 2) | ((t[122] >> 12) & 0x3);
ints[239] = ((t[122] & 0xfff) << 6) | ((t[123] >> 8) & 0x3f);
ints[240] = ((t[123] & 0xff) << 10) | ((t[124] >> 4) & 0x3ff);
ints[241] = ((t[124] & 0xf) << 14) | (t[125] & 0x3fff);
ints[242] = ((t[126] & 0x3fff) << 4) | ((t[127] >> 10) & 0xf);
ints[243] = ((t[127] & 0x3ff) << 8) | ((t[128] >> 6) & 0xff);
ints[244] = ((t[128] & 0x3f) << 12) | ((t[129] >> 2) & 0xfff);
ints[245] = ((t[129] & 0x3) << 16) | ((t[130] & 0x3fff) << 2) | ((t[131] >> 12) & 0x3);
ints[246] = ((t[131] & 0xfff) << 6) | ((t[132] >> 8) & 0x3f);
ints[247] = ((t[132] & 0xff) << 10) | ((t[133] >> 4) & 0x3ff);
ints[248] = ((t[133] & 0xf) << 14) | (t[134] & 0x3fff);
ints[249] = ((t[135] & 0x3fff) << 4) | ((t[136] >> 10) & 0xf);
ints[250] = ((t[136] & 0x3ff) << 8) | ((t[137] >> 6) & 0xff);
ints[251] = ((t[137] & 0x3f) << 12) | ((t[138] >> 2) & 0xfff);
ints[252] = ((t[138] & 0x3) << 16) | ((t[139] & 0x3fff) << 2) | ((t[140] >> 12) & 0x3);
ints[253] = ((t[140] & 0xfff) << 6) | ((t[141] >> 8) & 0x3f);
ints[254] = ((t[141] & 0xff) << 10) | ((t[142] >> 4) & 0x3ff);
ints[255] = ((t[142] & 0xf) << 14) | (t[143] & 0x3fff);
}
#[inline(always)]
fn decode19(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 608] = src[..608].try_into().unwrap();
let mut t = [0u32; 152];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..152 {
ints[0 + i] = (t[i] >> 13) & 0x7ffff;
}
ints[152] = ((t[0] & 0x1fff) << 6) | ((t[1] >> 7) & 0x3f);
ints[153] = ((t[1] & 0x7f) << 12) | ((t[2] >> 1) & 0xfff);
ints[154] = ((t[2] & 0x1) << 18) | ((t[3] & 0x1fff) << 5) | ((t[4] >> 8) & 0x1f);
ints[155] = ((t[4] & 0xff) << 11) | ((t[5] >> 2) & 0x7ff);
ints[156] = ((t[5] & 0x3) << 17) | ((t[6] & 0x1fff) << 4) | ((t[7] >> 9) & 0xf);
ints[157] = ((t[7] & 0x1ff) << 10) | ((t[8] >> 3) & 0x3ff);
ints[158] = ((t[8] & 0x7) << 16) | ((t[9] & 0x1fff) << 3) | ((t[10] >> 10) & 0x7);
ints[159] = ((t[10] & 0x3ff) << 9) | ((t[11] >> 4) & 0x1ff);
ints[160] = ((t[11] & 0xf) << 15) | ((t[12] & 0x1fff) << 2) | ((t[13] >> 11) & 0x3);
ints[161] = ((t[13] & 0x7ff) << 8) | ((t[14] >> 5) & 0xff);
ints[162] = ((t[14] & 0x1f) << 14) | ((t[15] & 0x1fff) << 1) | ((t[16] >> 12) & 0x1);
ints[163] = ((t[16] & 0xfff) << 7) | ((t[17] >> 6) & 0x7f);
ints[164] = ((t[17] & 0x3f) << 13) | (t[18] & 0x1fff);
ints[165] = ((t[19] & 0x1fff) << 6) | ((t[20] >> 7) & 0x3f);
ints[166] = ((t[20] & 0x7f) << 12) | ((t[21] >> 1) & 0xfff);
ints[167] = ((t[21] & 0x1) << 18) | ((t[22] & 0x1fff) << 5) | ((t[23] >> 8) & 0x1f);
ints[168] = ((t[23] & 0xff) << 11) | ((t[24] >> 2) & 0x7ff);
ints[169] = ((t[24] & 0x3) << 17) | ((t[25] & 0x1fff) << 4) | ((t[26] >> 9) & 0xf);
ints[170] = ((t[26] & 0x1ff) << 10) | ((t[27] >> 3) & 0x3ff);
ints[171] = ((t[27] & 0x7) << 16) | ((t[28] & 0x1fff) << 3) | ((t[29] >> 10) & 0x7);
ints[172] = ((t[29] & 0x3ff) << 9) | ((t[30] >> 4) & 0x1ff);
ints[173] = ((t[30] & 0xf) << 15) | ((t[31] & 0x1fff) << 2) | ((t[32] >> 11) & 0x3);
ints[174] = ((t[32] & 0x7ff) << 8) | ((t[33] >> 5) & 0xff);
ints[175] = ((t[33] & 0x1f) << 14) | ((t[34] & 0x1fff) << 1) | ((t[35] >> 12) & 0x1);
ints[176] = ((t[35] & 0xfff) << 7) | ((t[36] >> 6) & 0x7f);
ints[177] = ((t[36] & 0x3f) << 13) | (t[37] & 0x1fff);
ints[178] = ((t[38] & 0x1fff) << 6) | ((t[39] >> 7) & 0x3f);
ints[179] = ((t[39] & 0x7f) << 12) | ((t[40] >> 1) & 0xfff);
ints[180] = ((t[40] & 0x1) << 18) | ((t[41] & 0x1fff) << 5) | ((t[42] >> 8) & 0x1f);
ints[181] = ((t[42] & 0xff) << 11) | ((t[43] >> 2) & 0x7ff);
ints[182] = ((t[43] & 0x3) << 17) | ((t[44] & 0x1fff) << 4) | ((t[45] >> 9) & 0xf);
ints[183] = ((t[45] & 0x1ff) << 10) | ((t[46] >> 3) & 0x3ff);
ints[184] = ((t[46] & 0x7) << 16) | ((t[47] & 0x1fff) << 3) | ((t[48] >> 10) & 0x7);
ints[185] = ((t[48] & 0x3ff) << 9) | ((t[49] >> 4) & 0x1ff);
ints[186] = ((t[49] & 0xf) << 15) | ((t[50] & 0x1fff) << 2) | ((t[51] >> 11) & 0x3);
ints[187] = ((t[51] & 0x7ff) << 8) | ((t[52] >> 5) & 0xff);
ints[188] = ((t[52] & 0x1f) << 14) | ((t[53] & 0x1fff) << 1) | ((t[54] >> 12) & 0x1);
ints[189] = ((t[54] & 0xfff) << 7) | ((t[55] >> 6) & 0x7f);
ints[190] = ((t[55] & 0x3f) << 13) | (t[56] & 0x1fff);
ints[191] = ((t[57] & 0x1fff) << 6) | ((t[58] >> 7) & 0x3f);
ints[192] = ((t[58] & 0x7f) << 12) | ((t[59] >> 1) & 0xfff);
ints[193] = ((t[59] & 0x1) << 18) | ((t[60] & 0x1fff) << 5) | ((t[61] >> 8) & 0x1f);
ints[194] = ((t[61] & 0xff) << 11) | ((t[62] >> 2) & 0x7ff);
ints[195] = ((t[62] & 0x3) << 17) | ((t[63] & 0x1fff) << 4) | ((t[64] >> 9) & 0xf);
ints[196] = ((t[64] & 0x1ff) << 10) | ((t[65] >> 3) & 0x3ff);
ints[197] = ((t[65] & 0x7) << 16) | ((t[66] & 0x1fff) << 3) | ((t[67] >> 10) & 0x7);
ints[198] = ((t[67] & 0x3ff) << 9) | ((t[68] >> 4) & 0x1ff);
ints[199] = ((t[68] & 0xf) << 15) | ((t[69] & 0x1fff) << 2) | ((t[70] >> 11) & 0x3);
ints[200] = ((t[70] & 0x7ff) << 8) | ((t[71] >> 5) & 0xff);
ints[201] = ((t[71] & 0x1f) << 14) | ((t[72] & 0x1fff) << 1) | ((t[73] >> 12) & 0x1);
ints[202] = ((t[73] & 0xfff) << 7) | ((t[74] >> 6) & 0x7f);
ints[203] = ((t[74] & 0x3f) << 13) | (t[75] & 0x1fff);
ints[204] = ((t[76] & 0x1fff) << 6) | ((t[77] >> 7) & 0x3f);
ints[205] = ((t[77] & 0x7f) << 12) | ((t[78] >> 1) & 0xfff);
ints[206] = ((t[78] & 0x1) << 18) | ((t[79] & 0x1fff) << 5) | ((t[80] >> 8) & 0x1f);
ints[207] = ((t[80] & 0xff) << 11) | ((t[81] >> 2) & 0x7ff);
ints[208] = ((t[81] & 0x3) << 17) | ((t[82] & 0x1fff) << 4) | ((t[83] >> 9) & 0xf);
ints[209] = ((t[83] & 0x1ff) << 10) | ((t[84] >> 3) & 0x3ff);
ints[210] = ((t[84] & 0x7) << 16) | ((t[85] & 0x1fff) << 3) | ((t[86] >> 10) & 0x7);
ints[211] = ((t[86] & 0x3ff) << 9) | ((t[87] >> 4) & 0x1ff);
ints[212] = ((t[87] & 0xf) << 15) | ((t[88] & 0x1fff) << 2) | ((t[89] >> 11) & 0x3);
ints[213] = ((t[89] & 0x7ff) << 8) | ((t[90] >> 5) & 0xff);
ints[214] = ((t[90] & 0x1f) << 14) | ((t[91] & 0x1fff) << 1) | ((t[92] >> 12) & 0x1);
ints[215] = ((t[92] & 0xfff) << 7) | ((t[93] >> 6) & 0x7f);
ints[216] = ((t[93] & 0x3f) << 13) | (t[94] & 0x1fff);
ints[217] = ((t[95] & 0x1fff) << 6) | ((t[96] >> 7) & 0x3f);
ints[218] = ((t[96] & 0x7f) << 12) | ((t[97] >> 1) & 0xfff);
ints[219] = ((t[97] & 0x1) << 18) | ((t[98] & 0x1fff) << 5) | ((t[99] >> 8) & 0x1f);
ints[220] = ((t[99] & 0xff) << 11) | ((t[100] >> 2) & 0x7ff);
ints[221] = ((t[100] & 0x3) << 17) | ((t[101] & 0x1fff) << 4) | ((t[102] >> 9) & 0xf);
ints[222] = ((t[102] & 0x1ff) << 10) | ((t[103] >> 3) & 0x3ff);
ints[223] = ((t[103] & 0x7) << 16) | ((t[104] & 0x1fff) << 3) | ((t[105] >> 10) & 0x7);
ints[224] = ((t[105] & 0x3ff) << 9) | ((t[106] >> 4) & 0x1ff);
ints[225] = ((t[106] & 0xf) << 15) | ((t[107] & 0x1fff) << 2) | ((t[108] >> 11) & 0x3);
ints[226] = ((t[108] & 0x7ff) << 8) | ((t[109] >> 5) & 0xff);
ints[227] = ((t[109] & 0x1f) << 14) | ((t[110] & 0x1fff) << 1) | ((t[111] >> 12) & 0x1);
ints[228] = ((t[111] & 0xfff) << 7) | ((t[112] >> 6) & 0x7f);
ints[229] = ((t[112] & 0x3f) << 13) | (t[113] & 0x1fff);
ints[230] = ((t[114] & 0x1fff) << 6) | ((t[115] >> 7) & 0x3f);
ints[231] = ((t[115] & 0x7f) << 12) | ((t[116] >> 1) & 0xfff);
ints[232] = ((t[116] & 0x1) << 18) | ((t[117] & 0x1fff) << 5) | ((t[118] >> 8) & 0x1f);
ints[233] = ((t[118] & 0xff) << 11) | ((t[119] >> 2) & 0x7ff);
ints[234] = ((t[119] & 0x3) << 17) | ((t[120] & 0x1fff) << 4) | ((t[121] >> 9) & 0xf);
ints[235] = ((t[121] & 0x1ff) << 10) | ((t[122] >> 3) & 0x3ff);
ints[236] = ((t[122] & 0x7) << 16) | ((t[123] & 0x1fff) << 3) | ((t[124] >> 10) & 0x7);
ints[237] = ((t[124] & 0x3ff) << 9) | ((t[125] >> 4) & 0x1ff);
ints[238] = ((t[125] & 0xf) << 15) | ((t[126] & 0x1fff) << 2) | ((t[127] >> 11) & 0x3);
ints[239] = ((t[127] & 0x7ff) << 8) | ((t[128] >> 5) & 0xff);
ints[240] = ((t[128] & 0x1f) << 14) | ((t[129] & 0x1fff) << 1) | ((t[130] >> 12) & 0x1);
ints[241] = ((t[130] & 0xfff) << 7) | ((t[131] >> 6) & 0x7f);
ints[242] = ((t[131] & 0x3f) << 13) | (t[132] & 0x1fff);
ints[243] = ((t[133] & 0x1fff) << 6) | ((t[134] >> 7) & 0x3f);
ints[244] = ((t[134] & 0x7f) << 12) | ((t[135] >> 1) & 0xfff);
ints[245] = ((t[135] & 0x1) << 18) | ((t[136] & 0x1fff) << 5) | ((t[137] >> 8) & 0x1f);
ints[246] = ((t[137] & 0xff) << 11) | ((t[138] >> 2) & 0x7ff);
ints[247] = ((t[138] & 0x3) << 17) | ((t[139] & 0x1fff) << 4) | ((t[140] >> 9) & 0xf);
ints[248] = ((t[140] & 0x1ff) << 10) | ((t[141] >> 3) & 0x3ff);
ints[249] = ((t[141] & 0x7) << 16) | ((t[142] & 0x1fff) << 3) | ((t[143] >> 10) & 0x7);
ints[250] = ((t[143] & 0x3ff) << 9) | ((t[144] >> 4) & 0x1ff);
ints[251] = ((t[144] & 0xf) << 15) | ((t[145] & 0x1fff) << 2) | ((t[146] >> 11) & 0x3);
ints[252] = ((t[146] & 0x7ff) << 8) | ((t[147] >> 5) & 0xff);
ints[253] = ((t[147] & 0x1f) << 14) | ((t[148] & 0x1fff) << 1) | ((t[149] >> 12) & 0x1);
ints[254] = ((t[149] & 0xfff) << 7) | ((t[150] >> 6) & 0x7f);
ints[255] = ((t[150] & 0x3f) << 13) | (t[151] & 0x1fff);
}
#[inline(always)]
fn decode20(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 640] = src[..640].try_into().unwrap();
let mut t = [0u32; 160];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..160 {
ints[0 + i] = (t[i] >> 12) & 0xfffff;
}
ints[160] = ((t[0] & 0xfff) << 8) | ((t[1] >> 4) & 0xff);
ints[161] = ((t[1] & 0xf) << 16) | ((t[2] & 0xfff) << 4) | ((t[3] >> 8) & 0xf);
ints[162] = ((t[3] & 0xff) << 12) | (t[4] & 0xfff);
ints[163] = ((t[5] & 0xfff) << 8) | ((t[6] >> 4) & 0xff);
ints[164] = ((t[6] & 0xf) << 16) | ((t[7] & 0xfff) << 4) | ((t[8] >> 8) & 0xf);
ints[165] = ((t[8] & 0xff) << 12) | (t[9] & 0xfff);
ints[166] = ((t[10] & 0xfff) << 8) | ((t[11] >> 4) & 0xff);
ints[167] = ((t[11] & 0xf) << 16) | ((t[12] & 0xfff) << 4) | ((t[13] >> 8) & 0xf);
ints[168] = ((t[13] & 0xff) << 12) | (t[14] & 0xfff);
ints[169] = ((t[15] & 0xfff) << 8) | ((t[16] >> 4) & 0xff);
ints[170] = ((t[16] & 0xf) << 16) | ((t[17] & 0xfff) << 4) | ((t[18] >> 8) & 0xf);
ints[171] = ((t[18] & 0xff) << 12) | (t[19] & 0xfff);
ints[172] = ((t[20] & 0xfff) << 8) | ((t[21] >> 4) & 0xff);
ints[173] = ((t[21] & 0xf) << 16) | ((t[22] & 0xfff) << 4) | ((t[23] >> 8) & 0xf);
ints[174] = ((t[23] & 0xff) << 12) | (t[24] & 0xfff);
ints[175] = ((t[25] & 0xfff) << 8) | ((t[26] >> 4) & 0xff);
ints[176] = ((t[26] & 0xf) << 16) | ((t[27] & 0xfff) << 4) | ((t[28] >> 8) & 0xf);
ints[177] = ((t[28] & 0xff) << 12) | (t[29] & 0xfff);
ints[178] = ((t[30] & 0xfff) << 8) | ((t[31] >> 4) & 0xff);
ints[179] = ((t[31] & 0xf) << 16) | ((t[32] & 0xfff) << 4) | ((t[33] >> 8) & 0xf);
ints[180] = ((t[33] & 0xff) << 12) | (t[34] & 0xfff);
ints[181] = ((t[35] & 0xfff) << 8) | ((t[36] >> 4) & 0xff);
ints[182] = ((t[36] & 0xf) << 16) | ((t[37] & 0xfff) << 4) | ((t[38] >> 8) & 0xf);
ints[183] = ((t[38] & 0xff) << 12) | (t[39] & 0xfff);
ints[184] = ((t[40] & 0xfff) << 8) | ((t[41] >> 4) & 0xff);
ints[185] = ((t[41] & 0xf) << 16) | ((t[42] & 0xfff) << 4) | ((t[43] >> 8) & 0xf);
ints[186] = ((t[43] & 0xff) << 12) | (t[44] & 0xfff);
ints[187] = ((t[45] & 0xfff) << 8) | ((t[46] >> 4) & 0xff);
ints[188] = ((t[46] & 0xf) << 16) | ((t[47] & 0xfff) << 4) | ((t[48] >> 8) & 0xf);
ints[189] = ((t[48] & 0xff) << 12) | (t[49] & 0xfff);
ints[190] = ((t[50] & 0xfff) << 8) | ((t[51] >> 4) & 0xff);
ints[191] = ((t[51] & 0xf) << 16) | ((t[52] & 0xfff) << 4) | ((t[53] >> 8) & 0xf);
ints[192] = ((t[53] & 0xff) << 12) | (t[54] & 0xfff);
ints[193] = ((t[55] & 0xfff) << 8) | ((t[56] >> 4) & 0xff);
ints[194] = ((t[56] & 0xf) << 16) | ((t[57] & 0xfff) << 4) | ((t[58] >> 8) & 0xf);
ints[195] = ((t[58] & 0xff) << 12) | (t[59] & 0xfff);
ints[196] = ((t[60] & 0xfff) << 8) | ((t[61] >> 4) & 0xff);
ints[197] = ((t[61] & 0xf) << 16) | ((t[62] & 0xfff) << 4) | ((t[63] >> 8) & 0xf);
ints[198] = ((t[63] & 0xff) << 12) | (t[64] & 0xfff);
ints[199] = ((t[65] & 0xfff) << 8) | ((t[66] >> 4) & 0xff);
ints[200] = ((t[66] & 0xf) << 16) | ((t[67] & 0xfff) << 4) | ((t[68] >> 8) & 0xf);
ints[201] = ((t[68] & 0xff) << 12) | (t[69] & 0xfff);
ints[202] = ((t[70] & 0xfff) << 8) | ((t[71] >> 4) & 0xff);
ints[203] = ((t[71] & 0xf) << 16) | ((t[72] & 0xfff) << 4) | ((t[73] >> 8) & 0xf);
ints[204] = ((t[73] & 0xff) << 12) | (t[74] & 0xfff);
ints[205] = ((t[75] & 0xfff) << 8) | ((t[76] >> 4) & 0xff);
ints[206] = ((t[76] & 0xf) << 16) | ((t[77] & 0xfff) << 4) | ((t[78] >> 8) & 0xf);
ints[207] = ((t[78] & 0xff) << 12) | (t[79] & 0xfff);
ints[208] = ((t[80] & 0xfff) << 8) | ((t[81] >> 4) & 0xff);
ints[209] = ((t[81] & 0xf) << 16) | ((t[82] & 0xfff) << 4) | ((t[83] >> 8) & 0xf);
ints[210] = ((t[83] & 0xff) << 12) | (t[84] & 0xfff);
ints[211] = ((t[85] & 0xfff) << 8) | ((t[86] >> 4) & 0xff);
ints[212] = ((t[86] & 0xf) << 16) | ((t[87] & 0xfff) << 4) | ((t[88] >> 8) & 0xf);
ints[213] = ((t[88] & 0xff) << 12) | (t[89] & 0xfff);
ints[214] = ((t[90] & 0xfff) << 8) | ((t[91] >> 4) & 0xff);
ints[215] = ((t[91] & 0xf) << 16) | ((t[92] & 0xfff) << 4) | ((t[93] >> 8) & 0xf);
ints[216] = ((t[93] & 0xff) << 12) | (t[94] & 0xfff);
ints[217] = ((t[95] & 0xfff) << 8) | ((t[96] >> 4) & 0xff);
ints[218] = ((t[96] & 0xf) << 16) | ((t[97] & 0xfff) << 4) | ((t[98] >> 8) & 0xf);
ints[219] = ((t[98] & 0xff) << 12) | (t[99] & 0xfff);
ints[220] = ((t[100] & 0xfff) << 8) | ((t[101] >> 4) & 0xff);
ints[221] = ((t[101] & 0xf) << 16) | ((t[102] & 0xfff) << 4) | ((t[103] >> 8) & 0xf);
ints[222] = ((t[103] & 0xff) << 12) | (t[104] & 0xfff);
ints[223] = ((t[105] & 0xfff) << 8) | ((t[106] >> 4) & 0xff);
ints[224] = ((t[106] & 0xf) << 16) | ((t[107] & 0xfff) << 4) | ((t[108] >> 8) & 0xf);
ints[225] = ((t[108] & 0xff) << 12) | (t[109] & 0xfff);
ints[226] = ((t[110] & 0xfff) << 8) | ((t[111] >> 4) & 0xff);
ints[227] = ((t[111] & 0xf) << 16) | ((t[112] & 0xfff) << 4) | ((t[113] >> 8) & 0xf);
ints[228] = ((t[113] & 0xff) << 12) | (t[114] & 0xfff);
ints[229] = ((t[115] & 0xfff) << 8) | ((t[116] >> 4) & 0xff);
ints[230] = ((t[116] & 0xf) << 16) | ((t[117] & 0xfff) << 4) | ((t[118] >> 8) & 0xf);
ints[231] = ((t[118] & 0xff) << 12) | (t[119] & 0xfff);
ints[232] = ((t[120] & 0xfff) << 8) | ((t[121] >> 4) & 0xff);
ints[233] = ((t[121] & 0xf) << 16) | ((t[122] & 0xfff) << 4) | ((t[123] >> 8) & 0xf);
ints[234] = ((t[123] & 0xff) << 12) | (t[124] & 0xfff);
ints[235] = ((t[125] & 0xfff) << 8) | ((t[126] >> 4) & 0xff);
ints[236] = ((t[126] & 0xf) << 16) | ((t[127] & 0xfff) << 4) | ((t[128] >> 8) & 0xf);
ints[237] = ((t[128] & 0xff) << 12) | (t[129] & 0xfff);
ints[238] = ((t[130] & 0xfff) << 8) | ((t[131] >> 4) & 0xff);
ints[239] = ((t[131] & 0xf) << 16) | ((t[132] & 0xfff) << 4) | ((t[133] >> 8) & 0xf);
ints[240] = ((t[133] & 0xff) << 12) | (t[134] & 0xfff);
ints[241] = ((t[135] & 0xfff) << 8) | ((t[136] >> 4) & 0xff);
ints[242] = ((t[136] & 0xf) << 16) | ((t[137] & 0xfff) << 4) | ((t[138] >> 8) & 0xf);
ints[243] = ((t[138] & 0xff) << 12) | (t[139] & 0xfff);
ints[244] = ((t[140] & 0xfff) << 8) | ((t[141] >> 4) & 0xff);
ints[245] = ((t[141] & 0xf) << 16) | ((t[142] & 0xfff) << 4) | ((t[143] >> 8) & 0xf);
ints[246] = ((t[143] & 0xff) << 12) | (t[144] & 0xfff);
ints[247] = ((t[145] & 0xfff) << 8) | ((t[146] >> 4) & 0xff);
ints[248] = ((t[146] & 0xf) << 16) | ((t[147] & 0xfff) << 4) | ((t[148] >> 8) & 0xf);
ints[249] = ((t[148] & 0xff) << 12) | (t[149] & 0xfff);
ints[250] = ((t[150] & 0xfff) << 8) | ((t[151] >> 4) & 0xff);
ints[251] = ((t[151] & 0xf) << 16) | ((t[152] & 0xfff) << 4) | ((t[153] >> 8) & 0xf);
ints[252] = ((t[153] & 0xff) << 12) | (t[154] & 0xfff);
ints[253] = ((t[155] & 0xfff) << 8) | ((t[156] >> 4) & 0xff);
ints[254] = ((t[156] & 0xf) << 16) | ((t[157] & 0xfff) << 4) | ((t[158] >> 8) & 0xf);
ints[255] = ((t[158] & 0xff) << 12) | (t[159] & 0xfff);
}
#[inline(always)]
fn decode21(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 672] = src[..672].try_into().unwrap();
let mut t = [0u32; 168];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..168 {
ints[0 + i] = (t[i] >> 11) & 0x1fffff;
}
ints[168] = ((t[0] & 0x7ff) << 10) | ((t[1] >> 1) & 0x3ff);
ints[169] = ((t[1] & 0x1) << 20) | ((t[2] & 0x7ff) << 9) | ((t[3] >> 2) & 0x1ff);
ints[170] = ((t[3] & 0x3) << 19) | ((t[4] & 0x7ff) << 8) | ((t[5] >> 3) & 0xff);
ints[171] = ((t[5] & 0x7) << 18) | ((t[6] & 0x7ff) << 7) | ((t[7] >> 4) & 0x7f);
ints[172] = ((t[7] & 0xf) << 17) | ((t[8] & 0x7ff) << 6) | ((t[9] >> 5) & 0x3f);
ints[173] = ((t[9] & 0x1f) << 16) | ((t[10] & 0x7ff) << 5) | ((t[11] >> 6) & 0x1f);
ints[174] = ((t[11] & 0x3f) << 15) | ((t[12] & 0x7ff) << 4) | ((t[13] >> 7) & 0xf);
ints[175] = ((t[13] & 0x7f) << 14) | ((t[14] & 0x7ff) << 3) | ((t[15] >> 8) & 0x7);
ints[176] = ((t[15] & 0xff) << 13) | ((t[16] & 0x7ff) << 2) | ((t[17] >> 9) & 0x3);
ints[177] = ((t[17] & 0x1ff) << 12) | ((t[18] & 0x7ff) << 1) | ((t[19] >> 10) & 0x1);
ints[178] = ((t[19] & 0x3ff) << 11) | (t[20] & 0x7ff);
ints[179] = ((t[21] & 0x7ff) << 10) | ((t[22] >> 1) & 0x3ff);
ints[180] = ((t[22] & 0x1) << 20) | ((t[23] & 0x7ff) << 9) | ((t[24] >> 2) & 0x1ff);
ints[181] = ((t[24] & 0x3) << 19) | ((t[25] & 0x7ff) << 8) | ((t[26] >> 3) & 0xff);
ints[182] = ((t[26] & 0x7) << 18) | ((t[27] & 0x7ff) << 7) | ((t[28] >> 4) & 0x7f);
ints[183] = ((t[28] & 0xf) << 17) | ((t[29] & 0x7ff) << 6) | ((t[30] >> 5) & 0x3f);
ints[184] = ((t[30] & 0x1f) << 16) | ((t[31] & 0x7ff) << 5) | ((t[32] >> 6) & 0x1f);
ints[185] = ((t[32] & 0x3f) << 15) | ((t[33] & 0x7ff) << 4) | ((t[34] >> 7) & 0xf);
ints[186] = ((t[34] & 0x7f) << 14) | ((t[35] & 0x7ff) << 3) | ((t[36] >> 8) & 0x7);
ints[187] = ((t[36] & 0xff) << 13) | ((t[37] & 0x7ff) << 2) | ((t[38] >> 9) & 0x3);
ints[188] = ((t[38] & 0x1ff) << 12) | ((t[39] & 0x7ff) << 1) | ((t[40] >> 10) & 0x1);
ints[189] = ((t[40] & 0x3ff) << 11) | (t[41] & 0x7ff);
ints[190] = ((t[42] & 0x7ff) << 10) | ((t[43] >> 1) & 0x3ff);
ints[191] = ((t[43] & 0x1) << 20) | ((t[44] & 0x7ff) << 9) | ((t[45] >> 2) & 0x1ff);
ints[192] = ((t[45] & 0x3) << 19) | ((t[46] & 0x7ff) << 8) | ((t[47] >> 3) & 0xff);
ints[193] = ((t[47] & 0x7) << 18) | ((t[48] & 0x7ff) << 7) | ((t[49] >> 4) & 0x7f);
ints[194] = ((t[49] & 0xf) << 17) | ((t[50] & 0x7ff) << 6) | ((t[51] >> 5) & 0x3f);
ints[195] = ((t[51] & 0x1f) << 16) | ((t[52] & 0x7ff) << 5) | ((t[53] >> 6) & 0x1f);
ints[196] = ((t[53] & 0x3f) << 15) | ((t[54] & 0x7ff) << 4) | ((t[55] >> 7) & 0xf);
ints[197] = ((t[55] & 0x7f) << 14) | ((t[56] & 0x7ff) << 3) | ((t[57] >> 8) & 0x7);
ints[198] = ((t[57] & 0xff) << 13) | ((t[58] & 0x7ff) << 2) | ((t[59] >> 9) & 0x3);
ints[199] = ((t[59] & 0x1ff) << 12) | ((t[60] & 0x7ff) << 1) | ((t[61] >> 10) & 0x1);
ints[200] = ((t[61] & 0x3ff) << 11) | (t[62] & 0x7ff);
ints[201] = ((t[63] & 0x7ff) << 10) | ((t[64] >> 1) & 0x3ff);
ints[202] = ((t[64] & 0x1) << 20) | ((t[65] & 0x7ff) << 9) | ((t[66] >> 2) & 0x1ff);
ints[203] = ((t[66] & 0x3) << 19) | ((t[67] & 0x7ff) << 8) | ((t[68] >> 3) & 0xff);
ints[204] = ((t[68] & 0x7) << 18) | ((t[69] & 0x7ff) << 7) | ((t[70] >> 4) & 0x7f);
ints[205] = ((t[70] & 0xf) << 17) | ((t[71] & 0x7ff) << 6) | ((t[72] >> 5) & 0x3f);
ints[206] = ((t[72] & 0x1f) << 16) | ((t[73] & 0x7ff) << 5) | ((t[74] >> 6) & 0x1f);
ints[207] = ((t[74] & 0x3f) << 15) | ((t[75] & 0x7ff) << 4) | ((t[76] >> 7) & 0xf);
ints[208] = ((t[76] & 0x7f) << 14) | ((t[77] & 0x7ff) << 3) | ((t[78] >> 8) & 0x7);
ints[209] = ((t[78] & 0xff) << 13) | ((t[79] & 0x7ff) << 2) | ((t[80] >> 9) & 0x3);
ints[210] = ((t[80] & 0x1ff) << 12) | ((t[81] & 0x7ff) << 1) | ((t[82] >> 10) & 0x1);
ints[211] = ((t[82] & 0x3ff) << 11) | (t[83] & 0x7ff);
ints[212] = ((t[84] & 0x7ff) << 10) | ((t[85] >> 1) & 0x3ff);
ints[213] = ((t[85] & 0x1) << 20) | ((t[86] & 0x7ff) << 9) | ((t[87] >> 2) & 0x1ff);
ints[214] = ((t[87] & 0x3) << 19) | ((t[88] & 0x7ff) << 8) | ((t[89] >> 3) & 0xff);
ints[215] = ((t[89] & 0x7) << 18) | ((t[90] & 0x7ff) << 7) | ((t[91] >> 4) & 0x7f);
ints[216] = ((t[91] & 0xf) << 17) | ((t[92] & 0x7ff) << 6) | ((t[93] >> 5) & 0x3f);
ints[217] = ((t[93] & 0x1f) << 16) | ((t[94] & 0x7ff) << 5) | ((t[95] >> 6) & 0x1f);
ints[218] = ((t[95] & 0x3f) << 15) | ((t[96] & 0x7ff) << 4) | ((t[97] >> 7) & 0xf);
ints[219] = ((t[97] & 0x7f) << 14) | ((t[98] & 0x7ff) << 3) | ((t[99] >> 8) & 0x7);
ints[220] = ((t[99] & 0xff) << 13) | ((t[100] & 0x7ff) << 2) | ((t[101] >> 9) & 0x3);
ints[221] = ((t[101] & 0x1ff) << 12) | ((t[102] & 0x7ff) << 1) | ((t[103] >> 10) & 0x1);
ints[222] = ((t[103] & 0x3ff) << 11) | (t[104] & 0x7ff);
ints[223] = ((t[105] & 0x7ff) << 10) | ((t[106] >> 1) & 0x3ff);
ints[224] = ((t[106] & 0x1) << 20) | ((t[107] & 0x7ff) << 9) | ((t[108] >> 2) & 0x1ff);
ints[225] = ((t[108] & 0x3) << 19) | ((t[109] & 0x7ff) << 8) | ((t[110] >> 3) & 0xff);
ints[226] = ((t[110] & 0x7) << 18) | ((t[111] & 0x7ff) << 7) | ((t[112] >> 4) & 0x7f);
ints[227] = ((t[112] & 0xf) << 17) | ((t[113] & 0x7ff) << 6) | ((t[114] >> 5) & 0x3f);
ints[228] = ((t[114] & 0x1f) << 16) | ((t[115] & 0x7ff) << 5) | ((t[116] >> 6) & 0x1f);
ints[229] = ((t[116] & 0x3f) << 15) | ((t[117] & 0x7ff) << 4) | ((t[118] >> 7) & 0xf);
ints[230] = ((t[118] & 0x7f) << 14) | ((t[119] & 0x7ff) << 3) | ((t[120] >> 8) & 0x7);
ints[231] = ((t[120] & 0xff) << 13) | ((t[121] & 0x7ff) << 2) | ((t[122] >> 9) & 0x3);
ints[232] = ((t[122] & 0x1ff) << 12) | ((t[123] & 0x7ff) << 1) | ((t[124] >> 10) & 0x1);
ints[233] = ((t[124] & 0x3ff) << 11) | (t[125] & 0x7ff);
ints[234] = ((t[126] & 0x7ff) << 10) | ((t[127] >> 1) & 0x3ff);
ints[235] = ((t[127] & 0x1) << 20) | ((t[128] & 0x7ff) << 9) | ((t[129] >> 2) & 0x1ff);
ints[236] = ((t[129] & 0x3) << 19) | ((t[130] & 0x7ff) << 8) | ((t[131] >> 3) & 0xff);
ints[237] = ((t[131] & 0x7) << 18) | ((t[132] & 0x7ff) << 7) | ((t[133] >> 4) & 0x7f);
ints[238] = ((t[133] & 0xf) << 17) | ((t[134] & 0x7ff) << 6) | ((t[135] >> 5) & 0x3f);
ints[239] = ((t[135] & 0x1f) << 16) | ((t[136] & 0x7ff) << 5) | ((t[137] >> 6) & 0x1f);
ints[240] = ((t[137] & 0x3f) << 15) | ((t[138] & 0x7ff) << 4) | ((t[139] >> 7) & 0xf);
ints[241] = ((t[139] & 0x7f) << 14) | ((t[140] & 0x7ff) << 3) | ((t[141] >> 8) & 0x7);
ints[242] = ((t[141] & 0xff) << 13) | ((t[142] & 0x7ff) << 2) | ((t[143] >> 9) & 0x3);
ints[243] = ((t[143] & 0x1ff) << 12) | ((t[144] & 0x7ff) << 1) | ((t[145] >> 10) & 0x1);
ints[244] = ((t[145] & 0x3ff) << 11) | (t[146] & 0x7ff);
ints[245] = ((t[147] & 0x7ff) << 10) | ((t[148] >> 1) & 0x3ff);
ints[246] = ((t[148] & 0x1) << 20) | ((t[149] & 0x7ff) << 9) | ((t[150] >> 2) & 0x1ff);
ints[247] = ((t[150] & 0x3) << 19) | ((t[151] & 0x7ff) << 8) | ((t[152] >> 3) & 0xff);
ints[248] = ((t[152] & 0x7) << 18) | ((t[153] & 0x7ff) << 7) | ((t[154] >> 4) & 0x7f);
ints[249] = ((t[154] & 0xf) << 17) | ((t[155] & 0x7ff) << 6) | ((t[156] >> 5) & 0x3f);
ints[250] = ((t[156] & 0x1f) << 16) | ((t[157] & 0x7ff) << 5) | ((t[158] >> 6) & 0x1f);
ints[251] = ((t[158] & 0x3f) << 15) | ((t[159] & 0x7ff) << 4) | ((t[160] >> 7) & 0xf);
ints[252] = ((t[160] & 0x7f) << 14) | ((t[161] & 0x7ff) << 3) | ((t[162] >> 8) & 0x7);
ints[253] = ((t[162] & 0xff) << 13) | ((t[163] & 0x7ff) << 2) | ((t[164] >> 9) & 0x3);
ints[254] = ((t[164] & 0x1ff) << 12) | ((t[165] & 0x7ff) << 1) | ((t[166] >> 10) & 0x1);
ints[255] = ((t[166] & 0x3ff) << 11) | (t[167] & 0x7ff);
}
#[inline(always)]
fn decode22(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 704] = src[..704].try_into().unwrap();
let mut t = [0u32; 176];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..176 {
ints[0 + i] = (t[i] >> 10) & 0x3fffff;
}
ints[176] = ((t[0] & 0x3ff) << 12) | ((t[1] & 0x3ff) << 2) | ((t[2] >> 8) & 0x3);
ints[177] = ((t[2] & 0xff) << 14) | ((t[3] & 0x3ff) << 4) | ((t[4] >> 6) & 0xf);
ints[178] = ((t[4] & 0x3f) << 16) | ((t[5] & 0x3ff) << 6) | ((t[6] >> 4) & 0x3f);
ints[179] = ((t[6] & 0xf) << 18) | ((t[7] & 0x3ff) << 8) | ((t[8] >> 2) & 0xff);
ints[180] = ((t[8] & 0x3) << 20) | ((t[9] & 0x3ff) << 10) | (t[10] & 0x3ff);
ints[181] = ((t[11] & 0x3ff) << 12) | ((t[12] & 0x3ff) << 2) | ((t[13] >> 8) & 0x3);
ints[182] = ((t[13] & 0xff) << 14) | ((t[14] & 0x3ff) << 4) | ((t[15] >> 6) & 0xf);
ints[183] = ((t[15] & 0x3f) << 16) | ((t[16] & 0x3ff) << 6) | ((t[17] >> 4) & 0x3f);
ints[184] = ((t[17] & 0xf) << 18) | ((t[18] & 0x3ff) << 8) | ((t[19] >> 2) & 0xff);
ints[185] = ((t[19] & 0x3) << 20) | ((t[20] & 0x3ff) << 10) | (t[21] & 0x3ff);
ints[186] = ((t[22] & 0x3ff) << 12) | ((t[23] & 0x3ff) << 2) | ((t[24] >> 8) & 0x3);
ints[187] = ((t[24] & 0xff) << 14) | ((t[25] & 0x3ff) << 4) | ((t[26] >> 6) & 0xf);
ints[188] = ((t[26] & 0x3f) << 16) | ((t[27] & 0x3ff) << 6) | ((t[28] >> 4) & 0x3f);
ints[189] = ((t[28] & 0xf) << 18) | ((t[29] & 0x3ff) << 8) | ((t[30] >> 2) & 0xff);
ints[190] = ((t[30] & 0x3) << 20) | ((t[31] & 0x3ff) << 10) | (t[32] & 0x3ff);
ints[191] = ((t[33] & 0x3ff) << 12) | ((t[34] & 0x3ff) << 2) | ((t[35] >> 8) & 0x3);
ints[192] = ((t[35] & 0xff) << 14) | ((t[36] & 0x3ff) << 4) | ((t[37] >> 6) & 0xf);
ints[193] = ((t[37] & 0x3f) << 16) | ((t[38] & 0x3ff) << 6) | ((t[39] >> 4) & 0x3f);
ints[194] = ((t[39] & 0xf) << 18) | ((t[40] & 0x3ff) << 8) | ((t[41] >> 2) & 0xff);
ints[195] = ((t[41] & 0x3) << 20) | ((t[42] & 0x3ff) << 10) | (t[43] & 0x3ff);
ints[196] = ((t[44] & 0x3ff) << 12) | ((t[45] & 0x3ff) << 2) | ((t[46] >> 8) & 0x3);
ints[197] = ((t[46] & 0xff) << 14) | ((t[47] & 0x3ff) << 4) | ((t[48] >> 6) & 0xf);
ints[198] = ((t[48] & 0x3f) << 16) | ((t[49] & 0x3ff) << 6) | ((t[50] >> 4) & 0x3f);
ints[199] = ((t[50] & 0xf) << 18) | ((t[51] & 0x3ff) << 8) | ((t[52] >> 2) & 0xff);
ints[200] = ((t[52] & 0x3) << 20) | ((t[53] & 0x3ff) << 10) | (t[54] & 0x3ff);
ints[201] = ((t[55] & 0x3ff) << 12) | ((t[56] & 0x3ff) << 2) | ((t[57] >> 8) & 0x3);
ints[202] = ((t[57] & 0xff) << 14) | ((t[58] & 0x3ff) << 4) | ((t[59] >> 6) & 0xf);
ints[203] = ((t[59] & 0x3f) << 16) | ((t[60] & 0x3ff) << 6) | ((t[61] >> 4) & 0x3f);
ints[204] = ((t[61] & 0xf) << 18) | ((t[62] & 0x3ff) << 8) | ((t[63] >> 2) & 0xff);
ints[205] = ((t[63] & 0x3) << 20) | ((t[64] & 0x3ff) << 10) | (t[65] & 0x3ff);
ints[206] = ((t[66] & 0x3ff) << 12) | ((t[67] & 0x3ff) << 2) | ((t[68] >> 8) & 0x3);
ints[207] = ((t[68] & 0xff) << 14) | ((t[69] & 0x3ff) << 4) | ((t[70] >> 6) & 0xf);
ints[208] = ((t[70] & 0x3f) << 16) | ((t[71] & 0x3ff) << 6) | ((t[72] >> 4) & 0x3f);
ints[209] = ((t[72] & 0xf) << 18) | ((t[73] & 0x3ff) << 8) | ((t[74] >> 2) & 0xff);
ints[210] = ((t[74] & 0x3) << 20) | ((t[75] & 0x3ff) << 10) | (t[76] & 0x3ff);
ints[211] = ((t[77] & 0x3ff) << 12) | ((t[78] & 0x3ff) << 2) | ((t[79] >> 8) & 0x3);
ints[212] = ((t[79] & 0xff) << 14) | ((t[80] & 0x3ff) << 4) | ((t[81] >> 6) & 0xf);
ints[213] = ((t[81] & 0x3f) << 16) | ((t[82] & 0x3ff) << 6) | ((t[83] >> 4) & 0x3f);
ints[214] = ((t[83] & 0xf) << 18) | ((t[84] & 0x3ff) << 8) | ((t[85] >> 2) & 0xff);
ints[215] = ((t[85] & 0x3) << 20) | ((t[86] & 0x3ff) << 10) | (t[87] & 0x3ff);
ints[216] = ((t[88] & 0x3ff) << 12) | ((t[89] & 0x3ff) << 2) | ((t[90] >> 8) & 0x3);
ints[217] = ((t[90] & 0xff) << 14) | ((t[91] & 0x3ff) << 4) | ((t[92] >> 6) & 0xf);
ints[218] = ((t[92] & 0x3f) << 16) | ((t[93] & 0x3ff) << 6) | ((t[94] >> 4) & 0x3f);
ints[219] = ((t[94] & 0xf) << 18) | ((t[95] & 0x3ff) << 8) | ((t[96] >> 2) & 0xff);
ints[220] = ((t[96] & 0x3) << 20) | ((t[97] & 0x3ff) << 10) | (t[98] & 0x3ff);
ints[221] = ((t[99] & 0x3ff) << 12) | ((t[100] & 0x3ff) << 2) | ((t[101] >> 8) & 0x3);
ints[222] = ((t[101] & 0xff) << 14) | ((t[102] & 0x3ff) << 4) | ((t[103] >> 6) & 0xf);
ints[223] = ((t[103] & 0x3f) << 16) | ((t[104] & 0x3ff) << 6) | ((t[105] >> 4) & 0x3f);
ints[224] = ((t[105] & 0xf) << 18) | ((t[106] & 0x3ff) << 8) | ((t[107] >> 2) & 0xff);
ints[225] = ((t[107] & 0x3) << 20) | ((t[108] & 0x3ff) << 10) | (t[109] & 0x3ff);
ints[226] = ((t[110] & 0x3ff) << 12) | ((t[111] & 0x3ff) << 2) | ((t[112] >> 8) & 0x3);
ints[227] = ((t[112] & 0xff) << 14) | ((t[113] & 0x3ff) << 4) | ((t[114] >> 6) & 0xf);
ints[228] = ((t[114] & 0x3f) << 16) | ((t[115] & 0x3ff) << 6) | ((t[116] >> 4) & 0x3f);
ints[229] = ((t[116] & 0xf) << 18) | ((t[117] & 0x3ff) << 8) | ((t[118] >> 2) & 0xff);
ints[230] = ((t[118] & 0x3) << 20) | ((t[119] & 0x3ff) << 10) | (t[120] & 0x3ff);
ints[231] = ((t[121] & 0x3ff) << 12) | ((t[122] & 0x3ff) << 2) | ((t[123] >> 8) & 0x3);
ints[232] = ((t[123] & 0xff) << 14) | ((t[124] & 0x3ff) << 4) | ((t[125] >> 6) & 0xf);
ints[233] = ((t[125] & 0x3f) << 16) | ((t[126] & 0x3ff) << 6) | ((t[127] >> 4) & 0x3f);
ints[234] = ((t[127] & 0xf) << 18) | ((t[128] & 0x3ff) << 8) | ((t[129] >> 2) & 0xff);
ints[235] = ((t[129] & 0x3) << 20) | ((t[130] & 0x3ff) << 10) | (t[131] & 0x3ff);
ints[236] = ((t[132] & 0x3ff) << 12) | ((t[133] & 0x3ff) << 2) | ((t[134] >> 8) & 0x3);
ints[237] = ((t[134] & 0xff) << 14) | ((t[135] & 0x3ff) << 4) | ((t[136] >> 6) & 0xf);
ints[238] = ((t[136] & 0x3f) << 16) | ((t[137] & 0x3ff) << 6) | ((t[138] >> 4) & 0x3f);
ints[239] = ((t[138] & 0xf) << 18) | ((t[139] & 0x3ff) << 8) | ((t[140] >> 2) & 0xff);
ints[240] = ((t[140] & 0x3) << 20) | ((t[141] & 0x3ff) << 10) | (t[142] & 0x3ff);
ints[241] = ((t[143] & 0x3ff) << 12) | ((t[144] & 0x3ff) << 2) | ((t[145] >> 8) & 0x3);
ints[242] = ((t[145] & 0xff) << 14) | ((t[146] & 0x3ff) << 4) | ((t[147] >> 6) & 0xf);
ints[243] = ((t[147] & 0x3f) << 16) | ((t[148] & 0x3ff) << 6) | ((t[149] >> 4) & 0x3f);
ints[244] = ((t[149] & 0xf) << 18) | ((t[150] & 0x3ff) << 8) | ((t[151] >> 2) & 0xff);
ints[245] = ((t[151] & 0x3) << 20) | ((t[152] & 0x3ff) << 10) | (t[153] & 0x3ff);
ints[246] = ((t[154] & 0x3ff) << 12) | ((t[155] & 0x3ff) << 2) | ((t[156] >> 8) & 0x3);
ints[247] = ((t[156] & 0xff) << 14) | ((t[157] & 0x3ff) << 4) | ((t[158] >> 6) & 0xf);
ints[248] = ((t[158] & 0x3f) << 16) | ((t[159] & 0x3ff) << 6) | ((t[160] >> 4) & 0x3f);
ints[249] = ((t[160] & 0xf) << 18) | ((t[161] & 0x3ff) << 8) | ((t[162] >> 2) & 0xff);
ints[250] = ((t[162] & 0x3) << 20) | ((t[163] & 0x3ff) << 10) | (t[164] & 0x3ff);
ints[251] = ((t[165] & 0x3ff) << 12) | ((t[166] & 0x3ff) << 2) | ((t[167] >> 8) & 0x3);
ints[252] = ((t[167] & 0xff) << 14) | ((t[168] & 0x3ff) << 4) | ((t[169] >> 6) & 0xf);
ints[253] = ((t[169] & 0x3f) << 16) | ((t[170] & 0x3ff) << 6) | ((t[171] >> 4) & 0x3f);
ints[254] = ((t[171] & 0xf) << 18) | ((t[172] & 0x3ff) << 8) | ((t[173] >> 2) & 0xff);
ints[255] = ((t[173] & 0x3) << 20) | ((t[174] & 0x3ff) << 10) | (t[175] & 0x3ff);
}
#[inline(always)]
fn decode23(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 736] = src[..736].try_into().unwrap();
let mut t = [0u32; 184];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..184 {
ints[0 + i] = (t[i] >> 9) & 0x7fffff;
}
ints[184] = ((t[0] & 0x1ff) << 14) | ((t[1] & 0x1ff) << 5) | ((t[2] >> 4) & 0x1f);
ints[185] =
((t[2] & 0xf) << 19) | ((t[3] & 0x1ff) << 10) | ((t[4] & 0x1ff) << 1) | ((t[5] >> 8) & 0x1);
ints[186] = ((t[5] & 0xff) << 15) | ((t[6] & 0x1ff) << 6) | ((t[7] >> 3) & 0x3f);
ints[187] = ((t[7] & 0x7) << 20)
| ((t[8] & 0x1ff) << 11)
| ((t[9] & 0x1ff) << 2)
| ((t[10] >> 7) & 0x3);
ints[188] = ((t[10] & 0x7f) << 16) | ((t[11] & 0x1ff) << 7) | ((t[12] >> 2) & 0x7f);
ints[189] = ((t[12] & 0x3) << 21)
| ((t[13] & 0x1ff) << 12)
| ((t[14] & 0x1ff) << 3)
| ((t[15] >> 6) & 0x7);
ints[190] = ((t[15] & 0x3f) << 17) | ((t[16] & 0x1ff) << 8) | ((t[17] >> 1) & 0xff);
ints[191] = ((t[17] & 0x1) << 22)
| ((t[18] & 0x1ff) << 13)
| ((t[19] & 0x1ff) << 4)
| ((t[20] >> 5) & 0xf);
ints[192] = ((t[20] & 0x1f) << 18) | ((t[21] & 0x1ff) << 9) | (t[22] & 0x1ff);
ints[193] = ((t[23] & 0x1ff) << 14) | ((t[24] & 0x1ff) << 5) | ((t[25] >> 4) & 0x1f);
ints[194] = ((t[25] & 0xf) << 19)
| ((t[26] & 0x1ff) << 10)
| ((t[27] & 0x1ff) << 1)
| ((t[28] >> 8) & 0x1);
ints[195] = ((t[28] & 0xff) << 15) | ((t[29] & 0x1ff) << 6) | ((t[30] >> 3) & 0x3f);
ints[196] = ((t[30] & 0x7) << 20)
| ((t[31] & 0x1ff) << 11)
| ((t[32] & 0x1ff) << 2)
| ((t[33] >> 7) & 0x3);
ints[197] = ((t[33] & 0x7f) << 16) | ((t[34] & 0x1ff) << 7) | ((t[35] >> 2) & 0x7f);
ints[198] = ((t[35] & 0x3) << 21)
| ((t[36] & 0x1ff) << 12)
| ((t[37] & 0x1ff) << 3)
| ((t[38] >> 6) & 0x7);
ints[199] = ((t[38] & 0x3f) << 17) | ((t[39] & 0x1ff) << 8) | ((t[40] >> 1) & 0xff);
ints[200] = ((t[40] & 0x1) << 22)
| ((t[41] & 0x1ff) << 13)
| ((t[42] & 0x1ff) << 4)
| ((t[43] >> 5) & 0xf);
ints[201] = ((t[43] & 0x1f) << 18) | ((t[44] & 0x1ff) << 9) | (t[45] & 0x1ff);
ints[202] = ((t[46] & 0x1ff) << 14) | ((t[47] & 0x1ff) << 5) | ((t[48] >> 4) & 0x1f);
ints[203] = ((t[48] & 0xf) << 19)
| ((t[49] & 0x1ff) << 10)
| ((t[50] & 0x1ff) << 1)
| ((t[51] >> 8) & 0x1);
ints[204] = ((t[51] & 0xff) << 15) | ((t[52] & 0x1ff) << 6) | ((t[53] >> 3) & 0x3f);
ints[205] = ((t[53] & 0x7) << 20)
| ((t[54] & 0x1ff) << 11)
| ((t[55] & 0x1ff) << 2)
| ((t[56] >> 7) & 0x3);
ints[206] = ((t[56] & 0x7f) << 16) | ((t[57] & 0x1ff) << 7) | ((t[58] >> 2) & 0x7f);
ints[207] = ((t[58] & 0x3) << 21)
| ((t[59] & 0x1ff) << 12)
| ((t[60] & 0x1ff) << 3)
| ((t[61] >> 6) & 0x7);
ints[208] = ((t[61] & 0x3f) << 17) | ((t[62] & 0x1ff) << 8) | ((t[63] >> 1) & 0xff);
ints[209] = ((t[63] & 0x1) << 22)
| ((t[64] & 0x1ff) << 13)
| ((t[65] & 0x1ff) << 4)
| ((t[66] >> 5) & 0xf);
ints[210] = ((t[66] & 0x1f) << 18) | ((t[67] & 0x1ff) << 9) | (t[68] & 0x1ff);
ints[211] = ((t[69] & 0x1ff) << 14) | ((t[70] & 0x1ff) << 5) | ((t[71] >> 4) & 0x1f);
ints[212] = ((t[71] & 0xf) << 19)
| ((t[72] & 0x1ff) << 10)
| ((t[73] & 0x1ff) << 1)
| ((t[74] >> 8) & 0x1);
ints[213] = ((t[74] & 0xff) << 15) | ((t[75] & 0x1ff) << 6) | ((t[76] >> 3) & 0x3f);
ints[214] = ((t[76] & 0x7) << 20)
| ((t[77] & 0x1ff) << 11)
| ((t[78] & 0x1ff) << 2)
| ((t[79] >> 7) & 0x3);
ints[215] = ((t[79] & 0x7f) << 16) | ((t[80] & 0x1ff) << 7) | ((t[81] >> 2) & 0x7f);
ints[216] = ((t[81] & 0x3) << 21)
| ((t[82] & 0x1ff) << 12)
| ((t[83] & 0x1ff) << 3)
| ((t[84] >> 6) & 0x7);
ints[217] = ((t[84] & 0x3f) << 17) | ((t[85] & 0x1ff) << 8) | ((t[86] >> 1) & 0xff);
ints[218] = ((t[86] & 0x1) << 22)
| ((t[87] & 0x1ff) << 13)
| ((t[88] & 0x1ff) << 4)
| ((t[89] >> 5) & 0xf);
ints[219] = ((t[89] & 0x1f) << 18) | ((t[90] & 0x1ff) << 9) | (t[91] & 0x1ff);
ints[220] = ((t[92] & 0x1ff) << 14) | ((t[93] & 0x1ff) << 5) | ((t[94] >> 4) & 0x1f);
ints[221] = ((t[94] & 0xf) << 19)
| ((t[95] & 0x1ff) << 10)
| ((t[96] & 0x1ff) << 1)
| ((t[97] >> 8) & 0x1);
ints[222] = ((t[97] & 0xff) << 15) | ((t[98] & 0x1ff) << 6) | ((t[99] >> 3) & 0x3f);
ints[223] = ((t[99] & 0x7) << 20)
| ((t[100] & 0x1ff) << 11)
| ((t[101] & 0x1ff) << 2)
| ((t[102] >> 7) & 0x3);
ints[224] = ((t[102] & 0x7f) << 16) | ((t[103] & 0x1ff) << 7) | ((t[104] >> 2) & 0x7f);
ints[225] = ((t[104] & 0x3) << 21)
| ((t[105] & 0x1ff) << 12)
| ((t[106] & 0x1ff) << 3)
| ((t[107] >> 6) & 0x7);
ints[226] = ((t[107] & 0x3f) << 17) | ((t[108] & 0x1ff) << 8) | ((t[109] >> 1) & 0xff);
ints[227] = ((t[109] & 0x1) << 22)
| ((t[110] & 0x1ff) << 13)
| ((t[111] & 0x1ff) << 4)
| ((t[112] >> 5) & 0xf);
ints[228] = ((t[112] & 0x1f) << 18) | ((t[113] & 0x1ff) << 9) | (t[114] & 0x1ff);
ints[229] = ((t[115] & 0x1ff) << 14) | ((t[116] & 0x1ff) << 5) | ((t[117] >> 4) & 0x1f);
ints[230] = ((t[117] & 0xf) << 19)
| ((t[118] & 0x1ff) << 10)
| ((t[119] & 0x1ff) << 1)
| ((t[120] >> 8) & 0x1);
ints[231] = ((t[120] & 0xff) << 15) | ((t[121] & 0x1ff) << 6) | ((t[122] >> 3) & 0x3f);
ints[232] = ((t[122] & 0x7) << 20)
| ((t[123] & 0x1ff) << 11)
| ((t[124] & 0x1ff) << 2)
| ((t[125] >> 7) & 0x3);
ints[233] = ((t[125] & 0x7f) << 16) | ((t[126] & 0x1ff) << 7) | ((t[127] >> 2) & 0x7f);
ints[234] = ((t[127] & 0x3) << 21)
| ((t[128] & 0x1ff) << 12)
| ((t[129] & 0x1ff) << 3)
| ((t[130] >> 6) & 0x7);
ints[235] = ((t[130] & 0x3f) << 17) | ((t[131] & 0x1ff) << 8) | ((t[132] >> 1) & 0xff);
ints[236] = ((t[132] & 0x1) << 22)
| ((t[133] & 0x1ff) << 13)
| ((t[134] & 0x1ff) << 4)
| ((t[135] >> 5) & 0xf);
ints[237] = ((t[135] & 0x1f) << 18) | ((t[136] & 0x1ff) << 9) | (t[137] & 0x1ff);
ints[238] = ((t[138] & 0x1ff) << 14) | ((t[139] & 0x1ff) << 5) | ((t[140] >> 4) & 0x1f);
ints[239] = ((t[140] & 0xf) << 19)
| ((t[141] & 0x1ff) << 10)
| ((t[142] & 0x1ff) << 1)
| ((t[143] >> 8) & 0x1);
ints[240] = ((t[143] & 0xff) << 15) | ((t[144] & 0x1ff) << 6) | ((t[145] >> 3) & 0x3f);
ints[241] = ((t[145] & 0x7) << 20)
| ((t[146] & 0x1ff) << 11)
| ((t[147] & 0x1ff) << 2)
| ((t[148] >> 7) & 0x3);
ints[242] = ((t[148] & 0x7f) << 16) | ((t[149] & 0x1ff) << 7) | ((t[150] >> 2) & 0x7f);
ints[243] = ((t[150] & 0x3) << 21)
| ((t[151] & 0x1ff) << 12)
| ((t[152] & 0x1ff) << 3)
| ((t[153] >> 6) & 0x7);
ints[244] = ((t[153] & 0x3f) << 17) | ((t[154] & 0x1ff) << 8) | ((t[155] >> 1) & 0xff);
ints[245] = ((t[155] & 0x1) << 22)
| ((t[156] & 0x1ff) << 13)
| ((t[157] & 0x1ff) << 4)
| ((t[158] >> 5) & 0xf);
ints[246] = ((t[158] & 0x1f) << 18) | ((t[159] & 0x1ff) << 9) | (t[160] & 0x1ff);
ints[247] = ((t[161] & 0x1ff) << 14) | ((t[162] & 0x1ff) << 5) | ((t[163] >> 4) & 0x1f);
ints[248] = ((t[163] & 0xf) << 19)
| ((t[164] & 0x1ff) << 10)
| ((t[165] & 0x1ff) << 1)
| ((t[166] >> 8) & 0x1);
ints[249] = ((t[166] & 0xff) << 15) | ((t[167] & 0x1ff) << 6) | ((t[168] >> 3) & 0x3f);
ints[250] = ((t[168] & 0x7) << 20)
| ((t[169] & 0x1ff) << 11)
| ((t[170] & 0x1ff) << 2)
| ((t[171] >> 7) & 0x3);
ints[251] = ((t[171] & 0x7f) << 16) | ((t[172] & 0x1ff) << 7) | ((t[173] >> 2) & 0x7f);
ints[252] = ((t[173] & 0x3) << 21)
| ((t[174] & 0x1ff) << 12)
| ((t[175] & 0x1ff) << 3)
| ((t[176] >> 6) & 0x7);
ints[253] = ((t[176] & 0x3f) << 17) | ((t[177] & 0x1ff) << 8) | ((t[178] >> 1) & 0xff);
ints[254] = ((t[178] & 0x1) << 22)
| ((t[179] & 0x1ff) << 13)
| ((t[180] & 0x1ff) << 4)
| ((t[181] >> 5) & 0xf);
ints[255] = ((t[181] & 0x1f) << 18) | ((t[182] & 0x1ff) << 9) | (t[183] & 0x1ff);
}
#[inline(always)]
fn decode24(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 768] = src[..768].try_into().unwrap();
let mut t = [0u32; 192];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..192 {
ints[0 + i] = (t[i] >> 8) & 0xffffff;
}
ints[192] = ((t[0] & 0xff) << 16) | ((t[1] & 0xff) << 8) | (t[2] & 0xff);
ints[193] = ((t[3] & 0xff) << 16) | ((t[4] & 0xff) << 8) | (t[5] & 0xff);
ints[194] = ((t[6] & 0xff) << 16) | ((t[7] & 0xff) << 8) | (t[8] & 0xff);
ints[195] = ((t[9] & 0xff) << 16) | ((t[10] & 0xff) << 8) | (t[11] & 0xff);
ints[196] = ((t[12] & 0xff) << 16) | ((t[13] & 0xff) << 8) | (t[14] & 0xff);
ints[197] = ((t[15] & 0xff) << 16) | ((t[16] & 0xff) << 8) | (t[17] & 0xff);
ints[198] = ((t[18] & 0xff) << 16) | ((t[19] & 0xff) << 8) | (t[20] & 0xff);
ints[199] = ((t[21] & 0xff) << 16) | ((t[22] & 0xff) << 8) | (t[23] & 0xff);
ints[200] = ((t[24] & 0xff) << 16) | ((t[25] & 0xff) << 8) | (t[26] & 0xff);
ints[201] = ((t[27] & 0xff) << 16) | ((t[28] & 0xff) << 8) | (t[29] & 0xff);
ints[202] = ((t[30] & 0xff) << 16) | ((t[31] & 0xff) << 8) | (t[32] & 0xff);
ints[203] = ((t[33] & 0xff) << 16) | ((t[34] & 0xff) << 8) | (t[35] & 0xff);
ints[204] = ((t[36] & 0xff) << 16) | ((t[37] & 0xff) << 8) | (t[38] & 0xff);
ints[205] = ((t[39] & 0xff) << 16) | ((t[40] & 0xff) << 8) | (t[41] & 0xff);
ints[206] = ((t[42] & 0xff) << 16) | ((t[43] & 0xff) << 8) | (t[44] & 0xff);
ints[207] = ((t[45] & 0xff) << 16) | ((t[46] & 0xff) << 8) | (t[47] & 0xff);
ints[208] = ((t[48] & 0xff) << 16) | ((t[49] & 0xff) << 8) | (t[50] & 0xff);
ints[209] = ((t[51] & 0xff) << 16) | ((t[52] & 0xff) << 8) | (t[53] & 0xff);
ints[210] = ((t[54] & 0xff) << 16) | ((t[55] & 0xff) << 8) | (t[56] & 0xff);
ints[211] = ((t[57] & 0xff) << 16) | ((t[58] & 0xff) << 8) | (t[59] & 0xff);
ints[212] = ((t[60] & 0xff) << 16) | ((t[61] & 0xff) << 8) | (t[62] & 0xff);
ints[213] = ((t[63] & 0xff) << 16) | ((t[64] & 0xff) << 8) | (t[65] & 0xff);
ints[214] = ((t[66] & 0xff) << 16) | ((t[67] & 0xff) << 8) | (t[68] & 0xff);
ints[215] = ((t[69] & 0xff) << 16) | ((t[70] & 0xff) << 8) | (t[71] & 0xff);
ints[216] = ((t[72] & 0xff) << 16) | ((t[73] & 0xff) << 8) | (t[74] & 0xff);
ints[217] = ((t[75] & 0xff) << 16) | ((t[76] & 0xff) << 8) | (t[77] & 0xff);
ints[218] = ((t[78] & 0xff) << 16) | ((t[79] & 0xff) << 8) | (t[80] & 0xff);
ints[219] = ((t[81] & 0xff) << 16) | ((t[82] & 0xff) << 8) | (t[83] & 0xff);
ints[220] = ((t[84] & 0xff) << 16) | ((t[85] & 0xff) << 8) | (t[86] & 0xff);
ints[221] = ((t[87] & 0xff) << 16) | ((t[88] & 0xff) << 8) | (t[89] & 0xff);
ints[222] = ((t[90] & 0xff) << 16) | ((t[91] & 0xff) << 8) | (t[92] & 0xff);
ints[223] = ((t[93] & 0xff) << 16) | ((t[94] & 0xff) << 8) | (t[95] & 0xff);
ints[224] = ((t[96] & 0xff) << 16) | ((t[97] & 0xff) << 8) | (t[98] & 0xff);
ints[225] = ((t[99] & 0xff) << 16) | ((t[100] & 0xff) << 8) | (t[101] & 0xff);
ints[226] = ((t[102] & 0xff) << 16) | ((t[103] & 0xff) << 8) | (t[104] & 0xff);
ints[227] = ((t[105] & 0xff) << 16) | ((t[106] & 0xff) << 8) | (t[107] & 0xff);
ints[228] = ((t[108] & 0xff) << 16) | ((t[109] & 0xff) << 8) | (t[110] & 0xff);
ints[229] = ((t[111] & 0xff) << 16) | ((t[112] & 0xff) << 8) | (t[113] & 0xff);
ints[230] = ((t[114] & 0xff) << 16) | ((t[115] & 0xff) << 8) | (t[116] & 0xff);
ints[231] = ((t[117] & 0xff) << 16) | ((t[118] & 0xff) << 8) | (t[119] & 0xff);
ints[232] = ((t[120] & 0xff) << 16) | ((t[121] & 0xff) << 8) | (t[122] & 0xff);
ints[233] = ((t[123] & 0xff) << 16) | ((t[124] & 0xff) << 8) | (t[125] & 0xff);
ints[234] = ((t[126] & 0xff) << 16) | ((t[127] & 0xff) << 8) | (t[128] & 0xff);
ints[235] = ((t[129] & 0xff) << 16) | ((t[130] & 0xff) << 8) | (t[131] & 0xff);
ints[236] = ((t[132] & 0xff) << 16) | ((t[133] & 0xff) << 8) | (t[134] & 0xff);
ints[237] = ((t[135] & 0xff) << 16) | ((t[136] & 0xff) << 8) | (t[137] & 0xff);
ints[238] = ((t[138] & 0xff) << 16) | ((t[139] & 0xff) << 8) | (t[140] & 0xff);
ints[239] = ((t[141] & 0xff) << 16) | ((t[142] & 0xff) << 8) | (t[143] & 0xff);
ints[240] = ((t[144] & 0xff) << 16) | ((t[145] & 0xff) << 8) | (t[146] & 0xff);
ints[241] = ((t[147] & 0xff) << 16) | ((t[148] & 0xff) << 8) | (t[149] & 0xff);
ints[242] = ((t[150] & 0xff) << 16) | ((t[151] & 0xff) << 8) | (t[152] & 0xff);
ints[243] = ((t[153] & 0xff) << 16) | ((t[154] & 0xff) << 8) | (t[155] & 0xff);
ints[244] = ((t[156] & 0xff) << 16) | ((t[157] & 0xff) << 8) | (t[158] & 0xff);
ints[245] = ((t[159] & 0xff) << 16) | ((t[160] & 0xff) << 8) | (t[161] & 0xff);
ints[246] = ((t[162] & 0xff) << 16) | ((t[163] & 0xff) << 8) | (t[164] & 0xff);
ints[247] = ((t[165] & 0xff) << 16) | ((t[166] & 0xff) << 8) | (t[167] & 0xff);
ints[248] = ((t[168] & 0xff) << 16) | ((t[169] & 0xff) << 8) | (t[170] & 0xff);
ints[249] = ((t[171] & 0xff) << 16) | ((t[172] & 0xff) << 8) | (t[173] & 0xff);
ints[250] = ((t[174] & 0xff) << 16) | ((t[175] & 0xff) << 8) | (t[176] & 0xff);
ints[251] = ((t[177] & 0xff) << 16) | ((t[178] & 0xff) << 8) | (t[179] & 0xff);
ints[252] = ((t[180] & 0xff) << 16) | ((t[181] & 0xff) << 8) | (t[182] & 0xff);
ints[253] = ((t[183] & 0xff) << 16) | ((t[184] & 0xff) << 8) | (t[185] & 0xff);
ints[254] = ((t[186] & 0xff) << 16) | ((t[187] & 0xff) << 8) | (t[188] & 0xff);
ints[255] = ((t[189] & 0xff) << 16) | ((t[190] & 0xff) << 8) | (t[191] & 0xff);
}
#[inline(always)]
fn decode25(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 800] = src[..800].try_into().unwrap();
let mut t = [0u32; 200];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..200 {
ints[0 + i] = (t[i] >> 7) & 0x1ffffff;
}
ints[200] =
((t[0] & 0x7f) << 18) | ((t[1] & 0x7f) << 11) | ((t[2] & 0x7f) << 4) | ((t[3] >> 3) & 0xf);
ints[201] = ((t[3] & 0x7) << 22)
| ((t[4] & 0x7f) << 15)
| ((t[5] & 0x7f) << 8)
| ((t[6] & 0x7f) << 1)
| ((t[7] >> 6) & 0x1);
ints[202] = ((t[7] & 0x3f) << 19)
| ((t[8] & 0x7f) << 12)
| ((t[9] & 0x7f) << 5)
| ((t[10] >> 2) & 0x1f);
ints[203] = ((t[10] & 0x3) << 23)
| ((t[11] & 0x7f) << 16)
| ((t[12] & 0x7f) << 9)
| ((t[13] & 0x7f) << 2)
| ((t[14] >> 5) & 0x3);
ints[204] = ((t[14] & 0x1f) << 20)
| ((t[15] & 0x7f) << 13)
| ((t[16] & 0x7f) << 6)
| ((t[17] >> 1) & 0x3f);
ints[205] = ((t[17] & 0x1) << 24)
| ((t[18] & 0x7f) << 17)
| ((t[19] & 0x7f) << 10)
| ((t[20] & 0x7f) << 3)
| ((t[21] >> 4) & 0x7);
ints[206] =
((t[21] & 0xf) << 21) | ((t[22] & 0x7f) << 14) | ((t[23] & 0x7f) << 7) | (t[24] & 0x7f);
ints[207] = ((t[25] & 0x7f) << 18)
| ((t[26] & 0x7f) << 11)
| ((t[27] & 0x7f) << 4)
| ((t[28] >> 3) & 0xf);
ints[208] = ((t[28] & 0x7) << 22)
| ((t[29] & 0x7f) << 15)
| ((t[30] & 0x7f) << 8)
| ((t[31] & 0x7f) << 1)
| ((t[32] >> 6) & 0x1);
ints[209] = ((t[32] & 0x3f) << 19)
| ((t[33] & 0x7f) << 12)
| ((t[34] & 0x7f) << 5)
| ((t[35] >> 2) & 0x1f);
ints[210] = ((t[35] & 0x3) << 23)
| ((t[36] & 0x7f) << 16)
| ((t[37] & 0x7f) << 9)
| ((t[38] & 0x7f) << 2)
| ((t[39] >> 5) & 0x3);
ints[211] = ((t[39] & 0x1f) << 20)
| ((t[40] & 0x7f) << 13)
| ((t[41] & 0x7f) << 6)
| ((t[42] >> 1) & 0x3f);
ints[212] = ((t[42] & 0x1) << 24)
| ((t[43] & 0x7f) << 17)
| ((t[44] & 0x7f) << 10)
| ((t[45] & 0x7f) << 3)
| ((t[46] >> 4) & 0x7);
ints[213] =
((t[46] & 0xf) << 21) | ((t[47] & 0x7f) << 14) | ((t[48] & 0x7f) << 7) | (t[49] & 0x7f);
ints[214] = ((t[50] & 0x7f) << 18)
| ((t[51] & 0x7f) << 11)
| ((t[52] & 0x7f) << 4)
| ((t[53] >> 3) & 0xf);
ints[215] = ((t[53] & 0x7) << 22)
| ((t[54] & 0x7f) << 15)
| ((t[55] & 0x7f) << 8)
| ((t[56] & 0x7f) << 1)
| ((t[57] >> 6) & 0x1);
ints[216] = ((t[57] & 0x3f) << 19)
| ((t[58] & 0x7f) << 12)
| ((t[59] & 0x7f) << 5)
| ((t[60] >> 2) & 0x1f);
ints[217] = ((t[60] & 0x3) << 23)
| ((t[61] & 0x7f) << 16)
| ((t[62] & 0x7f) << 9)
| ((t[63] & 0x7f) << 2)
| ((t[64] >> 5) & 0x3);
ints[218] = ((t[64] & 0x1f) << 20)
| ((t[65] & 0x7f) << 13)
| ((t[66] & 0x7f) << 6)
| ((t[67] >> 1) & 0x3f);
ints[219] = ((t[67] & 0x1) << 24)
| ((t[68] & 0x7f) << 17)
| ((t[69] & 0x7f) << 10)
| ((t[70] & 0x7f) << 3)
| ((t[71] >> 4) & 0x7);
ints[220] =
((t[71] & 0xf) << 21) | ((t[72] & 0x7f) << 14) | ((t[73] & 0x7f) << 7) | (t[74] & 0x7f);
ints[221] = ((t[75] & 0x7f) << 18)
| ((t[76] & 0x7f) << 11)
| ((t[77] & 0x7f) << 4)
| ((t[78] >> 3) & 0xf);
ints[222] = ((t[78] & 0x7) << 22)
| ((t[79] & 0x7f) << 15)
| ((t[80] & 0x7f) << 8)
| ((t[81] & 0x7f) << 1)
| ((t[82] >> 6) & 0x1);
ints[223] = ((t[82] & 0x3f) << 19)
| ((t[83] & 0x7f) << 12)
| ((t[84] & 0x7f) << 5)
| ((t[85] >> 2) & 0x1f);
ints[224] = ((t[85] & 0x3) << 23)
| ((t[86] & 0x7f) << 16)
| ((t[87] & 0x7f) << 9)
| ((t[88] & 0x7f) << 2)
| ((t[89] >> 5) & 0x3);
ints[225] = ((t[89] & 0x1f) << 20)
| ((t[90] & 0x7f) << 13)
| ((t[91] & 0x7f) << 6)
| ((t[92] >> 1) & 0x3f);
ints[226] = ((t[92] & 0x1) << 24)
| ((t[93] & 0x7f) << 17)
| ((t[94] & 0x7f) << 10)
| ((t[95] & 0x7f) << 3)
| ((t[96] >> 4) & 0x7);
ints[227] =
((t[96] & 0xf) << 21) | ((t[97] & 0x7f) << 14) | ((t[98] & 0x7f) << 7) | (t[99] & 0x7f);
ints[228] = ((t[100] & 0x7f) << 18)
| ((t[101] & 0x7f) << 11)
| ((t[102] & 0x7f) << 4)
| ((t[103] >> 3) & 0xf);
ints[229] = ((t[103] & 0x7) << 22)
| ((t[104] & 0x7f) << 15)
| ((t[105] & 0x7f) << 8)
| ((t[106] & 0x7f) << 1)
| ((t[107] >> 6) & 0x1);
ints[230] = ((t[107] & 0x3f) << 19)
| ((t[108] & 0x7f) << 12)
| ((t[109] & 0x7f) << 5)
| ((t[110] >> 2) & 0x1f);
ints[231] = ((t[110] & 0x3) << 23)
| ((t[111] & 0x7f) << 16)
| ((t[112] & 0x7f) << 9)
| ((t[113] & 0x7f) << 2)
| ((t[114] >> 5) & 0x3);
ints[232] = ((t[114] & 0x1f) << 20)
| ((t[115] & 0x7f) << 13)
| ((t[116] & 0x7f) << 6)
| ((t[117] >> 1) & 0x3f);
ints[233] = ((t[117] & 0x1) << 24)
| ((t[118] & 0x7f) << 17)
| ((t[119] & 0x7f) << 10)
| ((t[120] & 0x7f) << 3)
| ((t[121] >> 4) & 0x7);
ints[234] =
((t[121] & 0xf) << 21) | ((t[122] & 0x7f) << 14) | ((t[123] & 0x7f) << 7) | (t[124] & 0x7f);
ints[235] = ((t[125] & 0x7f) << 18)
| ((t[126] & 0x7f) << 11)
| ((t[127] & 0x7f) << 4)
| ((t[128] >> 3) & 0xf);
ints[236] = ((t[128] & 0x7) << 22)
| ((t[129] & 0x7f) << 15)
| ((t[130] & 0x7f) << 8)
| ((t[131] & 0x7f) << 1)
| ((t[132] >> 6) & 0x1);
ints[237] = ((t[132] & 0x3f) << 19)
| ((t[133] & 0x7f) << 12)
| ((t[134] & 0x7f) << 5)
| ((t[135] >> 2) & 0x1f);
ints[238] = ((t[135] & 0x3) << 23)
| ((t[136] & 0x7f) << 16)
| ((t[137] & 0x7f) << 9)
| ((t[138] & 0x7f) << 2)
| ((t[139] >> 5) & 0x3);
ints[239] = ((t[139] & 0x1f) << 20)
| ((t[140] & 0x7f) << 13)
| ((t[141] & 0x7f) << 6)
| ((t[142] >> 1) & 0x3f);
ints[240] = ((t[142] & 0x1) << 24)
| ((t[143] & 0x7f) << 17)
| ((t[144] & 0x7f) << 10)
| ((t[145] & 0x7f) << 3)
| ((t[146] >> 4) & 0x7);
ints[241] =
((t[146] & 0xf) << 21) | ((t[147] & 0x7f) << 14) | ((t[148] & 0x7f) << 7) | (t[149] & 0x7f);
ints[242] = ((t[150] & 0x7f) << 18)
| ((t[151] & 0x7f) << 11)
| ((t[152] & 0x7f) << 4)
| ((t[153] >> 3) & 0xf);
ints[243] = ((t[153] & 0x7) << 22)
| ((t[154] & 0x7f) << 15)
| ((t[155] & 0x7f) << 8)
| ((t[156] & 0x7f) << 1)
| ((t[157] >> 6) & 0x1);
ints[244] = ((t[157] & 0x3f) << 19)
| ((t[158] & 0x7f) << 12)
| ((t[159] & 0x7f) << 5)
| ((t[160] >> 2) & 0x1f);
ints[245] = ((t[160] & 0x3) << 23)
| ((t[161] & 0x7f) << 16)
| ((t[162] & 0x7f) << 9)
| ((t[163] & 0x7f) << 2)
| ((t[164] >> 5) & 0x3);
ints[246] = ((t[164] & 0x1f) << 20)
| ((t[165] & 0x7f) << 13)
| ((t[166] & 0x7f) << 6)
| ((t[167] >> 1) & 0x3f);
ints[247] = ((t[167] & 0x1) << 24)
| ((t[168] & 0x7f) << 17)
| ((t[169] & 0x7f) << 10)
| ((t[170] & 0x7f) << 3)
| ((t[171] >> 4) & 0x7);
ints[248] =
((t[171] & 0xf) << 21) | ((t[172] & 0x7f) << 14) | ((t[173] & 0x7f) << 7) | (t[174] & 0x7f);
ints[249] = ((t[175] & 0x7f) << 18)
| ((t[176] & 0x7f) << 11)
| ((t[177] & 0x7f) << 4)
| ((t[178] >> 3) & 0xf);
ints[250] = ((t[178] & 0x7) << 22)
| ((t[179] & 0x7f) << 15)
| ((t[180] & 0x7f) << 8)
| ((t[181] & 0x7f) << 1)
| ((t[182] >> 6) & 0x1);
ints[251] = ((t[182] & 0x3f) << 19)
| ((t[183] & 0x7f) << 12)
| ((t[184] & 0x7f) << 5)
| ((t[185] >> 2) & 0x1f);
ints[252] = ((t[185] & 0x3) << 23)
| ((t[186] & 0x7f) << 16)
| ((t[187] & 0x7f) << 9)
| ((t[188] & 0x7f) << 2)
| ((t[189] >> 5) & 0x3);
ints[253] = ((t[189] & 0x1f) << 20)
| ((t[190] & 0x7f) << 13)
| ((t[191] & 0x7f) << 6)
| ((t[192] >> 1) & 0x3f);
ints[254] = ((t[192] & 0x1) << 24)
| ((t[193] & 0x7f) << 17)
| ((t[194] & 0x7f) << 10)
| ((t[195] & 0x7f) << 3)
| ((t[196] >> 4) & 0x7);
ints[255] =
((t[196] & 0xf) << 21) | ((t[197] & 0x7f) << 14) | ((t[198] & 0x7f) << 7) | (t[199] & 0x7f);
}
#[inline(always)]
fn decode26(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 832] = src[..832].try_into().unwrap();
let mut t = [0u32; 208];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..208 {
ints[0 + i] = (t[i] >> 6) & 0x3ffffff;
}
ints[208] = ((t[0] & 0x3f) << 20)
| ((t[1] & 0x3f) << 14)
| ((t[2] & 0x3f) << 8)
| ((t[3] & 0x3f) << 2)
| ((t[4] >> 4) & 0x3);
ints[209] = ((t[4] & 0xf) << 22)
| ((t[5] & 0x3f) << 16)
| ((t[6] & 0x3f) << 10)
| ((t[7] & 0x3f) << 4)
| ((t[8] >> 2) & 0xf);
ints[210] = ((t[8] & 0x3) << 24)
| ((t[9] & 0x3f) << 18)
| ((t[10] & 0x3f) << 12)
| ((t[11] & 0x3f) << 6)
| (t[12] & 0x3f);
ints[211] = ((t[13] & 0x3f) << 20)
| ((t[14] & 0x3f) << 14)
| ((t[15] & 0x3f) << 8)
| ((t[16] & 0x3f) << 2)
| ((t[17] >> 4) & 0x3);
ints[212] = ((t[17] & 0xf) << 22)
| ((t[18] & 0x3f) << 16)
| ((t[19] & 0x3f) << 10)
| ((t[20] & 0x3f) << 4)
| ((t[21] >> 2) & 0xf);
ints[213] = ((t[21] & 0x3) << 24)
| ((t[22] & 0x3f) << 18)
| ((t[23] & 0x3f) << 12)
| ((t[24] & 0x3f) << 6)
| (t[25] & 0x3f);
ints[214] = ((t[26] & 0x3f) << 20)
| ((t[27] & 0x3f) << 14)
| ((t[28] & 0x3f) << 8)
| ((t[29] & 0x3f) << 2)
| ((t[30] >> 4) & 0x3);
ints[215] = ((t[30] & 0xf) << 22)
| ((t[31] & 0x3f) << 16)
| ((t[32] & 0x3f) << 10)
| ((t[33] & 0x3f) << 4)
| ((t[34] >> 2) & 0xf);
ints[216] = ((t[34] & 0x3) << 24)
| ((t[35] & 0x3f) << 18)
| ((t[36] & 0x3f) << 12)
| ((t[37] & 0x3f) << 6)
| (t[38] & 0x3f);
ints[217] = ((t[39] & 0x3f) << 20)
| ((t[40] & 0x3f) << 14)
| ((t[41] & 0x3f) << 8)
| ((t[42] & 0x3f) << 2)
| ((t[43] >> 4) & 0x3);
ints[218] = ((t[43] & 0xf) << 22)
| ((t[44] & 0x3f) << 16)
| ((t[45] & 0x3f) << 10)
| ((t[46] & 0x3f) << 4)
| ((t[47] >> 2) & 0xf);
ints[219] = ((t[47] & 0x3) << 24)
| ((t[48] & 0x3f) << 18)
| ((t[49] & 0x3f) << 12)
| ((t[50] & 0x3f) << 6)
| (t[51] & 0x3f);
ints[220] = ((t[52] & 0x3f) << 20)
| ((t[53] & 0x3f) << 14)
| ((t[54] & 0x3f) << 8)
| ((t[55] & 0x3f) << 2)
| ((t[56] >> 4) & 0x3);
ints[221] = ((t[56] & 0xf) << 22)
| ((t[57] & 0x3f) << 16)
| ((t[58] & 0x3f) << 10)
| ((t[59] & 0x3f) << 4)
| ((t[60] >> 2) & 0xf);
ints[222] = ((t[60] & 0x3) << 24)
| ((t[61] & 0x3f) << 18)
| ((t[62] & 0x3f) << 12)
| ((t[63] & 0x3f) << 6)
| (t[64] & 0x3f);
ints[223] = ((t[65] & 0x3f) << 20)
| ((t[66] & 0x3f) << 14)
| ((t[67] & 0x3f) << 8)
| ((t[68] & 0x3f) << 2)
| ((t[69] >> 4) & 0x3);
ints[224] = ((t[69] & 0xf) << 22)
| ((t[70] & 0x3f) << 16)
| ((t[71] & 0x3f) << 10)
| ((t[72] & 0x3f) << 4)
| ((t[73] >> 2) & 0xf);
ints[225] = ((t[73] & 0x3) << 24)
| ((t[74] & 0x3f) << 18)
| ((t[75] & 0x3f) << 12)
| ((t[76] & 0x3f) << 6)
| (t[77] & 0x3f);
ints[226] = ((t[78] & 0x3f) << 20)
| ((t[79] & 0x3f) << 14)
| ((t[80] & 0x3f) << 8)
| ((t[81] & 0x3f) << 2)
| ((t[82] >> 4) & 0x3);
ints[227] = ((t[82] & 0xf) << 22)
| ((t[83] & 0x3f) << 16)
| ((t[84] & 0x3f) << 10)
| ((t[85] & 0x3f) << 4)
| ((t[86] >> 2) & 0xf);
ints[228] = ((t[86] & 0x3) << 24)
| ((t[87] & 0x3f) << 18)
| ((t[88] & 0x3f) << 12)
| ((t[89] & 0x3f) << 6)
| (t[90] & 0x3f);
ints[229] = ((t[91] & 0x3f) << 20)
| ((t[92] & 0x3f) << 14)
| ((t[93] & 0x3f) << 8)
| ((t[94] & 0x3f) << 2)
| ((t[95] >> 4) & 0x3);
ints[230] = ((t[95] & 0xf) << 22)
| ((t[96] & 0x3f) << 16)
| ((t[97] & 0x3f) << 10)
| ((t[98] & 0x3f) << 4)
| ((t[99] >> 2) & 0xf);
ints[231] = ((t[99] & 0x3) << 24)
| ((t[100] & 0x3f) << 18)
| ((t[101] & 0x3f) << 12)
| ((t[102] & 0x3f) << 6)
| (t[103] & 0x3f);
ints[232] = ((t[104] & 0x3f) << 20)
| ((t[105] & 0x3f) << 14)
| ((t[106] & 0x3f) << 8)
| ((t[107] & 0x3f) << 2)
| ((t[108] >> 4) & 0x3);
ints[233] = ((t[108] & 0xf) << 22)
| ((t[109] & 0x3f) << 16)
| ((t[110] & 0x3f) << 10)
| ((t[111] & 0x3f) << 4)
| ((t[112] >> 2) & 0xf);
ints[234] = ((t[112] & 0x3) << 24)
| ((t[113] & 0x3f) << 18)
| ((t[114] & 0x3f) << 12)
| ((t[115] & 0x3f) << 6)
| (t[116] & 0x3f);
ints[235] = ((t[117] & 0x3f) << 20)
| ((t[118] & 0x3f) << 14)
| ((t[119] & 0x3f) << 8)
| ((t[120] & 0x3f) << 2)
| ((t[121] >> 4) & 0x3);
ints[236] = ((t[121] & 0xf) << 22)
| ((t[122] & 0x3f) << 16)
| ((t[123] & 0x3f) << 10)
| ((t[124] & 0x3f) << 4)
| ((t[125] >> 2) & 0xf);
ints[237] = ((t[125] & 0x3) << 24)
| ((t[126] & 0x3f) << 18)
| ((t[127] & 0x3f) << 12)
| ((t[128] & 0x3f) << 6)
| (t[129] & 0x3f);
ints[238] = ((t[130] & 0x3f) << 20)
| ((t[131] & 0x3f) << 14)
| ((t[132] & 0x3f) << 8)
| ((t[133] & 0x3f) << 2)
| ((t[134] >> 4) & 0x3);
ints[239] = ((t[134] & 0xf) << 22)
| ((t[135] & 0x3f) << 16)
| ((t[136] & 0x3f) << 10)
| ((t[137] & 0x3f) << 4)
| ((t[138] >> 2) & 0xf);
ints[240] = ((t[138] & 0x3) << 24)
| ((t[139] & 0x3f) << 18)
| ((t[140] & 0x3f) << 12)
| ((t[141] & 0x3f) << 6)
| (t[142] & 0x3f);
ints[241] = ((t[143] & 0x3f) << 20)
| ((t[144] & 0x3f) << 14)
| ((t[145] & 0x3f) << 8)
| ((t[146] & 0x3f) << 2)
| ((t[147] >> 4) & 0x3);
ints[242] = ((t[147] & 0xf) << 22)
| ((t[148] & 0x3f) << 16)
| ((t[149] & 0x3f) << 10)
| ((t[150] & 0x3f) << 4)
| ((t[151] >> 2) & 0xf);
ints[243] = ((t[151] & 0x3) << 24)
| ((t[152] & 0x3f) << 18)
| ((t[153] & 0x3f) << 12)
| ((t[154] & 0x3f) << 6)
| (t[155] & 0x3f);
ints[244] = ((t[156] & 0x3f) << 20)
| ((t[157] & 0x3f) << 14)
| ((t[158] & 0x3f) << 8)
| ((t[159] & 0x3f) << 2)
| ((t[160] >> 4) & 0x3);
ints[245] = ((t[160] & 0xf) << 22)
| ((t[161] & 0x3f) << 16)
| ((t[162] & 0x3f) << 10)
| ((t[163] & 0x3f) << 4)
| ((t[164] >> 2) & 0xf);
ints[246] = ((t[164] & 0x3) << 24)
| ((t[165] & 0x3f) << 18)
| ((t[166] & 0x3f) << 12)
| ((t[167] & 0x3f) << 6)
| (t[168] & 0x3f);
ints[247] = ((t[169] & 0x3f) << 20)
| ((t[170] & 0x3f) << 14)
| ((t[171] & 0x3f) << 8)
| ((t[172] & 0x3f) << 2)
| ((t[173] >> 4) & 0x3);
ints[248] = ((t[173] & 0xf) << 22)
| ((t[174] & 0x3f) << 16)
| ((t[175] & 0x3f) << 10)
| ((t[176] & 0x3f) << 4)
| ((t[177] >> 2) & 0xf);
ints[249] = ((t[177] & 0x3) << 24)
| ((t[178] & 0x3f) << 18)
| ((t[179] & 0x3f) << 12)
| ((t[180] & 0x3f) << 6)
| (t[181] & 0x3f);
ints[250] = ((t[182] & 0x3f) << 20)
| ((t[183] & 0x3f) << 14)
| ((t[184] & 0x3f) << 8)
| ((t[185] & 0x3f) << 2)
| ((t[186] >> 4) & 0x3);
ints[251] = ((t[186] & 0xf) << 22)
| ((t[187] & 0x3f) << 16)
| ((t[188] & 0x3f) << 10)
| ((t[189] & 0x3f) << 4)
| ((t[190] >> 2) & 0xf);
ints[252] = ((t[190] & 0x3) << 24)
| ((t[191] & 0x3f) << 18)
| ((t[192] & 0x3f) << 12)
| ((t[193] & 0x3f) << 6)
| (t[194] & 0x3f);
ints[253] = ((t[195] & 0x3f) << 20)
| ((t[196] & 0x3f) << 14)
| ((t[197] & 0x3f) << 8)
| ((t[198] & 0x3f) << 2)
| ((t[199] >> 4) & 0x3);
ints[254] = ((t[199] & 0xf) << 22)
| ((t[200] & 0x3f) << 16)
| ((t[201] & 0x3f) << 10)
| ((t[202] & 0x3f) << 4)
| ((t[203] >> 2) & 0xf);
ints[255] = ((t[203] & 0x3) << 24)
| ((t[204] & 0x3f) << 18)
| ((t[205] & 0x3f) << 12)
| ((t[206] & 0x3f) << 6)
| (t[207] & 0x3f);
}
#[inline(always)]
fn decode27(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 864] = src[..864].try_into().unwrap();
let mut t = [0u32; 216];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..216 {
ints[0 + i] = (t[i] >> 5) & 0x7ffffff;
}
ints[216] = ((t[0] & 0x1f) << 22)
| ((t[1] & 0x1f) << 17)
| ((t[2] & 0x1f) << 12)
| ((t[3] & 0x1f) << 7)
| ((t[4] & 0x1f) << 2)
| ((t[5] >> 3) & 0x3);
ints[217] = ((t[5] & 0x7) << 24)
| ((t[6] & 0x1f) << 19)
| ((t[7] & 0x1f) << 14)
| ((t[8] & 0x1f) << 9)
| ((t[9] & 0x1f) << 4)
| ((t[10] >> 1) & 0xf);
ints[218] = ((t[10] & 0x1) << 26)
| ((t[11] & 0x1f) << 21)
| ((t[12] & 0x1f) << 16)
| ((t[13] & 0x1f) << 11)
| ((t[14] & 0x1f) << 6)
| ((t[15] & 0x1f) << 1)
| ((t[16] >> 4) & 0x1);
ints[219] = ((t[16] & 0xf) << 23)
| ((t[17] & 0x1f) << 18)
| ((t[18] & 0x1f) << 13)
| ((t[19] & 0x1f) << 8)
| ((t[20] & 0x1f) << 3)
| ((t[21] >> 2) & 0x7);
ints[220] = ((t[21] & 0x3) << 25)
| ((t[22] & 0x1f) << 20)
| ((t[23] & 0x1f) << 15)
| ((t[24] & 0x1f) << 10)
| ((t[25] & 0x1f) << 5)
| (t[26] & 0x1f);
ints[221] = ((t[27] & 0x1f) << 22)
| ((t[28] & 0x1f) << 17)
| ((t[29] & 0x1f) << 12)
| ((t[30] & 0x1f) << 7)
| ((t[31] & 0x1f) << 2)
| ((t[32] >> 3) & 0x3);
ints[222] = ((t[32] & 0x7) << 24)
| ((t[33] & 0x1f) << 19)
| ((t[34] & 0x1f) << 14)
| ((t[35] & 0x1f) << 9)
| ((t[36] & 0x1f) << 4)
| ((t[37] >> 1) & 0xf);
ints[223] = ((t[37] & 0x1) << 26)
| ((t[38] & 0x1f) << 21)
| ((t[39] & 0x1f) << 16)
| ((t[40] & 0x1f) << 11)
| ((t[41] & 0x1f) << 6)
| ((t[42] & 0x1f) << 1)
| ((t[43] >> 4) & 0x1);
ints[224] = ((t[43] & 0xf) << 23)
| ((t[44] & 0x1f) << 18)
| ((t[45] & 0x1f) << 13)
| ((t[46] & 0x1f) << 8)
| ((t[47] & 0x1f) << 3)
| ((t[48] >> 2) & 0x7);
ints[225] = ((t[48] & 0x3) << 25)
| ((t[49] & 0x1f) << 20)
| ((t[50] & 0x1f) << 15)
| ((t[51] & 0x1f) << 10)
| ((t[52] & 0x1f) << 5)
| (t[53] & 0x1f);
ints[226] = ((t[54] & 0x1f) << 22)
| ((t[55] & 0x1f) << 17)
| ((t[56] & 0x1f) << 12)
| ((t[57] & 0x1f) << 7)
| ((t[58] & 0x1f) << 2)
| ((t[59] >> 3) & 0x3);
ints[227] = ((t[59] & 0x7) << 24)
| ((t[60] & 0x1f) << 19)
| ((t[61] & 0x1f) << 14)
| ((t[62] & 0x1f) << 9)
| ((t[63] & 0x1f) << 4)
| ((t[64] >> 1) & 0xf);
ints[228] = ((t[64] & 0x1) << 26)
| ((t[65] & 0x1f) << 21)
| ((t[66] & 0x1f) << 16)
| ((t[67] & 0x1f) << 11)
| ((t[68] & 0x1f) << 6)
| ((t[69] & 0x1f) << 1)
| ((t[70] >> 4) & 0x1);
ints[229] = ((t[70] & 0xf) << 23)
| ((t[71] & 0x1f) << 18)
| ((t[72] & 0x1f) << 13)
| ((t[73] & 0x1f) << 8)
| ((t[74] & 0x1f) << 3)
| ((t[75] >> 2) & 0x7);
ints[230] = ((t[75] & 0x3) << 25)
| ((t[76] & 0x1f) << 20)
| ((t[77] & 0x1f) << 15)
| ((t[78] & 0x1f) << 10)
| ((t[79] & 0x1f) << 5)
| (t[80] & 0x1f);
ints[231] = ((t[81] & 0x1f) << 22)
| ((t[82] & 0x1f) << 17)
| ((t[83] & 0x1f) << 12)
| ((t[84] & 0x1f) << 7)
| ((t[85] & 0x1f) << 2)
| ((t[86] >> 3) & 0x3);
ints[232] = ((t[86] & 0x7) << 24)
| ((t[87] & 0x1f) << 19)
| ((t[88] & 0x1f) << 14)
| ((t[89] & 0x1f) << 9)
| ((t[90] & 0x1f) << 4)
| ((t[91] >> 1) & 0xf);
ints[233] = ((t[91] & 0x1) << 26)
| ((t[92] & 0x1f) << 21)
| ((t[93] & 0x1f) << 16)
| ((t[94] & 0x1f) << 11)
| ((t[95] & 0x1f) << 6)
| ((t[96] & 0x1f) << 1)
| ((t[97] >> 4) & 0x1);
ints[234] = ((t[97] & 0xf) << 23)
| ((t[98] & 0x1f) << 18)
| ((t[99] & 0x1f) << 13)
| ((t[100] & 0x1f) << 8)
| ((t[101] & 0x1f) << 3)
| ((t[102] >> 2) & 0x7);
ints[235] = ((t[102] & 0x3) << 25)
| ((t[103] & 0x1f) << 20)
| ((t[104] & 0x1f) << 15)
| ((t[105] & 0x1f) << 10)
| ((t[106] & 0x1f) << 5)
| (t[107] & 0x1f);
ints[236] = ((t[108] & 0x1f) << 22)
| ((t[109] & 0x1f) << 17)
| ((t[110] & 0x1f) << 12)
| ((t[111] & 0x1f) << 7)
| ((t[112] & 0x1f) << 2)
| ((t[113] >> 3) & 0x3);
ints[237] = ((t[113] & 0x7) << 24)
| ((t[114] & 0x1f) << 19)
| ((t[115] & 0x1f) << 14)
| ((t[116] & 0x1f) << 9)
| ((t[117] & 0x1f) << 4)
| ((t[118] >> 1) & 0xf);
ints[238] = ((t[118] & 0x1) << 26)
| ((t[119] & 0x1f) << 21)
| ((t[120] & 0x1f) << 16)
| ((t[121] & 0x1f) << 11)
| ((t[122] & 0x1f) << 6)
| ((t[123] & 0x1f) << 1)
| ((t[124] >> 4) & 0x1);
ints[239] = ((t[124] & 0xf) << 23)
| ((t[125] & 0x1f) << 18)
| ((t[126] & 0x1f) << 13)
| ((t[127] & 0x1f) << 8)
| ((t[128] & 0x1f) << 3)
| ((t[129] >> 2) & 0x7);
ints[240] = ((t[129] & 0x3) << 25)
| ((t[130] & 0x1f) << 20)
| ((t[131] & 0x1f) << 15)
| ((t[132] & 0x1f) << 10)
| ((t[133] & 0x1f) << 5)
| (t[134] & 0x1f);
ints[241] = ((t[135] & 0x1f) << 22)
| ((t[136] & 0x1f) << 17)
| ((t[137] & 0x1f) << 12)
| ((t[138] & 0x1f) << 7)
| ((t[139] & 0x1f) << 2)
| ((t[140] >> 3) & 0x3);
ints[242] = ((t[140] & 0x7) << 24)
| ((t[141] & 0x1f) << 19)
| ((t[142] & 0x1f) << 14)
| ((t[143] & 0x1f) << 9)
| ((t[144] & 0x1f) << 4)
| ((t[145] >> 1) & 0xf);
ints[243] = ((t[145] & 0x1) << 26)
| ((t[146] & 0x1f) << 21)
| ((t[147] & 0x1f) << 16)
| ((t[148] & 0x1f) << 11)
| ((t[149] & 0x1f) << 6)
| ((t[150] & 0x1f) << 1)
| ((t[151] >> 4) & 0x1);
ints[244] = ((t[151] & 0xf) << 23)
| ((t[152] & 0x1f) << 18)
| ((t[153] & 0x1f) << 13)
| ((t[154] & 0x1f) << 8)
| ((t[155] & 0x1f) << 3)
| ((t[156] >> 2) & 0x7);
ints[245] = ((t[156] & 0x3) << 25)
| ((t[157] & 0x1f) << 20)
| ((t[158] & 0x1f) << 15)
| ((t[159] & 0x1f) << 10)
| ((t[160] & 0x1f) << 5)
| (t[161] & 0x1f);
ints[246] = ((t[162] & 0x1f) << 22)
| ((t[163] & 0x1f) << 17)
| ((t[164] & 0x1f) << 12)
| ((t[165] & 0x1f) << 7)
| ((t[166] & 0x1f) << 2)
| ((t[167] >> 3) & 0x3);
ints[247] = ((t[167] & 0x7) << 24)
| ((t[168] & 0x1f) << 19)
| ((t[169] & 0x1f) << 14)
| ((t[170] & 0x1f) << 9)
| ((t[171] & 0x1f) << 4)
| ((t[172] >> 1) & 0xf);
ints[248] = ((t[172] & 0x1) << 26)
| ((t[173] & 0x1f) << 21)
| ((t[174] & 0x1f) << 16)
| ((t[175] & 0x1f) << 11)
| ((t[176] & 0x1f) << 6)
| ((t[177] & 0x1f) << 1)
| ((t[178] >> 4) & 0x1);
ints[249] = ((t[178] & 0xf) << 23)
| ((t[179] & 0x1f) << 18)
| ((t[180] & 0x1f) << 13)
| ((t[181] & 0x1f) << 8)
| ((t[182] & 0x1f) << 3)
| ((t[183] >> 2) & 0x7);
ints[250] = ((t[183] & 0x3) << 25)
| ((t[184] & 0x1f) << 20)
| ((t[185] & 0x1f) << 15)
| ((t[186] & 0x1f) << 10)
| ((t[187] & 0x1f) << 5)
| (t[188] & 0x1f);
ints[251] = ((t[189] & 0x1f) << 22)
| ((t[190] & 0x1f) << 17)
| ((t[191] & 0x1f) << 12)
| ((t[192] & 0x1f) << 7)
| ((t[193] & 0x1f) << 2)
| ((t[194] >> 3) & 0x3);
ints[252] = ((t[194] & 0x7) << 24)
| ((t[195] & 0x1f) << 19)
| ((t[196] & 0x1f) << 14)
| ((t[197] & 0x1f) << 9)
| ((t[198] & 0x1f) << 4)
| ((t[199] >> 1) & 0xf);
ints[253] = ((t[199] & 0x1) << 26)
| ((t[200] & 0x1f) << 21)
| ((t[201] & 0x1f) << 16)
| ((t[202] & 0x1f) << 11)
| ((t[203] & 0x1f) << 6)
| ((t[204] & 0x1f) << 1)
| ((t[205] >> 4) & 0x1);
ints[254] = ((t[205] & 0xf) << 23)
| ((t[206] & 0x1f) << 18)
| ((t[207] & 0x1f) << 13)
| ((t[208] & 0x1f) << 8)
| ((t[209] & 0x1f) << 3)
| ((t[210] >> 2) & 0x7);
ints[255] = ((t[210] & 0x3) << 25)
| ((t[211] & 0x1f) << 20)
| ((t[212] & 0x1f) << 15)
| ((t[213] & 0x1f) << 10)
| ((t[214] & 0x1f) << 5)
| (t[215] & 0x1f);
}
#[inline(always)]
fn decode28(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 896] = src[..896].try_into().unwrap();
let mut t = [0u32; 224];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..224 {
ints[0 + i] = (t[i] >> 4) & 0xfffffff;
}
ints[224] = ((t[0] & 0xf) << 24)
| ((t[1] & 0xf) << 20)
| ((t[2] & 0xf) << 16)
| ((t[3] & 0xf) << 12)
| ((t[4] & 0xf) << 8)
| ((t[5] & 0xf) << 4)
| (t[6] & 0xf);
ints[225] = ((t[7] & 0xf) << 24)
| ((t[8] & 0xf) << 20)
| ((t[9] & 0xf) << 16)
| ((t[10] & 0xf) << 12)
| ((t[11] & 0xf) << 8)
| ((t[12] & 0xf) << 4)
| (t[13] & 0xf);
ints[226] = ((t[14] & 0xf) << 24)
| ((t[15] & 0xf) << 20)
| ((t[16] & 0xf) << 16)
| ((t[17] & 0xf) << 12)
| ((t[18] & 0xf) << 8)
| ((t[19] & 0xf) << 4)
| (t[20] & 0xf);
ints[227] = ((t[21] & 0xf) << 24)
| ((t[22] & 0xf) << 20)
| ((t[23] & 0xf) << 16)
| ((t[24] & 0xf) << 12)
| ((t[25] & 0xf) << 8)
| ((t[26] & 0xf) << 4)
| (t[27] & 0xf);
ints[228] = ((t[28] & 0xf) << 24)
| ((t[29] & 0xf) << 20)
| ((t[30] & 0xf) << 16)
| ((t[31] & 0xf) << 12)
| ((t[32] & 0xf) << 8)
| ((t[33] & 0xf) << 4)
| (t[34] & 0xf);
ints[229] = ((t[35] & 0xf) << 24)
| ((t[36] & 0xf) << 20)
| ((t[37] & 0xf) << 16)
| ((t[38] & 0xf) << 12)
| ((t[39] & 0xf) << 8)
| ((t[40] & 0xf) << 4)
| (t[41] & 0xf);
ints[230] = ((t[42] & 0xf) << 24)
| ((t[43] & 0xf) << 20)
| ((t[44] & 0xf) << 16)
| ((t[45] & 0xf) << 12)
| ((t[46] & 0xf) << 8)
| ((t[47] & 0xf) << 4)
| (t[48] & 0xf);
ints[231] = ((t[49] & 0xf) << 24)
| ((t[50] & 0xf) << 20)
| ((t[51] & 0xf) << 16)
| ((t[52] & 0xf) << 12)
| ((t[53] & 0xf) << 8)
| ((t[54] & 0xf) << 4)
| (t[55] & 0xf);
ints[232] = ((t[56] & 0xf) << 24)
| ((t[57] & 0xf) << 20)
| ((t[58] & 0xf) << 16)
| ((t[59] & 0xf) << 12)
| ((t[60] & 0xf) << 8)
| ((t[61] & 0xf) << 4)
| (t[62] & 0xf);
ints[233] = ((t[63] & 0xf) << 24)
| ((t[64] & 0xf) << 20)
| ((t[65] & 0xf) << 16)
| ((t[66] & 0xf) << 12)
| ((t[67] & 0xf) << 8)
| ((t[68] & 0xf) << 4)
| (t[69] & 0xf);
ints[234] = ((t[70] & 0xf) << 24)
| ((t[71] & 0xf) << 20)
| ((t[72] & 0xf) << 16)
| ((t[73] & 0xf) << 12)
| ((t[74] & 0xf) << 8)
| ((t[75] & 0xf) << 4)
| (t[76] & 0xf);
ints[235] = ((t[77] & 0xf) << 24)
| ((t[78] & 0xf) << 20)
| ((t[79] & 0xf) << 16)
| ((t[80] & 0xf) << 12)
| ((t[81] & 0xf) << 8)
| ((t[82] & 0xf) << 4)
| (t[83] & 0xf);
ints[236] = ((t[84] & 0xf) << 24)
| ((t[85] & 0xf) << 20)
| ((t[86] & 0xf) << 16)
| ((t[87] & 0xf) << 12)
| ((t[88] & 0xf) << 8)
| ((t[89] & 0xf) << 4)
| (t[90] & 0xf);
ints[237] = ((t[91] & 0xf) << 24)
| ((t[92] & 0xf) << 20)
| ((t[93] & 0xf) << 16)
| ((t[94] & 0xf) << 12)
| ((t[95] & 0xf) << 8)
| ((t[96] & 0xf) << 4)
| (t[97] & 0xf);
ints[238] = ((t[98] & 0xf) << 24)
| ((t[99] & 0xf) << 20)
| ((t[100] & 0xf) << 16)
| ((t[101] & 0xf) << 12)
| ((t[102] & 0xf) << 8)
| ((t[103] & 0xf) << 4)
| (t[104] & 0xf);
ints[239] = ((t[105] & 0xf) << 24)
| ((t[106] & 0xf) << 20)
| ((t[107] & 0xf) << 16)
| ((t[108] & 0xf) << 12)
| ((t[109] & 0xf) << 8)
| ((t[110] & 0xf) << 4)
| (t[111] & 0xf);
ints[240] = ((t[112] & 0xf) << 24)
| ((t[113] & 0xf) << 20)
| ((t[114] & 0xf) << 16)
| ((t[115] & 0xf) << 12)
| ((t[116] & 0xf) << 8)
| ((t[117] & 0xf) << 4)
| (t[118] & 0xf);
ints[241] = ((t[119] & 0xf) << 24)
| ((t[120] & 0xf) << 20)
| ((t[121] & 0xf) << 16)
| ((t[122] & 0xf) << 12)
| ((t[123] & 0xf) << 8)
| ((t[124] & 0xf) << 4)
| (t[125] & 0xf);
ints[242] = ((t[126] & 0xf) << 24)
| ((t[127] & 0xf) << 20)
| ((t[128] & 0xf) << 16)
| ((t[129] & 0xf) << 12)
| ((t[130] & 0xf) << 8)
| ((t[131] & 0xf) << 4)
| (t[132] & 0xf);
ints[243] = ((t[133] & 0xf) << 24)
| ((t[134] & 0xf) << 20)
| ((t[135] & 0xf) << 16)
| ((t[136] & 0xf) << 12)
| ((t[137] & 0xf) << 8)
| ((t[138] & 0xf) << 4)
| (t[139] & 0xf);
ints[244] = ((t[140] & 0xf) << 24)
| ((t[141] & 0xf) << 20)
| ((t[142] & 0xf) << 16)
| ((t[143] & 0xf) << 12)
| ((t[144] & 0xf) << 8)
| ((t[145] & 0xf) << 4)
| (t[146] & 0xf);
ints[245] = ((t[147] & 0xf) << 24)
| ((t[148] & 0xf) << 20)
| ((t[149] & 0xf) << 16)
| ((t[150] & 0xf) << 12)
| ((t[151] & 0xf) << 8)
| ((t[152] & 0xf) << 4)
| (t[153] & 0xf);
ints[246] = ((t[154] & 0xf) << 24)
| ((t[155] & 0xf) << 20)
| ((t[156] & 0xf) << 16)
| ((t[157] & 0xf) << 12)
| ((t[158] & 0xf) << 8)
| ((t[159] & 0xf) << 4)
| (t[160] & 0xf);
ints[247] = ((t[161] & 0xf) << 24)
| ((t[162] & 0xf) << 20)
| ((t[163] & 0xf) << 16)
| ((t[164] & 0xf) << 12)
| ((t[165] & 0xf) << 8)
| ((t[166] & 0xf) << 4)
| (t[167] & 0xf);
ints[248] = ((t[168] & 0xf) << 24)
| ((t[169] & 0xf) << 20)
| ((t[170] & 0xf) << 16)
| ((t[171] & 0xf) << 12)
| ((t[172] & 0xf) << 8)
| ((t[173] & 0xf) << 4)
| (t[174] & 0xf);
ints[249] = ((t[175] & 0xf) << 24)
| ((t[176] & 0xf) << 20)
| ((t[177] & 0xf) << 16)
| ((t[178] & 0xf) << 12)
| ((t[179] & 0xf) << 8)
| ((t[180] & 0xf) << 4)
| (t[181] & 0xf);
ints[250] = ((t[182] & 0xf) << 24)
| ((t[183] & 0xf) << 20)
| ((t[184] & 0xf) << 16)
| ((t[185] & 0xf) << 12)
| ((t[186] & 0xf) << 8)
| ((t[187] & 0xf) << 4)
| (t[188] & 0xf);
ints[251] = ((t[189] & 0xf) << 24)
| ((t[190] & 0xf) << 20)
| ((t[191] & 0xf) << 16)
| ((t[192] & 0xf) << 12)
| ((t[193] & 0xf) << 8)
| ((t[194] & 0xf) << 4)
| (t[195] & 0xf);
ints[252] = ((t[196] & 0xf) << 24)
| ((t[197] & 0xf) << 20)
| ((t[198] & 0xf) << 16)
| ((t[199] & 0xf) << 12)
| ((t[200] & 0xf) << 8)
| ((t[201] & 0xf) << 4)
| (t[202] & 0xf);
ints[253] = ((t[203] & 0xf) << 24)
| ((t[204] & 0xf) << 20)
| ((t[205] & 0xf) << 16)
| ((t[206] & 0xf) << 12)
| ((t[207] & 0xf) << 8)
| ((t[208] & 0xf) << 4)
| (t[209] & 0xf);
ints[254] = ((t[210] & 0xf) << 24)
| ((t[211] & 0xf) << 20)
| ((t[212] & 0xf) << 16)
| ((t[213] & 0xf) << 12)
| ((t[214] & 0xf) << 8)
| ((t[215] & 0xf) << 4)
| (t[216] & 0xf);
ints[255] = ((t[217] & 0xf) << 24)
| ((t[218] & 0xf) << 20)
| ((t[219] & 0xf) << 16)
| ((t[220] & 0xf) << 12)
| ((t[221] & 0xf) << 8)
| ((t[222] & 0xf) << 4)
| (t[223] & 0xf);
}
#[inline(always)]
fn decode29(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 928] = src[..928].try_into().unwrap();
let mut t = [0u32; 232];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..232 {
ints[0 + i] = (t[i] >> 3) & 0x1fffffff;
}
ints[232] = ((t[0] & 0x7) << 26)
| ((t[1] & 0x7) << 23)
| ((t[2] & 0x7) << 20)
| ((t[3] & 0x7) << 17)
| ((t[4] & 0x7) << 14)
| ((t[5] & 0x7) << 11)
| ((t[6] & 0x7) << 8)
| ((t[7] & 0x7) << 5)
| ((t[8] & 0x7) << 2)
| ((t[9] >> 1) & 0x3);
ints[233] = ((t[9] & 0x1) << 28)
| ((t[10] & 0x7) << 25)
| ((t[11] & 0x7) << 22)
| ((t[12] & 0x7) << 19)
| ((t[13] & 0x7) << 16)
| ((t[14] & 0x7) << 13)
| ((t[15] & 0x7) << 10)
| ((t[16] & 0x7) << 7)
| ((t[17] & 0x7) << 4)
| ((t[18] & 0x7) << 1)
| ((t[19] >> 2) & 0x1);
ints[234] = ((t[19] & 0x3) << 27)
| ((t[20] & 0x7) << 24)
| ((t[21] & 0x7) << 21)
| ((t[22] & 0x7) << 18)
| ((t[23] & 0x7) << 15)
| ((t[24] & 0x7) << 12)
| ((t[25] & 0x7) << 9)
| ((t[26] & 0x7) << 6)
| ((t[27] & 0x7) << 3)
| (t[28] & 0x7);
ints[235] = ((t[29] & 0x7) << 26)
| ((t[30] & 0x7) << 23)
| ((t[31] & 0x7) << 20)
| ((t[32] & 0x7) << 17)
| ((t[33] & 0x7) << 14)
| ((t[34] & 0x7) << 11)
| ((t[35] & 0x7) << 8)
| ((t[36] & 0x7) << 5)
| ((t[37] & 0x7) << 2)
| ((t[38] >> 1) & 0x3);
ints[236] = ((t[38] & 0x1) << 28)
| ((t[39] & 0x7) << 25)
| ((t[40] & 0x7) << 22)
| ((t[41] & 0x7) << 19)
| ((t[42] & 0x7) << 16)
| ((t[43] & 0x7) << 13)
| ((t[44] & 0x7) << 10)
| ((t[45] & 0x7) << 7)
| ((t[46] & 0x7) << 4)
| ((t[47] & 0x7) << 1)
| ((t[48] >> 2) & 0x1);
ints[237] = ((t[48] & 0x3) << 27)
| ((t[49] & 0x7) << 24)
| ((t[50] & 0x7) << 21)
| ((t[51] & 0x7) << 18)
| ((t[52] & 0x7) << 15)
| ((t[53] & 0x7) << 12)
| ((t[54] & 0x7) << 9)
| ((t[55] & 0x7) << 6)
| ((t[56] & 0x7) << 3)
| (t[57] & 0x7);
ints[238] = ((t[58] & 0x7) << 26)
| ((t[59] & 0x7) << 23)
| ((t[60] & 0x7) << 20)
| ((t[61] & 0x7) << 17)
| ((t[62] & 0x7) << 14)
| ((t[63] & 0x7) << 11)
| ((t[64] & 0x7) << 8)
| ((t[65] & 0x7) << 5)
| ((t[66] & 0x7) << 2)
| ((t[67] >> 1) & 0x3);
ints[239] = ((t[67] & 0x1) << 28)
| ((t[68] & 0x7) << 25)
| ((t[69] & 0x7) << 22)
| ((t[70] & 0x7) << 19)
| ((t[71] & 0x7) << 16)
| ((t[72] & 0x7) << 13)
| ((t[73] & 0x7) << 10)
| ((t[74] & 0x7) << 7)
| ((t[75] & 0x7) << 4)
| ((t[76] & 0x7) << 1)
| ((t[77] >> 2) & 0x1);
ints[240] = ((t[77] & 0x3) << 27)
| ((t[78] & 0x7) << 24)
| ((t[79] & 0x7) << 21)
| ((t[80] & 0x7) << 18)
| ((t[81] & 0x7) << 15)
| ((t[82] & 0x7) << 12)
| ((t[83] & 0x7) << 9)
| ((t[84] & 0x7) << 6)
| ((t[85] & 0x7) << 3)
| (t[86] & 0x7);
ints[241] = ((t[87] & 0x7) << 26)
| ((t[88] & 0x7) << 23)
| ((t[89] & 0x7) << 20)
| ((t[90] & 0x7) << 17)
| ((t[91] & 0x7) << 14)
| ((t[92] & 0x7) << 11)
| ((t[93] & 0x7) << 8)
| ((t[94] & 0x7) << 5)
| ((t[95] & 0x7) << 2)
| ((t[96] >> 1) & 0x3);
ints[242] = ((t[96] & 0x1) << 28)
| ((t[97] & 0x7) << 25)
| ((t[98] & 0x7) << 22)
| ((t[99] & 0x7) << 19)
| ((t[100] & 0x7) << 16)
| ((t[101] & 0x7) << 13)
| ((t[102] & 0x7) << 10)
| ((t[103] & 0x7) << 7)
| ((t[104] & 0x7) << 4)
| ((t[105] & 0x7) << 1)
| ((t[106] >> 2) & 0x1);
ints[243] = ((t[106] & 0x3) << 27)
| ((t[107] & 0x7) << 24)
| ((t[108] & 0x7) << 21)
| ((t[109] & 0x7) << 18)
| ((t[110] & 0x7) << 15)
| ((t[111] & 0x7) << 12)
| ((t[112] & 0x7) << 9)
| ((t[113] & 0x7) << 6)
| ((t[114] & 0x7) << 3)
| (t[115] & 0x7);
ints[244] = ((t[116] & 0x7) << 26)
| ((t[117] & 0x7) << 23)
| ((t[118] & 0x7) << 20)
| ((t[119] & 0x7) << 17)
| ((t[120] & 0x7) << 14)
| ((t[121] & 0x7) << 11)
| ((t[122] & 0x7) << 8)
| ((t[123] & 0x7) << 5)
| ((t[124] & 0x7) << 2)
| ((t[125] >> 1) & 0x3);
ints[245] = ((t[125] & 0x1) << 28)
| ((t[126] & 0x7) << 25)
| ((t[127] & 0x7) << 22)
| ((t[128] & 0x7) << 19)
| ((t[129] & 0x7) << 16)
| ((t[130] & 0x7) << 13)
| ((t[131] & 0x7) << 10)
| ((t[132] & 0x7) << 7)
| ((t[133] & 0x7) << 4)
| ((t[134] & 0x7) << 1)
| ((t[135] >> 2) & 0x1);
ints[246] = ((t[135] & 0x3) << 27)
| ((t[136] & 0x7) << 24)
| ((t[137] & 0x7) << 21)
| ((t[138] & 0x7) << 18)
| ((t[139] & 0x7) << 15)
| ((t[140] & 0x7) << 12)
| ((t[141] & 0x7) << 9)
| ((t[142] & 0x7) << 6)
| ((t[143] & 0x7) << 3)
| (t[144] & 0x7);
ints[247] = ((t[145] & 0x7) << 26)
| ((t[146] & 0x7) << 23)
| ((t[147] & 0x7) << 20)
| ((t[148] & 0x7) << 17)
| ((t[149] & 0x7) << 14)
| ((t[150] & 0x7) << 11)
| ((t[151] & 0x7) << 8)
| ((t[152] & 0x7) << 5)
| ((t[153] & 0x7) << 2)
| ((t[154] >> 1) & 0x3);
ints[248] = ((t[154] & 0x1) << 28)
| ((t[155] & 0x7) << 25)
| ((t[156] & 0x7) << 22)
| ((t[157] & 0x7) << 19)
| ((t[158] & 0x7) << 16)
| ((t[159] & 0x7) << 13)
| ((t[160] & 0x7) << 10)
| ((t[161] & 0x7) << 7)
| ((t[162] & 0x7) << 4)
| ((t[163] & 0x7) << 1)
| ((t[164] >> 2) & 0x1);
ints[249] = ((t[164] & 0x3) << 27)
| ((t[165] & 0x7) << 24)
| ((t[166] & 0x7) << 21)
| ((t[167] & 0x7) << 18)
| ((t[168] & 0x7) << 15)
| ((t[169] & 0x7) << 12)
| ((t[170] & 0x7) << 9)
| ((t[171] & 0x7) << 6)
| ((t[172] & 0x7) << 3)
| (t[173] & 0x7);
ints[250] = ((t[174] & 0x7) << 26)
| ((t[175] & 0x7) << 23)
| ((t[176] & 0x7) << 20)
| ((t[177] & 0x7) << 17)
| ((t[178] & 0x7) << 14)
| ((t[179] & 0x7) << 11)
| ((t[180] & 0x7) << 8)
| ((t[181] & 0x7) << 5)
| ((t[182] & 0x7) << 2)
| ((t[183] >> 1) & 0x3);
ints[251] = ((t[183] & 0x1) << 28)
| ((t[184] & 0x7) << 25)
| ((t[185] & 0x7) << 22)
| ((t[186] & 0x7) << 19)
| ((t[187] & 0x7) << 16)
| ((t[188] & 0x7) << 13)
| ((t[189] & 0x7) << 10)
| ((t[190] & 0x7) << 7)
| ((t[191] & 0x7) << 4)
| ((t[192] & 0x7) << 1)
| ((t[193] >> 2) & 0x1);
ints[252] = ((t[193] & 0x3) << 27)
| ((t[194] & 0x7) << 24)
| ((t[195] & 0x7) << 21)
| ((t[196] & 0x7) << 18)
| ((t[197] & 0x7) << 15)
| ((t[198] & 0x7) << 12)
| ((t[199] & 0x7) << 9)
| ((t[200] & 0x7) << 6)
| ((t[201] & 0x7) << 3)
| (t[202] & 0x7);
ints[253] = ((t[203] & 0x7) << 26)
| ((t[204] & 0x7) << 23)
| ((t[205] & 0x7) << 20)
| ((t[206] & 0x7) << 17)
| ((t[207] & 0x7) << 14)
| ((t[208] & 0x7) << 11)
| ((t[209] & 0x7) << 8)
| ((t[210] & 0x7) << 5)
| ((t[211] & 0x7) << 2)
| ((t[212] >> 1) & 0x3);
ints[254] = ((t[212] & 0x1) << 28)
| ((t[213] & 0x7) << 25)
| ((t[214] & 0x7) << 22)
| ((t[215] & 0x7) << 19)
| ((t[216] & 0x7) << 16)
| ((t[217] & 0x7) << 13)
| ((t[218] & 0x7) << 10)
| ((t[219] & 0x7) << 7)
| ((t[220] & 0x7) << 4)
| ((t[221] & 0x7) << 1)
| ((t[222] >> 2) & 0x1);
ints[255] = ((t[222] & 0x3) << 27)
| ((t[223] & 0x7) << 24)
| ((t[224] & 0x7) << 21)
| ((t[225] & 0x7) << 18)
| ((t[226] & 0x7) << 15)
| ((t[227] & 0x7) << 12)
| ((t[228] & 0x7) << 9)
| ((t[229] & 0x7) << 6)
| ((t[230] & 0x7) << 3)
| (t[231] & 0x7);
}
#[inline(always)]
fn decode30(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 960] = src[..960].try_into().unwrap();
let mut t = [0u32; 240];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..240 {
ints[0 + i] = (t[i] >> 2) & 0x3fffffff;
}
ints[240] = ((t[0] & 0x3) << 28)
| ((t[1] & 0x3) << 26)
| ((t[2] & 0x3) << 24)
| ((t[3] & 0x3) << 22)
| ((t[4] & 0x3) << 20)
| ((t[5] & 0x3) << 18)
| ((t[6] & 0x3) << 16)
| ((t[7] & 0x3) << 14)
| ((t[8] & 0x3) << 12)
| ((t[9] & 0x3) << 10)
| ((t[10] & 0x3) << 8)
| ((t[11] & 0x3) << 6)
| ((t[12] & 0x3) << 4)
| ((t[13] & 0x3) << 2)
| (t[14] & 0x3);
ints[241] = ((t[15] & 0x3) << 28)
| ((t[16] & 0x3) << 26)
| ((t[17] & 0x3) << 24)
| ((t[18] & 0x3) << 22)
| ((t[19] & 0x3) << 20)
| ((t[20] & 0x3) << 18)
| ((t[21] & 0x3) << 16)
| ((t[22] & 0x3) << 14)
| ((t[23] & 0x3) << 12)
| ((t[24] & 0x3) << 10)
| ((t[25] & 0x3) << 8)
| ((t[26] & 0x3) << 6)
| ((t[27] & 0x3) << 4)
| ((t[28] & 0x3) << 2)
| (t[29] & 0x3);
ints[242] = ((t[30] & 0x3) << 28)
| ((t[31] & 0x3) << 26)
| ((t[32] & 0x3) << 24)
| ((t[33] & 0x3) << 22)
| ((t[34] & 0x3) << 20)
| ((t[35] & 0x3) << 18)
| ((t[36] & 0x3) << 16)
| ((t[37] & 0x3) << 14)
| ((t[38] & 0x3) << 12)
| ((t[39] & 0x3) << 10)
| ((t[40] & 0x3) << 8)
| ((t[41] & 0x3) << 6)
| ((t[42] & 0x3) << 4)
| ((t[43] & 0x3) << 2)
| (t[44] & 0x3);
ints[243] = ((t[45] & 0x3) << 28)
| ((t[46] & 0x3) << 26)
| ((t[47] & 0x3) << 24)
| ((t[48] & 0x3) << 22)
| ((t[49] & 0x3) << 20)
| ((t[50] & 0x3) << 18)
| ((t[51] & 0x3) << 16)
| ((t[52] & 0x3) << 14)
| ((t[53] & 0x3) << 12)
| ((t[54] & 0x3) << 10)
| ((t[55] & 0x3) << 8)
| ((t[56] & 0x3) << 6)
| ((t[57] & 0x3) << 4)
| ((t[58] & 0x3) << 2)
| (t[59] & 0x3);
ints[244] = ((t[60] & 0x3) << 28)
| ((t[61] & 0x3) << 26)
| ((t[62] & 0x3) << 24)
| ((t[63] & 0x3) << 22)
| ((t[64] & 0x3) << 20)
| ((t[65] & 0x3) << 18)
| ((t[66] & 0x3) << 16)
| ((t[67] & 0x3) << 14)
| ((t[68] & 0x3) << 12)
| ((t[69] & 0x3) << 10)
| ((t[70] & 0x3) << 8)
| ((t[71] & 0x3) << 6)
| ((t[72] & 0x3) << 4)
| ((t[73] & 0x3) << 2)
| (t[74] & 0x3);
ints[245] = ((t[75] & 0x3) << 28)
| ((t[76] & 0x3) << 26)
| ((t[77] & 0x3) << 24)
| ((t[78] & 0x3) << 22)
| ((t[79] & 0x3) << 20)
| ((t[80] & 0x3) << 18)
| ((t[81] & 0x3) << 16)
| ((t[82] & 0x3) << 14)
| ((t[83] & 0x3) << 12)
| ((t[84] & 0x3) << 10)
| ((t[85] & 0x3) << 8)
| ((t[86] & 0x3) << 6)
| ((t[87] & 0x3) << 4)
| ((t[88] & 0x3) << 2)
| (t[89] & 0x3);
ints[246] = ((t[90] & 0x3) << 28)
| ((t[91] & 0x3) << 26)
| ((t[92] & 0x3) << 24)
| ((t[93] & 0x3) << 22)
| ((t[94] & 0x3) << 20)
| ((t[95] & 0x3) << 18)
| ((t[96] & 0x3) << 16)
| ((t[97] & 0x3) << 14)
| ((t[98] & 0x3) << 12)
| ((t[99] & 0x3) << 10)
| ((t[100] & 0x3) << 8)
| ((t[101] & 0x3) << 6)
| ((t[102] & 0x3) << 4)
| ((t[103] & 0x3) << 2)
| (t[104] & 0x3);
ints[247] = ((t[105] & 0x3) << 28)
| ((t[106] & 0x3) << 26)
| ((t[107] & 0x3) << 24)
| ((t[108] & 0x3) << 22)
| ((t[109] & 0x3) << 20)
| ((t[110] & 0x3) << 18)
| ((t[111] & 0x3) << 16)
| ((t[112] & 0x3) << 14)
| ((t[113] & 0x3) << 12)
| ((t[114] & 0x3) << 10)
| ((t[115] & 0x3) << 8)
| ((t[116] & 0x3) << 6)
| ((t[117] & 0x3) << 4)
| ((t[118] & 0x3) << 2)
| (t[119] & 0x3);
ints[248] = ((t[120] & 0x3) << 28)
| ((t[121] & 0x3) << 26)
| ((t[122] & 0x3) << 24)
| ((t[123] & 0x3) << 22)
| ((t[124] & 0x3) << 20)
| ((t[125] & 0x3) << 18)
| ((t[126] & 0x3) << 16)
| ((t[127] & 0x3) << 14)
| ((t[128] & 0x3) << 12)
| ((t[129] & 0x3) << 10)
| ((t[130] & 0x3) << 8)
| ((t[131] & 0x3) << 6)
| ((t[132] & 0x3) << 4)
| ((t[133] & 0x3) << 2)
| (t[134] & 0x3);
ints[249] = ((t[135] & 0x3) << 28)
| ((t[136] & 0x3) << 26)
| ((t[137] & 0x3) << 24)
| ((t[138] & 0x3) << 22)
| ((t[139] & 0x3) << 20)
| ((t[140] & 0x3) << 18)
| ((t[141] & 0x3) << 16)
| ((t[142] & 0x3) << 14)
| ((t[143] & 0x3) << 12)
| ((t[144] & 0x3) << 10)
| ((t[145] & 0x3) << 8)
| ((t[146] & 0x3) << 6)
| ((t[147] & 0x3) << 4)
| ((t[148] & 0x3) << 2)
| (t[149] & 0x3);
ints[250] = ((t[150] & 0x3) << 28)
| ((t[151] & 0x3) << 26)
| ((t[152] & 0x3) << 24)
| ((t[153] & 0x3) << 22)
| ((t[154] & 0x3) << 20)
| ((t[155] & 0x3) << 18)
| ((t[156] & 0x3) << 16)
| ((t[157] & 0x3) << 14)
| ((t[158] & 0x3) << 12)
| ((t[159] & 0x3) << 10)
| ((t[160] & 0x3) << 8)
| ((t[161] & 0x3) << 6)
| ((t[162] & 0x3) << 4)
| ((t[163] & 0x3) << 2)
| (t[164] & 0x3);
ints[251] = ((t[165] & 0x3) << 28)
| ((t[166] & 0x3) << 26)
| ((t[167] & 0x3) << 24)
| ((t[168] & 0x3) << 22)
| ((t[169] & 0x3) << 20)
| ((t[170] & 0x3) << 18)
| ((t[171] & 0x3) << 16)
| ((t[172] & 0x3) << 14)
| ((t[173] & 0x3) << 12)
| ((t[174] & 0x3) << 10)
| ((t[175] & 0x3) << 8)
| ((t[176] & 0x3) << 6)
| ((t[177] & 0x3) << 4)
| ((t[178] & 0x3) << 2)
| (t[179] & 0x3);
ints[252] = ((t[180] & 0x3) << 28)
| ((t[181] & 0x3) << 26)
| ((t[182] & 0x3) << 24)
| ((t[183] & 0x3) << 22)
| ((t[184] & 0x3) << 20)
| ((t[185] & 0x3) << 18)
| ((t[186] & 0x3) << 16)
| ((t[187] & 0x3) << 14)
| ((t[188] & 0x3) << 12)
| ((t[189] & 0x3) << 10)
| ((t[190] & 0x3) << 8)
| ((t[191] & 0x3) << 6)
| ((t[192] & 0x3) << 4)
| ((t[193] & 0x3) << 2)
| (t[194] & 0x3);
ints[253] = ((t[195] & 0x3) << 28)
| ((t[196] & 0x3) << 26)
| ((t[197] & 0x3) << 24)
| ((t[198] & 0x3) << 22)
| ((t[199] & 0x3) << 20)
| ((t[200] & 0x3) << 18)
| ((t[201] & 0x3) << 16)
| ((t[202] & 0x3) << 14)
| ((t[203] & 0x3) << 12)
| ((t[204] & 0x3) << 10)
| ((t[205] & 0x3) << 8)
| ((t[206] & 0x3) << 6)
| ((t[207] & 0x3) << 4)
| ((t[208] & 0x3) << 2)
| (t[209] & 0x3);
ints[254] = ((t[210] & 0x3) << 28)
| ((t[211] & 0x3) << 26)
| ((t[212] & 0x3) << 24)
| ((t[213] & 0x3) << 22)
| ((t[214] & 0x3) << 20)
| ((t[215] & 0x3) << 18)
| ((t[216] & 0x3) << 16)
| ((t[217] & 0x3) << 14)
| ((t[218] & 0x3) << 12)
| ((t[219] & 0x3) << 10)
| ((t[220] & 0x3) << 8)
| ((t[221] & 0x3) << 6)
| ((t[222] & 0x3) << 4)
| ((t[223] & 0x3) << 2)
| (t[224] & 0x3);
ints[255] = ((t[225] & 0x3) << 28)
| ((t[226] & 0x3) << 26)
| ((t[227] & 0x3) << 24)
| ((t[228] & 0x3) << 22)
| ((t[229] & 0x3) << 20)
| ((t[230] & 0x3) << 18)
| ((t[231] & 0x3) << 16)
| ((t[232] & 0x3) << 14)
| ((t[233] & 0x3) << 12)
| ((t[234] & 0x3) << 10)
| ((t[235] & 0x3) << 8)
| ((t[236] & 0x3) << 6)
| ((t[237] & 0x3) << 4)
| ((t[238] & 0x3) << 2)
| (t[239] & 0x3);
}
#[inline(always)]
fn decode31(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 992] = src[..992].try_into().unwrap();
let mut t = [0u32; 248];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..248 {
ints[0 + i] = (t[i] >> 1) & 0x7fffffff;
}
ints[248] = ((t[0] & 0x1) << 30)
| ((t[1] & 0x1) << 29)
| ((t[2] & 0x1) << 28)
| ((t[3] & 0x1) << 27)
| ((t[4] & 0x1) << 26)
| ((t[5] & 0x1) << 25)
| ((t[6] & 0x1) << 24)
| ((t[7] & 0x1) << 23)
| ((t[8] & 0x1) << 22)
| ((t[9] & 0x1) << 21)
| ((t[10] & 0x1) << 20)
| ((t[11] & 0x1) << 19)
| ((t[12] & 0x1) << 18)
| ((t[13] & 0x1) << 17)
| ((t[14] & 0x1) << 16)
| ((t[15] & 0x1) << 15)
| ((t[16] & 0x1) << 14)
| ((t[17] & 0x1) << 13)
| ((t[18] & 0x1) << 12)
| ((t[19] & 0x1) << 11)
| ((t[20] & 0x1) << 10)
| ((t[21] & 0x1) << 9)
| ((t[22] & 0x1) << 8)
| ((t[23] & 0x1) << 7)
| ((t[24] & 0x1) << 6)
| ((t[25] & 0x1) << 5)
| ((t[26] & 0x1) << 4)
| ((t[27] & 0x1) << 3)
| ((t[28] & 0x1) << 2)
| ((t[29] & 0x1) << 1)
| (t[30] & 0x1);
ints[249] = ((t[31] & 0x1) << 30)
| ((t[32] & 0x1) << 29)
| ((t[33] & 0x1) << 28)
| ((t[34] & 0x1) << 27)
| ((t[35] & 0x1) << 26)
| ((t[36] & 0x1) << 25)
| ((t[37] & 0x1) << 24)
| ((t[38] & 0x1) << 23)
| ((t[39] & 0x1) << 22)
| ((t[40] & 0x1) << 21)
| ((t[41] & 0x1) << 20)
| ((t[42] & 0x1) << 19)
| ((t[43] & 0x1) << 18)
| ((t[44] & 0x1) << 17)
| ((t[45] & 0x1) << 16)
| ((t[46] & 0x1) << 15)
| ((t[47] & 0x1) << 14)
| ((t[48] & 0x1) << 13)
| ((t[49] & 0x1) << 12)
| ((t[50] & 0x1) << 11)
| ((t[51] & 0x1) << 10)
| ((t[52] & 0x1) << 9)
| ((t[53] & 0x1) << 8)
| ((t[54] & 0x1) << 7)
| ((t[55] & 0x1) << 6)
| ((t[56] & 0x1) << 5)
| ((t[57] & 0x1) << 4)
| ((t[58] & 0x1) << 3)
| ((t[59] & 0x1) << 2)
| ((t[60] & 0x1) << 1)
| (t[61] & 0x1);
ints[250] = ((t[62] & 0x1) << 30)
| ((t[63] & 0x1) << 29)
| ((t[64] & 0x1) << 28)
| ((t[65] & 0x1) << 27)
| ((t[66] & 0x1) << 26)
| ((t[67] & 0x1) << 25)
| ((t[68] & 0x1) << 24)
| ((t[69] & 0x1) << 23)
| ((t[70] & 0x1) << 22)
| ((t[71] & 0x1) << 21)
| ((t[72] & 0x1) << 20)
| ((t[73] & 0x1) << 19)
| ((t[74] & 0x1) << 18)
| ((t[75] & 0x1) << 17)
| ((t[76] & 0x1) << 16)
| ((t[77] & 0x1) << 15)
| ((t[78] & 0x1) << 14)
| ((t[79] & 0x1) << 13)
| ((t[80] & 0x1) << 12)
| ((t[81] & 0x1) << 11)
| ((t[82] & 0x1) << 10)
| ((t[83] & 0x1) << 9)
| ((t[84] & 0x1) << 8)
| ((t[85] & 0x1) << 7)
| ((t[86] & 0x1) << 6)
| ((t[87] & 0x1) << 5)
| ((t[88] & 0x1) << 4)
| ((t[89] & 0x1) << 3)
| ((t[90] & 0x1) << 2)
| ((t[91] & 0x1) << 1)
| (t[92] & 0x1);
ints[251] = ((t[93] & 0x1) << 30)
| ((t[94] & 0x1) << 29)
| ((t[95] & 0x1) << 28)
| ((t[96] & 0x1) << 27)
| ((t[97] & 0x1) << 26)
| ((t[98] & 0x1) << 25)
| ((t[99] & 0x1) << 24)
| ((t[100] & 0x1) << 23)
| ((t[101] & 0x1) << 22)
| ((t[102] & 0x1) << 21)
| ((t[103] & 0x1) << 20)
| ((t[104] & 0x1) << 19)
| ((t[105] & 0x1) << 18)
| ((t[106] & 0x1) << 17)
| ((t[107] & 0x1) << 16)
| ((t[108] & 0x1) << 15)
| ((t[109] & 0x1) << 14)
| ((t[110] & 0x1) << 13)
| ((t[111] & 0x1) << 12)
| ((t[112] & 0x1) << 11)
| ((t[113] & 0x1) << 10)
| ((t[114] & 0x1) << 9)
| ((t[115] & 0x1) << 8)
| ((t[116] & 0x1) << 7)
| ((t[117] & 0x1) << 6)
| ((t[118] & 0x1) << 5)
| ((t[119] & 0x1) << 4)
| ((t[120] & 0x1) << 3)
| ((t[121] & 0x1) << 2)
| ((t[122] & 0x1) << 1)
| (t[123] & 0x1);
ints[252] = ((t[124] & 0x1) << 30)
| ((t[125] & 0x1) << 29)
| ((t[126] & 0x1) << 28)
| ((t[127] & 0x1) << 27)
| ((t[128] & 0x1) << 26)
| ((t[129] & 0x1) << 25)
| ((t[130] & 0x1) << 24)
| ((t[131] & 0x1) << 23)
| ((t[132] & 0x1) << 22)
| ((t[133] & 0x1) << 21)
| ((t[134] & 0x1) << 20)
| ((t[135] & 0x1) << 19)
| ((t[136] & 0x1) << 18)
| ((t[137] & 0x1) << 17)
| ((t[138] & 0x1) << 16)
| ((t[139] & 0x1) << 15)
| ((t[140] & 0x1) << 14)
| ((t[141] & 0x1) << 13)
| ((t[142] & 0x1) << 12)
| ((t[143] & 0x1) << 11)
| ((t[144] & 0x1) << 10)
| ((t[145] & 0x1) << 9)
| ((t[146] & 0x1) << 8)
| ((t[147] & 0x1) << 7)
| ((t[148] & 0x1) << 6)
| ((t[149] & 0x1) << 5)
| ((t[150] & 0x1) << 4)
| ((t[151] & 0x1) << 3)
| ((t[152] & 0x1) << 2)
| ((t[153] & 0x1) << 1)
| (t[154] & 0x1);
ints[253] = ((t[155] & 0x1) << 30)
| ((t[156] & 0x1) << 29)
| ((t[157] & 0x1) << 28)
| ((t[158] & 0x1) << 27)
| ((t[159] & 0x1) << 26)
| ((t[160] & 0x1) << 25)
| ((t[161] & 0x1) << 24)
| ((t[162] & 0x1) << 23)
| ((t[163] & 0x1) << 22)
| ((t[164] & 0x1) << 21)
| ((t[165] & 0x1) << 20)
| ((t[166] & 0x1) << 19)
| ((t[167] & 0x1) << 18)
| ((t[168] & 0x1) << 17)
| ((t[169] & 0x1) << 16)
| ((t[170] & 0x1) << 15)
| ((t[171] & 0x1) << 14)
| ((t[172] & 0x1) << 13)
| ((t[173] & 0x1) << 12)
| ((t[174] & 0x1) << 11)
| ((t[175] & 0x1) << 10)
| ((t[176] & 0x1) << 9)
| ((t[177] & 0x1) << 8)
| ((t[178] & 0x1) << 7)
| ((t[179] & 0x1) << 6)
| ((t[180] & 0x1) << 5)
| ((t[181] & 0x1) << 4)
| ((t[182] & 0x1) << 3)
| ((t[183] & 0x1) << 2)
| ((t[184] & 0x1) << 1)
| (t[185] & 0x1);
ints[254] = ((t[186] & 0x1) << 30)
| ((t[187] & 0x1) << 29)
| ((t[188] & 0x1) << 28)
| ((t[189] & 0x1) << 27)
| ((t[190] & 0x1) << 26)
| ((t[191] & 0x1) << 25)
| ((t[192] & 0x1) << 24)
| ((t[193] & 0x1) << 23)
| ((t[194] & 0x1) << 22)
| ((t[195] & 0x1) << 21)
| ((t[196] & 0x1) << 20)
| ((t[197] & 0x1) << 19)
| ((t[198] & 0x1) << 18)
| ((t[199] & 0x1) << 17)
| ((t[200] & 0x1) << 16)
| ((t[201] & 0x1) << 15)
| ((t[202] & 0x1) << 14)
| ((t[203] & 0x1) << 13)
| ((t[204] & 0x1) << 12)
| ((t[205] & 0x1) << 11)
| ((t[206] & 0x1) << 10)
| ((t[207] & 0x1) << 9)
| ((t[208] & 0x1) << 8)
| ((t[209] & 0x1) << 7)
| ((t[210] & 0x1) << 6)
| ((t[211] & 0x1) << 5)
| ((t[212] & 0x1) << 4)
| ((t[213] & 0x1) << 3)
| ((t[214] & 0x1) << 2)
| ((t[215] & 0x1) << 1)
| (t[216] & 0x1);
ints[255] = ((t[217] & 0x1) << 30)
| ((t[218] & 0x1) << 29)
| ((t[219] & 0x1) << 28)
| ((t[220] & 0x1) << 27)
| ((t[221] & 0x1) << 26)
| ((t[222] & 0x1) << 25)
| ((t[223] & 0x1) << 24)
| ((t[224] & 0x1) << 23)
| ((t[225] & 0x1) << 22)
| ((t[226] & 0x1) << 21)
| ((t[227] & 0x1) << 20)
| ((t[228] & 0x1) << 19)
| ((t[229] & 0x1) << 18)
| ((t[230] & 0x1) << 17)
| ((t[231] & 0x1) << 16)
| ((t[232] & 0x1) << 15)
| ((t[233] & 0x1) << 14)
| ((t[234] & 0x1) << 13)
| ((t[235] & 0x1) << 12)
| ((t[236] & 0x1) << 11)
| ((t[237] & 0x1) << 10)
| ((t[238] & 0x1) << 9)
| ((t[239] & 0x1) << 8)
| ((t[240] & 0x1) << 7)
| ((t[241] & 0x1) << 6)
| ((t[242] & 0x1) << 5)
| ((t[243] & 0x1) << 4)
| ((t[244] & 0x1) << 3)
| ((t[245] & 0x1) << 2)
| ((t[246] & 0x1) << 1)
| (t[247] & 0x1);
}
#[inline(always)]
fn decode32(src: &[u8], ints: &mut [u32; 256]) {
let src: &[u8; 1024] = src[..1024].try_into().unwrap();
let mut t = [0u32; 256];
for (w, c) in t.iter_mut().zip(src.chunks_exact(4)) {
*w = u32::from_le_bytes(c.try_into().unwrap());
}
for i in 0..256 {
ints[0 + i] = (t[i] >> 0) & 0xffffffff;
}
}
#[inline]
pub fn decode(bpv: u32, src: &[u8], ints: &mut [u32; 256]) {
match bpv {
1 => decode1(src, ints),
2 => decode2(src, ints),
3 => decode3(src, ints),
4 => decode4(src, ints),
5 => decode5(src, ints),
6 => decode6(src, ints),
7 => decode7(src, ints),
8 => decode8(src, ints),
9 => decode9(src, ints),
10 => decode10(src, ints),
11 => decode11(src, ints),
12 => decode12(src, ints),
13 => decode13(src, ints),
14 => decode14(src, ints),
15 => decode15(src, ints),
16 => decode16(src, ints),
17 => decode17(src, ints),
18 => decode18(src, ints),
19 => decode19(src, ints),
20 => decode20(src, ints),
21 => decode21(src, ints),
22 => decode22(src, ints),
23 => decode23(src, ints),
24 => decode24(src, ints),
25 => decode25(src, ints),
26 => decode26(src, ints),
27 => decode27(src, ints),
28 => decode28(src, ints),
29 => decode29(src, ints),
30 => decode30(src, ints),
31 => decode31(src, ints),
32 => decode32(src, ints),
_ => panic!("invalid bits per value: {bpv}"),
}
}