Merge pull request #86 from zcash/patch-fixed-mul

Update formula for fixed-base window tables.
This commit is contained in:
str4d 2021-06-03 13:33:00 +01:00 committed by GitHub
commit c5aa41e2e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 5847 additions and 5837 deletions

View File

@ -107,14 +107,14 @@ impl<C: CurveAffine> FixedBase<C> for OrchardFixedBase<C> {
let mut window_table: Vec<[C; H]> = Vec::with_capacity(num_windows);
// Generate window table entries for all windows but the last.
// For these first `num_windows - 1` windows, we compute the multiple [(k+1)*(8^w)]B.
// For these first `num_windows - 1` windows, we compute the multiple [(k+2)*(2^3)^w]B.
// Here, w ranges from [0..`num_windows - 1`)
for w in 0..(num_windows - 1) {
window_table.push(
(0..H)
.map(|k| {
// scalar = (k+1)*(8^w)
let scalar = C::ScalarExt::from_u64(k as u64 + 1)
// scalar = (k+2)*(8^w)
let scalar = C::ScalarExt::from_u64(k as u64 + 2)
* C::ScalarExt::from_u64(H as u64).pow(&[w as u64, 0, 0, 0]);
(self.0 * scalar).to_affine()
})
@ -125,15 +125,20 @@ impl<C: CurveAffine> FixedBase<C> for OrchardFixedBase<C> {
}
// Generate window table entries for the last window, w = `num_windows - 1`.
// For the last window, we compute [k * (8^w) - sum]B, where sum is defined
// as sum = \sum_{j = 0}^{`num_windows - 2`} 8^j
let sum = (0..(num_windows - 1)).fold(C::ScalarExt::zero(), |acc, w| {
acc + C::ScalarExt::from_u64(H as u64).pow(&[w as u64, 0, 0, 0])
// For the last window, we compute [k * (2^3)^w - sum]B, where sum is defined
// as sum = \sum_{j = 0}^{`num_windows - 2`} 2^{3j+1}
let sum = (0..(num_windows - 1)).fold(C::ScalarExt::zero(), |acc, j| {
acc + C::ScalarExt::from_u64(2).pow(&[
FIXED_BASE_WINDOW_SIZE as u64 * j as u64 + 1,
0,
0,
0,
])
});
window_table.push(
(0..H)
.map(|k| {
// scalar = k * (8^w) - sum, where w = `num_windows - 1`
// scalar = k * (2^3)^w - sum, where w = `num_windows - 1`
let scalar = C::ScalarExt::from_u64(k as u64)
* C::ScalarExt::from_u64(H as u64).pow(&[
(num_windows - 1) as u64,
@ -218,7 +223,7 @@ trait TestFixedBase<C: CurveAffine> {
// 1. z + y = u^2,
// 2. z - y is not a square
// for the y-coordinate of each fixed-base multiple in each window.
fn test_z(&self, z: &[u64], u: &[[[u8; 32]; H]], num_windows: usize);
fn test_zs_and_us(&self, z: &[u64], u: &[[[u8; 32]; H]], num_windows: usize);
}
impl<C: CurveAffine> TestFixedBase<C> for OrchardFixedBase<C> {
@ -233,9 +238,9 @@ impl<C: CurveAffine> TestFixedBase<C> for OrchardFixedBase<C> {
// Interpolate the x-coordinate using this window's coefficients
let interpolated_x = util::evaluate::<C>(bits, coeffs);
// Compute the actual x-coordinate of the multiple [(k+1)*(8^w)]B.
// Compute the actual x-coordinate of the multiple [(k+2)*(8^w)]B.
let point = self.0
* C::Scalar::from_u64(bits as u64 + 1)
* C::Scalar::from_u64(bits as u64 + 2)
* C::Scalar::from_u64(H as u64).pow(&[idx as u64, 0, 0, 0]);
let x = *point.to_affine().coordinates().unwrap().x();
@ -251,9 +256,14 @@ impl<C: CurveAffine> TestFixedBase<C> for OrchardFixedBase<C> {
let interpolated_x = util::evaluate::<C>(bits, &lagrange_coeffs[num_windows - 1]);
// Compute the actual x-coordinate of the multiple [k * (8^84) - offset]B,
// where offset = \sum_{j = 0}^{83} 8^j
// where offset = \sum_{j = 0}^{83} 2^{3j+1}
let offset = (0..(num_windows - 1)).fold(C::Scalar::zero(), |acc, w| {
acc + C::Scalar::from_u64(H as u64).pow(&[w as u64, 0, 0, 0])
acc + C::Scalar::from_u64(2).pow(&[
FIXED_BASE_WINDOW_SIZE as u64 * w as u64 + 1,
0,
0,
0,
])
});
let scalar = C::Scalar::from_u64(bits as u64)
* C::Scalar::from_u64(H as u64).pow(&[(num_windows - 1) as u64, 0, 0, 0])
@ -266,7 +276,7 @@ impl<C: CurveAffine> TestFixedBase<C> for OrchardFixedBase<C> {
}
}
fn test_z(&self, z: &[u64], u: &[[[u8; 32]; H]], num_windows: usize) {
fn test_zs_and_us(&self, z: &[u64], u: &[[[u8; 32]; H]], num_windows: usize) {
let window_table = self.compute_window_table(num_windows);
for ((u, z), window_points) in u.iter().zip(z.iter()).zip(window_table) {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -16,221 +16,217 @@ pub const GENERATOR: ([u8; 32], [u8; 32]) = (
/// Short signed z-values for GENERATOR
pub const Z_SHORT: [u64; super::NUM_WINDOWS_SHORT] = [
159178, 83716, 37986, 35465, 96663, 56068, 39598, 2197, 184235, 13632, 185448, 4724, 77161,
38274, 68455, 144608, 35437, 202901, 33132, 71081, 80102, 38982,
163547, 76040, 88852, 128479, 54088, 89871, 39598, 144309, 43471, 102492, 741, 55288, 33756,
77312, 12095, 48253, 45718, 202901, 33132, 71081, 152108, 169712,
];
/// Short signed u-values for GENERATOR
pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [
[
[
153, 46, 168, 204, 151, 29, 111, 238, 183, 186, 226, 89, 34, 87, 219, 89, 132, 56, 191,
57, 17, 146, 88, 253, 50, 158, 206, 229, 219, 63, 157, 62,
16, 88, 158, 52, 92, 165, 59, 177, 224, 70, 108, 93, 144, 51, 8, 133, 114, 192, 151,
40, 85, 33, 52, 118, 147, 163, 220, 193, 171, 43, 73, 27,
],
[
78, 151, 207, 212, 243, 203, 197, 42, 77, 122, 201, 13, 11, 147, 105, 68, 18, 165, 40,
131, 115, 238, 90, 114, 7, 21, 183, 40, 95, 192, 16, 17,
201, 84, 190, 165, 219, 228, 63, 155, 182, 74, 179, 74, 230, 96, 89, 168, 110, 162, 83,
218, 185, 137, 194, 92, 244, 85, 1, 60, 59, 16, 119, 14,
],
[
47, 103, 89, 11, 163, 118, 73, 18, 129, 16, 210, 195, 176, 219, 122, 209, 15, 148, 210,
98, 241, 138, 211, 92, 45, 93, 248, 103, 59, 64, 134, 51,
113, 146, 25, 32, 206, 37, 173, 225, 58, 41, 184, 214, 177, 123, 211, 55, 42, 208, 214,
45, 149, 99, 31, 171, 172, 226, 219, 171, 246, 85, 116, 59,
],
[
49, 156, 150, 28, 35, 160, 77, 141, 230, 92, 208, 162, 81, 163, 84, 93, 83, 197, 214,
191, 101, 14, 194, 230, 155, 187, 97, 39, 20, 84, 38, 0,
10, 79, 89, 241, 37, 161, 115, 213, 183, 43, 68, 233, 219, 249, 131, 137, 41, 119, 153,
24, 92, 87, 138, 167, 93, 46, 32, 97, 102, 164, 164, 53,
],
[
20, 212, 159, 245, 212, 130, 77, 52, 26, 153, 202, 130, 18, 156, 170, 78, 71, 79, 44,
107, 191, 39, 56, 30, 220, 9, 30, 100, 186, 207, 88, 29,
50, 252, 2, 254, 234, 133, 190, 34, 244, 192, 31, 96, 156, 152, 150, 88, 154, 224, 223,
144, 223, 113, 203, 226, 214, 44, 69, 198, 171, 60, 26, 45,
],
[
121, 224, 153, 138, 229, 236, 10, 5, 240, 183, 95, 237, 114, 98, 107, 215, 68, 107, 26,
27, 56, 55, 35, 214, 109, 50, 32, 46, 138, 83, 153, 25,
151, 65, 173, 0, 249, 13, 78, 201, 84, 58, 255, 120, 124, 169, 98, 242, 239, 132, 149,
204, 146, 244, 55, 176, 56, 26, 19, 148, 125, 42, 26, 32,
],
[
220, 96, 235, 189, 75, 229, 77, 92, 162, 228, 61, 217, 38, 168, 144, 137, 87, 80, 28,
170, 254, 35, 16, 32, 153, 229, 113, 115, 204, 153, 49, 57,
6, 29, 196, 176, 135, 157, 248, 239, 196, 9, 100, 82, 220, 41, 203, 49, 35, 108, 76,
59, 222, 47, 82, 39, 35, 23, 88, 136, 61, 90, 23, 57,
],
[
18, 51, 85, 218, 253, 170, 105, 92, 210, 210, 74, 3, 124, 134, 94, 48, 17, 192, 92,
251, 225, 123, 121, 145, 217, 177, 220, 13, 189, 61, 120, 51,
169, 203, 101, 116, 220, 68, 34, 248, 199, 107, 202, 59, 111, 171, 90, 121, 119, 80,
146, 214, 191, 197, 220, 212, 125, 139, 12, 140, 198, 191, 110, 31,
],
],
[
[
227, 124, 121, 5, 119, 36, 70, 24, 48, 83, 26, 164, 36, 71, 70, 110, 166, 188, 140,
205, 105, 209, 178, 181, 32, 210, 84, 124, 152, 122, 160, 4,
16, 171, 139, 236, 248, 28, 27, 145, 109, 161, 63, 121, 19, 190, 106, 193, 13, 122,
108, 54, 95, 202, 195, 184, 118, 60, 72, 213, 154, 240, 52, 34,
],
[
174, 222, 65, 201, 15, 152, 12, 5, 206, 215, 218, 169, 51, 203, 1, 206, 108, 7, 119,
48, 145, 96, 175, 161, 90, 189, 175, 54, 171, 129, 92, 11,
131, 218, 16, 142, 97, 153, 190, 249, 118, 171, 187, 254, 21, 17, 202, 48, 107, 23,
103, 72, 159, 238, 228, 38, 183, 166, 74, 136, 77, 51, 85, 18,
],
[
245, 143, 178, 22, 72, 168, 1, 72, 30, 153, 202, 75, 85, 180, 135, 53, 37, 116, 34,
227, 68, 205, 245, 178, 12, 59, 240, 253, 219, 16, 192, 58,
137, 78, 204, 243, 154, 87, 148, 200, 11, 98, 58, 33, 89, 170, 198, 87, 29, 187, 167,
122, 157, 151, 5, 148, 254, 216, 113, 12, 158, 243, 102, 63,
],
[
16, 239, 163, 60, 241, 97, 64, 60, 57, 77, 249, 21, 25, 117, 125, 248, 236, 90, 15, 79,
231, 76, 39, 55, 0, 243, 156, 128, 253, 205, 51, 41,
16, 187, 216, 98, 244, 19, 70, 209, 217, 133, 240, 226, 111, 219, 247, 74, 4, 231, 183,
216, 35, 174, 192, 96, 129, 159, 39, 96, 200, 174, 126, 1,
],
[
22, 233, 138, 209, 178, 129, 253, 55, 253, 206, 81, 96, 0, 177, 160, 160, 187, 182,
241, 96, 75, 255, 180, 221, 85, 155, 134, 254, 35, 80, 98, 48,
185, 2, 174, 129, 110, 163, 212, 152, 214, 139, 105, 150, 23, 209, 185, 245, 71, 8,
171, 142, 43, 57, 167, 172, 233, 77, 194, 166, 118, 232, 127, 35,
],
[
108, 33, 2, 149, 244, 64, 77, 124, 72, 242, 137, 28, 150, 54, 144, 27, 167, 182, 166,
253, 154, 78, 247, 210, 157, 171, 129, 217, 120, 207, 75, 53,
57, 28, 236, 33, 234, 0, 214, 131, 161, 209, 42, 25, 194, 150, 82, 126, 216, 23, 81,
85, 90, 47, 95, 46, 119, 108, 253, 12, 92, 29, 13, 25,
],
[
54, 129, 115, 25, 34, 205, 90, 94, 223, 195, 209, 233, 122, 60, 74, 86, 123, 214, 49,
184, 48, 159, 67, 136, 36, 89, 145, 239, 225, 210, 130, 49,
100, 162, 156, 175, 254, 203, 69, 171, 182, 190, 85, 161, 94, 117, 225, 0, 95, 121,
190, 235, 79, 7, 147, 134, 48, 156, 113, 55, 114, 229, 174, 25,
],
[
208, 44, 184, 206, 64, 200, 3, 22, 50, 24, 254, 31, 205, 229, 202, 249, 170, 137, 84,
112, 236, 128, 107, 222, 210, 132, 192, 29, 237, 64, 158, 33,
243, 93, 223, 98, 132, 0, 171, 125, 135, 53, 111, 49, 49, 173, 69, 211, 62, 106, 168,
221, 115, 208, 2, 20, 14, 150, 124, 130, 189, 48, 16, 15,
],
],
[
[
130, 26, 212, 77, 3, 152, 153, 2, 140, 178, 15, 59, 78, 244, 89, 0, 231, 51, 134, 84,
4, 82, 46, 217, 182, 103, 201, 4, 101, 162, 93, 24,
43, 238, 4, 240, 186, 135, 47, 128, 185, 51, 70, 196, 3, 137, 22, 254, 29, 247, 161,
233, 187, 255, 239, 183, 150, 179, 8, 64, 90, 33, 17, 54,
],
[
49, 9, 84, 214, 21, 239, 175, 146, 156, 227, 151, 148, 235, 14, 37, 143, 1, 246, 46,
170, 164, 132, 233, 128, 23, 205, 37, 50, 224, 107, 28, 14,
20, 226, 19, 60, 92, 195, 1, 255, 100, 188, 89, 54, 98, 225, 138, 133, 26, 140, 202,
76, 107, 199, 46, 54, 167, 23, 119, 80, 19, 25, 34, 5,
],
[
62, 5, 248, 158, 136, 153, 126, 106, 189, 130, 44, 103, 217, 142, 140, 70, 218, 109,
17, 152, 237, 123, 63, 70, 185, 88, 83, 208, 179, 34, 85, 9,
145, 109, 10, 159, 200, 145, 32, 253, 32, 93, 187, 12, 66, 161, 44, 217, 16, 100, 225,
37, 139, 125, 169, 119, 83, 34, 96, 130, 234, 255, 138, 38,
],
[
4, 220, 212, 173, 66, 49, 55, 151, 52, 92, 78, 243, 173, 115, 186, 243, 249, 46, 185,
41, 26, 112, 163, 163, 54, 144, 174, 197, 247, 195, 189, 11,
148, 127, 71, 227, 195, 244, 12, 49, 83, 78, 218, 9, 176, 158, 12, 5, 194, 54, 44, 157,
252, 228, 175, 170, 54, 91, 49, 254, 83, 228, 180, 61,
],
[
187, 33, 40, 98, 41, 250, 164, 229, 249, 118, 119, 252, 34, 121, 27, 248, 183, 5, 93,
47, 255, 22, 99, 211, 180, 219, 99, 167, 115, 235, 228, 18,
36, 96, 238, 61, 227, 144, 153, 81, 121, 197, 74, 190, 35, 216, 255, 92, 70, 7, 168,
219, 130, 255, 172, 71, 200, 31, 142, 232, 255, 117, 96, 15,
],
[
150, 204, 119, 28, 142, 200, 201, 38, 90, 198, 195, 134, 100, 186, 35, 135, 125, 74,
56, 171, 124, 253, 68, 140, 239, 41, 145, 151, 205, 246, 178, 21,
50, 152, 255, 238, 188, 127, 140, 240, 203, 33, 246, 193, 228, 179, 25, 1, 227, 194,
79, 70, 41, 160, 83, 243, 148, 1, 95, 86, 63, 22, 55, 40,
],
[
92, 226, 116, 4, 211, 155, 116, 241, 26, 16, 253, 54, 141, 247, 31, 195, 94, 7, 58,
110, 95, 107, 71, 82, 163, 209, 81, 147, 149, 61, 1, 55,
99, 228, 147, 46, 232, 157, 225, 210, 45, 159, 169, 42, 184, 90, 3, 165, 62, 4, 93,
181, 74, 187, 112, 156, 26, 103, 199, 84, 132, 148, 14, 24,
],
[
199, 195, 138, 44, 202, 34, 152, 144, 252, 186, 240, 187, 244, 23, 26, 131, 250, 19,
185, 184, 68, 81, 3, 144, 85, 83, 15, 197, 63, 171, 226, 51,
120, 163, 182, 125, 197, 141, 122, 21, 166, 103, 203, 57, 160, 228, 242, 192, 203, 40,
233, 179, 8, 173, 199, 21, 213, 215, 222, 129, 23, 153, 25, 29,
],
],
[
[
17, 4, 104, 42, 235, 67, 15, 174, 182, 95, 23, 242, 27, 16, 57, 138, 180, 251, 34, 229,
175, 13, 100, 38, 98, 56, 64, 255, 4, 25, 223, 9,
189, 6, 27, 46, 68, 6, 124, 69, 159, 212, 18, 104, 218, 16, 66, 183, 250, 92, 69, 5,
218, 234, 31, 198, 123, 100, 216, 103, 106, 113, 192, 43,
],
[
120, 156, 69, 234, 42, 249, 66, 154, 17, 134, 93, 118, 77, 193, 108, 194, 1, 111, 201,
97, 56, 111, 44, 62, 50, 55, 201, 84, 75, 217, 228, 32,
226, 152, 83, 159, 143, 155, 164, 90, 171, 100, 22, 240, 187, 26, 55, 172, 170, 133,
128, 192, 29, 33, 35, 8, 59, 142, 20, 204, 151, 172, 29, 28,
],
[
66, 85, 87, 72, 109, 174, 100, 76, 16, 236, 131, 70, 255, 154, 212, 219, 149, 246, 140,
81, 186, 188, 65, 114, 21, 64, 136, 191, 88, 178, 227, 37,
196, 57, 232, 112, 46, 200, 26, 93, 224, 191, 117, 154, 9, 47, 228, 145, 122, 137, 238,
236, 70, 14, 112, 163, 96, 140, 239, 122, 75, 200, 206, 12,
],
[
199, 11, 98, 233, 40, 76, 11, 202, 68, 149, 205, 238, 244, 70, 62, 217, 79, 115, 123,
253, 13, 39, 173, 40, 146, 97, 250, 90, 157, 234, 142, 59,
91, 66, 65, 159, 86, 50, 113, 39, 30, 12, 213, 235, 15, 70, 163, 119, 112, 27, 22, 170,
151, 20, 71, 172, 65, 251, 224, 76, 26, 189, 118, 42,
],
[
158, 190, 3, 192, 131, 141, 230, 62, 210, 233, 113, 128, 116, 83, 204, 48, 118, 188,
106, 164, 207, 52, 131, 218, 176, 178, 172, 83, 190, 248, 203, 43,
195, 200, 87, 207, 125, 122, 254, 50, 24, 40, 189, 169, 237, 228, 134, 66, 37, 220, 23,
98, 202, 193, 152, 184, 171, 63, 105, 11, 70, 94, 154, 58,
],
[
109, 254, 80, 40, 139, 23, 150, 31, 6, 5, 16, 145, 179, 120, 92, 232, 191, 186, 82,
197, 150, 233, 113, 56, 5, 227, 138, 187, 170, 217, 231, 52,
4, 0, 82, 125, 41, 130, 11, 238, 112, 201, 95, 30, 144, 31, 31, 233, 86, 121, 145, 200,
204, 89, 182, 51, 151, 169, 58, 206, 184, 219, 181, 46,
],
[
147, 15, 203, 82, 167, 73, 219, 132, 148, 4, 190, 161, 68, 125, 57, 114, 143, 202, 79,
215, 5, 211, 60, 222, 233, 248, 210, 166, 112, 14, 181, 31,
36, 240, 60, 205, 120, 239, 9, 98, 61, 228, 247, 9, 145, 71, 67, 10, 164, 160, 186,
104, 25, 225, 210, 37, 31, 42, 58, 208, 44, 19, 30, 29,
],
[
95, 44, 184, 188, 177, 131, 106, 227, 134, 185, 12, 23, 220, 220, 99, 31, 129, 233,
167, 17, 183, 162, 57, 32, 240, 201, 247, 42, 107, 62, 210, 33,
163, 214, 140, 64, 48, 239, 54, 175, 108, 32, 187, 248, 142, 77, 244, 117, 10, 236, 39,
80, 158, 44, 98, 44, 248, 24, 208, 60, 173, 247, 115, 28,
],
],
[
[
77, 253, 167, 23, 71, 68, 62, 161, 227, 65, 147, 78, 129, 206, 208, 119, 242, 12, 126,
217, 8, 64, 33, 57, 12, 77, 247, 101, 63, 247, 76, 56,
230, 166, 7, 118, 178, 55, 26, 250, 91, 159, 230, 158, 34, 135, 91, 49, 166, 244, 124,
175, 86, 228, 159, 119, 231, 15, 19, 199, 219, 85, 233, 19,
],
[
247, 217, 213, 0, 240, 169, 14, 208, 209, 107, 3, 113, 213, 84, 55, 121, 39, 38, 92,
195, 126, 39, 95, 19, 169, 226, 238, 75, 118, 171, 78, 0,
65, 240, 77, 9, 197, 255, 96, 35, 239, 161, 177, 115, 83, 114, 180, 179, 118, 158, 220,
61, 177, 3, 175, 70, 132, 51, 87, 79, 36, 104, 129, 15,
],
[
49, 250, 131, 43, 24, 104, 104, 133, 219, 231, 76, 142, 163, 69, 114, 251, 235, 207,
231, 52, 11, 59, 156, 25, 166, 216, 174, 158, 152, 192, 240, 2,
245, 9, 141, 218, 228, 57, 204, 250, 83, 156, 160, 158, 146, 157, 206, 198, 16, 94, 80,
59, 31, 242, 163, 30, 80, 99, 32, 142, 193, 101, 172, 22,
],
[
3, 73, 181, 128, 160, 75, 195, 196, 168, 101, 112, 207, 75, 175, 240, 110, 61, 9, 160,
187, 211, 129, 123, 199, 153, 160, 182, 76, 163, 96, 204, 18,
22, 68, 73, 27, 236, 149, 225, 78, 69, 83, 174, 202, 98, 113, 148, 167, 43, 132, 118,
49, 153, 96, 186, 134, 20, 103, 123, 48, 75, 104, 207, 6,
],
[
255, 45, 150, 115, 143, 93, 60, 226, 254, 164, 93, 6, 184, 26, 111, 174, 218, 175, 106,
149, 43, 229, 124, 223, 8, 59, 175, 10, 162, 73, 223, 24,
186, 5, 66, 183, 166, 255, 222, 14, 34, 0, 105, 167, 36, 11, 210, 228, 91, 103, 65,
248, 3, 48, 117, 240, 180, 214, 201, 222, 5, 202, 103, 42,
],
[
31, 79, 47, 83, 99, 236, 199, 48, 190, 184, 30, 68, 88, 121, 147, 124, 246, 18, 28, 10,
137, 1, 13, 121, 172, 79, 213, 93, 69, 230, 185, 36,
231, 31, 19, 122, 240, 72, 34, 93, 204, 125, 90, 215, 124, 174, 124, 28, 145, 103, 126,
178, 1, 9, 152, 240, 251, 118, 14, 195, 197, 167, 136, 22,
],
[
231, 161, 8, 164, 24, 32, 161, 104, 194, 100, 34, 125, 85, 117, 9, 156, 180, 228, 43,
134, 6, 215, 192, 121, 197, 135, 156, 11, 30, 254, 155, 53,
121, 57, 39, 104, 26, 135, 98, 221, 85, 199, 94, 230, 223, 129, 28, 191, 185, 0, 46,
200, 72, 116, 202, 255, 80, 180, 13, 98, 229, 217, 238, 17,
],
[
233, 26, 0, 17, 192, 101, 179, 154, 40, 76, 102, 176, 25, 156, 148, 7, 11, 51, 6, 248,
30, 124, 151, 39, 43, 58, 45, 56, 209, 190, 157, 35,
228, 158, 59, 241, 50, 224, 177, 78, 8, 121, 211, 157, 95, 196, 88, 59, 85, 141, 134,
50, 123, 168, 175, 115, 240, 153, 223, 61, 71, 229, 77, 10,
],
],
[
[
106, 68, 250, 74, 120, 174, 206, 236, 170, 168, 66, 56, 76, 179, 81, 21, 62, 240, 168,
123, 232, 134, 163, 155, 129, 114, 33, 41, 37, 203, 85, 7,
196, 151, 212, 168, 230, 19, 214, 179, 118, 17, 196, 50, 76, 231, 114, 80, 178, 137,
232, 241, 60, 2, 0, 124, 25, 239, 98, 131, 220, 159, 221, 51,
],
[
200, 243, 177, 92, 234, 192, 223, 156, 194, 225, 114, 2, 206, 71, 95, 111, 23, 210, 67,
194, 250, 61, 182, 216, 111, 250, 220, 198, 179, 49, 146, 34,
207, 216, 50, 53, 106, 200, 85, 166, 137, 33, 29, 239, 97, 46, 104, 218, 177, 150, 178,
64, 232, 238, 208, 98, 103, 58, 233, 97, 1, 243, 73, 5,
],
[
126, 28, 101, 44, 29, 211, 53, 230, 99, 67, 141, 52, 206, 211, 95, 45, 185, 194, 1, 27,
210, 110, 230, 3, 240, 124, 166, 27, 4, 181, 9, 63,
174, 215, 22, 124, 193, 136, 79, 91, 111, 146, 51, 128, 249, 129, 203, 168, 157, 164,
252, 144, 206, 10, 63, 253, 250, 113, 251, 65, 218, 23, 12, 25,
],
[
148, 47, 48, 248, 130, 150, 62, 70, 152, 52, 252, 194, 49, 43, 225, 196, 186, 216, 140,
67, 11, 100, 96, 161, 130, 217, 187, 216, 137, 183, 1, 8,
186, 92, 109, 134, 176, 198, 214, 156, 148, 7, 106, 121, 226, 70, 250, 192, 180, 164,
16, 29, 245, 196, 155, 183, 214, 26, 3, 26, 249, 134, 153, 38,
],
[
194, 203, 116, 188, 172, 186, 63, 160, 76, 78, 14, 93, 42, 68, 203, 76, 121, 150, 195,
128, 22, 27, 11, 153, 56, 70, 194, 66, 9, 151, 34, 16,
244, 56, 170, 227, 236, 145, 153, 150, 166, 77, 201, 48, 100, 130, 204, 194, 108, 207,
3, 243, 227, 41, 45, 8, 136, 106, 58, 70, 126, 3, 132, 59,
],
[
91, 14, 43, 45, 236, 194, 81, 185, 209, 54, 139, 49, 225, 153, 193, 88, 30, 225, 97,
20, 36, 206, 124, 136, 222, 204, 86, 186, 66, 89, 225, 26,
215, 169, 24, 118, 5, 192, 171, 217, 47, 86, 212, 249, 228, 92, 248, 103, 242, 222, 17,
206, 36, 157, 126, 224, 105, 113, 239, 102, 54, 25, 151, 14,
],
[
109, 226, 156, 117, 89, 202, 163, 238, 48, 253, 145, 86, 124, 31, 52, 237, 184, 247,
204, 129, 138, 160, 12, 228, 4, 176, 195, 65, 153, 196, 68, 50,
129, 213, 202, 163, 74, 201, 249, 43, 200, 62, 4, 232, 68, 211, 44, 153, 25, 71, 155,
5, 93, 19, 117, 195, 201, 179, 158, 207, 252, 213, 166, 62,
],
[
19, 135, 6, 142, 64, 78, 165, 253, 217, 155, 153, 41, 145, 248, 98, 122, 63, 157, 59,
170, 195, 100, 143, 83, 152, 181, 181, 120, 8, 144, 154, 1,
86, 75, 236, 222, 217, 118, 49, 0, 141, 130, 201, 248, 34, 225, 69, 91, 186, 90, 246,
36, 141, 152, 166, 216, 118, 7, 38, 133, 147, 190, 79, 3,
],
],
[
[
106, 126, 53, 197, 57, 109, 74, 130, 226, 176, 100, 39, 206, 139, 109, 236, 160, 137,
86, 230, 232, 240, 54, 243, 204, 219, 77, 157, 204, 231, 111, 36,
],
[
226, 55, 121, 73, 104, 77, 129, 202, 168, 123, 192, 163, 28, 9, 195, 37, 116, 207, 125,
198, 203, 244, 121, 236, 232, 91, 168, 14, 142, 241, 250, 60,
@ -259,352 +255,352 @@ pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [
38, 147, 223, 169, 68, 76, 49, 169, 137, 141, 72, 63, 166, 88, 34, 220, 163, 91, 167,
251, 29, 160, 254, 199, 205, 74, 158, 105, 252, 182, 158, 21,
],
[
221, 44, 183, 72, 226, 191, 226, 165, 162, 153, 186, 190, 97, 53, 19, 115, 215, 71,
155, 33, 79, 120, 197, 228, 216, 212, 249, 15, 179, 11, 216, 32,
],
],
[
[
80, 212, 229, 122, 178, 246, 252, 158, 36, 72, 150, 94, 148, 186, 85, 230, 199, 137,
172, 37, 63, 109, 220, 54, 95, 11, 10, 193, 208, 223, 49, 62,
248, 136, 25, 30, 234, 18, 242, 209, 97, 211, 74, 228, 236, 199, 101, 200, 206, 52,
146, 207, 72, 125, 28, 3, 60, 86, 34, 195, 250, 251, 204, 0,
],
[
189, 222, 8, 252, 190, 238, 142, 250, 125, 255, 46, 11, 111, 167, 161, 95, 166, 213,
250, 67, 181, 26, 148, 21, 146, 253, 190, 125, 117, 248, 70, 29,
204, 182, 197, 171, 247, 159, 161, 27, 18, 146, 249, 99, 198, 138, 25, 61, 119, 232,
160, 152, 18, 149, 7, 67, 125, 231, 237, 3, 68, 190, 137, 0,
],
[
194, 36, 228, 204, 211, 157, 88, 125, 121, 194, 226, 198, 206, 214, 198, 248, 57, 24,
28, 125, 252, 114, 46, 255, 69, 85, 221, 119, 146, 92, 31, 27,
141, 245, 108, 181, 49, 171, 106, 247, 202, 169, 106, 39, 93, 40, 122, 2, 236, 255,
198, 215, 122, 254, 242, 192, 49, 250, 243, 35, 7, 219, 21, 22,
],
[
95, 162, 248, 234, 208, 229, 136, 182, 8, 63, 218, 209, 7, 28, 203, 245, 147, 30, 14,
204, 227, 198, 61, 14, 215, 149, 160, 32, 146, 36, 126, 16,
239, 85, 174, 15, 207, 84, 128, 92, 87, 80, 129, 20, 21, 225, 233, 158, 193, 136, 141,
114, 66, 146, 29, 193, 223, 250, 27, 56, 195, 15, 135, 17,
],
[
126, 195, 159, 66, 184, 207, 152, 70, 49, 131, 6, 95, 216, 136, 255, 17, 60, 12, 68,
204, 163, 99, 196, 88, 220, 176, 175, 55, 116, 77, 40, 5,
231, 242, 76, 43, 57, 10, 41, 166, 32, 254, 129, 47, 147, 118, 189, 200, 44, 102, 204,
116, 96, 82, 186, 150, 106, 27, 30, 73, 237, 94, 36, 44,
],
[
99, 64, 77, 7, 247, 175, 27, 149, 130, 207, 130, 207, 27, 52, 10, 136, 225, 106, 192,
253, 68, 114, 207, 62, 185, 114, 103, 44, 218, 165, 152, 44,
240, 139, 69, 197, 199, 228, 206, 96, 255, 229, 189, 207, 65, 97, 93, 211, 161, 190,
228, 249, 50, 82, 223, 251, 13, 173, 241, 221, 78, 243, 105, 19,
],
[
149, 134, 178, 63, 251, 236, 111, 9, 228, 145, 19, 82, 145, 179, 130, 252, 194, 128, 4,
197, 23, 78, 53, 233, 113, 210, 138, 3, 74, 243, 75, 54,
44, 224, 170, 161, 50, 93, 212, 80, 100, 243, 51, 74, 51, 165, 60, 208, 244, 18, 158,
30, 158, 81, 111, 213, 136, 95, 125, 173, 143, 108, 106, 4,
],
[
255, 141, 71, 29, 12, 174, 6, 74, 168, 248, 132, 218, 221, 211, 123, 112, 147, 25, 79,
26, 142, 80, 82, 73, 121, 196, 136, 238, 174, 192, 252, 53,
134, 244, 131, 92, 152, 118, 30, 139, 153, 128, 62, 115, 88, 25, 58, 29, 205, 101, 47,
208, 93, 89, 222, 17, 122, 112, 71, 56, 147, 68, 92, 22,
],
],
[
[
17, 202, 87, 54, 219, 198, 233, 183, 192, 167, 70, 106, 246, 217, 202, 14, 164, 147,
29, 189, 238, 131, 28, 210, 28, 233, 187, 1, 20, 95, 28, 33,
59, 157, 112, 130, 217, 2, 102, 228, 79, 211, 152, 82, 183, 186, 47, 151, 125, 13, 97,
121, 115, 253, 17, 121, 227, 250, 99, 14, 84, 249, 18, 30,
],
[
168, 63, 171, 45, 83, 4, 202, 196, 171, 64, 167, 178, 160, 214, 149, 33, 118, 209, 130,
169, 17, 4, 28, 5, 36, 114, 226, 130, 174, 14, 39, 2,
80, 180, 155, 59, 6, 182, 136, 39, 134, 168, 238, 138, 129, 174, 195, 206, 210, 167,
214, 167, 35, 139, 130, 27, 21, 59, 7, 200, 165, 37, 91, 29,
],
[
107, 118, 45, 61, 198, 20, 156, 210, 238, 106, 45, 192, 184, 2, 138, 178, 48, 4, 229,
99, 186, 229, 138, 219, 38, 249, 85, 216, 32, 135, 46, 28,
220, 228, 189, 172, 68, 102, 135, 236, 7, 70, 152, 244, 120, 217, 67, 44, 43, 74, 155,
179, 2, 148, 106, 238, 232, 186, 181, 130, 141, 114, 60, 1,
],
[
32, 225, 192, 38, 53, 107, 221, 198, 147, 190, 171, 83, 41, 244, 26, 2, 207, 184, 61,
241, 53, 142, 126, 121, 8, 23, 116, 230, 154, 67, 169, 4,
68, 132, 80, 55, 28, 52, 222, 165, 156, 6, 214, 236, 207, 37, 223, 118, 42, 55, 40,
123, 208, 181, 240, 56, 14, 142, 58, 72, 193, 71, 120, 58,
],
[
203, 188, 146, 157, 208, 20, 27, 107, 237, 56, 122, 96, 81, 240, 205, 5, 80, 250, 5,
22, 145, 108, 14, 215, 16, 186, 40, 0, 75, 188, 66, 35,
93, 114, 68, 232, 179, 37, 202, 74, 41, 64, 245, 112, 233, 162, 231, 19, 223, 207, 232,
213, 178, 60, 106, 26, 35, 191, 108, 19, 243, 220, 40, 41,
],
[
133, 132, 221, 169, 128, 214, 246, 220, 209, 152, 149, 251, 52, 100, 56, 187, 27, 101,
38, 72, 46, 77, 185, 14, 253, 6, 205, 55, 171, 222, 12, 35,
166, 223, 96, 196, 120, 210, 67, 47, 249, 123, 164, 213, 148, 138, 7, 155, 96, 222,
176, 166, 88, 85, 95, 71, 221, 237, 138, 181, 198, 165, 163, 0,
],
[
149, 171, 108, 161, 232, 203, 112, 176, 23, 11, 4, 28, 35, 197, 90, 77, 251, 14, 49, 7,
111, 46, 70, 251, 239, 198, 123, 30, 91, 45, 190, 62,
241, 254, 24, 83, 47, 65, 146, 151, 5, 182, 233, 205, 182, 13, 75, 173, 10, 14, 48,
223, 227, 201, 141, 212, 114, 205, 196, 92, 137, 253, 127, 60,
],
[
1, 138, 134, 124, 193, 231, 58, 48, 93, 215, 224, 34, 229, 186, 63, 123, 20, 29, 7,
216, 64, 235, 206, 168, 137, 101, 197, 145, 161, 86, 127, 40,
20, 41, 204, 77, 168, 230, 68, 202, 73, 251, 254, 88, 95, 80, 130, 216, 122, 75, 173,
105, 236, 192, 177, 209, 26, 66, 205, 127, 154, 188, 245, 17,
],
],
[
[
5, 129, 208, 74, 135, 91, 10, 243, 31, 197, 67, 212, 198, 55, 245, 119, 115, 164, 115,
180, 43, 240, 8, 153, 75, 116, 148, 231, 43, 201, 5, 19,
239, 194, 214, 218, 225, 244, 0, 110, 12, 75, 130, 236, 76, 102, 205, 64, 104, 144,
198, 188, 183, 46, 119, 96, 230, 68, 210, 161, 253, 91, 8, 20,
],
[
211, 241, 132, 151, 202, 132, 40, 117, 214, 144, 142, 114, 236, 112, 10, 4, 36, 112,
187, 110, 74, 58, 95, 248, 87, 103, 131, 170, 11, 66, 255, 28,
84, 32, 226, 77, 213, 16, 207, 156, 234, 224, 147, 173, 186, 249, 186, 155, 90, 255,
34, 55, 48, 108, 76, 214, 254, 66, 95, 200, 174, 191, 52, 43,
],
[
196, 216, 22, 89, 209, 155, 195, 237, 36, 71, 157, 24, 117, 91, 102, 252, 101, 255, 79,
212, 95, 59, 15, 96, 185, 248, 83, 103, 8, 9, 0, 1,
37, 103, 206, 174, 250, 172, 136, 87, 30, 68, 89, 230, 110, 190, 148, 71, 5, 249, 217,
112, 54, 182, 127, 54, 173, 89, 6, 63, 230, 69, 32, 35,
],
[
112, 24, 254, 77, 67, 246, 3, 198, 255, 83, 119, 40, 121, 57, 66, 247, 82, 3, 50, 139,
253, 167, 11, 163, 194, 254, 227, 58, 101, 191, 17, 27,
160, 186, 242, 212, 179, 197, 16, 239, 56, 24, 91, 241, 68, 7, 138, 200, 93, 194, 45,
155, 210, 60, 30, 4, 167, 246, 82, 244, 71, 217, 31, 20,
],
[
83, 37, 71, 248, 142, 50, 244, 40, 122, 194, 76, 69, 5, 224, 224, 253, 102, 185, 37,
216, 123, 194, 83, 202, 164, 26, 120, 69, 4, 254, 53, 35,
182, 132, 62, 134, 4, 186, 95, 160, 230, 255, 125, 156, 5, 134, 66, 99, 83, 182, 156,
207, 98, 84, 197, 48, 160, 47, 126, 2, 253, 64, 69, 25,
],
[
102, 209, 65, 202, 32, 154, 57, 246, 102, 49, 216, 155, 46, 70, 216, 36, 231, 136, 234,
43, 186, 139, 107, 56, 198, 137, 109, 188, 182, 5, 186, 44,
135, 241, 60, 121, 32, 218, 195, 61, 68, 66, 190, 195, 208, 2, 201, 111, 158, 101, 108,
228, 145, 141, 82, 80, 36, 16, 157, 212, 65, 213, 188, 61,
],
[
92, 67, 196, 191, 134, 144, 22, 92, 155, 84, 154, 91, 152, 203, 73, 44, 241, 130, 48,
13, 131, 21, 81, 11, 193, 29, 160, 248, 12, 237, 89, 13,
190, 186, 202, 30, 121, 177, 200, 82, 245, 162, 14, 253, 114, 50, 43, 134, 246, 12,
100, 222, 149, 242, 117, 174, 136, 192, 117, 132, 228, 144, 238, 39,
],
[
224, 213, 123, 250, 119, 38, 253, 41, 101, 211, 51, 53, 227, 252, 30, 148, 19, 180,
140, 71, 179, 5, 181, 69, 196, 8, 92, 43, 120, 145, 54, 52,
160, 120, 19, 13, 34, 38, 71, 236, 116, 162, 150, 254, 247, 252, 222, 198, 196, 59, 98,
165, 54, 33, 22, 120, 58, 73, 225, 42, 37, 211, 88, 21,
],
],
[
[
97, 176, 133, 117, 14, 106, 235, 82, 96, 105, 166, 142, 37, 48, 135, 52, 161, 113, 8,
87, 2, 26, 166, 156, 68, 239, 17, 242, 80, 200, 57, 18,
252, 1, 229, 131, 50, 189, 111, 31, 191, 210, 177, 219, 234, 21, 100, 182, 115, 212,
154, 111, 130, 59, 237, 32, 142, 202, 110, 96, 166, 120, 188, 1,
],
[
134, 86, 222, 149, 100, 74, 103, 52, 24, 190, 116, 148, 163, 145, 218, 159, 229, 42,
198, 203, 19, 108, 165, 5, 31, 48, 12, 11, 124, 4, 118, 1,
247, 244, 137, 120, 38, 62, 94, 38, 17, 38, 102, 240, 225, 129, 15, 214, 213, 142, 79,
176, 156, 118, 85, 80, 167, 47, 122, 152, 206, 19, 67, 40,
],
[
108, 132, 32, 131, 165, 23, 140, 40, 68, 3, 58, 175, 73, 192, 163, 229, 27, 102, 250,
11, 219, 210, 184, 182, 196, 66, 3, 145, 105, 176, 107, 24,
27, 159, 102, 201, 17, 4, 75, 28, 159, 5, 194, 6, 63, 104, 157, 219, 53, 38, 84, 216,
73, 181, 11, 118, 29, 177, 147, 135, 150, 5, 58, 10,
],
[
5, 115, 97, 133, 217, 251, 226, 160, 238, 161, 182, 81, 189, 67, 203, 82, 188, 239, 12,
29, 250, 251, 16, 159, 120, 131, 96, 195, 77, 6, 223, 21,
97, 168, 102, 245, 40, 187, 155, 99, 147, 65, 114, 119, 191, 225, 196, 34, 117, 134,
116, 162, 73, 69, 158, 103, 144, 16, 22, 216, 146, 38, 10, 41,
],
[
253, 255, 134, 37, 149, 71, 138, 247, 209, 153, 94, 101, 75, 226, 150, 65, 5, 182, 237,
206, 115, 57, 251, 49, 46, 169, 231, 160, 242, 165, 192, 47,
149, 231, 10, 10, 17, 16, 88, 231, 24, 215, 115, 237, 123, 68, 9, 209, 24, 141, 150,
207, 109, 56, 107, 192, 252, 112, 156, 0, 65, 234, 86, 10,
],
[
180, 228, 150, 39, 165, 166, 112, 144, 165, 33, 96, 19, 157, 14, 117, 106, 109, 249,
19, 246, 75, 123, 128, 130, 102, 72, 88, 234, 233, 88, 179, 25,
201, 24, 6, 113, 122, 123, 58, 3, 233, 141, 78, 228, 137, 112, 71, 121, 200, 171, 158,
233, 87, 171, 121, 118, 205, 98, 38, 24, 176, 153, 170, 25,
],
[
237, 124, 236, 122, 215, 145, 238, 202, 95, 40, 77, 0, 171, 142, 150, 124, 45, 13, 121,
54, 235, 72, 126, 40, 122, 60, 56, 226, 39, 126, 108, 30,
6, 114, 137, 241, 204, 203, 173, 160, 14, 124, 220, 164, 166, 224, 0, 253, 255, 68, 40,
182, 248, 135, 226, 25, 213, 247, 45, 116, 94, 147, 107, 3,
],
[
213, 60, 110, 70, 142, 244, 74, 101, 149, 230, 144, 245, 147, 160, 212, 228, 145, 45,
75, 172, 185, 18, 175, 156, 165, 47, 67, 20, 218, 254, 100, 60,
73, 103, 138, 222, 168, 203, 85, 216, 242, 63, 127, 158, 153, 60, 168, 180, 234, 71,
27, 10, 38, 161, 207, 26, 81, 150, 195, 37, 91, 228, 57, 46,
],
],
[
[
188, 73, 176, 13, 112, 29, 179, 188, 248, 239, 147, 149, 101, 35, 162, 70, 14, 173, 69,
222, 162, 137, 183, 122, 249, 47, 22, 162, 191, 108, 60, 6,
188, 220, 107, 162, 250, 116, 137, 134, 75, 73, 102, 28, 11, 158, 166, 162, 77, 99,
159, 21, 166, 195, 208, 99, 28, 0, 51, 64, 126, 222, 203, 28,
],
[
208, 151, 12, 84, 84, 37, 232, 61, 224, 192, 135, 214, 197, 23, 250, 130, 73, 218, 75,
80, 245, 244, 93, 196, 38, 81, 85, 252, 45, 90, 115, 28,
115, 93, 10, 209, 3, 81, 82, 191, 158, 74, 26, 242, 145, 24, 85, 106, 28, 36, 54, 17,
216, 109, 58, 102, 221, 11, 10, 157, 226, 90, 53, 3,
],
[
83, 136, 7, 156, 53, 41, 144, 19, 39, 207, 74, 219, 202, 30, 35, 213, 83, 80, 105, 69,
222, 179, 247, 12, 243, 13, 21, 200, 163, 124, 226, 0,
197, 172, 174, 245, 150, 142, 92, 221, 45, 118, 174, 8, 83, 195, 45, 83, 221, 212, 122,
239, 218, 103, 89, 56, 184, 102, 73, 70, 1, 40, 246, 54,
],
[
112, 73, 8, 180, 210, 107, 238, 30, 162, 126, 190, 10, 140, 65, 234, 9, 43, 164, 18,
50, 125, 130, 21, 142, 132, 63, 86, 22, 228, 56, 109, 33,
131, 77, 239, 236, 59, 58, 35, 163, 25, 57, 251, 93, 224, 202, 225, 84, 189, 195, 1,
234, 156, 138, 3, 2, 102, 170, 173, 235, 97, 41, 224, 0,
],
[
145, 217, 254, 30, 44, 166, 2, 12, 40, 58, 196, 159, 250, 138, 240, 255, 215, 242, 207,
121, 191, 230, 111, 26, 43, 77, 129, 5, 179, 154, 153, 34,
251, 165, 141, 221, 2, 154, 174, 224, 120, 187, 163, 188, 37, 146, 49, 193, 150, 241,
183, 33, 12, 228, 96, 92, 105, 198, 238, 59, 247, 172, 247, 54,
],
[
79, 3, 179, 228, 85, 136, 134, 130, 195, 35, 185, 12, 235, 5, 239, 161, 140, 42, 77,
85, 141, 193, 174, 81, 90, 138, 94, 190, 111, 17, 5, 50,
31, 84, 10, 130, 68, 107, 203, 153, 201, 34, 69, 151, 1, 180, 37, 198, 113, 64, 82,
116, 116, 142, 251, 62, 22, 122, 138, 130, 200, 159, 145, 2,
],
[
122, 231, 131, 177, 128, 13, 32, 195, 176, 45, 202, 20, 9, 30, 88, 54, 234, 239, 97,
198, 218, 175, 181, 166, 60, 156, 64, 28, 119, 96, 76, 2,
229, 126, 102, 192, 242, 5, 109, 247, 248, 70, 34, 78, 35, 23, 81, 67, 34, 226, 133,
119, 200, 242, 142, 111, 223, 102, 159, 61, 162, 226, 222, 11,
],
[
228, 67, 105, 12, 196, 88, 251, 253, 148, 19, 77, 81, 26, 146, 204, 184, 28, 25, 186,
250, 191, 129, 240, 53, 216, 249, 253, 77, 95, 46, 193, 55,
171, 0, 253, 102, 188, 223, 208, 250, 186, 183, 127, 172, 10, 41, 201, 173, 242, 156,
106, 219, 236, 139, 76, 115, 200, 123, 176, 228, 181, 248, 121, 38,
],
],
[
[
55, 175, 132, 23, 78, 4, 204, 40, 120, 57, 164, 73, 198, 103, 47, 149, 99, 4, 38, 242,
0, 81, 126, 169, 149, 137, 158, 153, 146, 201, 18, 10,
187, 71, 125, 130, 250, 45, 125, 44, 56, 31, 103, 55, 71, 87, 166, 228, 184, 12, 252,
79, 26, 221, 65, 188, 62, 254, 222, 87, 189, 71, 43, 0,
],
[
250, 168, 64, 134, 214, 43, 196, 128, 107, 20, 201, 151, 246, 94, 2, 70, 38, 179, 196,
184, 253, 132, 103, 191, 212, 175, 9, 227, 32, 128, 35, 15,
248, 127, 55, 175, 11, 237, 134, 201, 211, 212, 93, 115, 63, 118, 15, 121, 71, 55, 176,
74, 3, 75, 20, 100, 177, 194, 39, 92, 67, 109, 243, 38,
],
[
198, 248, 41, 177, 212, 81, 59, 161, 108, 117, 1, 57, 33, 90, 202, 248, 81, 209, 195,
244, 241, 109, 13, 47, 167, 215, 221, 6, 71, 239, 81, 23,
147, 188, 248, 11, 127, 3, 176, 153, 109, 5, 65, 101, 2, 46, 70, 203, 246, 245, 254,
67, 193, 214, 156, 21, 116, 165, 60, 79, 219, 45, 180, 47,
],
[
71, 60, 59, 59, 78, 191, 165, 195, 64, 216, 193, 236, 234, 12, 81, 137, 180, 10, 229,
141, 41, 158, 193, 184, 120, 31, 208, 123, 219, 129, 146, 16,
78, 126, 47, 15, 17, 83, 240, 144, 40, 174, 95, 250, 144, 43, 132, 67, 241, 189, 140,
244, 41, 221, 164, 186, 104, 156, 223, 233, 160, 99, 190, 39,
],
[
225, 31, 201, 225, 137, 96, 157, 189, 155, 223, 145, 90, 195, 103, 235, 205, 176, 45,
157, 233, 111, 211, 148, 94, 10, 206, 231, 113, 6, 254, 132, 52,
29, 119, 16, 42, 190, 69, 200, 191, 3, 160, 164, 28, 189, 135, 85, 63, 59, 121, 213,
143, 9, 96, 150, 14, 21, 93, 132, 57, 4, 165, 174, 12,
],
[
249, 246, 89, 126, 12, 162, 60, 59, 250, 194, 10, 115, 135, 250, 215, 208, 191, 39,
228, 36, 65, 88, 82, 156, 180, 246, 123, 165, 28, 204, 220, 7,
54, 200, 34, 46, 89, 210, 152, 121, 245, 147, 150, 48, 193, 246, 108, 154, 243, 12, 10,
10, 97, 83, 225, 116, 187, 177, 176, 80, 248, 185, 5, 38,
],
[
113, 211, 247, 224, 36, 4, 150, 189, 56, 129, 7, 221, 193, 75, 144, 32, 223, 79, 125,
219, 220, 52, 24, 214, 127, 105, 16, 62, 10, 124, 197, 53,
245, 84, 103, 49, 77, 27, 84, 143, 30, 40, 54, 249, 178, 71, 191, 135, 199, 72, 204,
162, 75, 110, 203, 246, 193, 61, 70, 158, 74, 154, 13, 45,
],
[
81, 227, 222, 204, 188, 10, 217, 12, 19, 183, 217, 53, 76, 100, 140, 56, 240, 12, 220,
62, 54, 106, 203, 8, 103, 210, 122, 55, 255, 137, 40, 63,
123, 98, 28, 217, 129, 160, 71, 205, 19, 41, 168, 124, 76, 145, 108, 71, 57, 60, 26,
154, 163, 64, 250, 13, 52, 179, 197, 193, 54, 184, 29, 32,
],
],
[
[
239, 48, 2, 229, 96, 175, 219, 41, 217, 242, 28, 190, 34, 196, 72, 68, 150, 66, 190,
179, 94, 64, 116, 27, 177, 167, 17, 238, 92, 45, 33, 25,
103, 140, 102, 88, 162, 193, 224, 59, 243, 31, 145, 100, 116, 71, 36, 129, 94, 248, 33,
0, 102, 46, 146, 206, 22, 255, 216, 58, 61, 118, 226, 47,
],
[
77, 141, 99, 93, 205, 139, 98, 11, 51, 45, 174, 82, 200, 76, 198, 145, 253, 107, 39,
243, 153, 86, 115, 230, 177, 253, 46, 105, 53, 169, 73, 6,
21, 127, 228, 231, 155, 190, 28, 145, 48, 160, 35, 104, 47, 120, 243, 107, 145, 118,
199, 126, 138, 164, 246, 143, 153, 59, 153, 209, 81, 118, 167, 9,
],
[
18, 48, 98, 150, 38, 45, 159, 212, 24, 15, 147, 41, 88, 108, 76, 51, 107, 99, 33, 147,
107, 53, 26, 166, 220, 209, 250, 231, 50, 244, 194, 53,
4, 84, 44, 30, 90, 253, 226, 166, 218, 12, 39, 214, 231, 241, 223, 87, 87, 82, 93, 220,
65, 132, 166, 75, 221, 33, 236, 113, 198, 43, 210, 39,
],
[
230, 158, 81, 25, 61, 74, 254, 10, 174, 17, 204, 122, 101, 191, 154, 75, 136, 190, 149,
9, 96, 96, 222, 13, 141, 166, 206, 241, 213, 218, 251, 48,
243, 54, 41, 143, 244, 171, 75, 158, 218, 230, 55, 35, 236, 18, 40, 55, 157, 139, 180,
29, 58, 159, 88, 208, 214, 87, 168, 227, 93, 211, 194, 17,
],
[
54, 0, 153, 54, 134, 31, 9, 108, 108, 76, 49, 5, 204, 63, 176, 198, 225, 114, 120, 252,
32, 234, 75, 149, 101, 185, 143, 248, 110, 96, 202, 33,
97, 131, 219, 190, 19, 178, 244, 173, 141, 143, 113, 3, 27, 63, 35, 185, 170, 43, 75,
64, 75, 38, 5, 13, 123, 39, 147, 243, 141, 122, 217, 39,
],
[
118, 151, 86, 228, 34, 243, 147, 103, 189, 159, 79, 88, 212, 125, 61, 44, 153, 127, 77,
214, 165, 102, 94, 60, 239, 216, 100, 204, 116, 109, 116, 39,
3, 24, 126, 200, 122, 92, 125, 221, 95, 205, 139, 145, 231, 77, 223, 96, 84, 39, 33,
66, 139, 41, 82, 182, 22, 102, 95, 173, 66, 125, 77, 21,
],
[
141, 237, 72, 24, 254, 183, 169, 175, 58, 57, 118, 122, 197, 131, 79, 3, 156, 171, 252,
40, 103, 153, 98, 200, 232, 173, 110, 192, 204, 123, 29, 9,
27, 50, 52, 183, 190, 198, 236, 248, 71, 251, 120, 132, 192, 227, 113, 36, 155, 81,
225, 48, 72, 17, 246, 99, 208, 242, 236, 93, 2, 19, 53, 31,
],
[
50, 65, 139, 37, 241, 184, 123, 38, 245, 228, 51, 156, 65, 68, 177, 78, 145, 90, 47, 5,
106, 79, 57, 135, 33, 65, 251, 180, 27, 42, 247, 30,
99, 18, 31, 165, 229, 52, 216, 52, 162, 62, 66, 1, 190, 22, 69, 133, 11, 126, 106, 165,
131, 180, 218, 253, 238, 124, 3, 16, 42, 196, 148, 57,
],
],
[
[
224, 172, 235, 60, 255, 127, 17, 161, 21, 0, 114, 209, 104, 13, 158, 90, 107, 157, 138,
97, 84, 226, 243, 169, 59, 113, 38, 128, 204, 39, 11, 44,
0, 209, 105, 72, 69, 130, 81, 154, 136, 174, 169, 182, 42, 150, 112, 115, 234, 136, 47,
170, 158, 213, 211, 65, 178, 62, 18, 172, 135, 59, 253, 19,
],
[
4, 31, 70, 85, 44, 250, 159, 59, 94, 242, 229, 24, 55, 90, 218, 132, 195, 109, 9, 124,
123, 161, 152, 40, 228, 248, 79, 82, 176, 201, 25, 39,
145, 192, 219, 168, 214, 190, 54, 248, 68, 248, 196, 148, 4, 254, 61, 193, 67, 218,
131, 110, 235, 60, 159, 101, 200, 218, 208, 195, 30, 249, 163, 32,
],
[
23, 219, 49, 229, 54, 209, 219, 42, 113, 116, 35, 187, 45, 49, 3, 29, 46, 103, 127,
179, 243, 122, 149, 98, 90, 165, 231, 179, 166, 226, 72, 7,
21, 246, 3, 74, 137, 246, 202, 207, 71, 59, 198, 73, 117, 224, 124, 57, 2, 82, 110, 6,
190, 80, 143, 143, 113, 62, 127, 122, 164, 202, 6, 54,
],
[
147, 148, 183, 208, 30, 213, 19, 148, 46, 99, 222, 36, 141, 160, 33, 125, 167, 114, 33,
196, 144, 221, 48, 237, 19, 152, 60, 51, 98, 252, 106, 60,
252, 245, 11, 63, 63, 70, 60, 82, 15, 154, 188, 35, 211, 222, 252, 180, 109, 109, 98,
69, 197, 240, 137, 46, 189, 8, 167, 87, 15, 179, 18, 12,
],
[
124, 133, 88, 120, 245, 245, 33, 217, 219, 61, 238, 3, 52, 13, 122, 98, 148, 227, 208,
135, 117, 214, 221, 77, 36, 140, 12, 171, 8, 170, 101, 39,
125, 206, 204, 128, 43, 62, 39, 36, 246, 164, 44, 6, 250, 83, 14, 207, 53, 201, 166,
231, 175, 110, 140, 200, 48, 239, 20, 171, 46, 80, 115, 54,
],
[
244, 144, 139, 109, 81, 224, 175, 121, 133, 150, 106, 126, 158, 228, 176, 252, 122,
249, 142, 130, 159, 85, 221, 209, 221, 85, 46, 240, 51, 109, 56, 59,
167, 7, 74, 225, 61, 229, 21, 154, 196, 11, 247, 27, 158, 112, 217, 238, 57, 53, 63,
251, 162, 91, 168, 86, 37, 203, 207, 119, 68, 135, 205, 9,
],
[
129, 195, 233, 117, 252, 210, 196, 104, 45, 150, 110, 92, 104, 64, 79, 65, 27, 175, 17,
0, 252, 118, 85, 24, 194, 39, 114, 120, 112, 25, 108, 15,
84, 187, 71, 200, 46, 254, 136, 13, 25, 137, 121, 128, 232, 221, 40, 0, 175, 232, 153,
227, 181, 162, 29, 67, 225, 234, 249, 102, 82, 171, 226, 1,
],
[
131, 77, 116, 55, 232, 22, 109, 37, 22, 183, 229, 85, 209, 183, 171, 160, 242, 52, 10,
37, 247, 13, 42, 115, 228, 119, 218, 124, 120, 186, 231, 34,
24, 185, 170, 6, 35, 57, 108, 85, 245, 134, 216, 239, 33, 12, 223, 38, 227, 73, 145,
100, 25, 14, 244, 177, 84, 38, 101, 67, 21, 96, 249, 61,
],
],
[
[
101, 213, 255, 130, 121, 109, 64, 193, 97, 26, 239, 215, 84, 92, 224, 190, 237, 31, 22,
142, 78, 133, 94, 215, 123, 255, 19, 251, 84, 147, 122, 33,
57, 9, 82, 174, 160, 195, 27, 106, 241, 225, 207, 16, 11, 131, 29, 63, 187, 187, 5, 76,
34, 39, 136, 124, 56, 25, 58, 99, 70, 116, 170, 19,
],
[
200, 154, 112, 158, 61, 87, 112, 63, 37, 48, 68, 51, 11, 98, 245, 10, 132, 68, 202,
157, 112, 231, 183, 184, 75, 137, 60, 128, 165, 129, 46, 25,
143, 6, 32, 114, 74, 44, 29, 53, 226, 34, 62, 232, 111, 63, 201, 203, 46, 115, 209,
118, 31, 27, 1, 120, 254, 70, 252, 80, 5, 111, 123, 55,
],
[
106, 39, 142, 0, 134, 133, 71, 20, 186, 182, 222, 200, 34, 165, 94, 241, 63, 166, 176,
124, 247, 61, 255, 69, 172, 114, 68, 58, 163, 20, 232, 7,
62, 18, 214, 41, 0, 12, 4, 12, 145, 201, 12, 6, 179, 4, 20, 84, 36, 155, 8, 99, 181,
18, 150, 144, 203, 228, 172, 135, 166, 152, 214, 8,
],
[
3, 99, 112, 133, 145, 205, 167, 185, 1, 115, 82, 45, 11, 182, 221, 41, 10, 129, 2, 159,
198, 19, 167, 245, 27, 144, 247, 217, 71, 87, 209, 6,
49, 93, 249, 139, 121, 113, 205, 158, 145, 118, 40, 96, 206, 154, 71, 190, 146, 65,
233, 104, 83, 91, 25, 118, 176, 14, 149, 115, 137, 27, 223, 41,
],
[
44, 127, 76, 114, 193, 159, 227, 227, 147, 86, 62, 247, 220, 165, 195, 68, 24, 122,
142, 110, 5, 116, 184, 117, 156, 12, 108, 44, 6, 98, 66, 15,
116, 160, 29, 244, 254, 193, 228, 122, 194, 168, 126, 1, 222, 247, 90, 191, 253, 101,
123, 197, 178, 127, 30, 113, 38, 73, 48, 240, 82, 52, 161, 12,
],
[
148, 177, 230, 118, 113, 10, 253, 235, 130, 15, 137, 108, 93, 21, 228, 62, 66, 130, 11,
190, 140, 82, 143, 170, 224, 54, 146, 33, 150, 165, 30, 47,
156, 145, 203, 40, 113, 83, 199, 161, 230, 196, 203, 227, 217, 212, 254, 139, 37, 215,
39, 230, 190, 141, 119, 120, 87, 23, 61, 21, 3, 209, 179, 47,
],
[
91, 186, 47, 20, 63, 142, 194, 162, 29, 172, 52, 103, 153, 27, 14, 121, 35, 203, 66,
48, 252, 188, 95, 100, 56, 90, 127, 129, 224, 141, 196, 34,
179, 114, 238, 159, 43, 22, 64, 61, 207, 56, 101, 90, 62, 245, 27, 21, 165, 0, 205, 34,
104, 32, 170, 75, 215, 255, 83, 74, 123, 73, 159, 19,
],
[
85, 9, 146, 0, 253, 158, 36, 77, 184, 116, 220, 186, 93, 239, 104, 253, 186, 125, 82,
28, 221, 119, 19, 175, 214, 244, 240, 39, 202, 192, 82, 9,
14, 208, 162, 223, 209, 5, 175, 15, 1, 78, 222, 82, 21, 113, 25, 129, 103, 64, 139, 21,
226, 245, 199, 114, 252, 69, 133, 254, 128, 63, 61, 13,
],
],
[
[
173, 63, 103, 33, 120, 177, 22, 128, 225, 55, 71, 36, 61, 235, 240, 38, 210, 164, 28,
95, 75, 112, 158, 210, 239, 72, 140, 62, 123, 221, 202, 33,
255, 187, 20, 3, 51, 61, 230, 80, 83, 233, 71, 190, 94, 131, 225, 143, 139, 246, 196,
161, 165, 85, 92, 167, 71, 198, 83, 10, 164, 120, 89, 26,
],
[
33, 92, 119, 167, 130, 76, 79, 163, 120, 226, 183, 233, 70, 244, 221, 12, 132, 147,
123, 139, 73, 156, 36, 199, 152, 225, 108, 129, 122, 165, 16, 28,
250, 108, 167, 151, 249, 92, 38, 36, 21, 96, 210, 31, 41, 91, 113, 183, 104, 192, 3,
45, 165, 253, 37, 75, 239, 245, 28, 148, 5, 255, 134, 60,
],
[
131, 77, 125, 131, 67, 53, 52, 138, 169, 96, 89, 252, 224, 218, 155, 97, 16, 177, 100,
143, 7, 119, 57, 8, 178, 245, 106, 193, 153, 27, 150, 35,
59, 154, 220, 255, 37, 98, 169, 60, 50, 196, 202, 240, 225, 57, 165, 129, 255, 66, 169,
162, 7, 30, 198, 27, 160, 208, 193, 106, 29, 119, 104, 48,
],
[
139, 90, 1, 77, 207, 145, 119, 77, 124, 230, 54, 142, 216, 164, 92, 177, 242, 96, 19,
240, 125, 28, 190, 216, 109, 22, 163, 31, 35, 38, 93, 60,
137, 180, 21, 151, 27, 173, 213, 11, 238, 163, 104, 192, 171, 59, 79, 249, 123, 55,
183, 8, 94, 117, 32, 48, 41, 141, 231, 207, 61, 135, 104, 2,
],
[
107, 195, 155, 17, 230, 231, 212, 221, 95, 117, 221, 197, 137, 16, 111, 52, 179, 42,
126, 144, 205, 96, 220, 134, 6, 49, 163, 192, 53, 70, 109, 42,
242, 254, 15, 0, 58, 49, 204, 28, 27, 56, 2, 67, 248, 104, 160, 32, 214, 242, 10, 206,
233, 61, 23, 103, 180, 53, 179, 198, 56, 254, 65, 6,
],
[
122, 3, 60, 119, 85, 172, 227, 142, 55, 9, 27, 6, 13, 40, 119, 179, 26, 39, 35, 105,
155, 154, 183, 71, 39, 119, 47, 91, 34, 3, 98, 34,
136, 214, 253, 248, 156, 140, 42, 172, 221, 187, 160, 233, 86, 213, 239, 5, 110, 252,
70, 18, 193, 29, 156, 156, 136, 70, 167, 59, 98, 223, 7, 30,
],
[
129, 52, 165, 103, 105, 220, 137, 167, 98, 250, 64, 158, 190, 40, 180, 55, 133, 186,
116, 75, 146, 221, 28, 191, 1, 78, 151, 231, 194, 4, 220, 21,
84, 25, 227, 152, 61, 51, 53, 59, 135, 229, 159, 248, 6, 39, 151, 139, 121, 149, 226,
142, 126, 136, 248, 196, 93, 176, 131, 254, 221, 204, 179, 36,
],
[
18, 210, 152, 250, 122, 65, 54, 240, 159, 203, 220, 252, 251, 103, 53, 161, 207, 163,
11, 237, 249, 206, 65, 131, 207, 228, 8, 119, 19, 65, 222, 52,
198, 74, 99, 58, 59, 34, 82, 94, 95, 64, 17, 241, 173, 114, 211, 57, 124, 181, 140,
102, 105, 79, 13, 1, 60, 121, 143, 88, 192, 253, 159, 47,
],
],
[
[
122, 90, 71, 168, 233, 221, 224, 182, 249, 138, 42, 153, 231, 27, 6, 64, 245, 179, 53,
97, 248, 210, 74, 238, 28, 19, 66, 248, 195, 237, 64, 36,
],
[
90, 115, 165, 218, 163, 197, 210, 143, 213, 125, 1, 77, 74, 165, 200, 244, 80, 39, 20,
247, 86, 120, 109, 109, 93, 7, 209, 199, 109, 12, 144, 46,
@ -633,12 +629,12 @@ pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [
72, 71, 200, 22, 21, 120, 50, 111, 112, 195, 141, 79, 49, 52, 98, 8, 37, 130, 142, 13,
78, 197, 15, 92, 203, 50, 108, 82, 109, 254, 158, 12,
],
[
71, 44, 114, 76, 152, 26, 79, 25, 44, 244, 191, 178, 150, 102, 34, 230, 54, 251, 209,
155, 90, 28, 81, 49, 127, 246, 116, 238, 106, 105, 196, 29,
],
],
[
[
56, 162, 66, 19, 204, 252, 161, 42, 1, 87, 96, 119, 9, 220, 167, 193, 119, 175, 24,
202, 152, 248, 221, 14, 87, 98, 153, 15, 255, 242, 112, 47,
],
[
208, 87, 78, 186, 184, 128, 38, 190, 131, 156, 221, 119, 87, 12, 144, 4, 240, 77, 118,
209, 74, 131, 37, 155, 247, 155, 206, 167, 80, 71, 127, 18,
@ -667,12 +663,12 @@ pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [
0, 139, 174, 217, 13, 116, 28, 230, 238, 117, 190, 91, 86, 105, 38, 231, 147, 100, 233,
187, 70, 128, 111, 82, 184, 113, 154, 136, 59, 27, 21, 10,
],
[
4, 208, 53, 136, 59, 196, 102, 52, 69, 1, 231, 8, 254, 19, 67, 134, 251, 73, 157, 156,
30, 94, 170, 147, 185, 72, 11, 143, 226, 255, 0, 60,
],
],
[
[
30, 110, 207, 178, 188, 230, 1, 85, 120, 157, 171, 131, 200, 18, 180, 82, 176, 44, 151,
2, 5, 144, 142, 16, 247, 40, 95, 88, 90, 249, 199, 1,
],
[
214, 131, 68, 196, 131, 169, 22, 250, 29, 101, 142, 26, 106, 96, 18, 190, 18, 15, 19,
59, 203, 203, 119, 251, 61, 221, 198, 116, 24, 178, 61, 42,
@ -701,73 +697,77 @@ pub const U_SHORT: [[[u8; 32]; super::H]; super::NUM_WINDOWS_SHORT] = [
219, 66, 247, 117, 3, 137, 38, 43, 131, 177, 137, 150, 9, 65, 160, 206, 235, 121, 121,
245, 205, 233, 229, 78, 72, 200, 171, 149, 240, 64, 184, 5,
],
],
[
[
7, 198, 172, 18, 241, 109, 130, 105, 143, 167, 90, 133, 249, 6, 215, 112, 194, 30, 97,
44, 91, 247, 120, 188, 218, 32, 76, 202, 5, 223, 164, 4,
],
[
49, 50, 95, 247, 20, 72, 200, 36, 210, 155, 239, 220, 84, 130, 194, 226, 151, 248, 209,
68, 128, 244, 193, 15, 27, 81, 176, 201, 101, 60, 167, 43,
],
[
39, 100, 26, 150, 252, 191, 240, 208, 79, 173, 40, 9, 198, 39, 182, 201, 156, 22, 31,
9, 195, 86, 231, 92, 228, 35, 85, 8, 16, 99, 102, 18,
],
[
80, 52, 146, 205, 17, 188, 48, 239, 194, 36, 97, 172, 242, 7, 88, 233, 157, 175, 68,
91, 99, 177, 28, 196, 195, 159, 187, 145, 3, 138, 123, 10,
],
[
217, 120, 36, 243, 226, 20, 7, 61, 148, 103, 42, 165, 42, 109, 63, 122, 115, 83, 236,
216, 209, 229, 21, 106, 89, 236, 204, 255, 251, 168, 217, 9,
],
[
84, 103, 125, 109, 193, 110, 218, 6, 50, 52, 216, 219, 170, 111, 102, 97, 185, 70, 193,
64, 95, 75, 100, 62, 15, 54, 0, 50, 15, 47, 22, 58,
],
[
70, 91, 82, 46, 116, 140, 86, 194, 235, 94, 141, 109, 41, 221, 143, 196, 146, 27, 70,
16, 44, 231, 206, 155, 52, 237, 6, 194, 123, 85, 44, 35,
],
[
201, 150, 157, 236, 223, 8, 24, 174, 234, 170, 95, 168, 197, 113, 149, 174, 214, 252,
140, 146, 11, 57, 114, 99, 140, 169, 88, 37, 112, 90, 75, 25,
22, 179, 118, 116, 100, 222, 159, 96, 236, 247, 38, 23, 224, 103, 6, 5, 42, 95, 161, 4,
128, 2, 240, 122, 117, 247, 127, 207, 76, 205, 137, 31,
],
],
[
[
58, 90, 180, 85, 181, 149, 44, 248, 114, 241, 224, 4, 48, 238, 195, 30, 129, 226, 202,
65, 245, 160, 165, 130, 250, 49, 123, 218, 33, 244, 44, 34,
255, 68, 73, 184, 204, 219, 231, 9, 237, 101, 142, 55, 146, 252, 138, 14, 186, 62, 32,
108, 79, 130, 251, 188, 101, 134, 179, 162, 172, 160, 149, 22,
],
[
160, 56, 55, 244, 243, 171, 30, 93, 225, 5, 4, 144, 83, 142, 11, 27, 225, 3, 170, 216,
121, 38, 126, 229, 81, 76, 161, 158, 185, 218, 133, 49,
93, 226, 69, 177, 229, 17, 78, 185, 6, 206, 195, 246, 145, 189, 141, 7, 197, 148, 166,
43, 203, 235, 170, 119, 102, 76, 108, 98, 216, 237, 121, 34,
],
[
53, 123, 61, 76, 166, 244, 231, 194, 129, 37, 29, 86, 103, 9, 130, 80, 237, 93, 240,
48, 202, 168, 204, 190, 255, 154, 183, 136, 100, 126, 31, 18,
211, 167, 46, 90, 228, 111, 217, 129, 255, 3, 113, 207, 200, 221, 28, 48, 33, 62, 31,
245, 116, 175, 130, 128, 180, 252, 132, 178, 56, 58, 16, 2,
],
[
178, 173, 151, 199, 225, 179, 74, 122, 27, 148, 1, 134, 85, 89, 5, 47, 167, 203, 15,
185, 114, 139, 164, 150, 132, 239, 108, 96, 184, 135, 195, 22,
159, 176, 149, 39, 220, 58, 146, 80, 175, 91, 125, 15, 166, 114, 133, 117, 52, 243,
219, 221, 223, 114, 140, 236, 106, 39, 65, 168, 43, 244, 140, 57,
],
[
151, 21, 1, 41, 129, 198, 151, 27, 7, 1, 192, 77, 166, 9, 204, 133, 171, 204, 63, 5,
76, 85, 181, 61, 239, 42, 141, 225, 52, 194, 154, 38,
144, 68, 49, 189, 208, 94, 145, 108, 143, 62, 16, 188, 15, 110, 23, 239, 71, 48, 32,
238, 96, 19, 43, 91, 231, 90, 77, 162, 159, 162, 71, 15,
],
[
173, 139, 63, 185, 110, 98, 51, 235, 76, 116, 23, 105, 144, 72, 101, 39, 125, 137, 99,
196, 163, 36, 68, 201, 46, 120, 5, 195, 63, 195, 91, 61,
103, 8, 114, 153, 156, 97, 188, 167, 128, 217, 58, 42, 208, 82, 234, 142, 53, 71, 10,
38, 177, 2, 13, 35, 8, 49, 196, 134, 215, 255, 42, 54,
],
[
190, 38, 194, 50, 43, 10, 159, 131, 143, 165, 63, 240, 241, 131, 64, 63, 192, 49, 45,
105, 136, 224, 77, 108, 57, 31, 235, 202, 104, 149, 222, 62,
229, 29, 149, 199, 252, 232, 6, 148, 31, 243, 79, 192, 221, 191, 136, 186, 249, 198,
35, 155, 198, 198, 19, 183, 159, 123, 65, 127, 169, 3, 156, 59,
],
[
244, 99, 92, 132, 254, 61, 45, 229, 74, 234, 250, 148, 115, 76, 81, 144, 175, 184, 158,
217, 69, 231, 117, 65, 9, 60, 50, 12, 0, 138, 32, 28,
2, 244, 213, 144, 80, 83, 125, 211, 252, 98, 209, 105, 104, 213, 143, 183, 164, 199,
103, 53, 110, 48, 230, 35, 34, 129, 221, 255, 225, 224, 42, 42,
],
],
[
[
145, 41, 77, 21, 230, 237, 146, 98, 160, 218, 242, 227, 198, 83, 11, 39, 148, 69, 31,
185, 143, 52, 71, 75, 157, 26, 157, 188, 179, 27, 114, 24,
],
[
160, 247, 33, 120, 242, 78, 125, 237, 149, 68, 194, 190, 248, 145, 93, 23, 171, 167,
181, 242, 226, 41, 104, 67, 0, 116, 81, 246, 87, 82, 103, 51,
],
[
84, 35, 131, 165, 134, 206, 147, 191, 7, 3, 253, 142, 49, 128, 111, 47, 53, 169, 88,
17, 31, 193, 20, 98, 19, 173, 111, 175, 134, 186, 166, 27,
],
[
49, 150, 139, 110, 180, 138, 202, 107, 41, 238, 123, 185, 17, 161, 67, 30, 2, 2, 39,
91, 7, 35, 69, 121, 34, 12, 247, 78, 138, 39, 59, 8,
],
[
64, 14, 249, 58, 50, 65, 122, 135, 174, 11, 102, 220, 221, 64, 29, 66, 24, 169, 57,
114, 140, 176, 7, 149, 78, 15, 211, 255, 101, 244, 151, 46,
],
[
127, 185, 215, 42, 158, 164, 234, 37, 140, 239, 228, 75, 189, 8, 197, 4, 206, 24, 136,
191, 73, 206, 141, 195, 85, 123, 141, 189, 82, 250, 65, 21,
],
[
49, 239, 163, 97, 219, 143, 242, 84, 53, 166, 149, 155, 243, 11, 207, 69, 250, 25, 159,
142, 240, 8, 72, 229, 91, 179, 218, 39, 128, 133, 201, 6,
],
[
96, 144, 236, 91, 71, 246, 217, 36, 27, 102, 209, 14, 75, 249, 185, 211, 2, 97, 216,
204, 141, 6, 234, 251, 183, 215, 152, 151, 125, 210, 121, 14,
],
],
];
@ -811,6 +811,6 @@ mod tests {
#[test]
fn z_short() {
let base = super::generator::<pallas::Affine>();
base.0.test_z(&Z_SHORT, &U_SHORT, NUM_WINDOWS_SHORT);
base.0.test_zs_and_us(&Z_SHORT, &U_SHORT, NUM_WINDOWS_SHORT);
}
}