From 1b5c92693670cef9e0911e95591cbbf3d3d8804a Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Fri, 21 Aug 2026 19:40:48 +0200 Subject: [PATCH] Implement G23 Extended Cauchy construction for AES RAID mode --- cmdline/selftest.c | 69 +- cmdline/speed.c | 32 +- raid/README | 21 +- raid/avx2.c | 1512 +++++- raid/gf.h | 10 - raid/int.c | 228 +- raid/internal.h | 82 +- raid/mktables.c | 104 +- raid/module.c | 3 - raid/neon.c | 792 ++- raid/neon32.c | 700 ++- raid/raid.c | 85 +- raid/raid.h | 24 +- raid/sse2.c | 579 ++- raid/ssse3.c | 2108 +++++++- raid/tables.c | 10354 ++++++++++++++++++++-------------------- raid/test.c | 216 +- raid/test.h | 10 +- raid/test/fulltest.c | 7 + raid/test/invtest.c | 2 +- raid/test/invtestx.c | 2 +- raid/test/speedtest.c | 31 +- 22 files changed, 10924 insertions(+), 6047 deletions(-) diff --git a/cmdline/selftest.c b/cmdline/selftest.c index 0291d86d..769d60dc 100644 --- a/cmdline/selftest.c +++ b/cmdline/selftest.c @@ -1237,6 +1237,12 @@ void selftest(void) exit(EXIT_FAILURE); /* LCOV_EXCL_STOP */ } + if (raid_test_rec2_g23(256) != 0) { + /* LCOV_EXCL_START */ + log_fatal(EINTERNAL, "Failed G23 P/Q recovery test\n"); + exit(EXIT_FAILURE); + /* LCOV_EXCL_STOP */ + } if (raid_test_tail(RAID_MODE_CAUCHY_AES, RAID_DATA_MAX, 256) != 0) { /* LCOV_EXCL_START */ log_fatal(EINTERNAL, "Failed TAIL Cauchy AES test\n"); @@ -1244,23 +1250,52 @@ void selftest(void) /* LCOV_EXCL_STOP */ } - /* verify raid_mode get/set behavior */ - int cur = raid_mode(RAID_MODE_GET); - int prev = raid_mode(RAID_MODE_CAUCHY_AES); - if (prev != cur) { - /* LCOV_EXCL_START */ - log_fatal(EINTERNAL, "raid_mode set did not return previous mode\n"); - exit(EXIT_FAILURE); - /* LCOV_EXCL_STOP */ - } - if (raid_mode(RAID_MODE_GET) != RAID_MODE_CAUCHY_AES) { - /* LCOV_EXCL_START */ - log_fatal(EINTERNAL, "raid_mode GET did not return active mode\n"); - exit(EXIT_FAILURE); - /* LCOV_EXCL_STOP */ - } - - /* restore default mode */ + /* verify RAID -> AES -> RAID switches all mode-dependent GF/Cauchy tables */ raid_mode(RAID_MODE_CAUCHY_RAID); + if (raid_gfmul != raid_gfmul_raid || raid_gfinv != raid_gfinv_raid + || raid_gfcauchy != raid_gfcauchy_raid || raid_gfgen != raid_gfcauchy_raid) { + /* LCOV_EXCL_START */ + log_fatal(EINTERNAL, "raid_mode did not select RAID tables\n"); + exit(EXIT_FAILURE); + /* LCOV_EXCL_STOP */ + } +#if defined(CONFIG_X86) || defined(CONFIG_NEON) || defined(CONFIG_NEON32) + if (raid_gfcauchypshufb != raid_gfcauchypshufb_raid + || raid_gfmulpshufb != raid_gfmulpshufb_raid) { + log_fatal(EINTERNAL, "raid_mode did not select RAID SIMD tables\n"); + exit(EXIT_FAILURE); + } +#endif + if (raid_mode(RAID_MODE_CAUCHY_AES) != RAID_MODE_CAUCHY_RAID + || raid_mode(RAID_MODE_GET) != RAID_MODE_CAUCHY_AES + || raid_gfmul != raid_gfmul_aes || raid_gfinv != raid_gfinv_aes + || raid_gfcauchy != raid_gfcauchy_aes || raid_gfgen != raid_gfcauchy_aes) { + /* LCOV_EXCL_START */ + log_fatal(EINTERNAL, "raid_mode did not select AES tables\n"); + exit(EXIT_FAILURE); + /* LCOV_EXCL_STOP */ + } +#if defined(CONFIG_X86) || defined(CONFIG_NEON) || defined(CONFIG_NEON32) + if (raid_gfcauchypshufb != raid_gfcauchypshufb_aes + || raid_gfmulpshufb != raid_gfmulpshufb_aes) { + log_fatal(EINTERNAL, "raid_mode did not select AES SIMD tables\n"); + exit(EXIT_FAILURE); + } +#endif + if (raid_mode(RAID_MODE_CAUCHY_RAID) != RAID_MODE_CAUCHY_AES + || raid_gfmul != raid_gfmul_raid || raid_gfinv != raid_gfinv_raid + || raid_gfcauchy != raid_gfcauchy_raid || raid_gfgen != raid_gfcauchy_raid) { + /* LCOV_EXCL_START */ + log_fatal(EINTERNAL, "raid_mode did not restore RAID tables\n"); + exit(EXIT_FAILURE); + /* LCOV_EXCL_STOP */ + } +#if defined(CONFIG_X86) || defined(CONFIG_NEON) || defined(CONFIG_NEON32) + if (raid_gfcauchypshufb != raid_gfcauchypshufb_raid + || raid_gfmulpshufb != raid_gfmulpshufb_raid) { + log_fatal(EINTERNAL, "raid_mode did not restore RAID SIMD tables\n"); + exit(EXIT_FAILURE); + } +#endif } diff --git a/cmdline/speed.c b/cmdline/speed.c index 54b99846..fbefabde 100644 --- a/cmdline/speed.c +++ b/cmdline/speed.c @@ -330,12 +330,7 @@ void speed_gen(int nd, void** v, int size, int delta, int period, const char* ms printf("%8s", raid_gen_tag(RAID_ALGO_CAUCHY_PAR2)); fflush(stdout); - SPEED_START { - raid_gen2_int8(nd, size, v); - } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - fflush(stdout); + printf("%8s", ""); if (mode == RAID_MODE_CAUCHY_AES) { SPEED_START { @@ -844,15 +839,17 @@ void speed_gen(int nd, void** v, int size, int delta, int period, const char* ms #endif } if (raid_cpu_has_ssse3()) { - if (mode == RAID_MODE_CAUCHY_RAID) { + if (mode == RAID_MODE_CAUCHY_AES) { + SPEED_START { + raid_gen5_ssse3_aes(nd, size, v); + } SPEED_STOP + } else { SPEED_START { raid_gen5_ssse3_raid(nd, size, v); } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - } else { - printf("%8s", ""); } + + printf("%8" PRIu64, ds / dt); fflush(stdout); #ifdef CONFIG_X86_64 @@ -984,17 +981,18 @@ void speed_gen(int nd, void** v, int size, int delta, int period, const char* ms #endif } if (raid_cpu_has_ssse3()) { - if (mode == RAID_MODE_CAUCHY_RAID) { + if (mode == RAID_MODE_CAUCHY_AES) { + SPEED_START { + raid_gen6_ssse3_aes(nd, size, v); + } SPEED_STOP + } else { SPEED_START { raid_gen6_ssse3_raid(nd, size, v); } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - } else { - printf("%8s", ""); } - fflush(stdout); + printf("%8" PRIu64, ds / dt); + fflush(stdout); #ifdef CONFIG_X86_64 if (mode == RAID_MODE_CAUCHY_AES) { SPEED_START { diff --git a/raid/README b/raid/README index 6f345b37..7bd288ee 100644 --- a/raid/README +++ b/raid/README @@ -120,17 +120,20 @@ Operating Modes and Polynomials (Z parity). Optimized for low-end CPUs without vector instructions. RAID_MODE_CAUCHY_AES (Mode = 2) - Uses Cauchy matrix with AES polynomial 0x1b (x^8 + x^4 + x^3 + x + 1, - 0x11b) and primitive generator g = 3. On CPUs supporting Intel GFNI, - generation and recovery are accelerated directly using VGF2P8MULB. + Uses a 6x251 Extended Cauchy matrix with AES polynomial 0x1b + (x^8 + x^4 + x^3 + x + 1, 0x11b). Its Q row uses the G23 sequence, + with multiplication by 2 for almost every coefficient transition and + multiplication by 3 only between its five cosets. On CPUs supporting + Intel GFNI, generation and recovery are accelerated directly using VGF2P8MULB. This native GFNI multiplication is typically faster than the affine GFNI implementation required by the standard RAID polynomial. Parity data is - incompatible with standard 0x11d polynomial arrays. + incompatible with standard 0x11d polynomial arrays and with the previous + RAID_MODE_CAUCHY_AES parity layout. - Both Cauchy modes use the same Extended Cauchy construction with coefficients - based on powers of their respective primitive generator. GFNI acceleration - is available for both fields: the RAID field uses affine transformations, - while the AES field uses the native GFNI multiplication instruction. + Both Cauchy modes support RAID_DATA_MAX = 251 data disks and + RAID_PARITY_MAX = 6 parity levels. GFNI acceleration is available for both + fields: the RAID field uses affine transformations, while the AES field uses + the native GFNI multiplication instruction. Implementation Structure @@ -140,7 +143,7 @@ Implementation Structure raid.c Cauchy matrix solver, Gauss-Jordan inversion, delta generation. module.c Algorithm registration, CPU detection, and dynamic dispatch. int.c Portable C fallback implementation (8/32/64-bit word loops). - tables.c Precomputed GF(2^8) log/exp, multiplication, Cauchy tables. + tables.c Precomputed GF(2^8) multiplication and Cauchy tables. mktables.c Generator for GF(2^8), Cauchy, and GFNI affine tables. internal.h Private header, assertion macros (BUG_ON), alignment helpers. diff --git a/raid/avx2.c b/raid/avx2.c index 3271724b..bded3c2e 100644 --- a/raid/avx2.c +++ b/raid/avx2.c @@ -39,9 +39,9 @@ void raid_gen1_avx2(int nd, size_t size, void **vv) } /* - * GEN2 Cauchy AVX2 implementation using the active generator + * GEN2 Cauchy AVX2 implementation using only Q *= 2. */ -static __always_inline void raid_gen2_avx2_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_avx2_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -55,7 +55,7 @@ static __always_inline void raid_gen2_avx2_gen(int nd, size_t size, void **vv, i raid_avx_begin(); - asm volatile ("vpbroadcastb %0, %%ymm7" : : "m" (gfconst16.poly[0])); + asm volatile ("vpbroadcastb %0,%%ymm7" : : "m" (gfconst16.poly[0])); asm volatile ("vpxor %ymm6,%ymm6,%ymm6"); for (i = 0; i < size; i += 64) { @@ -65,29 +65,15 @@ static __always_inline void raid_gen2_avx2_gen(int nd, size_t size, void **vv, i asm volatile ("vmovdqa %ymm1,%ymm3"); for (d = l - 1; d >= 0; --d) { - if (generator == 3) { - asm volatile ("vmovdqa %ymm2,%ymm4"); - asm volatile ("vmovdqa %ymm3,%ymm5"); - asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); - asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); - asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); - asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); - asm volatile ("vpcmpgtb %ymm4,%ymm6,%ymm4"); - asm volatile ("vpcmpgtb %ymm5,%ymm6,%ymm5"); - asm volatile ("vpand %ymm7,%ymm4,%ymm4"); - asm volatile ("vpand %ymm7,%ymm5,%ymm5"); - asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); - asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); - } else { - asm volatile ("vpcmpgtb %ymm2,%ymm6,%ymm4"); - asm volatile ("vpcmpgtb %ymm3,%ymm6,%ymm5"); - asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); - asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); - asm volatile ("vpand %ymm7,%ymm4,%ymm4"); - asm volatile ("vpand %ymm7,%ymm5,%ymm5"); - asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); - asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); - } + /* scale Q before adding the current disk */ + asm volatile ("vpcmpgtb %ymm2,%ymm6,%ymm4"); + asm volatile ("vpcmpgtb %ymm3,%ymm6,%ymm5"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); @@ -106,27 +92,137 @@ static __always_inline void raid_gen2_avx2_gen(int nd, size_t size, void **vv, i raid_avx_end(); } +/* + * GEN2 Cauchy AVX2 implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_avx2_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_avx_begin(); + + asm volatile ("vpbroadcastb %0,%%ymm7" : : "m" (gfconst16.poly[0])); + asm volatile ("vpxor %ymm6,%ymm6,%ymm6"); + + for (i = 0; i < size; i += 64) { + int boundary = g23_boundary; + + asm volatile ("vmovdqa %0,%%ymm0" : : "m" (v[l][i])); + asm volatile ("vmovdqa %0,%%ymm1" : : "m" (v[l][i + 32])); + asm volatile ("vmovdqa %ymm0,%ymm2"); + asm volatile ("vmovdqa %ymm1,%ymm3"); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { + /* scale Q before adding the current disk */ + asm volatile ("vpcmpgtb %ymm2,%ymm6,%ymm4"); + asm volatile ("vpcmpgtb %ymm3,%ymm6,%ymm5"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ("vmovdqa %ymm2,%ymm4"); + asm volatile ("vmovdqa %ymm3,%ymm5"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + asm volatile ("vpcmpgtb %ymm4,%ymm6,%ymm4"); + asm volatile ("vpcmpgtb %ymm5,%ymm6,%ymm5"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + asm volatile ("vmovntdq %%ymm0,%0" : "=m" (p[i])); + asm volatile ("vmovntdq %%ymm1,%0" : "=m" (p[i + 32])); + asm volatile ("vmovntdq %%ymm2,%0" : "=m" (q[i])); + asm volatile ("vmovntdq %%ymm3,%0" : "=m" (q[i + 32])); + } + + raid_avx_end(); +} + void raid_gen2_avx2_raid(int nd, size_t size, void **vv) { - raid_gen2_avx2_gen(nd, size, vv, 2); + raid_gen2_avx2_x2(nd, size, vv); } void raid_gen2_avx2_aes(int nd, size_t size, void **vv) { - raid_gen2_avx2_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_avx2_x2(nd, size, vv); + else + raid_gen2_avx2_g23(nd, size, vv); } #ifdef CONFIG_X86_64 /* - * GEN2 Cauchy AVX2 implementation using the extended register set. + * GEN2 Cauchy AVX2 implementation using only Q *= 2. * * Process two data disks at a time and process the two 32-byte lanes * sequentially. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen2_avx2ext_gen(int nd, size_t size, - void **vv, int generator) +static __always_inline void raid_gen2_avx2ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -156,41 +252,40 @@ static __always_inline void raid_gen2_avx2ext_gen(int nd, size_t size, asm volatile ("vmovdqa %0,%%ymm6" : : "m" (v[d - 1][i])); asm volatile ("vmovdqa %0,%%ymm7" : : "m" (v[d - 1][i + 32])); + /* + * First 32-byte lane. + * + * Compute the two consecutive x2 Horner transitions + * while updating P once with D[d] ^ D[d - 1]. + */ asm volatile ("vpcmpgtb %ymm2,%ymm14,%ymm10"); asm volatile ("vpaddb %ymm2,%ymm2,%ymm8"); asm volatile ("vpxor %ymm6,%ymm4,%ymm12"); asm volatile ("vpand %ymm15,%ymm10,%ymm10"); asm volatile ("vpxor %ymm10,%ymm8,%ymm8"); asm volatile ("vpxor %ymm4,%ymm8,%ymm8"); + asm volatile ("vpcmpgtb %ymm8,%ymm14,%ymm10"); asm volatile ("vpaddb %ymm8,%ymm8,%ymm8"); asm volatile ("vpxor %ymm12,%ymm0,%ymm0"); - if (generator == 3) - asm volatile ("vpxor %ymm2,%ymm12,%ymm12"); asm volatile ("vpand %ymm15,%ymm10,%ymm10"); asm volatile ("vpxor %ymm10,%ymm8,%ymm8"); - if (generator == 3) - asm volatile ("vpxor %ymm12,%ymm8,%ymm2"); - else - asm volatile ("vpxor %ymm6,%ymm8,%ymm2"); + asm volatile ("vpxor %ymm6,%ymm8,%ymm2"); + /* second 32-byte lane */ asm volatile ("vpcmpgtb %ymm3,%ymm14,%ymm11"); asm volatile ("vpaddb %ymm3,%ymm3,%ymm9"); asm volatile ("vpxor %ymm7,%ymm5,%ymm13"); asm volatile ("vpand %ymm15,%ymm11,%ymm11"); asm volatile ("vpxor %ymm11,%ymm9,%ymm9"); asm volatile ("vpxor %ymm5,%ymm9,%ymm9"); + asm volatile ("vpcmpgtb %ymm9,%ymm14,%ymm11"); asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpxor %ymm13,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm3,%ymm13,%ymm13"); asm volatile ("vpand %ymm15,%ymm11,%ymm11"); asm volatile ("vpxor %ymm11,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm13,%ymm9,%ymm3"); - else - asm volatile ("vpxor %ymm7,%ymm9,%ymm3"); + asm volatile ("vpxor %ymm7,%ymm9,%ymm3"); } /* single remaining disk */ @@ -201,26 +296,182 @@ static __always_inline void raid_gen2_avx2ext_gen(int nd, size_t size, asm volatile ("vpcmpgtb %ymm2,%ymm14,%ymm10"); asm volatile ("vpaddb %ymm2,%ymm2,%ymm8"); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); - if (generator == 3) - asm volatile ("vpxor %ymm4,%ymm2,%ymm12"); asm volatile ("vpand %ymm15,%ymm10,%ymm10"); asm volatile ("vpxor %ymm10,%ymm8,%ymm8"); - if (generator == 3) - asm volatile ("vpxor %ymm12,%ymm8,%ymm2"); - else - asm volatile ("vpxor %ymm4,%ymm8,%ymm2"); + asm volatile ("vpxor %ymm4,%ymm8,%ymm2"); asm volatile ("vpcmpgtb %ymm3,%ymm14,%ymm11"); asm volatile ("vpaddb %ymm3,%ymm3,%ymm9"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm5,%ymm3,%ymm13"); asm volatile ("vpand %ymm15,%ymm11,%ymm11"); asm volatile ("vpxor %ymm11,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm13,%ymm9,%ymm3"); - else - asm volatile ("vpxor %ymm5,%ymm9,%ymm3"); + asm volatile ("vpxor %ymm5,%ymm9,%ymm3"); + } + + asm volatile ("vmovntdq %%ymm0,%0" : "=m" (p[i])); + asm volatile ("vmovntdq %%ymm1,%0" : "=m" (p[i + 32])); + asm volatile ("vmovntdq %%ymm2,%0" : "=m" (q[i])); + asm volatile ("vmovntdq %%ymm3,%0" : "=m" (q[i + 32])); + } + + raid_avx_end(); +} + +/* + * GEN2 Cauchy AVX2 implementation using the AES G23 Q recurrence. + * + * Process two data disks at a time and process the two 32-byte lanes + * sequentially. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen2_avx2ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_avx_begin(); + + asm volatile ("vpxor %ymm14,%ymm14,%ymm14"); + asm volatile ("vpbroadcastb %0,%%ymm15" : : "m" (gfconst16.poly[0])); + + for (i = 0; i < size; i += 64) { + int boundary = g23_boundary; + + asm volatile ("vmovdqa %0,%%ymm0" : : "m" (v[l][i])); + asm volatile ("vmovdqa %0,%%ymm1" : : "m" (v[l][i + 32])); + asm volatile ("vmovdqa %ymm0,%ymm2"); + asm volatile ("vmovdqa %ymm1,%ymm3"); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + * Process two disks at a time without crossing the + * next G23 boundary. + */ + for (; d >= boundary + 2; d -= 2) { + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); + asm volatile ("vmovdqa %0,%%ymm6" : : "m" (v[d - 1][i])); + asm volatile ("vmovdqa %0,%%ymm7" : : "m" (v[d - 1][i + 32])); + + /* + * First 32-byte lane. + * + * Fuse the two consecutive x2 Horner steps: + * + * Q = 2 * Q + D[d] + * Q = 2 * Q + D[d - 1] + * + * while updating P with both disks. + */ + asm volatile ("vpcmpgtb %ymm2,%ymm14,%ymm10"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm8"); + asm volatile ("vpxor %ymm6,%ymm4,%ymm12"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpxor %ymm10,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm4,%ymm8,%ymm8"); + asm volatile ("vpcmpgtb %ymm8,%ymm14,%ymm10"); + asm volatile ("vpaddb %ymm8,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm0,%ymm0"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpxor %ymm10,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm6,%ymm8,%ymm2"); + + /* Second 32-byte lane. */ + asm volatile ("vpcmpgtb %ymm3,%ymm14,%ymm11"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm9"); + asm volatile ("vpxor %ymm7,%ymm5,%ymm13"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm5,%ymm9,%ymm9"); + asm volatile ("vpcmpgtb %ymm9,%ymm14,%ymm11"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm13,%ymm1,%ymm1"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm7,%ymm9,%ymm3"); + } + + /* + * The first x2 segment can have odd length. + * Consume its last x2 transition separately. + */ + if (d > boundary) { + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); + + asm volatile ("vpcmpgtb %ymm2,%ymm14,%ymm10"); + asm volatile ("vpcmpgtb %ymm3,%ymm14,%ymm11"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm10,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm11,%ymm3,%ymm3"); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + + --d; + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ("vmovdqa %ymm2,%ymm12"); + asm volatile ("vmovdqa %ymm3,%ymm13"); + + asm volatile ("vpcmpgtb %ymm2,%ymm14,%ymm10"); + asm volatile ("vpcmpgtb %ymm3,%ymm14,%ymm11"); + asm volatile ("vpaddb %ymm2,%ymm2,%ymm2"); + asm volatile ("vpaddb %ymm3,%ymm3,%ymm3"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm10,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm11,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm5" : : "m" (v[d][i + 32])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; } asm volatile ("vmovntdq %%ymm0,%0" : "=m" (p[i])); @@ -234,12 +485,15 @@ static __always_inline void raid_gen2_avx2ext_gen(int nd, size_t size, void raid_gen2_avx2ext_raid(int nd, size_t size, void **vv) { - raid_gen2_avx2ext_gen(nd, size, vv, 2); + raid_gen2_avx2ext_x2(nd, size, vv); } void raid_gen2_avx2ext_aes(int nd, size_t size, void **vv) { - raid_gen2_avx2ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_avx2ext_x2(nd, size, vv); + else + raid_gen2_avx2ext_g23(nd, size, vv); } /* @@ -321,10 +575,11 @@ void raid_genz_avx2ext_raid(int nd, size_t size, void **vv) #ifdef CONFIG_X86_64 /* * GEN3 (triple parity with Cauchy matrix) AVX2 implementation + * using only Q *= 2. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen3_avx2ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -347,12 +602,11 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv raid_avx_begin(); - /* generic case with at least two data disks */ - asm volatile ("vpbroadcastb %0, %%ymm3" : : "m" (gfconst16.poly[0])); - asm volatile ("vpbroadcastb %0, %%ymm11" : : "m" (gfconst16.low4[0])); + asm volatile ("vpbroadcastb %0,%%ymm3" : : "m" (gfconst16.poly[0])); + asm volatile ("vpbroadcastb %0,%%ymm11" : : "m" (gfconst16.low4[0])); for (i = 0; i < size; i += 64) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[l][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[l][i + 32])); @@ -361,119 +615,103 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vmovdqa %ymm12,%ymm8"); asm volatile ("vmovdqa %ymm12,%ymm9"); - asm volatile ("vpsrlw $4,%ymm4,%ymm5"); - asm volatile ("vpsrlw $4,%ymm12,%ymm13"); - asm volatile ("vpand %ymm11,%ymm4,%ymm4"); - asm volatile ("vpand %ymm11,%ymm12,%ymm12"); - asm volatile ("vpand %ymm11,%ymm5,%ymm5"); - asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); - asm volatile ("vbroadcasti128 %0,%%ymm10" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][1][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][1][1][0])); - asm volatile ("vpshufb %ymm4,%ymm10,%ymm2"); - asm volatile ("vpshufb %ymm12,%ymm10,%ymm10"); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm2"); asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); - asm volatile ("vpshufb %ymm13,%ymm15,%ymm15"); - asm volatile ("vpxor %ymm7,%ymm2,%ymm2"); - asm volatile ("vpxor %ymm15,%ymm10,%ymm10"); + asm volatile ("vpxor %ymm7,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm10"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm10,%ymm10"); /* process two intermediate disks per iteration */ for (d = l - 1; d > 1; d -= 2) { + /* disk d */ asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); - asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); - asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); - - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm6"); + /* Q *= 2 */ asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); - if (generator == 3) - asm volatile ("vmovdqa %ymm9,%ymm6"); - asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); - asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); - asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); - asm volatile ("vpand %ymm3,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm9,%ymm9"); - - asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); - asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); - - asm volatile ("vpsrlw $4,%ymm12,%ymm13"); - asm volatile ("vpand %ymm11,%ymm12,%ymm12"); - asm volatile ("vpand %ymm11,%ymm13,%ymm13"); - asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); asm volatile ("vpxor %ymm6,%ymm10,%ymm10"); + /* disk d - 1 */ asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d - 1][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d - 1][i + 32])); - asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d - 1][1][0][0])); - asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d - 1][1][1][0])); - - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm6"); + /* Q *= 2 */ asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d - 1][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d - 1][1][1][0])); asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); - if (generator == 3) - asm volatile ("vmovdqa %ymm9,%ymm6"); - asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); - asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); - asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); - asm volatile ("vpand %ymm3,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm9,%ymm9"); - - asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); - asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); - - asm volatile ("vpsrlw $4,%ymm12,%ymm13"); - asm volatile ("vpand %ymm11,%ymm12,%ymm12"); - asm volatile ("vpand %ymm11,%ymm13,%ymm13"); - asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); @@ -485,22 +723,28 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[1][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[1][i + 32])); - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm6"); asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[1][1][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[1][1][1][0])); @@ -510,23 +754,6 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); - if (generator == 3) - asm volatile ("vmovdqa %ymm9,%ymm6"); - asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); - asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); - asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); - asm volatile ("vpand %ymm3,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm6,%ymm9,%ymm9"); - - asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); - asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); - - asm volatile ("vpsrlw $4,%ymm12,%ymm13"); - asm volatile ("vpand %ymm11,%ymm12,%ymm12"); - asm volatile ("vpand %ymm11,%ymm13,%ymm13"); - asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); @@ -537,10 +764,6 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[0][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[0][i + 32])); - if (generator == 3) { - asm volatile ("vmovdqa %ymm1,%ymm6"); - asm volatile ("vmovdqa %ymm9,%ymm14"); - } asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); @@ -551,11 +774,298 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpand %ymm3,%ymm13,%ymm13"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) { + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm12,%ymm10,%ymm10"); + + asm volatile ("vmovntdq %%ymm0,%0" : "=m" (p[i])); + asm volatile ("vmovntdq %%ymm8,%0" : "=m" (p[i + 32])); + asm volatile ("vmovntdq %%ymm1,%0" : "=m" (q[i])); + asm volatile ("vmovntdq %%ymm9,%0" : "=m" (q[i + 32])); + asm volatile ("vmovntdq %%ymm2,%0" : "=m" (r[i])); + asm volatile ("vmovntdq %%ymm10,%0" : "=m" (r[i + 32])); + } + + raid_avx_end(); +} + +/* + * GEN3 (triple parity with Cauchy matrix) AVX2 implementation + * using the AES G23 Q recurrence. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen3_avx2ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 3; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_avx_begin(); + + asm volatile ("vpbroadcastb %0,%%ymm3" : : "m" (gfconst16.poly[0])); + asm volatile ("vpbroadcastb %0,%%ymm11" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 64) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[l][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[l][i + 32])); + + asm volatile ("vmovdqa %ymm4,%ymm0"); + asm volatile ("vmovdqa %ymm4,%ymm1"); + asm volatile ("vmovdqa %ymm12,%ymm8"); + asm volatile ("vmovdqa %ymm12,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm2"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm10"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm10,%ymm10"); + + d = l - 1; + + for (;;) { + /* + * Process pairs entirely above the next G23 boundary. + * Disk 0 remains outside this loop. + */ + for (; d >= 2 && d >= boundary + 2; d -= 2) { + /* disk d */ + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm10,%ymm10"); + + /* disk d - 1 */ + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d - 1][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d - 1][i + 32])); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d - 1][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d - 1][1][1][0])); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm10,%ymm10"); + } + + /* + * The x2 segment may contain one remaining intermediate disk. + */ + if (d > boundary && d > 0) { + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm10,%ymm10"); + + --d; + } + + if (boundary < 0) + break; + + /* + * d == boundary: Q *= 3. + */ + asm volatile ("vmovdqa %ymm1,%ymm6"); + asm volatile ("vmovdqa %ymm9,%ymm7"); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); asm volatile ("vpxor %ymm6,%ymm1,%ymm1"); - asm volatile ("vpxor %ymm14,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm7,%ymm9,%ymm9"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm11,%ymm4,%ymm4"); + asm volatile ("vpand %ymm11,%ymm12,%ymm12"); + asm volatile ("vpand %ymm11,%ymm5,%ymm5"); + asm volatile ("vpand %ymm11,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + + asm volatile ("vpshufb %ymm4,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm2,%ymm2"); + + asm volatile ("vpshufb %ymm12,%ymm14,%ymm6"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm7"); + asm volatile ("vpxor %ymm7,%ymm6,%ymm6"); + asm volatile ("vpxor %ymm6,%ymm10,%ymm10"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; } + /* + * D0 always follows an x2 transition. + */ + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[0][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[0][i + 32])); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm3,%ymm5,%ymm5"); + asm volatile ("vpand %ymm3,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); @@ -576,22 +1086,26 @@ static __always_inline void raid_gen3_avx2ext_gen(int nd, size_t size, void **vv void raid_gen3_avx2ext_raid(int nd, size_t size, void **vv) { - raid_gen3_avx2ext_gen(nd, size, vv, 2); + raid_gen3_avx2ext_x2(nd, size, vv); } void raid_gen3_avx2ext_aes(int nd, size_t size, void **vv) { - raid_gen3_avx2ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen3_avx2ext_x2(nd, size, vv); + else + raid_gen3_avx2ext_g23(nd, size, vv); } #endif #ifdef CONFIG_X86_64 /* * GEN4 (quad parity with Cauchy matrix) AVX2 implementation + * using only Q *= 2. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen4_avx2ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -620,9 +1134,8 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpbroadcastb %0,%%ymm6" : : "m" (gfconst16.poly[0])); asm volatile ("vpbroadcastb %0,%%ymm7" : : "m" (gfconst16.low4[0])); - /* generic case with at least two data disks */ for (i = 0; i < size; i += 64) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[l][i])); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[l][i + 32])); @@ -638,6 +1151,7 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpand %ymm7,%ymm12,%ymm12"); asm volatile ("vpand %ymm7,%ymm13,%ymm13"); + /* R */ asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][1][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][1][1][0])); asm volatile ("vpshufb %ymm4,%ymm14,%ymm2"); @@ -647,6 +1161,7 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpshufb %ymm13,%ymm15,%ymm11"); asm volatile ("vpxor %ymm11,%ymm10,%ymm10"); + /* S */ asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][2][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][2][1][0])); asm volatile ("vpshufb %ymm4,%ymm14,%ymm3"); @@ -658,33 +1173,316 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv /* intermediate disks */ for (d = l - 1; d > 0; --d) { - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm4"); + /* Q *= 2, first lane */ asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); asm volatile ("vpand %ymm6,%ymm5,%ymm5"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); asm volatile ("vpsrlw $4,%ymm4,%ymm5"); asm volatile ("vpand %ymm7,%ymm4,%ymm4"); asm volatile ("vpand %ymm7,%ymm5,%ymm5"); - if (generator == 3) - asm volatile ("vmovdqa %ymm9,%ymm12"); + + /* Q *= 2, second lane */ asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpand %ymm6,%ymm13,%ymm13"); asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm7,%ymm12,%ymm12"); + asm volatile ("vpand %ymm7,%ymm13,%ymm13"); + /* R */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + + /* S */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + } + + /* first disk with all coefficients at 1 */ + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm6,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[0][i])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm4,%ymm3,%ymm3"); + + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm6,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[0][i + 32])); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm12,%ymm10,%ymm10"); + asm volatile ("vpxor %ymm12,%ymm11,%ymm11"); + + asm volatile ("vmovntdq %%ymm0,%0" : "=m" (p[i])); + asm volatile ("vmovntdq %%ymm8,%0" : "=m" (p[i + 32])); + asm volatile ("vmovntdq %%ymm1,%0" : "=m" (q[i])); + asm volatile ("vmovntdq %%ymm9,%0" : "=m" (q[i + 32])); + asm volatile ("vmovntdq %%ymm2,%0" : "=m" (r[i])); + asm volatile ("vmovntdq %%ymm10,%0" : "=m" (r[i + 32])); + asm volatile ("vmovntdq %%ymm3,%0" : "=m" (s[i])); + asm volatile ("vmovntdq %%ymm11,%0" : "=m" (s[i + 32])); + } + + raid_avx_end(); +} + +/* + * GEN4 (quad parity with Cauchy matrix) AVX2 implementation + * using the AES G23 Q recurrence. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen4_avx2ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + + if (l == 0) { + for (i = 0; i < 4; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_avx_begin(); + + asm volatile ("vpbroadcastb %0,%%ymm6" : : "m" (gfconst16.poly[0])); + asm volatile ("vpbroadcastb %0,%%ymm7" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 64) { + int boundary = g23_boundary; + + /* last disk */ + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[l][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[l][i + 32])); + + asm volatile ("vmovdqa %ymm4,%ymm0"); + asm volatile ("vmovdqa %ymm4,%ymm1"); + asm volatile ("vmovdqa %ymm12,%ymm8"); + asm volatile ("vmovdqa %ymm12,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm7,%ymm12,%ymm12"); + asm volatile ("vpand %ymm7,%ymm13,%ymm13"); + + /* R */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm2"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm3"); + asm volatile ("vpxor %ymm3,%ymm2,%ymm2"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm10"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm10,%ymm10"); + + /* S */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm15" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm3"); + asm volatile ("vpshufb %ymm5,%ymm15,%ymm5"); + asm volatile ("vpxor %ymm5,%ymm3,%ymm3"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm11"); + asm volatile ("vpshufb %ymm13,%ymm15,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm11,%ymm11"); + + d = l - 1; + + while (boundary >= 0) { + /* all transitions above boundary are x2 */ + for (; d > boundary; --d) { + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm6,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm6,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm7,%ymm12,%ymm12"); + asm volatile ("vpand %ymm7,%ymm13,%ymm13"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + } + + /* + * d == boundary: Q *= 3. + */ + asm volatile ("vmovdqa %ymm1,%ymm4"); + asm volatile ("vmovdqa %ymm9,%ymm12"); + + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm6,%ymm5,%ymm5"); + asm volatile ("vpand %ymm6,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); + + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); + asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); + + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + asm volatile ("vpsrlw $4,%ymm12,%ymm13"); + asm volatile ("vpand %ymm7,%ymm12,%ymm12"); + asm volatile ("vpand %ymm7,%ymm13,%ymm13"); + + /* R */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm14,%ymm10,%ymm10"); + + /* S */ + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vpshufb %ymm4,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm12,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + asm volatile ("vbroadcasti128 %0,%%ymm14" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm5,%ymm14,%ymm15"); + asm volatile ("vpshufb %ymm13,%ymm14,%ymm14"); + asm volatile ("vpxor %ymm15,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); + + --d; + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. Process intermediate disks + * down to D1 using only Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); + asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm6,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); + + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[d][i])); + asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vpsrlw $4,%ymm4,%ymm5"); + asm volatile ("vpand %ymm7,%ymm4,%ymm4"); + asm volatile ("vpand %ymm7,%ymm5,%ymm5"); + + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); + asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); + asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); + asm volatile ("vpand %ymm6,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); + + asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[d][i + 32])); asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vpsrlw $4,%ymm12,%ymm13"); @@ -714,30 +1512,26 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv asm volatile ("vpxor %ymm14,%ymm11,%ymm11"); } - /* first disk with all coefficients at 1 */ - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm4"); + /* + * D0 always follows an x2 transition. + */ asm volatile ("vpxor %ymm5,%ymm5,%ymm5"); asm volatile ("vpcmpgtb %ymm1,%ymm5,%ymm5"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); asm volatile ("vpand %ymm6,%ymm5,%ymm5"); asm volatile ("vpxor %ymm5,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); + asm volatile ("vmovdqa %0,%%ymm4" : : "m" (v[0][i])); asm volatile ("vpxor %ymm4,%ymm0,%ymm0"); asm volatile ("vpxor %ymm4,%ymm1,%ymm1"); asm volatile ("vpxor %ymm4,%ymm2,%ymm2"); asm volatile ("vpxor %ymm4,%ymm3,%ymm3"); - if (generator == 3) - asm volatile ("vmovdqa %ymm9,%ymm12"); + asm volatile ("vpxor %ymm13,%ymm13,%ymm13"); asm volatile ("vpcmpgtb %ymm9,%ymm13,%ymm13"); asm volatile ("vpaddb %ymm9,%ymm9,%ymm9"); asm volatile ("vpand %ymm6,%ymm13,%ymm13"); asm volatile ("vpxor %ymm13,%ymm9,%ymm9"); - if (generator == 3) - asm volatile ("vpxor %ymm12,%ymm9,%ymm9"); asm volatile ("vmovdqa %0,%%ymm12" : : "m" (v[0][i + 32])); asm volatile ("vpxor %ymm12,%ymm8,%ymm8"); @@ -760,20 +1554,24 @@ static __always_inline void raid_gen4_avx2ext_gen(int nd, size_t size, void **vv void raid_gen4_avx2ext_raid(int nd, size_t size, void **vv) { - raid_gen4_avx2ext_gen(nd, size, vv, 2); + raid_gen4_avx2ext_x2(nd, size, vv); } void raid_gen4_avx2ext_aes(int nd, size_t size, void **vv) { - raid_gen4_avx2ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen4_avx2ext_x2(nd, size, vv); + else + raid_gen4_avx2ext_g23(nd, size, vv); } #endif #ifdef CONFIG_X86_64 /* - * GENX AVX2EXT implementation + * GENX AVX2EXT implementation using only Q *= 2. */ -static __always_inline void raid_genX_avx2ext(int nd, size_t size, void **vv, int np, int generator) +static __always_inline void raid_genX_avx2ext_x2(int nd, size_t size, + void **vv, int np) { uint8_t **v = (uint8_t **)vv; size_t i; @@ -790,115 +1588,401 @@ static __always_inline void raid_genX_avx2ext(int nd, size_t size, void **vv, in raid_avx_begin(); - /* generic case with at least two data disks */ asm volatile ("vpxor %ymm6,%ymm6,%ymm6"); asm volatile ("vpbroadcastb %0,%%ymm14" : : "m" (gfconst16.poly[0])); asm volatile ("vpbroadcastb %0,%%ymm15" : : "m" (gfconst16.low4[0])); for (i = 0; i < size; i += 32) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[l][i])); asm volatile ("vmovdqa %ymm10,%ymm0"); asm volatile ("vmovdqa %ymm10,%ymm1"); - asm volatile ("vpsrlw $4,%ymm10,%ymm11"); - asm volatile ("vpand %ymm15,%ymm10,%ymm10"); - asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + if (np >= 3) { asm volatile ("vbroadcasti128 %0,%%ymm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][1][1][0])); asm volatile ("vpshufb %ymm10,%ymm2,%ymm2"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); } + if (np >= 4) { asm volatile ("vbroadcasti128 %0,%%ymm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][2][1][0])); asm volatile ("vpshufb %ymm10,%ymm3,%ymm3"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); } + if (np >= 5) { asm volatile ("vbroadcasti128 %0,%%ymm4" : : "m" (raid_gfcauchypshufb[l][3][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][3][1][0])); asm volatile ("vpshufb %ymm10,%ymm4,%ymm4"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); } + if (np >= 6) { asm volatile ("vbroadcasti128 %0,%%ymm5" : : "m" (raid_gfcauchypshufb[l][4][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][4][1][0])); asm volatile ("vpshufb %ymm10,%ymm5,%ymm5"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); } /* intermediate disks */ for (d = l - 1; d > 0; --d) { asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[d][i])); - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm12"); + /* Q *= 2 */ asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); asm volatile ("vpand %ymm14,%ymm11,%ymm11"); asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); - if (generator == 3) - asm volatile ("vpxor %ymm12,%ymm1,%ymm1"); asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); - asm volatile ("vpsrlw $4,%ymm10,%ymm11"); - asm volatile ("vpand %ymm15,%ymm10,%ymm10"); - asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + if (np >= 3) { asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); - asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); } + if (np >= 4) { asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm12,%ymm3,%ymm3"); - asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm12,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); } + if (np >= 5) { asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm12,%ymm4,%ymm4"); - asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm12,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); } + if (np >= 6) { asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); - asm volatile ("vpxor %ymm12,%ymm5,%ymm5"); - asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm12,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); } } /* first disk with all coefficients at 1 */ asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[0][i])); - if (generator == 3) - asm volatile ("vmovdqa %ymm1,%ymm12"); + /* final Q *= 2 */ asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); asm volatile ("vpand %ymm14,%ymm11,%ymm11"); asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); - if (generator == 3) + + asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); + if (np >= 3) + asm volatile ("vpxor %ymm10,%ymm2,%ymm2"); + if (np >= 4) + asm volatile ("vpxor %ymm10,%ymm3,%ymm3"); + if (np >= 5) + asm volatile ("vpxor %ymm10,%ymm4,%ymm4"); + if (np >= 6) + asm volatile ("vpxor %ymm10,%ymm5,%ymm5"); + + asm volatile ("vmovntdq %%ymm0,%0" : "=m" (v[nd][i])); + asm volatile ("vmovntdq %%ymm1,%0" : "=m" (v[nd + 1][i])); + if (np >= 3) + asm volatile ("vmovntdq %%ymm2,%0" : "=m" (v[nd + 2][i])); + if (np >= 4) + asm volatile ("vmovntdq %%ymm3,%0" : "=m" (v[nd + 3][i])); + if (np >= 5) + asm volatile ("vmovntdq %%ymm4,%0" : "=m" (v[nd + 4][i])); + if (np >= 6) + asm volatile ("vmovntdq %%ymm5,%0" : "=m" (v[nd + 5][i])); + } + + raid_avx_end(); +} + +/* + * GENX AVX2EXT implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_genX_avx2ext_g23(int nd, size_t size, + void **vv, int np) +{ + uint8_t **v = (uint8_t **)vv; + size_t i; + int d, l; + + l = nd - 1; + + if (l == 0) { + for (d = 0; d < np; ++d) + memcpy(v[1 + d], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_avx_begin(); + + asm volatile ("vpxor %ymm6,%ymm6,%ymm6"); + asm volatile ("vpbroadcastb %0,%%ymm14" : : "m" (gfconst16.poly[0])); + asm volatile ("vpbroadcastb %0,%%ymm15" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + /* last disk */ + asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[l][i])); + + asm volatile ("vmovdqa %ymm10,%ymm0"); + asm volatile ("vmovdqa %ymm10,%ymm1"); + + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + + if (np >= 3) { + asm volatile ("vbroadcasti128 %0,%%ymm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("vpshufb %ymm10,%ymm2,%ymm2"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + } + + if (np >= 4) { + asm volatile ("vbroadcasti128 %0,%%ymm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("vpshufb %ymm10,%ymm3,%ymm3"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + } + + if (np >= 5) { + asm volatile ("vbroadcasti128 %0,%%ymm4" : : "m" (raid_gfcauchypshufb[l][3][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][3][1][0])); + asm volatile ("vpshufb %ymm10,%ymm4,%ymm4"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + } + + if (np >= 6) { + asm volatile ("vbroadcasti128 %0,%%ymm5" : : "m" (raid_gfcauchypshufb[l][4][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[l][4][1][0])); + asm volatile ("vpshufb %ymm10,%ymm5,%ymm5"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + } + + d = l - 1; + + while (boundary >= 0) { + /* x2-only part of this segment */ + for (; d > boundary; --d) { + asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[d][i])); + + asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm14,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); + + asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); + + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + + if (np >= 3) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + } + + if (np >= 4) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + } + + if (np >= 5) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + } + + if (np >= 6) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + } + } + + /* + * d == boundary: Q *= 3. + * + * ymm12 is free here and can temporarily preserve + * the old Q value. + */ + asm volatile ("vmovdqa %ymm1,%ymm12"); + + /* Q *= 2 */ + asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm14,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); + + /* Q *= 3 */ asm volatile ("vpxor %ymm12,%ymm1,%ymm1"); + asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[d][i])); + + asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); + + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + + if (np >= 3) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + } + + if (np >= 4) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + } + + if (np >= 5) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + } + + if (np >= 6) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + } + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* final x2-only segment */ + for (; d > 0; --d) { + asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[d][i])); + + asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm14,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); + + asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); + asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); + + asm volatile ("vpsrlw $4,%ymm10,%ymm11"); + asm volatile ("vpand %ymm15,%ymm10,%ymm10"); + asm volatile ("vpand %ymm15,%ymm11,%ymm11"); + + if (np >= 3) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm2,%ymm2"); + asm volatile ("vpxor %ymm13,%ymm2,%ymm2"); + } + + if (np >= 4) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm3,%ymm3"); + asm volatile ("vpxor %ymm13,%ymm3,%ymm3"); + } + + if (np >= 5) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm4,%ymm4"); + asm volatile ("vpxor %ymm13,%ymm4,%ymm4"); + } + + if (np >= 6) { + asm volatile ("vbroadcasti128 %0,%%ymm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("vbroadcasti128 %0,%%ymm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("vpshufb %ymm10,%ymm12,%ymm12"); + asm volatile ("vpshufb %ymm11,%ymm13,%ymm13"); + asm volatile ("vpxor %ymm12,%ymm5,%ymm5"); + asm volatile ("vpxor %ymm13,%ymm5,%ymm5"); + } + } + + /* + * D0 always follows Q *= 2. + */ + asm volatile ("vmovdqa %0,%%ymm10" : : "m" (v[0][i])); + + asm volatile ("vpcmpgtb %ymm1,%ymm6,%ymm11"); + asm volatile ("vpaddb %ymm1,%ymm1,%ymm1"); + asm volatile ("vpand %ymm14,%ymm11,%ymm11"); + asm volatile ("vpxor %ymm11,%ymm1,%ymm1"); + asm volatile ("vpxor %ymm10,%ymm0,%ymm0"); asm volatile ("vpxor %ymm10,%ymm1,%ymm1"); if (np >= 3) @@ -927,36 +2011,32 @@ static __always_inline void raid_genX_avx2ext(int nd, size_t size, void **vv, in #endif #ifdef CONFIG_X86_64 -/* - * GEN5 (penta parity with Cauchy matrix) AVX2 implementation - * - * Note that it uses 16 registers, meaning that x64 is required. - */ void raid_gen5_avx2ext_raid(int nd, size_t size, void **vv) { - raid_genX_avx2ext(nd, size, vv, 5, 2); + raid_genX_avx2ext_x2(nd, size, vv, 5); } void raid_gen5_avx2ext_aes(int nd, size_t size, void **vv) { - raid_genX_avx2ext(nd, size, vv, 5, 3); + if (raid_g23_x2_only(nd)) + raid_genX_avx2ext_x2(nd, size, vv, 5); + else + raid_genX_avx2ext_g23(nd, size, vv, 5); } #endif #ifdef CONFIG_X86_64 -/* - * GEN6 (hexa parity with Cauchy matrix) AVX2 implementation - * - * Note that it uses 16 registers, meaning that x64 is required. - */ void raid_gen6_avx2ext_raid(int nd, size_t size, void **vv) { - raid_genX_avx2ext(nd, size, vv, 6, 2); + raid_genX_avx2ext_x2(nd, size, vv, 6); } void raid_gen6_avx2ext_aes(int nd, size_t size, void **vv) { - raid_genX_avx2ext(nd, size, vv, 6, 3); + if (raid_g23_x2_only(nd)) + raid_genX_avx2ext_x2(nd, size, vv, 6); + else + raid_genX_avx2ext_g23(nd, size, vv, 6); } #endif diff --git a/raid/gf.h b/raid/gf.h index 0e92d508..7a164678 100644 --- a/raid/gf.h +++ b/raid/gf.h @@ -29,16 +29,6 @@ static __always_inline uint8_t inv(uint8_t v) return raid_gfinv[v]; } -/* - * GF generator^a for the active Cauchy matrix. - */ -static __always_inline uint8_t powgen(int v) -{ - BUG_ON(v < 0 || v > 254); /* invalid exponent */ - - return raid_gfexp[v]; -} - /* * Gets the multiplication table for a specified value. */ diff --git a/raid/int.c b/raid/int.c index 280f7d80..fef64434 100644 --- a/raid/int.c +++ b/raid/int.c @@ -61,9 +61,53 @@ void raid_gen1_int64(int nd, size_t size, void **vv) } /* - * GEN2 (double parity) 32bit C implementation + * GEN2 (double parity) 32bit C implementation using only Q *= 2. */ -static __always_inline void raid_gen2_int32_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_int32_x2(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + const uint32_t poly_32 = raid_poly_32; + + uint32_t d0, q0, p0; + uint32_t d1, q1, p1; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + for (i = 0; i < size; i += 8) { + q0 = p0 = v_read32(&v[l][i]); + q1 = p1 = v_read32(&v[l][i + 4]); + + for (d = l - 1; d >= 0; --d) { + d0 = v_read32(&v[d][i]); + d1 = v_read32(&v[d][i + 4]); + + p0 ^= d0; + p1 ^= d1; + + q0 = x2_32(q0, poly_32); + q1 = x2_32(q1, poly_32); + + q0 ^= d0; + q1 ^= d1; + } + + v_write32(&p[i], p0); + v_write32(&p[i + 4], p1); + v_write32(&q[i], q0); + v_write32(&q[i + 4], q1); + } +} + +/* + * GEN2 (double parity) 32bit C implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_int32_g23(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -80,10 +124,47 @@ static __always_inline void raid_gen2_int32_gen(int nd, size_t size, void **vv, p = v[nd]; q = v[nd + 1]; + int g23_boundary = raid_g23_boundary(l - 1); + for (i = 0; i < size; i += 8) { + int boundary = g23_boundary; + q0 = p0 = v_read32(&v[l][i]); q1 = p1 = v_read32(&v[l][i + 4]); - for (d = l - 1; d >= 0; --d) { + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { + d0 = v_read32(&v[d][i]); + d1 = v_read32(&v[d][i + 4]); + + p0 ^= d0; + p1 ^= d1; + + q0 = x2_32(q0, poly_32); + q1 = x2_32(q1, poly_32); + + q0 ^= d0; + q1 ^= d1; + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ d0 = v_read32(&v[d][i]); d1 = v_read32(&v[d][i + 4]); @@ -92,17 +173,26 @@ static __always_inline void raid_gen2_int32_gen(int nd, size_t size, void **vv, qold = q0; q0 = x2_32(q0, poly_32); - if (generator == 3) - q0 ^= qold; + q0 ^= qold; qold = q1; q1 = x2_32(q1, poly_32); - if (generator == 3) - q1 ^= qold; + q1 ^= qold; q0 ^= d0; q1 ^= d1; + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; } + v_write32(&p[i], p0); v_write32(&p[i + 4], p1); v_write32(&q[i], q0); @@ -112,18 +202,65 @@ static __always_inline void raid_gen2_int32_gen(int nd, size_t size, void **vv, void raid_gen2_int32_raid(int nd, size_t size, void **vv) { - raid_gen2_int32_gen(nd, size, vv, 2); + raid_gen2_int32_x2(nd, size, vv); } void raid_gen2_int32_aes(int nd, size_t size, void **vv) { - raid_gen2_int32_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_int32_x2(nd, size, vv); + else + raid_gen2_int32_g23(nd, size, vv); } /* - * GEN2 (double parity) 64bit C implementation + * GEN2 (double parity) 64bit C implementation using only Q *= 2. */ -static __always_inline void raid_gen2_int64_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_int64_x2(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + const uint64_t poly_64 = raid_poly_64; + + uint64_t d0, q0, p0; + uint64_t d1, q1, p1; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + for (i = 0; i < size; i += 16) { + q0 = p0 = v_read64(&v[l][i]); + q1 = p1 = v_read64(&v[l][i + 8]); + + for (d = l - 1; d >= 0; --d) { + d0 = v_read64(&v[d][i]); + d1 = v_read64(&v[d][i + 8]); + + p0 ^= d0; + p1 ^= d1; + + q0 = x2_64(q0, poly_64); + q1 = x2_64(q1, poly_64); + + q0 ^= d0; + q1 ^= d1; + } + + v_write64(&p[i], p0); + v_write64(&p[i + 8], p1); + v_write64(&q[i], q0); + v_write64(&q[i + 8], q1); + } +} + +/* + * GEN2 (double parity) 64bit C implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_int64_g23(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -140,10 +277,47 @@ static __always_inline void raid_gen2_int64_gen(int nd, size_t size, void **vv, p = v[nd]; q = v[nd + 1]; + int g23_boundary = raid_g23_boundary(l - 1); + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + q0 = p0 = v_read64(&v[l][i]); q1 = p1 = v_read64(&v[l][i + 8]); - for (d = l - 1; d >= 0; --d) { + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { + d0 = v_read64(&v[d][i]); + d1 = v_read64(&v[d][i + 8]); + + p0 ^= d0; + p1 ^= d1; + + q0 = x2_64(q0, poly_64); + q1 = x2_64(q1, poly_64); + + q0 ^= d0; + q1 ^= d1; + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ d0 = v_read64(&v[d][i]); d1 = v_read64(&v[d][i + 8]); @@ -152,17 +326,26 @@ static __always_inline void raid_gen2_int64_gen(int nd, size_t size, void **vv, qold = q0; q0 = x2_64(q0, poly_64); - if (generator == 3) - q0 ^= qold; + q0 ^= qold; qold = q1; q1 = x2_64(q1, poly_64); - if (generator == 3) - q1 ^= qold; + q1 ^= qold; q0 ^= d0; q1 ^= d1; + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; } + v_write64(&p[i], p0); v_write64(&p[i + 8], p1); v_write64(&q[i], q0); @@ -172,17 +355,15 @@ static __always_inline void raid_gen2_int64_gen(int nd, size_t size, void **vv, void raid_gen2_int64_raid(int nd, size_t size, void **vv) { - raid_gen2_int64_gen(nd, size, vv, 2); + raid_gen2_int64_x2(nd, size, vv); } void raid_gen2_int64_aes(int nd, size_t size, void **vv) { - raid_gen2_int64_gen(nd, size, vv, 3); -} - -void raid_gen2_int8(int nd, size_t size, void **vv) -{ - raid_gen_ref(nd, 2, size, vv); + if (raid_g23_x2_only(nd)) + raid_gen2_int64_x2(nd, size, vv); + else + raid_gen2_int64_g23(nd, size, vv); } /* @@ -694,7 +875,6 @@ void raid_recX_int8(int nr, int *id, int *ip, int nd, size_t size, void **vv) void raid_register_int(void) { - raid_gen_register(RAID_ALGO_CAUCHY_PAR2, "int8", raid_gen2_int8, RAID_POLY_ANY); raid_gen_register(RAID_ALGO_CAUCHY_PAR3, "int8", raid_gen3_int8, RAID_POLY_ANY); raid_gen_register(RAID_ALGO_CAUCHY_PAR4, "int8", raid_gen4_int8, RAID_POLY_ANY); raid_gen_register(RAID_ALGO_CAUCHY_PAR5, "int8", raid_gen5_int8, RAID_POLY_ANY); diff --git a/raid/internal.h b/raid/internal.h index c59db706..8a7c00b2 100644 --- a/raid/internal.h +++ b/raid/internal.h @@ -74,6 +74,82 @@ static __always_inline void * __align_ptr(void *ptr, uintptr_t size) return (void *)offset; } +/* + * Check if the AES G23 Q recurrence contains only x2 transitions + * for the specified number of data disks. + */ +static __always_inline int raid_g23_x2_only(int nd) +{ + return nd <= 51; +} + +/* + * Find the next AES G23 x3 boundary in descending Horner order. + * + * The G23 Q coefficients are generated by multiplying by 2 at every step, + * except at the four boundaries between the five cosets, where the next + * coefficient is obtained by multiplying by 3 instead: + * + * q[i + 1] = 3 * q[i] for i = 50, 101, 152, 203 + * q[i + 1] = 2 * q[i] otherwise + * + * The optimized parity generators evaluate Q in descending Horner order. + * If the current step is identified by disk index d, the x3 transitions are + * therefore encountered at: + * + * d = 203, 152, 101, 50 + * + * i.e. every 51 descending steps. + * + * The generators can process all the x2 transitions between two consecutive + * boundaries in a branch-free loop, and handle the x3 transition separately. + * This function returns the first x3 boundary encountered by a descending + * traversal whose first processed step has index d. + * + * For d >= 50, (d - 50) % 51 gives the distance from the previous x3 + * boundary in ascending index order. Subtracting this distance from d gives + * that boundary directly: + * + * boundary = d - (d - 50) % 51 + * + * Since the Horner traversal proceeds toward decreasing indexes, this is also + * the next x3 transition that will be encountered. + * + * For d < 50 there is no remaining x3 transition, so -1 is returned. This + * value can also be used as the lower bound of the final x2-only segment, + * allowing all remaining steps down to d = 0 to be processed without a + * special G23 test. + * + * Examples: + * + * d = 249 -> 203 -> x2 down to 204, then x3 at 203 + * d = 203 -> 203 -> x3 immediately + * d = 202 -> 152 -> x2 down to 153, then x3 at 152 + * d = 152 -> 152 -> x3 immediately + * d = 151 -> 101 -> x2 down to 102, then x3 at 101 + * d = 101 -> 101 -> x3 immediately + * d = 100 -> 50 -> x2 down to 51, then x3 at 50 + * d = 50 -> 50 -> x3 immediately + * d = 49 -> -1 -> no further x3 transition + * + * After processing a boundary, the following one in descending order is + * exactly 51 positions lower. Thus generators can continue with: + * + * boundary -= 51; + * if (boundary < 50) + * boundary = -1; + * + * The returned value is normally computed once before each independent + * Horner traversal and then advanced between the fixed G23 segments. + */ +static __always_inline int raid_g23_boundary(int d) +{ + if (d < 50) + return -1; + + return d - (d - 50) % 51; +} + /* * Includes the main interface headers. */ @@ -95,7 +171,6 @@ void raid_gen1_int64(int nd, size_t size, void **vv); void raid_gen1_sse2(int nd, size_t size, void **vv); void raid_gen1_avx2(int nd, size_t size, void **vv); void raid_gen1_avx512bw(int nd, size_t size, void **vv); -void raid_gen2_int8(int nd, size_t size, void **vv); void raid_gen2_int32_raid(int nd, size_t size, void **vv); void raid_gen2_int32_aes(int nd, size_t size, void **vv); void raid_gen2_int64_raid(int nd, size_t size, void **vv); @@ -144,6 +219,7 @@ void raid_gen4_avx2gfni_aes(int nd, size_t size, void **vv); void raid_gen4_avx512gfni_aes(int nd, size_t size, void **vv); void raid_gen5_int8(int nd, size_t size, void **vv); void raid_gen5_ssse3_raid(int nd, size_t size, void **vv); +void raid_gen5_ssse3_aes(int nd, size_t size, void **vv); void raid_gen5_ssse3ext_raid(int nd, size_t size, void **vv); void raid_gen5_ssse3ext_aes(int nd, size_t size, void **vv); void raid_gen5_avx2ext_raid(int nd, size_t size, void **vv); @@ -155,6 +231,7 @@ void raid_gen5_avx2gfni_aes(int nd, size_t size, void **vv); void raid_gen5_avx512gfni_aes(int nd, size_t size, void **vv); void raid_gen6_int8(int nd, size_t size, void **vv); void raid_gen6_ssse3_raid(int nd, size_t size, void **vv); +void raid_gen6_ssse3_aes(int nd, size_t size, void **vv); void raid_gen6_ssse3ext_raid(int nd, size_t size, void **vv); void raid_gen6_ssse3ext_aes(int nd, size_t size, void **vv); void raid_gen6_avx2ext_raid(int nd, size_t size, void **vv); @@ -357,7 +434,6 @@ extern struct gfconst16 gfconst16 __aligned(16); * Tables. */ extern const uint8_t raid_gfmul_raid[256][256] __aligned(256); -extern const uint8_t raid_gfexp_raid[256] __aligned(256); extern const uint8_t raid_gfinv_raid[256] __aligned(256); extern const uint8_t raid_gfvandermonde_raid[3][256] __aligned(256); extern const uint8_t raid_gfcauchy_raid[6][256] __aligned(256); @@ -368,7 +444,6 @@ extern const uint8_t raid_gfmulpshufb_raid[256][2][16] __aligned(256); #endif extern const uint8_t raid_gfmul_aes[256][256] __aligned(256); -extern const uint8_t raid_gfexp_aes[256] __aligned(256); extern const uint8_t raid_gfinv_aes[256] __aligned(256); extern const uint8_t raid_gfcauchy_aes[6][256] __aligned(256); #if defined(CONFIG_X86) || defined(CONFIG_NEON) || defined(CONFIG_NEON32) @@ -377,7 +452,6 @@ extern const uint8_t raid_gfmulpshufb_aes[256][2][16] __aligned(256); #endif extern const uint8_t(*raid_gfmul)[256]; -extern const uint8_t *raid_gfexp; extern const uint8_t *raid_gfinv; extern const uint8_t(*raid_gfvandermonde)[256]; extern const uint8_t(*raid_gfcauchy)[256]; diff --git a/raid/mktables.c b/raid/mktables.c index 70e5c9bc..bbeedd9b 100644 --- a/raid/mktables.c +++ b/raid/mktables.c @@ -3,12 +3,13 @@ #include #include +#include /* * Galois field reduction polynomials. * * RAID_POLY_RAID - Standard RAID polynomial 0x1d (x^8 + x^4 + x^3 + x^2 + 1). - * RAID_POLY_AES - AES polynomial 0x1b (x^8 + x^4 + x^3 + x + 1) for GFNI acceleration. + * RAID_POLY_AES - AES polynomial 0x1b (x^8 + x^4 + x^3 + x + 1) used by the AES/G23 Cauchy mode. */ #define RAID_POLY_RAID 0x1d #define RAID_POLY_AES 0x1b @@ -41,9 +42,10 @@ static uint8_t raid_gfmul(uint8_t poly, uint8_t a, uint8_t b) /** * Setup the GFNI affine matrix for multiplication by a constant. * - * VGF2P8MULB is fixed to the AES polynomial 0x11b, while RAID parity is - * defined over GF(2^8) modulo 0x11d. VGF2P8AFFINEQB can implement the - * multiplication because multiplication by a constant is GF(2)-linear. + * VGF2P8MULB is fixed to the AES polynomial 0x11b, while + * RAID_MODE_CAUCHY_RAID parity is defined over GF(2^8) modulo 0x11d. + * VGF2P8AFFINEQB can implement the multiplication because multiplication by a + * constant is GF(2)-linear. * * VGF2P8AFFINEQB stores the row producing output bit j in byte 7-j. * Within each row, bit k selects input bit k. @@ -84,9 +86,9 @@ uint8_t raid_gfinv[256]; #define DISK (257 - PARITY) /** - * Setup the Cauchy matrix used to generate the parity. + * Setup the RAID/g=2 Cauchy matrix used to generate parity. */ -static void set_cauchy(uint8_t poly, uint8_t generator, uint8_t *matrix) +static void set_cauchy_raid(uint8_t poly, uint8_t generator, uint8_t *matrix) { int i, j; uint8_t inv_x, y; @@ -206,6 +208,72 @@ static void set_cauchy(uint8_t poly, uint8_t generator, uint8_t *matrix) } } +/** + * Setup the AES Extended Cauchy matrix using the G23 sequence. + * + * The canonical G23 sequence starts with q[0]=1, advances by multiplication + * by 2 within each 51-element coset, and uses multiplication by 3 between + * consecutive cosets. + * + * The data X set consumes the canonical G23 sequence q[0..254] from the + * beginning, with x[i]=inv(q[i]), while the Cauchy Y set starts with zero and + * consumes the sequence backward from the end, y[j]=inv(q[255-j]) for j>0. + * For PARITY=n, DISK=257-n; increasing parity removes one X element from the + * tail and appends that same element to Y, leaving all existing rows unchanged + * on the remaining data columns. This defines a nested matrix without + * implementing parity levels above the current limit. + */ +static void set_cauchy_aes(uint8_t *matrix) +{ + uint8_t q[255]; + uint8_t y[PARITY - 1]; + int i, j, k; + + q[0] = 1; + for (i = 0; i < 254; ++i) { + uint8_t generator = i == 50 || i == 101 || i == 152 || i == 203 ? 3 : 2; + + q[i + 1] = raid_gfmul(RAID_POLY_AES, generator, q[i]); + } + + /* The five cosets must enumerate GF(256)* exactly once. */ + for (i = 0; i < 255; ++i) { + if (q[i] == 0) { + fprintf(stderr, "Invalid zero in AES G23 sequence at %d\n", i); + exit(EXIT_FAILURE); + } + for (k = i + 1; k < 255; ++k) { + if (q[i] == q[k]) { + fprintf(stderr, "Duplicate in AES G23 sequence at %d and %d\n", i, k); + exit(EXIT_FAILURE); + } + } + } + + for (i = 0; i < DISK; ++i) + matrix[i] = 1; + + y[0] = 0; + for (j = 1; j < PARITY - 1; ++j) + y[j] = raid_gfinv[q[255 - j]]; + + for (j = 0; j < PARITY - 1; ++j) { + for (i = 0; i < DISK; ++i) { + uint8_t x = raid_gfinv[q[i]]; + + matrix[(j + 1) * DISK + i] = raid_gfinv[x ^ y[j]]; + } + } + + /* Normalize R..U so every coefficient in the first column is 1. */ + for (j = 1; j < PARITY - 1; ++j) { + uint8_t f = raid_gfinv[matrix[(j + 1) * DISK]]; + + for (i = 0; i < DISK; ++i) + matrix[(j + 1) * DISK + i] = raid_gfmul(RAID_POLY_AES, matrix[(j + 1) * DISK + i], f); + } +} + /** * Setup the Power matrix used to generate the parity. */ @@ -284,22 +352,6 @@ void tables(uint8_t poly, uint8_t generator, const char *tag) printf("};\n\n"); } - /* generator^a */ - printf("const uint8_t __aligned(256) raid_gfexp_%s[256] =\n", tag); - printf("{\n"); - v = 1; - for (i = 0; i < 256; ++i) { - if (i % 8 == 0) - printf("\t"); - printf("0x%02x,", v); - v = raid_gfmul(poly, v, generator); - if (i % 8 == 7) - printf("\n"); - else - printf(" "); - } - printf("};\n\n"); - /* 1/a */ printf("const uint8_t __aligned(256) raid_gfinv_%s[256] =\n", tag); printf("{\n"); @@ -320,7 +372,10 @@ void tables(uint8_t poly, uint8_t generator, const char *tag) printf("};\n\n"); /* cauchy matrix */ - set_cauchy(poly, generator, matrix); + if (poly == RAID_POLY_AES) + set_cauchy_aes(matrix); + else + set_cauchy_raid(poly, generator, matrix); printf("/**\n"); printf(" * Cauchy matrix used to generate parity.\n"); @@ -410,10 +465,11 @@ void tables(uint8_t poly, uint8_t generator, const char *tag) printf("\t},\n"); } printf("};\n"); - printf("#endif\n\n"); + printf("#endif\n"); if (poly == RAID_POLY_AES) return; + printf("\n"); /* power matrix */ set_power(poly, matrix); diff --git a/raid/module.c b/raid/module.c index 4a0f9807..bacdd229 100644 --- a/raid/module.c +++ b/raid/module.c @@ -40,7 +40,6 @@ static struct raid_rec_algo *raid_rec_algo; int raid_mode_active = RAID_MODE_GET; const uint8_t(*raid_gfmul)[256]; -const uint8_t *raid_gfexp; const uint8_t *raid_gfinv; const uint8_t(*raid_gfvandermonde)[256]; const uint8_t(*raid_gfcauchy)[256]; @@ -225,7 +224,6 @@ int raid_mode(int mode) if (mode == RAID_MODE_CAUCHY_AES) { raid_gfmul = raid_gfmul_aes; - raid_gfexp = raid_gfexp_aes; raid_gfinv = raid_gfinv_aes; raid_gfvandermonde = 0; raid_gfcauchy = raid_gfcauchy_aes; @@ -245,7 +243,6 @@ int raid_mode(int mode) raid_rec_algo = raid_rec_algo_aes; } else { raid_gfmul = raid_gfmul_raid; - raid_gfexp = raid_gfexp_raid; raid_gfinv = raid_gfinv_raid; raid_gfvandermonde = raid_gfvandermonde_raid; raid_gfcauchy = raid_gfcauchy_raid; diff --git a/raid/neon.c b/raid/neon.c index 0e78269b..523834af 100644 --- a/raid/neon.c +++ b/raid/neon.c @@ -60,9 +60,9 @@ void raid_gen1_neon(int nd, size_t size, void **vv) } /* - * GEN2 Cauchy NEON implementation using the active generator + * GEN2 Cauchy NEON implementation using only Q *= 2. */ -static __always_inline void raid_gen2_neon_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_neon_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -93,13 +93,6 @@ static __always_inline void raid_gen2_neon_gen(int nd, size_t size, void **vv, i ); for (d = l - 1; d >= 0; --d) { - if (generator == 3) { - /* v14-v15 are otherwise unused and preserve Q across the AES xtime. */ - asm volatile ( - "mov v14.16b, v2.16b\n" - "mov v15.16b, v3.16b\n" - ); - } asm volatile ( /* double Q0-Q1 */ "sshr v16.16b, v2.16b, #7\n" @@ -122,12 +115,142 @@ static __always_inline void raid_gen2_neon_gen(int nd, size_t size, void **vv, i : : "m" (v[d][i]), "m" (v[d][i + 16]) ); - if (generator == 3) { + } + + asm volatile ( + "str q0, %0\n" + "str q1, %1\n" + "str q2, %2\n" + "str q3, %3\n" + : "=m" (p[i]), "=m" (p[i + 16]), + "=m" (q[i]), "=m" (q[i + 16]) + ); + } + + raid_neon_end(); +} + +/* + * GEN2 Cauchy NEON implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_neon_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_neon_begin(); + + asm volatile ( + "ldr q29, %0\n" + : + : "m" (gfconst16.poly[0]) + ); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + asm volatile ( + "ldr q0, %0\n" + "ldr q1, %1\n" + "mov v2.16b, v0.16b\n" + "mov v3.16b, v1.16b\n" + : + : "m" (v[l][i]), "m" (v[l][i + 16]) + ); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { asm volatile ( - "eor v2.16b, v2.16b, v14.16b\n" - "eor v3.16b, v3.16b, v15.16b\n" + /* double Q0-Q1 */ + "sshr v16.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v16.16b, v16.16b, v29.16b\n" + "eor v2.16b, v2.16b, v16.16b\n" + + "sshr v16.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v16.16b, v16.16b, v29.16b\n" + "eor v3.16b, v3.16b, v16.16b\n" + + /* load and XOR */ + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + : + : "m" (v[d][i]), "m" (v[d][i + 16]) ); } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ( + /* preserve Q for Q *= 3 */ + "mov v14.16b, v2.16b\n" + "mov v15.16b, v3.16b\n" + + /* double Q0-Q1 */ + "sshr v16.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v16.16b, v16.16b, v29.16b\n" + "eor v2.16b, v2.16b, v16.16b\n" + + "sshr v16.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v16.16b, v16.16b, v29.16b\n" + "eor v3.16b, v3.16b, v16.16b\n" + + /* load and XOR */ + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + + /* complete Q *= 3 */ + "eor v2.16b, v2.16b, v14.16b\n" + "eor v3.16b, v3.16b, v15.16b\n" + : + : "m" (v[d][i]), "m" (v[d][i + 16]) + ); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; } asm volatile ( @@ -145,12 +268,15 @@ static __always_inline void raid_gen2_neon_gen(int nd, size_t size, void **vv, i void raid_gen2_neon_raid(int nd, size_t size, void **vv) { - raid_gen2_neon_gen(nd, size, vv, 2); + raid_gen2_neon_x2(nd, size, vv); } void raid_gen2_neon_aes(int nd, size_t size, void **vv) { - raid_gen2_neon_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_neon_x2(nd, size, vv); + else + raid_gen2_neon_g23(nd, size, vv); } /* @@ -248,9 +374,10 @@ void raid_genz_neon_raid(int nd, size_t size, void **vv) } /* - * GENX NEON implementation + * GENX NEON implementation using only Q *= 2. */ -static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int np, int generator) +static __always_inline void raid_genX_neon_x2(int nd, size_t size, + void **vv, int np) { uint8_t **v = (uint8_t **)vv; size_t i; @@ -276,7 +403,7 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n ); for (i = 0; i < size; i += 32) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ( "ldr q0, %0\n" "ldr q1, %1\n" @@ -308,9 +435,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "tbl v20.16b, {v23.16b}, v19.16b\n" "eor v5.16b, v5.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[l][1][0][0]), "m" (raid_gfcauchypshufb[l][1][1][0]) + : "m" (raid_gfcauchypshufb[l][1][0][0]), + "m" (raid_gfcauchypshufb[l][1][1][0]) ); } + if (np >= 4) { asm volatile ( "ldr q22, %0\n" @@ -323,9 +452,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "tbl v20.16b, {v23.16b}, v19.16b\n" "eor v7.16b, v7.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[l][2][0][0]), "m" (raid_gfcauchypshufb[l][2][1][0]) + : "m" (raid_gfcauchypshufb[l][2][0][0]), + "m" (raid_gfcauchypshufb[l][2][1][0]) ); } + if (np >= 5) { asm volatile ( "ldr q22, %0\n" @@ -338,9 +469,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "tbl v20.16b, {v23.16b}, v19.16b\n" "eor v9.16b, v9.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[l][3][0][0]), "m" (raid_gfcauchypshufb[l][3][1][0]) + : "m" (raid_gfcauchypshufb[l][3][0][0]), + "m" (raid_gfcauchypshufb[l][3][1][0]) ); } + if (np >= 6) { asm volatile ( "ldr q22, %0\n" @@ -353,18 +486,13 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "tbl v20.16b, {v23.16b}, v19.16b\n" "eor v11.16b, v11.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[l][4][0][0]), "m" (raid_gfcauchypshufb[l][4][1][0]) + : "m" (raid_gfcauchypshufb[l][4][0][0]), + "m" (raid_gfcauchypshufb[l][4][1][0]) ); } /* intermediate disks */ for (d = l - 1; d > 0; --d) { - if (generator == 3) { - asm volatile ( - "mov v14.16b, v2.16b\n" - "mov v15.16b, v3.16b\n" - ); - } asm volatile ( /* double Q0-Q1 */ "sshr v20.16b, v2.16b, #7\n" @@ -387,12 +515,6 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n : : "m" (v[d][i]), "m" (v[d][i + 16]) ); - if (generator == 3) { - asm volatile ( - "eor v2.16b, v2.16b, v14.16b\n" - "eor v3.16b, v3.16b, v15.16b\n" - ); - } if (np >= 3) { asm volatile ( @@ -418,9 +540,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "eor v20.16b, v20.16b, v21.16b\n" "eor v5.16b, v5.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[d][1][0][0]), "m" (raid_gfcauchypshufb[d][1][1][0]) + : "m" (raid_gfcauchypshufb[d][1][0][0]), + "m" (raid_gfcauchypshufb[d][1][1][0]) ); } + if (np >= 4) { asm volatile ( "ldr q22, %0\n" @@ -435,9 +559,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "eor v20.16b, v20.16b, v21.16b\n" "eor v7.16b, v7.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[d][2][0][0]), "m" (raid_gfcauchypshufb[d][2][1][0]) + : "m" (raid_gfcauchypshufb[d][2][0][0]), + "m" (raid_gfcauchypshufb[d][2][1][0]) ); } + if (np >= 5) { asm volatile ( "ldr q22, %0\n" @@ -452,9 +578,11 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "eor v20.16b, v20.16b, v21.16b\n" "eor v9.16b, v9.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[d][3][0][0]), "m" (raid_gfcauchypshufb[d][3][1][0]) + : "m" (raid_gfcauchypshufb[d][3][0][0]), + "m" (raid_gfcauchypshufb[d][3][1][0]) ); } + if (np >= 6) { asm volatile ( "ldr q22, %0\n" @@ -469,18 +597,13 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n "eor v20.16b, v20.16b, v21.16b\n" "eor v11.16b, v11.16b, v20.16b\n" : - : "m" (raid_gfcauchypshufb[d][4][0][0]), "m" (raid_gfcauchypshufb[d][4][1][0]) + : "m" (raid_gfcauchypshufb[d][4][0][0]), + "m" (raid_gfcauchypshufb[d][4][1][0]) ); } } /* first disk with all coefficients at 1 */ - if (generator == 3) { - asm volatile ( - "mov v14.16b, v2.16b\n" - "mov v15.16b, v3.16b\n" - ); - } asm volatile ( /* double Q0-Q1 */ "sshr v20.16b, v2.16b, #7\n" @@ -503,12 +626,6 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n : : "m" (v[0][i]), "m" (v[0][i + 16]) ); - if (generator == 3) { - asm volatile ( - "eor v2.16b, v2.16b, v14.16b\n" - "eor v3.16b, v3.16b, v15.16b\n" - ); - } if (np >= 3) { asm volatile ( @@ -535,13 +652,560 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n ); } + /* write parity in increasing order */ asm volatile ( "str q0, %0\n" "str q1, %1\n" "str q2, %2\n" "str q3, %3\n" : "=m" (v[nd][i]), "=m" (v[nd][i + 16]), - "=m" (v[nd + 1][i]), "=m" (v[nd + 1][i + 16]) + "=m" (v[nd + 1][i]), "=m" (v[nd + 1][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "str q4, %0\n" + "str q5, %1\n" + : "=m" (v[nd + 2][i]), "=m" (v[nd + 2][i + 16]) + ); + } + if (np >= 4) { + asm volatile ( + "str q6, %0\n" + "str q7, %1\n" + : "=m" (v[nd + 3][i]), "=m" (v[nd + 3][i + 16]) + ); + } + if (np >= 5) { + asm volatile ( + "str q8, %0\n" + "str q9, %1\n" + : "=m" (v[nd + 4][i]), "=m" (v[nd + 4][i + 16]) + ); + } + if (np >= 6) { + asm volatile ( + "str q10, %0\n" + "str q11, %1\n" + : "=m" (v[nd + 5][i]), "=m" (v[nd + 5][i + 16]) + ); + } + } + + raid_neon_end(); +} + +/* + * GENX NEON implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_genX_neon_g23(int nd, size_t size, + void **vv, int np) +{ + uint8_t **v = (uint8_t **)vv; + size_t i; + int d, l; + + l = nd - 1; + + /* special case with only one data disk */ + if (l == 0) { + for (d = 0; d < np; ++d) + memcpy(v[1 + d], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_neon_begin(); + + asm volatile ( + "ldr q29, %0\n" + "ldr q28, %1\n" + : + : "m" (gfconst16.poly[0]), "m" (gfconst16.low4[0]) + ); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ( + "ldr q0, %0\n" + "ldr q1, %1\n" + "mov v2.16b, v0.16b\n" + "mov v3.16b, v1.16b\n" + : + : "m" (v[l][i]), "m" (v[l][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "ushr v17.16b, v0.16b, #4\n" + "and v16.16b, v0.16b, v28.16b\n" + "and v17.16b, v17.16b, v28.16b\n" + "ushr v19.16b, v1.16b, #4\n" + "and v18.16b, v1.16b, v28.16b\n" + "and v19.16b, v19.16b, v28.16b\n" + ); + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v4.16b, {v22.16b}, v16.16b\n" + "tbl v20.16b, {v23.16b}, v17.16b\n" + "eor v4.16b, v4.16b, v20.16b\n" + "tbl v5.16b, {v22.16b}, v18.16b\n" + "tbl v20.16b, {v23.16b}, v19.16b\n" + "eor v5.16b, v5.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[l][1][0][0]), + "m" (raid_gfcauchypshufb[l][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v6.16b, {v22.16b}, v16.16b\n" + "tbl v20.16b, {v23.16b}, v17.16b\n" + "eor v6.16b, v6.16b, v20.16b\n" + "tbl v7.16b, {v22.16b}, v18.16b\n" + "tbl v20.16b, {v23.16b}, v19.16b\n" + "eor v7.16b, v7.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[l][2][0][0]), + "m" (raid_gfcauchypshufb[l][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v8.16b, {v22.16b}, v16.16b\n" + "tbl v20.16b, {v23.16b}, v17.16b\n" + "eor v8.16b, v8.16b, v20.16b\n" + "tbl v9.16b, {v22.16b}, v18.16b\n" + "tbl v20.16b, {v23.16b}, v19.16b\n" + "eor v9.16b, v9.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[l][3][0][0]), + "m" (raid_gfcauchypshufb[l][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v10.16b, {v22.16b}, v16.16b\n" + "tbl v20.16b, {v23.16b}, v17.16b\n" + "eor v10.16b, v10.16b, v20.16b\n" + "tbl v11.16b, {v22.16b}, v18.16b\n" + "tbl v20.16b, {v23.16b}, v19.16b\n" + "eor v11.16b, v11.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[l][4][0][0]), + "m" (raid_gfcauchypshufb[l][4][1][0]) + ); + } + + d = l - 1; + + while (boundary >= 0) { + /* + * All transitions above the next G23 boundary use Q *= 2. + */ + for (; d > boundary; --d) { + asm volatile ( + "sshr v20.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v2.16b, v2.16b, v20.16b\n" + + "sshr v20.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v3.16b, v3.16b, v20.16b\n" + + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + : + : "m" (v[d][i]), "m" (v[d][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "ushr v17.16b, v12.16b, #4\n" + "and v16.16b, v12.16b, v28.16b\n" + "and v17.16b, v17.16b, v28.16b\n" + "ushr v19.16b, v13.16b, #4\n" + "and v18.16b, v13.16b, v28.16b\n" + "and v19.16b, v19.16b, v28.16b\n" + ); + + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v4.16b, v4.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v5.16b, v5.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][1][0][0]), + "m" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v6.16b, v6.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v7.16b, v7.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][2][0][0]), + "m" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v8.16b, v8.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v9.16b, v9.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][3][0][0]), + "m" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v10.16b, v10.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v11.16b, v11.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][4][0][0]), + "m" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + } + + /* + * d == boundary. + * + * Preserve Q in v14/v15, perform Q *= 2, then XOR + * the old value back to obtain Q *= 3. + */ + asm volatile ( + "mov v14.16b, v2.16b\n" + "mov v15.16b, v3.16b\n" + + "sshr v20.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v2.16b, v2.16b, v20.16b\n" + + "sshr v20.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v3.16b, v3.16b, v20.16b\n" + + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + + "eor v2.16b, v2.16b, v14.16b\n" + "eor v3.16b, v3.16b, v15.16b\n" + : + : "m" (v[d][i]), "m" (v[d][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "ushr v17.16b, v12.16b, #4\n" + "and v16.16b, v12.16b, v28.16b\n" + "and v17.16b, v17.16b, v28.16b\n" + "ushr v19.16b, v13.16b, #4\n" + "and v18.16b, v13.16b, v28.16b\n" + "and v19.16b, v19.16b, v28.16b\n" + ); + + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v4.16b, v4.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v5.16b, v5.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][1][0][0]), + "m" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v6.16b, v6.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v7.16b, v7.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][2][0][0]), + "m" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v8.16b, v8.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v9.16b, v9.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][3][0][0]), + "m" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v10.16b, v10.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v11.16b, v11.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][4][0][0]), + "m" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. Process D[d] ... D1 using + * only Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ( + "sshr v20.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v2.16b, v2.16b, v20.16b\n" + + "sshr v20.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v3.16b, v3.16b, v20.16b\n" + + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + : + : "m" (v[d][i]), "m" (v[d][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "ushr v17.16b, v12.16b, #4\n" + "and v16.16b, v12.16b, v28.16b\n" + "and v17.16b, v17.16b, v28.16b\n" + "ushr v19.16b, v13.16b, #4\n" + "and v18.16b, v13.16b, v28.16b\n" + "and v19.16b, v19.16b, v28.16b\n" + ); + + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v4.16b, v4.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v5.16b, v5.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][1][0][0]), + "m" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v6.16b, v6.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v7.16b, v7.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][2][0][0]), + "m" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v8.16b, v8.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v9.16b, v9.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][3][0][0]), + "m" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "ldr q22, %0\n" + "ldr q23, %1\n" + "tbl v20.16b, {v22.16b}, v16.16b\n" + "tbl v21.16b, {v23.16b}, v17.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v10.16b, v10.16b, v20.16b\n" + "tbl v20.16b, {v22.16b}, v18.16b\n" + "tbl v21.16b, {v23.16b}, v19.16b\n" + "eor v20.16b, v20.16b, v21.16b\n" + "eor v11.16b, v11.16b, v20.16b\n" + : + : "m" (raid_gfcauchypshufb[d][4][0][0]), + "m" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + } + + /* + * D0 always follows Q *= 2. The lowest G23 boundary is 50. + */ + asm volatile ( + "sshr v20.16b, v2.16b, #7\n" + "shl v2.16b, v2.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v2.16b, v2.16b, v20.16b\n" + + "sshr v20.16b, v3.16b, #7\n" + "shl v3.16b, v3.16b, #1\n" + "and v20.16b, v20.16b, v29.16b\n" + "eor v3.16b, v3.16b, v20.16b\n" + + "ldr q12, %0\n" + "ldr q13, %1\n" + "eor v0.16b, v0.16b, v12.16b\n" + "eor v1.16b, v1.16b, v13.16b\n" + "eor v2.16b, v2.16b, v12.16b\n" + "eor v3.16b, v3.16b, v13.16b\n" + : + : "m" (v[0][i]), "m" (v[0][i + 16]) + ); + + if (np >= 3) { + asm volatile ( + "eor v4.16b, v4.16b, v12.16b\n" + "eor v5.16b, v5.16b, v13.16b\n" + ); + } + if (np >= 4) { + asm volatile ( + "eor v6.16b, v6.16b, v12.16b\n" + "eor v7.16b, v7.16b, v13.16b\n" + ); + } + if (np >= 5) { + asm volatile ( + "eor v8.16b, v8.16b, v12.16b\n" + "eor v9.16b, v9.16b, v13.16b\n" + ); + } + if (np >= 6) { + asm volatile ( + "eor v10.16b, v10.16b, v12.16b\n" + "eor v11.16b, v11.16b, v13.16b\n" + ); + } + + /* write parity in increasing order */ + asm volatile ( + "str q0, %0\n" + "str q1, %1\n" + "str q2, %2\n" + "str q3, %3\n" + : "=m" (v[nd][i]), "=m" (v[nd][i + 16]), + "=m" (v[nd + 1][i]), "=m" (v[nd + 1][i + 16]) ); if (np >= 3) { @@ -582,12 +1246,15 @@ static __always_inline void raid_genX_neon(int nd, size_t size, void **vv, int n */ void raid_gen3_neon_raid(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 3, 2); + raid_genX_neon_x2(nd, size, vv, 3); } void raid_gen3_neon_aes(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 3, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon_x2(nd, size, vv, 3); + else + raid_genX_neon_g23(nd, size, vv, 3); } /* @@ -595,12 +1262,15 @@ void raid_gen3_neon_aes(int nd, size_t size, void **vv) */ void raid_gen4_neon_raid(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 4, 2); + raid_genX_neon_x2(nd, size, vv, 4); } void raid_gen4_neon_aes(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 4, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon_x2(nd, size, vv, 4); + else + raid_genX_neon_g23(nd, size, vv, 4); } /* @@ -608,12 +1278,15 @@ void raid_gen4_neon_aes(int nd, size_t size, void **vv) */ void raid_gen5_neon_raid(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 5, 2); + raid_genX_neon_x2(nd, size, vv, 5); } void raid_gen5_neon_aes(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 5, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon_x2(nd, size, vv, 5); + else + raid_genX_neon_g23(nd, size, vv, 5); } /* @@ -621,12 +1294,15 @@ void raid_gen5_neon_aes(int nd, size_t size, void **vv) */ void raid_gen6_neon_raid(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 6, 2); + raid_genX_neon_x2(nd, size, vv, 6); } void raid_gen6_neon_aes(int nd, size_t size, void **vv) { - raid_genX_neon(nd, size, vv, 6, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon_x2(nd, size, vv, 6); + else + raid_genX_neon_g23(nd, size, vv, 6); } /* diff --git a/raid/neon32.c b/raid/neon32.c index a959139f..2073025f 100644 --- a/raid/neon32.c +++ b/raid/neon32.c @@ -63,10 +63,9 @@ void raid_gen1_neon32(int nd, size_t size, void **vv) } /* - * GEN2 Cauchy AArch32 NEON implementation using the active generator. + * GEN2 Cauchy AArch32 NEON implementation using only Q *= 2. */ -static __always_inline void raid_gen2_neon32_gen(int nd, size_t size, - void **vv, int generator) +static __always_inline void raid_gen2_neon32_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -98,21 +97,19 @@ static __always_inline void raid_gen2_neon32_gen(int nd, size_t size, ); for (d = l - 1; d >= 0; --d) { - if (generator == 3) { - asm volatile ( - "vmov q10, q2\n" - "vmov q11, q3\n" - ); - } asm volatile ( + /* double Q0-Q1 */ "vshr.s8 q8, q2, #7\n" "vshl.i8 q2, q2, #1\n" "vand q8, q8, q14\n" "veor q2, q2, q8\n" + "vshr.s8 q8, q3, #7\n" "vshl.i8 q3, q3, #1\n" "vand q8, q8, q14\n" "veor q3, q3, q8\n" + + /* load and XOR */ "vld1.8 {q12}, %0\n" "vld1.8 {q13}, %1\n" "veor q0, q0, q12\n" @@ -122,12 +119,143 @@ static __always_inline void raid_gen2_neon32_gen(int nd, size_t size, : : "Q" (v[d][i]), "Q" (v[d][i + 16]) ); - if (generator == 3) { + } + + asm volatile ( + "vst1.8 {q0}, %0\n" + "vst1.8 {q1}, %1\n" + "vst1.8 {q2}, %2\n" + "vst1.8 {q3}, %3\n" + : "=Q" (p[i]), "=Q" (p[i + 16]), + "=Q" (q[i]), "=Q" (q[i + 16]) + ); + } + + raid_neon32_end(); +} + +/* + * GEN2 Cauchy AArch32 NEON implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_neon32_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_neon32_begin(); + + /* q14 contains the active reduction polynomial. */ + asm volatile ( + "vld1.8 {q14}, %0\n" + : + : "Q" (gfconst16.poly[0]) + ); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + asm volatile ( + "vld1.8 {q0}, %0\n" + "vld1.8 {q1}, %1\n" + "vmov q2, q0\n" + "vmov q3, q1\n" + : + : "Q" (v[l][i]), "Q" (v[l][i + 16]) + ); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { asm volatile ( - "veor q2, q2, q10\n" - "veor q3, q3, q11\n" + /* double Q0-Q1 */ + "vshr.s8 q8, q2, #7\n" + "vshl.i8 q2, q2, #1\n" + "vand q8, q8, q14\n" + "veor q2, q2, q8\n" + + "vshr.s8 q8, q3, #7\n" + "vshl.i8 q3, q3, #1\n" + "vand q8, q8, q14\n" + "veor q3, q3, q8\n" + + /* load and XOR */ + "vld1.8 {q12}, %0\n" + "vld1.8 {q13}, %1\n" + "veor q0, q0, q12\n" + "veor q1, q1, q13\n" + "veor q2, q2, q12\n" + "veor q3, q3, q13\n" + : + : "Q" (v[d][i]), "Q" (v[d][i + 16]) ); } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ( + /* preserve Q for Q *= 3 */ + "vmov q10, q2\n" + "vmov q11, q3\n" + + /* double Q0-Q1 */ + "vshr.s8 q8, q2, #7\n" + "vshl.i8 q2, q2, #1\n" + "vand q8, q8, q14\n" + "veor q2, q2, q8\n" + + "vshr.s8 q8, q3, #7\n" + "vshl.i8 q3, q3, #1\n" + "vand q8, q8, q14\n" + "veor q3, q3, q8\n" + + /* load and XOR */ + "vld1.8 {q12}, %0\n" + "vld1.8 {q13}, %1\n" + "veor q0, q0, q12\n" + "veor q1, q1, q13\n" + "veor q2, q2, q12\n" + "veor q3, q3, q13\n" + + /* complete Q *= 3 */ + "veor q2, q2, q10\n" + "veor q3, q3, q11\n" + : + : "Q" (v[d][i]), "Q" (v[d][i + 16]) + ); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; } asm volatile ( @@ -145,12 +273,15 @@ static __always_inline void raid_gen2_neon32_gen(int nd, size_t size, void raid_gen2_neon32_raid(int nd, size_t size, void **vv) { - raid_gen2_neon32_gen(nd, size, vv, 2); + raid_gen2_neon32_x2(nd, size, vv); } void raid_gen2_neon32_aes(int nd, size_t size, void **vv) { - raid_gen2_neon32_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_neon32_x2(nd, size, vv); + else + raid_gen2_neon32_g23(nd, size, vv); } /* @@ -241,10 +372,10 @@ void raid_genz_neon32_raid(int nd, size_t size, void **vv) } /* - * GENX AArch32 NEON implementation. + * GENX AArch32 NEON implementation using only Q *= 2. */ -static __always_inline void raid_genX_neon32(int nd, size_t size, - void **vv, int np, int generator) +static __always_inline void raid_genX_neon32_x2(int nd, size_t size, + void **vv, int np) { uint8_t **v = (uint8_t **)vv; size_t i; @@ -269,7 +400,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, ); for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ( "vld1.8 {q0}, %0\n" "vld1.8 {q1}, %0\n" @@ -296,7 +427,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q2, q11, q12\n" : : "Q" (raid_gfcauchypshufb[l][1][0][0]), - "Q" (raid_gfcauchypshufb[l][1][1][0]) + "Q" (raid_gfcauchypshufb[l][1][1][0]) ); } @@ -313,7 +444,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q3, q11, q12\n" : : "Q" (raid_gfcauchypshufb[l][2][0][0]), - "Q" (raid_gfcauchypshufb[l][2][1][0]) + "Q" (raid_gfcauchypshufb[l][2][1][0]) ); } @@ -330,7 +461,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q4, q11, q12\n" : : "Q" (raid_gfcauchypshufb[l][3][0][0]), - "Q" (raid_gfcauchypshufb[l][3][1][0]) + "Q" (raid_gfcauchypshufb[l][3][1][0]) ); } @@ -347,33 +478,26 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q5, q11, q12\n" : : "Q" (raid_gfcauchypshufb[l][4][0][0]), - "Q" (raid_gfcauchypshufb[l][4][1][0]) + "Q" (raid_gfcauchypshufb[l][4][1][0]) ); } /* intermediate disks */ for (d = l - 1; d > 0; --d) { - if (generator == 3) { - asm volatile ( - "vmov q13, q1\n" - ); - } asm volatile ( + /* Q *= 2 */ "vshr.s8 q11, q1, #7\n" "vshl.i8 q1, q1, #1\n" "vand q11, q11, q14\n" "veor q1, q1, q11\n" + + /* load disk and update P/Q */ "vld1.8 {q6}, %0\n" "veor q0, q0, q6\n" "veor q1, q1, q6\n" : : "Q" (v[d][i]) ); - if (generator == 3) { - asm volatile ( - "veor q1, q1, q13\n" - ); - } if (np >= 3) { asm volatile ( @@ -381,6 +505,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "vand q7, q6, q15\n" "vand q8, q8, q15\n" ); + asm volatile ( "vld1.8 {q9}, %0\n" "vld1.8 {q10}, %1\n" @@ -394,7 +519,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q2, q2, q11\n" : : "Q" (raid_gfcauchypshufb[d][1][0][0]), - "Q" (raid_gfcauchypshufb[d][1][1][0]) + "Q" (raid_gfcauchypshufb[d][1][1][0]) ); } @@ -410,7 +535,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q3, q3, q11\n" : : "Q" (raid_gfcauchypshufb[d][2][0][0]), - "Q" (raid_gfcauchypshufb[d][2][1][0]) + "Q" (raid_gfcauchypshufb[d][2][1][0]) ); } @@ -426,7 +551,7 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q4, q4, q11\n" : : "Q" (raid_gfcauchypshufb[d][3][0][0]), - "Q" (raid_gfcauchypshufb[d][3][1][0]) + "Q" (raid_gfcauchypshufb[d][3][1][0]) ); } @@ -442,87 +567,484 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, "veor q5, q5, q11\n" : : "Q" (raid_gfcauchypshufb[d][4][0][0]), - "Q" (raid_gfcauchypshufb[d][4][1][0]) + "Q" (raid_gfcauchypshufb[d][4][1][0]) ); } } /* first disk with all coefficients at 1 */ - if (generator == 3) { - asm volatile ( - "vmov q13, q1\n" - ); - } asm volatile ( "vshr.s8 q11, q1, #7\n" "vshl.i8 q1, q1, #1\n" "vand q11, q11, q14\n" "veor q1, q1, q11\n" + "vld1.8 {q6}, %0\n" "veor q0, q0, q6\n" "veor q1, q1, q6\n" : : "Q" (v[0][i]) ); - if (generator == 3) { - asm volatile ( - "veor q1, q1, q13\n" - ); - } - if (np >= 3) { - asm volatile ( - "veor q2, q2, q6\n" - ); - } - if (np >= 4) { - asm volatile ( - "veor q3, q3, q6\n" - ); - } - if (np >= 5) { - asm volatile ( - "veor q4, q4, q6\n" - ); - } - if (np >= 6) { - asm volatile ( - "veor q5, q5, q6\n" - ); - } + if (np >= 3) + asm volatile ("veor q2, q2, q6\n"); + if (np >= 4) + asm volatile ("veor q3, q3, q6\n"); + if (np >= 5) + asm volatile ("veor q4, q4, q6\n"); + if (np >= 6) + asm volatile ("veor q5, q5, q6\n"); /* write parity in increasing order */ asm volatile ( "vst1.8 {q0}, %0\n" "vst1.8 {q1}, %1\n" : "=Q" (v[nd][i]), - "=Q" (v[nd + 1][i]) + "=Q" (v[nd + 1][i]) + ); + + if (np >= 3) + asm volatile ("vst1.8 {q2}, %0\n" : "=Q" (v[nd + 2][i])); + if (np >= 4) + asm volatile ("vst1.8 {q3}, %0\n" : "=Q" (v[nd + 3][i])); + if (np >= 5) + asm volatile ("vst1.8 {q4}, %0\n" : "=Q" (v[nd + 4][i])); + if (np >= 6) + asm volatile ("vst1.8 {q5}, %0\n" : "=Q" (v[nd + 5][i])); + } + + raid_neon32_end(); +} + +/* + * GENX AArch32 NEON implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_genX_neon32_g23(int nd, size_t size, + void **vv, int np) +{ + uint8_t **v = (uint8_t **)vv; + size_t i; + int d, l; + + l = nd - 1; + + /* special case with only one data disk */ + if (l == 0) { + for (d = 0; d < np; ++d) + memcpy(v[1 + d], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_neon32_begin(); + + asm volatile ( + "vld1.8 {q14}, %0\n" + "vld1.8 {q15}, %1\n" + : + : "Q" (gfconst16.poly[0]), "Q" (gfconst16.low4[0]) + ); + + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ( + "vld1.8 {q0}, %0\n" + "vld1.8 {q1}, %0\n" + : + : "Q" (v[l][i]) ); if (np >= 3) { asm volatile ( - "vst1.8 {q2}, %0\n" - : "=Q" (v[nd + 2][i]) + "vshr.u8 q8, q0, #4\n" + "vand q7, q0, q15\n" + "vand q8, q8, q15\n" + ); + + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q2, q11, q12\n" + : + : "Q" (raid_gfcauchypshufb[l][1][0][0]), + "Q" (raid_gfcauchypshufb[l][1][1][0]) ); } + if (np >= 4) { asm volatile ( - "vst1.8 {q3}, %0\n" - : "=Q" (v[nd + 3][i]) + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q3, q11, q12\n" + : + : "Q" (raid_gfcauchypshufb[l][2][0][0]), + "Q" (raid_gfcauchypshufb[l][2][1][0]) ); } + if (np >= 5) { asm volatile ( - "vst1.8 {q4}, %0\n" - : "=Q" (v[nd + 4][i]) + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q4, q11, q12\n" + : + : "Q" (raid_gfcauchypshufb[l][3][0][0]), + "Q" (raid_gfcauchypshufb[l][3][1][0]) ); } + if (np >= 6) { asm volatile ( - "vst1.8 {q5}, %0\n" - : "=Q" (v[nd + 5][i]) + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q5, q11, q12\n" + : + : "Q" (raid_gfcauchypshufb[l][4][0][0]), + "Q" (raid_gfcauchypshufb[l][4][1][0]) ); } + + d = l - 1; + + while (boundary >= 0) { + /* + * Everything above the next G23 boundary is Q *= 2. + */ + for (; d > boundary; --d) { + asm volatile ( + "vshr.s8 q11, q1, #7\n" + "vshl.i8 q1, q1, #1\n" + "vand q11, q11, q14\n" + "veor q1, q1, q11\n" + + "vld1.8 {q6}, %0\n" + "veor q0, q0, q6\n" + "veor q1, q1, q6\n" + : + : "Q" (v[d][i]) + ); + + if (np >= 3) { + asm volatile ( + "vshr.u8 q8, q6, #4\n" + "vand q7, q6, q15\n" + "vand q8, q8, q15\n" + ); + + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q2, q2, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][1][0][0]), + "Q" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q3, q3, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][2][0][0]), + "Q" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q4, q4, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][3][0][0]), + "Q" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q5, q5, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][4][0][0]), + "Q" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + } + + /* + * d == boundary: Q *= 3. + * + * q13 is otherwise unused here, so preserve the old Q + * there and XOR it back after the normal x2 transition. + */ + asm volatile ( + "vmov q13, q1\n" + + "vshr.s8 q11, q1, #7\n" + "vshl.i8 q1, q1, #1\n" + "vand q11, q11, q14\n" + "veor q1, q1, q11\n" + + "vld1.8 {q6}, %0\n" + "veor q0, q0, q6\n" + "veor q1, q1, q6\n" + + /* complete Q *= 3 */ + "veor q1, q1, q13\n" + : + : "Q" (v[d][i]) + ); + + if (np >= 3) { + asm volatile ( + "vshr.u8 q8, q6, #4\n" + "vand q7, q6, q15\n" + "vand q8, q8, q15\n" + ); + + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q2, q2, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][1][0][0]), + "Q" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q3, q3, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][2][0][0]), + "Q" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q4, q4, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][3][0][0]), + "Q" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q5, q5, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][4][0][0]), + "Q" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * Remaining intermediate disks contain no more G23 + * boundaries, so this loop is pure x2. + */ + for (; d > 0; --d) { + asm volatile ( + "vshr.s8 q11, q1, #7\n" + "vshl.i8 q1, q1, #1\n" + "vand q11, q11, q14\n" + "veor q1, q1, q11\n" + + "vld1.8 {q6}, %0\n" + "veor q0, q0, q6\n" + "veor q1, q1, q6\n" + : + : "Q" (v[d][i]) + ); + + if (np >= 3) { + asm volatile ( + "vshr.u8 q8, q6, #4\n" + "vand q7, q6, q15\n" + "vand q8, q8, q15\n" + ); + + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q2, q2, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][1][0][0]), + "Q" (raid_gfcauchypshufb[d][1][1][0]) + ); + } + + if (np >= 4) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q3, q3, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][2][0][0]), + "Q" (raid_gfcauchypshufb[d][2][1][0]) + ); + } + + if (np >= 5) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q4, q4, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][3][0][0]), + "Q" (raid_gfcauchypshufb[d][3][1][0]) + ); + } + + if (np >= 6) { + asm volatile ( + "vld1.8 {q9}, %0\n" + "vld1.8 {q10}, %1\n" + "vtbl.8 d22, {d18-d19}, d14\n" + "vtbl.8 d23, {d18-d19}, d15\n" + "vtbl.8 d24, {d20-d21}, d16\n" + "vtbl.8 d25, {d20-d21}, d17\n" + "veor q11, q11, q12\n" + "veor q5, q5, q11\n" + : + : "Q" (raid_gfcauchypshufb[d][4][0][0]), + "Q" (raid_gfcauchypshufb[d][4][1][0]) + ); + } + } + + /* + * D0 always follows Q *= 2. The lowest G23 boundary is 50. + */ + asm volatile ( + "vshr.s8 q11, q1, #7\n" + "vshl.i8 q1, q1, #1\n" + "vand q11, q11, q14\n" + "veor q1, q1, q11\n" + + "vld1.8 {q6}, %0\n" + "veor q0, q0, q6\n" + "veor q1, q1, q6\n" + : + : "Q" (v[0][i]) + ); + + if (np >= 3) + asm volatile ("veor q2, q2, q6\n"); + if (np >= 4) + asm volatile ("veor q3, q3, q6\n"); + if (np >= 5) + asm volatile ("veor q4, q4, q6\n"); + if (np >= 6) + asm volatile ("veor q5, q5, q6\n"); + + /* write parity in increasing order */ + asm volatile ( + "vst1.8 {q0}, %0\n" + "vst1.8 {q1}, %1\n" + : "=Q" (v[nd][i]), + "=Q" (v[nd + 1][i]) + ); + + if (np >= 3) + asm volatile ("vst1.8 {q2}, %0\n" : "=Q" (v[nd + 2][i])); + if (np >= 4) + asm volatile ("vst1.8 {q3}, %0\n" : "=Q" (v[nd + 3][i])); + if (np >= 5) + asm volatile ("vst1.8 {q4}, %0\n" : "=Q" (v[nd + 4][i])); + if (np >= 6) + asm volatile ("vst1.8 {q5}, %0\n" : "=Q" (v[nd + 5][i])); } raid_neon32_end(); @@ -533,12 +1055,15 @@ static __always_inline void raid_genX_neon32(int nd, size_t size, */ void raid_gen3_neon32_raid(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 3, 2); + raid_genX_neon32_x2(nd, size, vv, 3); } void raid_gen3_neon32_aes(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 3, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon32_x2(nd, size, vv, 3); + else + raid_genX_neon32_g23(nd, size, vv, 3); } /* @@ -546,12 +1071,15 @@ void raid_gen3_neon32_aes(int nd, size_t size, void **vv) */ void raid_gen4_neon32_raid(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 4, 2); + raid_genX_neon32_x2(nd, size, vv, 4); } void raid_gen4_neon32_aes(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 4, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon32_x2(nd, size, vv, 4); + else + raid_genX_neon32_g23(nd, size, vv, 4); } /* @@ -559,12 +1087,15 @@ void raid_gen4_neon32_aes(int nd, size_t size, void **vv) */ void raid_gen5_neon32_raid(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 5, 2); + raid_genX_neon32_x2(nd, size, vv, 5); } void raid_gen5_neon32_aes(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 5, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon32_x2(nd, size, vv, 5); + else + raid_genX_neon32_g23(nd, size, vv, 5); } /* @@ -572,12 +1103,15 @@ void raid_gen5_neon32_aes(int nd, size_t size, void **vv) */ void raid_gen6_neon32_raid(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 6, 2); + raid_genX_neon32_x2(nd, size, vv, 6); } void raid_gen6_neon32_aes(int nd, size_t size, void **vv) { - raid_genX_neon32(nd, size, vv, 6, 3); + if (raid_g23_x2_only(nd)) + raid_genX_neon32_x2(nd, size, vv, 6); + else + raid_genX_neon32_g23(nd, size, vv, 6); } /* diff --git a/raid/raid.c b/raid/raid.c index b5d07407..9b6d9840 100644 --- a/raid/raid.c +++ b/raid/raid.c @@ -5,11 +5,11 @@ #include "gf.h" /* - * Cauchy Matrix Construction for MDS RAID with Arbitrary Parity Levels in GF(2^8) + * Extended Cauchy Matrix Construction for MDS RAID in GF(2^8) * - * This is a RAID implementation operating in the Galois Field GF(2^8) with - * the primitive polynomial x^8 + x^4 + x^3 + x^2 + 1 (285 decimal), supporting - * up to six parity levels. + * The Cauchy RAID modes operate in GF(2^8) and support up to six parity + * levels. RAID_MODE_CAUCHY_RAID uses polynomial 0x11d, while + * RAID_MODE_CAUCHY_AES uses polynomial 0x11b. * * For RAID5 and RAID6, it follows the method described in H. Peter Anvin's * paper "The mathematics of RAID-6" [1]. Please refer to this paper for a @@ -38,20 +38,42 @@ * nonsingular, so the linear system is always solvable for any combination * of missing disks. This guarantees an MDS code. * - * The Cauchy construction below uses a primitive generator g. + * RAID_MODE_CAUCHY_RAID uses polynomial 0x11d and the existing primitive + * generator g=2 construction described below. * - * RAID_MODE_CAUCHY_RAID uses: - * polynomial 0x11d - * generator g = 2 + * RAID_MODE_CAUCHY_AES instead uses polynomial 0x11b and a G23 Extended + * Cauchy construction. In the AES field, element 2 has multiplicative order + * 51 while element 3 is primitive. Therefore H=<2> has five cosets in + * GF(256)*. The Q coefficients q[0..254] enumerate those cosets, starting + * with q[0]=1. Within a coset q advances by multiplication by 2. The four + * transitions between cosets advance by multiplication by 3, after the + * coefficients indexed 50, 101, 152, and 203. * - * RAID_MODE_CAUCHY_AES uses: - * polynomial 0x11b - * generator g = 3 + * The AES data X set consumes inverses of the G23 sequence from the beginning: + * + * X[i] = inv(q[i]) + * + * The Cauchy Y set starts with zero and consumes inverses backward from the + * end of the sequence: + * + * Y[0] = 0 + * Y[j] = inv(q[255-j]) for j > 0 + * + * Thus the Y values associated with R, S, T, and U are inv(q[254]), + * inv(q[253]), inv(q[252]), and inv(q[251]), respectively. For PARITY=n and + * DISK=257-n, increasing parity removes one X element from the tail and + * appends it to Y, leaving the existing rows unchanged on the remaining + * columns. X and Y are disjoint and together contain all 256 field elements, so + * C[j,i]=1/(X[i]+Y[j]) defines valid Cauchy rows. Adding P as an all-ones row + * forms an Extended Cauchy matrix. Q is the row for Y[0]=0 and therefore + * Q=sum(q[i]*Di). Rows R through U are scaled so their first coefficient is 1. + * This nonzero row scaling preserves the MDS property, and the resulting 6x251 + * matrix is MDS. * * The numerical examples below refer to RAID_MODE_CAUCHY_RAID, * using polynomial 0x11d and generator g = 2. * - * How the matrix is obtained: + * How the RAID/g=2 matrix is obtained: * * The matrix is constructed to match Linux RAID coefficients for the * first two rows, while ensuring that all square submatrices are nonsingular. @@ -121,9 +143,10 @@ * data disks, one for each column. All the 377,342,351,231 square submatrices * are nonsingular, verified also by brute-force testing. * - * This matrix can be extended to support any number of parities by simply - * adding additional rows and removing one column for each new row to maintain - * the condition i + j < 255. + * The RAID/g=2 construction can be extended beyond six parity levels by + * adding rows and removing one data column for each additional row, while + * preserving the field-size constraint i + j < 255. The current + * implementation remains limited to RAID_PARITY_MAX = 6. * (See mktables.c for more details on how the matrix is generated.) * * The downside is that generic multiplications are required to compute the @@ -132,27 +155,27 @@ * or AVX2 instructions [1][5] make this approach competitive with the triple * parity computation using power coefficients. * - * Another advantage of the Cauchy matrix is that the first two rows can + * Another advantage of the RAID/g=2 Cauchy matrix is that the first two rows can * replicate the RAID5 and RAID6 approach, resulting in a compatible extension. * SSSE3 or AVX2 instructions are only needed for triple parity or beyond. * * Parity computation is as follows: * * P = sum(Di) - * Q = sum(g^i * Di) + * Q = sum(A[1,i] * Di) * R = sum(A[2,i] * Di) * S = sum(A[3,i] * Di) * T = sum(A[4,i] * Di) * U = sum(A[5,i] * Di) for 0 <= i < N * - * where g=2 for RAID_MODE_CAUCHY_RAID and - * g=3 for RAID_MODE_CAUCHY_AES. + * For RAID_MODE_CAUCHY_RAID, A[1,i]=2^i. For RAID_MODE_CAUCHY_AES, + * A[1,i]=q[i] from the G23 sequence. * * Recovery from six disk failures at indices x, y, z, h, v, w (0 <= x < y < z < h < v < w < N) * involves computing parity of the remaining N-6 disks: * * Pa = sum(Di) - * Qa = sum(g^i * Di) + * Qa = sum(A[1,i] * Di) * Ra = sum(A[2,i] * Di) * Sa = sum(A[3,i] * Di) * Ta = sum(A[4,i] * Di) @@ -170,15 +193,12 @@ * yields: * * Pd = Dx + Dy + Dz + Dh + Dv + Dw - * Qd = g^x * Dx + g^y * Dy + g^z * Dz + g^h * Dh + g^v * Dv + g^w * Dw + * Qd = A[1,x] * Dx + A[1,y] * Dy + A[1,z] * Dz + A[1,h] * Dh + A[1,v] * Dv + A[1,w] * Dw * Rd = A[2,x] * Dx + A[2,y] * Dy + A[2,z] * Dz + A[2,h] * Dh + A[2,v] * Dv + A[2,w] * Dw * Sd = A[3,x] * Dx + A[3,y] * Dy + A[3,z] * Dz + A[3,h] * Dh + A[3,v] * Dv + A[3,w] * Dw * Td = A[4,x] * Dx + A[4,y] * Dy + A[4,z] * Dz + A[4,h] * Dh + A[4,v] * Dv + A[4,w] * Dw * Ud = A[5,x] * Dx + A[5,y] * Dy + A[5,z] * Dz + A[5,h] * Dh + A[5,v] * Dv + A[5,w] * Dw * - * with g=2 for RAID_MODE_CAUCHY_RAID and - * g=3 for RAID_MODE_CAUCHY_AES. - * * This linear system is always solvable since the coefficient matrix is * nonsingular due to the properties of A[]. * @@ -422,20 +442,19 @@ void raid_rec1of1(int *id, int nd, size_t size, void **v) * Starting from the equations: * * Pd = Dx + Dy - * Qd = g^id[0] * Dx + g^id[1] * Dy + * Qd = A[1,id[0]] * Dx + A[1,id[1]] * Dy * * and solving we get: * - * 1 g^(-id[0]) - * Dy = ------------------- * Pd + ------------------- * Qd - * g^(id[1]-id[0]) + 1 g^(id[1]-id[0]) + 1 + * Qd + A[1,id[0]] * Pd + * Dy = ------------------------ + * A[1,id[0]] + A[1,id[1]] * * Dx = Dy + Pd * * with conditions: * - * g^id[0] != 0 - * g^(id[1]-id[0]) + 1 != 0 + * A[1,id[0]] + A[1,id[1]] != 0 * * That are always satisfied for any 0<=id[0]= 0), the final disk is XORed - * into the accumulator and the loop terminates. This naturally leaves D0 with - * a coefficient of 1, as it escapes the scaling step. + * into the accumulator and the loop terminates. Since D0 is added after the + * final scaling operation, its coefficient is naturally 1. * * Simplified Code: * Q = D_l; * for (d = l - 1; d >= 0; --d) { - * Q = Q * g; // Scale accumulator by active generator + * Q = Q * step[d]; // Scale by 2, or by 3 at a G23 transition * Q = Q ^ D_d; // Add current disk * } * @@ -90,12 +91,13 @@ * Simplified Code: * Q = D_l; * for (d = l - 1; d > 0; --d) { - * Q = Q * g; // Scale accumulator by active generator + * Q = Q * step[d]; // Scale by 2, or by 3 at a G23 transition * Q = Q ^ D_d; // Add current disk * } * - * // Final disk (D0) processed outside the loop to skip Cauchy math - * Q = Q * g; + * // Final disk (D0) processed outside the loop to skip Cauchy math. + * // D0 is below every G23 boundary, so this transition is always x2. + * Q = Q * 2; * Q = Q ^ D_0; */ @@ -137,9 +139,9 @@ void raid_gen1_sse2(int nd, size_t size, void **vv) } /* - * GEN2 Cauchy SSE2 implementation using the active generator + * GEN2 Cauchy SSE2 implementation using only Q *= 2. */ -static __always_inline void raid_gen2_sse2_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_sse2_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -162,34 +164,17 @@ static __always_inline void raid_gen2_sse2_gen(int nd, size_t size, void **vv, i asm volatile ("movdqa %xmm1,%xmm3"); for (d = l - 1; d >= 0; --d) { - /* scale Q by the active generator before adding the current disk */ - if (generator == 3) { - asm volatile ("movdqa %xmm2,%xmm4"); - asm volatile ("movdqa %xmm3,%xmm5"); - asm volatile ("pxor %xmm6,%xmm6"); - asm volatile ("pcmpgtb %xmm4,%xmm6"); - asm volatile ("paddb %xmm2,%xmm2"); - asm volatile ("paddb %xmm3,%xmm3"); - asm volatile ("pxor %xmm4,%xmm2"); - asm volatile ("pxor %xmm4,%xmm4"); - asm volatile ("pcmpgtb %xmm5,%xmm4"); - asm volatile ("pand %xmm7,%xmm6"); - asm volatile ("pand %xmm7,%xmm4"); - asm volatile ("pxor %xmm6,%xmm2"); - asm volatile ("pxor %xmm4,%xmm3"); - asm volatile ("pxor %xmm5,%xmm3"); - } else { - asm volatile ("pxor %xmm4,%xmm4"); - asm volatile ("pxor %xmm5,%xmm5"); - asm volatile ("pcmpgtb %xmm2,%xmm4"); - asm volatile ("pcmpgtb %xmm3,%xmm5"); - asm volatile ("paddb %xmm2,%xmm2"); - asm volatile ("paddb %xmm3,%xmm3"); - asm volatile ("pand %xmm7,%xmm4"); - asm volatile ("pand %xmm7,%xmm5"); - asm volatile ("pxor %xmm4,%xmm2"); - asm volatile ("pxor %xmm5,%xmm3"); - } + /* scale Q before adding the current disk */ + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm2,%xmm4"); + asm volatile ("pcmpgtb %xmm3,%xmm5"); + asm volatile ("paddb %xmm2,%xmm2"); + asm volatile ("paddb %xmm3,%xmm3"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm5,%xmm3"); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); asm volatile ("movdqa %0,%%xmm5" : : "m" (v[d][i + 16])); @@ -208,23 +193,140 @@ static __always_inline void raid_gen2_sse2_gen(int nd, size_t size, void **vv, i raid_sse_end(); } +/* + * GEN2 Cauchy SSE2 implementation using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen2_sse2_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + asm volatile ("movdqa %0,%%xmm0" : : "m" (v[l][i])); + asm volatile ("movdqa %0,%%xmm1" : : "m" (v[l][i + 16])); + asm volatile ("movdqa %xmm0,%xmm2"); + asm volatile ("movdqa %xmm1,%xmm3"); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + */ + for (; d > boundary; --d) { + /* scale Q before adding the current disk */ + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm2,%xmm4"); + asm volatile ("pcmpgtb %xmm3,%xmm5"); + asm volatile ("paddb %xmm2,%xmm2"); + asm volatile ("paddb %xmm3,%xmm3"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm5,%xmm3"); + + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm5" : : "m" (v[d][i + 16])); + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm5,%xmm3"); + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ("movdqa %xmm2,%xmm4"); + asm volatile ("movdqa %xmm3,%xmm5"); + asm volatile ("pxor %xmm6,%xmm6"); + asm volatile ("pcmpgtb %xmm4,%xmm6"); + asm volatile ("paddb %xmm2,%xmm2"); + asm volatile ("paddb %xmm3,%xmm3"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pcmpgtb %xmm5,%xmm4"); + asm volatile ("pand %xmm7,%xmm6"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm4,%xmm3"); + asm volatile ("pxor %xmm5,%xmm3"); + + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm5" : : "m" (v[d][i + 16])); + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm5,%xmm3"); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (p[i + 16])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (q[i + 16])); + } + + raid_sse_end(); +} + void raid_gen2_sse2_raid(int nd, size_t size, void **vv) { - raid_gen2_sse2_gen(nd, size, vv, 2); + raid_gen2_sse2_x2(nd, size, vv); } void raid_gen2_sse2_aes(int nd, size_t size, void **vv) { - raid_gen2_sse2_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_sse2_x2(nd, size, vv); + else + raid_gen2_sse2_g23(nd, size, vv); } #ifdef CONFIG_X86_64 /* - * GEN2 Cauchy SSE2 implementation using the active generator + * GEN2 Cauchy SSE2 implementation using only Q *= 2. + * + * Process two data disks at a time and process the four 16-byte lanes + * sequentially. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen2_sse2ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -252,12 +354,15 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv /* process two disks per iteration */ for (d = l - 1; d >= 1; d -= 2) { - /* lane 0 */ + /* + * Lane 0. + * + * Compute both x2 Horner transitions and update P + * once with D[d] ^ D[d - 1]. + */ asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i])); asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i])); - if (generator == 3) - asm volatile ("movdqa %xmm4,%xmm10"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm4,%xmm11"); asm volatile ("paddb %xmm4,%xmm4"); @@ -267,25 +372,18 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv asm volatile ("pxor %xmm9,%xmm8"); asm volatile ("pxor %xmm8,%xmm0"); - if (generator == 3) - asm volatile ("pxor %xmm10,%xmm8"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm4,%xmm11"); asm volatile ("paddb %xmm4,%xmm4"); asm volatile ("pand %xmm15,%xmm11"); asm volatile ("pxor %xmm11,%xmm4"); - if (generator == 3) - asm volatile ("pxor %xmm8,%xmm4"); - else - asm volatile ("pxor %xmm9,%xmm4"); + asm volatile ("pxor %xmm9,%xmm4"); /* lane 1 */ asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 16])); asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 16])); - if (generator == 3) - asm volatile ("movdqa %xmm5,%xmm10"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm5,%xmm11"); asm volatile ("paddb %xmm5,%xmm5"); @@ -295,25 +393,18 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv asm volatile ("pxor %xmm9,%xmm8"); asm volatile ("pxor %xmm8,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm10,%xmm8"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm5,%xmm11"); asm volatile ("paddb %xmm5,%xmm5"); asm volatile ("pand %xmm15,%xmm11"); asm volatile ("pxor %xmm11,%xmm5"); - if (generator == 3) - asm volatile ("pxor %xmm8,%xmm5"); - else - asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm9,%xmm5"); /* lane 2 */ asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 32])); asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 32])); - if (generator == 3) - asm volatile ("movdqa %xmm6,%xmm10"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm6,%xmm11"); asm volatile ("paddb %xmm6,%xmm6"); @@ -323,25 +414,18 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv asm volatile ("pxor %xmm9,%xmm8"); asm volatile ("pxor %xmm8,%xmm2"); - if (generator == 3) - asm volatile ("pxor %xmm10,%xmm8"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm6,%xmm11"); asm volatile ("paddb %xmm6,%xmm6"); asm volatile ("pand %xmm15,%xmm11"); asm volatile ("pxor %xmm11,%xmm6"); - if (generator == 3) - asm volatile ("pxor %xmm8,%xmm6"); - else - asm volatile ("pxor %xmm9,%xmm6"); + asm volatile ("pxor %xmm9,%xmm6"); /* lane 3 */ asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 48])); asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 48])); - if (generator == 3) - asm volatile ("movdqa %xmm7,%xmm10"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm7,%xmm11"); asm volatile ("paddb %xmm7,%xmm7"); @@ -351,73 +435,37 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv asm volatile ("pxor %xmm9,%xmm8"); asm volatile ("pxor %xmm8,%xmm3"); - if (generator == 3) - asm volatile ("pxor %xmm10,%xmm8"); asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm7,%xmm11"); asm volatile ("paddb %xmm7,%xmm7"); asm volatile ("pand %xmm15,%xmm11"); asm volatile ("pxor %xmm11,%xmm7"); - if (generator == 3) - asm volatile ("pxor %xmm8,%xmm7"); - else - asm volatile ("pxor %xmm9,%xmm7"); + asm volatile ("pxor %xmm9,%xmm7"); } /* single remaining disk */ if (d == 0) { - if (generator == 3) { - asm volatile ("movdqa %xmm4,%xmm8"); - asm volatile ("movdqa %xmm5,%xmm9"); - asm volatile ("movdqa %xmm6,%xmm10"); - asm volatile ("movdqa %xmm7,%xmm11"); - asm volatile ("pxor %xmm12,%xmm12"); - asm volatile ("pxor %xmm13,%xmm13"); - asm volatile ("pxor %xmm14,%xmm14"); - asm volatile ("pcmpgtb %xmm8,%xmm12"); - asm volatile ("pcmpgtb %xmm9,%xmm13"); - asm volatile ("pcmpgtb %xmm10,%xmm14"); - asm volatile ("paddb %xmm4,%xmm4"); - asm volatile ("paddb %xmm5,%xmm5"); - asm volatile ("paddb %xmm6,%xmm6"); - asm volatile ("paddb %xmm7,%xmm7"); - asm volatile ("pxor %xmm8,%xmm4"); - asm volatile ("pxor %xmm8,%xmm8"); - asm volatile ("pcmpgtb %xmm11,%xmm8"); - asm volatile ("pand %xmm15,%xmm12"); - asm volatile ("pand %xmm15,%xmm13"); - asm volatile ("pand %xmm15,%xmm14"); - asm volatile ("pand %xmm15,%xmm8"); - asm volatile ("pxor %xmm12,%xmm4"); - asm volatile ("pxor %xmm13,%xmm5"); - asm volatile ("pxor %xmm14,%xmm6"); - asm volatile ("pxor %xmm8,%xmm7"); - asm volatile ("pxor %xmm9,%xmm5"); - asm volatile ("pxor %xmm10,%xmm6"); - asm volatile ("pxor %xmm11,%xmm7"); - } else { - asm volatile ("pxor %xmm8,%xmm8"); - asm volatile ("pxor %xmm9,%xmm9"); - asm volatile ("pxor %xmm10,%xmm10"); - asm volatile ("pxor %xmm11,%xmm11"); - asm volatile ("pcmpgtb %xmm4,%xmm8"); - asm volatile ("pcmpgtb %xmm5,%xmm9"); - asm volatile ("pcmpgtb %xmm6,%xmm10"); - asm volatile ("pcmpgtb %xmm7,%xmm11"); - asm volatile ("paddb %xmm4,%xmm4"); - asm volatile ("paddb %xmm5,%xmm5"); - asm volatile ("paddb %xmm6,%xmm6"); - asm volatile ("paddb %xmm7,%xmm7"); - asm volatile ("pand %xmm15,%xmm8"); - asm volatile ("pand %xmm15,%xmm9"); - asm volatile ("pand %xmm15,%xmm10"); - asm volatile ("pand %xmm15,%xmm11"); - asm volatile ("pxor %xmm8,%xmm4"); - asm volatile ("pxor %xmm9,%xmm5"); - asm volatile ("pxor %xmm10,%xmm6"); - asm volatile ("pxor %xmm11,%xmm7"); - } + asm volatile ("pxor %xmm8,%xmm8"); + asm volatile ("pxor %xmm9,%xmm9"); + asm volatile ("pxor %xmm10,%xmm10"); + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm4,%xmm8"); + asm volatile ("pcmpgtb %xmm5,%xmm9"); + asm volatile ("pcmpgtb %xmm6,%xmm10"); + asm volatile ("pcmpgtb %xmm7,%xmm11"); + asm volatile ("paddb %xmm4,%xmm4"); + asm volatile ("paddb %xmm5,%xmm5"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("paddb %xmm7,%xmm7"); + asm volatile ("pand %xmm15,%xmm8"); + asm volatile ("pand %xmm15,%xmm9"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm8,%xmm4"); + asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm10,%xmm6"); + asm volatile ("pxor %xmm11,%xmm7"); asm volatile ("movdqa %0,%%xmm8" : : "m" (v[0][i])); asm volatile ("movdqa %0,%%xmm9" : : "m" (v[0][i + 16])); @@ -446,14 +494,277 @@ static __always_inline void raid_gen2_sse2ext_gen(int nd, size_t size, void **vv raid_sse_end(); } +/* + * GEN2 Cauchy SSE2 implementation using the AES G23 Q recurrence. + * + * Process two data disks at a time without crossing G23 boundaries. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen2_sse2ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.poly[0])); + + for (i = 0; i < size; i += 64) { + int boundary = g23_boundary; + + asm volatile ("movdqa %0,%%xmm0" : : "m" (v[l][i])); + asm volatile ("movdqa %0,%%xmm1" : : "m" (v[l][i + 16])); + asm volatile ("movdqa %0,%%xmm2" : : "m" (v[l][i + 32])); + asm volatile ("movdqa %0,%%xmm3" : : "m" (v[l][i + 48])); + asm volatile ("movdqa %xmm0,%xmm4"); + asm volatile ("movdqa %xmm1,%xmm5"); + asm volatile ("movdqa %xmm2,%xmm6"); + asm volatile ("movdqa %xmm3,%xmm7"); + + d = l - 1; + + for (;;) { + /* + * All transitions above 'boundary' are x2. + * Process two disks per iteration without crossing + * the next G23 boundary. + */ + for (; d >= boundary + 2; d -= 2) { + /* + * Lane 0. + * + * Q = 2 * Q + D[d] + * Q = 2 * Q + D[d - 1] + * + * Compute D[d] ^ D[d - 1] independently and use + * it to update P with a single dependent XOR. + */ + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm4,%xmm11"); + asm volatile ("paddb %xmm4,%xmm4"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm4"); + asm volatile ("pxor %xmm8,%xmm4"); + + asm volatile ("pxor %xmm9,%xmm8"); + asm volatile ("pxor %xmm8,%xmm0"); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm4,%xmm11"); + asm volatile ("paddb %xmm4,%xmm4"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm4"); + asm volatile ("pxor %xmm9,%xmm4"); + + /* lane 1 */ + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 16])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 16])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm5,%xmm11"); + asm volatile ("paddb %xmm5,%xmm5"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm5"); + asm volatile ("pxor %xmm8,%xmm5"); + + asm volatile ("pxor %xmm9,%xmm8"); + asm volatile ("pxor %xmm8,%xmm1"); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm5,%xmm11"); + asm volatile ("paddb %xmm5,%xmm5"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm5"); + asm volatile ("pxor %xmm9,%xmm5"); + + /* lane 2 */ + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 32])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 32])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm6,%xmm11"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm6"); + asm volatile ("pxor %xmm8,%xmm6"); + + asm volatile ("pxor %xmm9,%xmm8"); + asm volatile ("pxor %xmm8,%xmm2"); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm6,%xmm11"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm6"); + asm volatile ("pxor %xmm9,%xmm6"); + + /* lane 3 */ + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i + 48])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d - 1][i + 48])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm7,%xmm11"); + asm volatile ("paddb %xmm7,%xmm7"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm7"); + asm volatile ("pxor %xmm8,%xmm7"); + + asm volatile ("pxor %xmm9,%xmm8"); + asm volatile ("pxor %xmm8,%xmm3"); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm7,%xmm11"); + asm volatile ("paddb %xmm7,%xmm7"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm11,%xmm7"); + asm volatile ("pxor %xmm9,%xmm7"); + } + + /* + * The first x2 segment can have odd length. + * Consume its last x2 transition separately. + */ + if (d > boundary) { + asm volatile ("pxor %xmm8,%xmm8"); + asm volatile ("pxor %xmm9,%xmm9"); + asm volatile ("pxor %xmm10,%xmm10"); + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm4,%xmm8"); + asm volatile ("pcmpgtb %xmm5,%xmm9"); + asm volatile ("pcmpgtb %xmm6,%xmm10"); + asm volatile ("pcmpgtb %xmm7,%xmm11"); + asm volatile ("paddb %xmm4,%xmm4"); + asm volatile ("paddb %xmm5,%xmm5"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("paddb %xmm7,%xmm7"); + asm volatile ("pand %xmm15,%xmm8"); + asm volatile ("pand %xmm15,%xmm9"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + asm volatile ("pxor %xmm8,%xmm4"); + asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm10,%xmm6"); + asm volatile ("pxor %xmm11,%xmm7"); + + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d][i + 16])); + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i + 32])); + asm volatile ("movdqa %0,%%xmm11" : : "m" (v[d][i + 48])); + asm volatile ("pxor %xmm8,%xmm0"); + asm volatile ("pxor %xmm9,%xmm1"); + asm volatile ("pxor %xmm10,%xmm2"); + asm volatile ("pxor %xmm11,%xmm3"); + asm volatile ("pxor %xmm8,%xmm4"); + asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm10,%xmm6"); + asm volatile ("pxor %xmm11,%xmm7"); + + --d; + } + + /* + * boundary == -1 identifies the final x2-only segment. + * At this point all remaining disks have been consumed. + */ + if (boundary < 0) + break; + + /* + * d == boundary. + * + * Perform the fixed G23 x3 transition and then add + * the current disk to P and Q. + */ + asm volatile ("movdqa %xmm4,%xmm8"); + asm volatile ("movdqa %xmm5,%xmm9"); + asm volatile ("movdqa %xmm6,%xmm10"); + asm volatile ("movdqa %xmm7,%xmm11"); + asm volatile ("pxor %xmm12,%xmm12"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pxor %xmm14,%xmm14"); + asm volatile ("pcmpgtb %xmm8,%xmm12"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("pcmpgtb %xmm10,%xmm14"); + asm volatile ("paddb %xmm4,%xmm4"); + asm volatile ("paddb %xmm5,%xmm5"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("paddb %xmm7,%xmm7"); + asm volatile ("pxor %xmm8,%xmm4"); + asm volatile ("pxor %xmm8,%xmm8"); + asm volatile ("pcmpgtb %xmm11,%xmm8"); + asm volatile ("pand %xmm15,%xmm12"); + asm volatile ("pand %xmm15,%xmm13"); + asm volatile ("pand %xmm15,%xmm14"); + asm volatile ("pand %xmm15,%xmm8"); + asm volatile ("pxor %xmm12,%xmm4"); + asm volatile ("pxor %xmm13,%xmm5"); + asm volatile ("pxor %xmm14,%xmm6"); + asm volatile ("pxor %xmm8,%xmm7"); + asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm10,%xmm6"); + asm volatile ("pxor %xmm11,%xmm7"); + + asm volatile ("movdqa %0,%%xmm8" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm9" : : "m" (v[d][i + 16])); + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i + 32])); + asm volatile ("movdqa %0,%%xmm11" : : "m" (v[d][i + 48])); + asm volatile ("pxor %xmm8,%xmm0"); + asm volatile ("pxor %xmm9,%xmm1"); + asm volatile ("pxor %xmm10,%xmm2"); + asm volatile ("pxor %xmm11,%xmm3"); + asm volatile ("pxor %xmm8,%xmm4"); + asm volatile ("pxor %xmm9,%xmm5"); + asm volatile ("pxor %xmm10,%xmm6"); + asm volatile ("pxor %xmm11,%xmm7"); + + --d; + + /* + * G23 boundaries are exactly 51 transitions apart. + * After d = 50 there are no more x3 transitions. + */ + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (p[i + 16])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (p[i + 32])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (p[i + 48])); + asm volatile ("movntdq %%xmm4,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm5,%0" : "=m" (q[i + 16])); + asm volatile ("movntdq %%xmm6,%0" : "=m" (q[i + 32])); + asm volatile ("movntdq %%xmm7,%0" : "=m" (q[i + 48])); + } + + raid_sse_end(); +} + void raid_gen2_sse2ext_raid(int nd, size_t size, void **vv) { - raid_gen2_sse2ext_gen(nd, size, vv, 2); + raid_gen2_sse2ext_x2(nd, size, vv); } void raid_gen2_sse2ext_aes(int nd, size_t size, void **vv) { - raid_gen2_sse2ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen2_sse2ext_x2(nd, size, vv); + else + raid_gen2_sse2ext_g23(nd, size, vv); } #endif diff --git a/raid/ssse3.c b/raid/ssse3.c index d34dc310..a9c701b9 100644 --- a/raid/ssse3.c +++ b/raid/ssse3.c @@ -8,8 +8,9 @@ #ifdef CONFIG_X86 /* * GEN3 (triple parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. */ -static __always_inline void raid_gen3_ssse3_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen3_ssse3_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -37,7 +38,7 @@ static __always_inline void raid_gen3_ssse3_gen(int nd, size_t size, void **vv, asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); asm volatile ("movdqa %xmm4,%xmm0"); @@ -58,15 +59,12 @@ static __always_inline void raid_gen3_ssse3_gen(int nd, size_t size, void **vv, for (d = l - 1; d > 0; --d) { asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm6"); + /* Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pcmpgtb %xmm1,%xmm5"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm3,%xmm5"); asm volatile ("pxor %xmm5,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm6,%xmm1"); asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -87,16 +85,191 @@ static __always_inline void raid_gen3_ssse3_gen(int nd, size_t size, void **vv, /* first disk with all coefficients at 1 */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm6"); + /* final Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pcmpgtb %xmm1,%xmm5"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm3,%xmm5"); asm volatile ("pxor %xmm5,%xmm1"); - if (generator == 3) + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (r[i])); + } + + raid_sse_end(); +} + +/* + * GEN3 (triple parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen3_ssse3_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 3; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + /* generic case with at least two data disks */ + asm volatile ("movdqa %0,%%xmm3" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + + asm volatile ("movdqa %xmm4,%xmm0"); + asm volatile ("movdqa %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm5,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + + d = l - 1; + + /* + * Process each G23 segment. Everything above a boundary uses + * Q *= 2, while the boundary itself uses Q *= 3. + */ + while (boundary >= 0) { + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm5,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + } + + /* + * d == boundary. + * + * Save the old Q, perform Q *= 2, then XOR the old + * value to obtain Q *= 3. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + asm volatile ("movdqa %xmm1,%xmm6"); + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm5,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. Process the remaining intermediate + * disks using only Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm5,%xmm6"); + asm volatile ("pxor %xmm6,%xmm2"); + } + + /* + * D0 always follows an x2 transition. G23 boundaries never + * occur below d = 50. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); asm volatile ("pxor %xmm4,%xmm2"); @@ -111,21 +284,25 @@ static __always_inline void raid_gen3_ssse3_gen(int nd, size_t size, void **vv, void raid_gen3_ssse3_raid(int nd, size_t size, void **vv) { - raid_gen3_ssse3_gen(nd, size, vv, 2); + raid_gen3_ssse3_x2(nd, size, vv); } void raid_gen3_ssse3_aes(int nd, size_t size, void **vv) { - raid_gen3_ssse3_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen3_ssse3_x2(nd, size, vv); + else + raid_gen3_ssse3_g23(nd, size, vv); } #ifdef CONFIG_X86_64 /* * GEN3 (triple parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen3_ssse3ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -153,7 +330,7 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("movdqa %0,%%xmm11" : : "m" (gfconst16.low4[0])); for (i = 0; i < size; i += 32) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[l][i + 16])); @@ -191,10 +368,7 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][0][0])); asm volatile ("movdqa %0,%%xmm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } + /* Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -205,10 +379,6 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm3,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { - asm volatile ("pxor %xmm6,%xmm1"); - asm volatile ("pxor %xmm14,%xmm9"); - } asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -235,16 +405,14 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pxor %xmm15,%xmm2"); asm volatile ("pxor %xmm14,%xmm10"); + /* disk d - 1 */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d - 1][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d - 1][i + 16])); asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d - 1][1][0][0])); asm volatile ("movdqa %0,%%xmm15" : : "m" (raid_gfcauchypshufb[d - 1][1][1][0])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } + /* Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -255,10 +423,6 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm3,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { - asm volatile ("pxor %xmm6,%xmm1"); - asm volatile ("pxor %xmm14,%xmm9"); - } asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -286,14 +450,11 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pxor %xmm14,%xmm10"); } + /* single remaining intermediate disk */ if (d == 1) { asm volatile ("movdqa %0,%%xmm4" : : "m" (v[1][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[1][i + 16])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -304,10 +465,6 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm3,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { - asm volatile ("pxor %xmm6,%xmm1"); - asm volatile ("pxor %xmm14,%xmm9"); - } asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -341,10 +498,7 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[0][i + 16])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } + /* final Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -355,11 +509,312 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm3,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + asm volatile ("pxor %xmm12,%xmm10"); + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm8,%0" : "=m" (p[i + 16])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm9,%0" : "=m" (q[i + 16])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (r[i])); + asm volatile ("movntdq %%xmm10,%0" : "=m" (r[i + 16])); + } + + raid_sse_end(); +} + +/* + * GEN3 (triple parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen3_ssse3ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 3; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + asm volatile ("movdqa %0,%%xmm3" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm11" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[l][i + 16])); + + asm volatile ("movdqa %xmm4,%xmm0"); + asm volatile ("movdqa %xmm4,%xmm1"); + asm volatile ("movdqa %xmm12,%xmm8"); + asm volatile ("movdqa %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm11,%xmm4"); + asm volatile ("pand %xmm11,%xmm12"); + asm volatile ("pand %xmm11,%xmm5"); + asm volatile ("pand %xmm11,%xmm13"); + + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("movdqa %xmm2,%xmm10"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm12,%xmm10"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + d = l - 1; + + for (;;) { + /* + * Process pairs only when both d and d - 1 are above + * the next G23 boundary. + */ + for (; d > 1 && d >= boundary + 2; d -= 2) { + /* disk d */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pand %xmm3,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm11,%xmm4"); + asm volatile ("pand %xmm11,%xmm12"); + asm volatile ("pand %xmm11,%xmm5"); + asm volatile ("pand %xmm11,%xmm13"); + + asm volatile ("movdqa %xmm7,%xmm6"); + asm volatile ("movdqa %xmm15,%xmm14"); + asm volatile ("pshufb %xmm4,%xmm7"); + asm volatile ("pshufb %xmm12,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm15"); + asm volatile ("pshufb %xmm13,%xmm14"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm6,%xmm10"); + asm volatile ("pxor %xmm15,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + + /* disk d - 1 */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d - 1][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d - 1][i + 16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d - 1][1][0][0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (raid_gfcauchypshufb[d - 1][1][1][0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pand %xmm3,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm11,%xmm4"); + asm volatile ("pand %xmm11,%xmm12"); + asm volatile ("pand %xmm11,%xmm5"); + asm volatile ("pand %xmm11,%xmm13"); + + asm volatile ("movdqa %xmm7,%xmm6"); + asm volatile ("movdqa %xmm15,%xmm14"); + asm volatile ("pshufb %xmm4,%xmm7"); + asm volatile ("pshufb %xmm12,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm15"); + asm volatile ("pshufb %xmm13,%xmm14"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm6,%xmm10"); + asm volatile ("pxor %xmm15,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + } + + /* + * An x2 segment may contain one unpaired disk. + */ + if (d > boundary && d > 0) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pand %xmm3,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm11,%xmm4"); + asm volatile ("pand %xmm11,%xmm12"); + asm volatile ("pand %xmm11,%xmm5"); + asm volatile ("pand %xmm11,%xmm13"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + --d; + } + + if (boundary < 0) + break; + + /* + * d == boundary: Q *= 3. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + asm volatile ("movdqa %xmm1,%xmm6"); + asm volatile ("movdqa %xmm9,%xmm14"); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pand %xmm3,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); asm volatile ("pxor %xmm6,%xmm1"); asm volatile ("pxor %xmm14,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm11,%xmm4"); + asm volatile ("pand %xmm11,%xmm12"); + asm volatile ("pand %xmm11,%xmm5"); + asm volatile ("pand %xmm11,%xmm13"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; } + /* + * D0 always follows an x2 transition. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[0][i + 16])); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm3,%xmm5"); + asm volatile ("pand %xmm3,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); asm volatile ("pxor %xmm4,%xmm2"); @@ -380,19 +835,23 @@ static __always_inline void raid_gen3_ssse3ext_gen(int nd, size_t size, void **v void raid_gen3_ssse3ext_raid(int nd, size_t size, void **vv) { - raid_gen3_ssse3ext_gen(nd, size, vv, 2); + raid_gen3_ssse3ext_x2(nd, size, vv); } void raid_gen3_ssse3ext_aes(int nd, size_t size, void **vv) { - raid_gen3_ssse3ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen3_ssse3ext_x2(nd, size, vv); + else + raid_gen3_ssse3ext_g23(nd, size, vv); } #endif /* * GEN4 (quad parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. */ -static __always_inline void raid_gen4_ssse3_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen4_ssse3_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -419,7 +878,7 @@ static __always_inline void raid_gen4_ssse3_gen(int nd, size_t size, void **vv, /* generic case with at least two data disks */ for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); @@ -448,15 +907,227 @@ static __always_inline void raid_gen4_ssse3_gen(int nd, size_t size, void **vv, asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm6"); + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* first disk with all coefficients at 1 */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + + /* final Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm4,%xmm3"); + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (r[i])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (s[i])); + } + + raid_sse_end(); +} + +/* + * GEN4 (quad parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen4_ssse3_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 4; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + + asm volatile ("movdqa %xmm4,%xmm0"); + asm volatile ("movdqa %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm2"); + + asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm3"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm3"); + + d = l - 1; + + /* + * Process each G23 segment. Everything above a boundary + * uses Q *= 2, while the boundary itself uses Q *= 3. + */ + while (boundary >= 0) { + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* + * d == boundary: Q *= 3. + * + * Save the old Q, perform the normal x2 transition, + * then XOR the old value back. + */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + asm volatile ("movdqa %xmm1,%xmm6"); + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm6,%xmm1"); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. Process the remaining + * intermediate disks using only Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pcmpgtb %xmm1,%xmm5"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm7,%xmm5"); asm volatile ("pxor %xmm5,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm6,%xmm1"); asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); @@ -483,19 +1154,17 @@ static __always_inline void raid_gen4_ssse3_gen(int nd, size_t size, void **vv, asm volatile ("pxor %xmm7,%xmm3"); } - /* first disk with all coefficients at 1 */ + /* + * D0 always follows an x2 transition. + */ asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm6"); asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pcmpgtb %xmm1,%xmm5"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm7,%xmm5"); asm volatile ("pxor %xmm5,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm6,%xmm1"); asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -513,21 +1182,25 @@ static __always_inline void raid_gen4_ssse3_gen(int nd, size_t size, void **vv, void raid_gen4_ssse3_raid(int nd, size_t size, void **vv) { - raid_gen4_ssse3_gen(nd, size, vv, 2); + raid_gen4_ssse3_x2(nd, size, vv); } void raid_gen4_ssse3_aes(int nd, size_t size, void **vv) { - raid_gen4_ssse3_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen4_ssse3_x2(nd, size, vv); + else + raid_gen4_ssse3_g23(nd, size, vv); } #ifdef CONFIG_X86_64 /* * GEN4 (quad parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. * * Note that it uses 16 registers, meaning that x64 is required. */ -static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **vv, int generator) +static __always_inline void raid_gen4_ssse3ext_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -554,7 +1227,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v /* generic case with at least two data disks */ for (i = 0; i < size; i += 32) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[l][i + 16])); @@ -573,6 +1246,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm15,%xmm5"); asm volatile ("pand %xmm15,%xmm13"); + /* R */ asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); asm volatile ("movdqa %xmm2,%xmm10"); @@ -584,6 +1258,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pxor %xmm7,%xmm2"); asm volatile ("pxor %xmm15,%xmm10"); + /* S */ asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][2][1][0])); asm volatile ("movdqa %xmm3,%xmm11"); @@ -602,10 +1277,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } + /* Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -616,10 +1288,6 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm7,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { - asm volatile ("pxor %xmm6,%xmm1"); - asm volatile ("pxor %xmm14,%xmm9"); - } asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); @@ -635,6 +1303,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm15,%xmm5"); asm volatile ("pand %xmm15,%xmm13"); + /* R */ asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); asm volatile ("movdqa %xmm6,%xmm14"); @@ -648,6 +1317,7 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pxor %xmm7,%xmm2"); asm volatile ("pxor %xmm15,%xmm10"); + /* S */ asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); asm volatile ("movdqa %xmm6,%xmm14"); @@ -664,14 +1334,10 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v /* first disk with all coefficients at 1 */ asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); - asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); asm volatile ("movdqa %0,%%xmm12" : : "m" (v[0][i + 16])); - if (generator == 3) { - asm volatile ("movdqa %xmm1,%xmm6"); - asm volatile ("movdqa %xmm9,%xmm14"); - } + /* final Q *= 2 */ asm volatile ("pxor %xmm5,%xmm5"); asm volatile ("pxor %xmm13,%xmm13"); asm volatile ("pcmpgtb %xmm1,%xmm5"); @@ -682,11 +1348,335 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v asm volatile ("pand %xmm7,%xmm13"); asm volatile ("pxor %xmm5,%xmm1"); asm volatile ("pxor %xmm13,%xmm9"); - if (generator == 3) { + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm4,%xmm3"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + asm volatile ("pxor %xmm12,%xmm10"); + asm volatile ("pxor %xmm12,%xmm11"); + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm8,%0" : "=m" (p[i + 16])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm9,%0" : "=m" (q[i + 16])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (r[i])); + asm volatile ("movntdq %%xmm10,%0" : "=m" (r[i + 16])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (s[i])); + asm volatile ("movntdq %%xmm11,%0" : "=m" (s[i + 16])); + } + + raid_sse_end(); +} + +/* + * GEN4 (quad parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + * + * Note that it uses 16 registers, meaning that x64 is required. + */ +static __always_inline void raid_gen4_ssse3ext_g23(int nd, size_t size, void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 4; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + for (i = 0; i < size; i += 32) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[l][i + 16])); + + asm volatile ("movdqa %xmm4,%xmm0"); + asm volatile ("movdqa %xmm4,%xmm1"); + asm volatile ("movdqa %xmm12,%xmm8"); + asm volatile ("movdqa %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm15,%xmm4"); + asm volatile ("pand %xmm15,%xmm12"); + asm volatile ("pand %xmm15,%xmm5"); + asm volatile ("pand %xmm15,%xmm13"); + + /* R */ + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("movdqa %xmm2,%xmm10"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm12,%xmm10"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + /* S */ + asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("movdqa %xmm3,%xmm11"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm3"); + asm volatile ("pshufb %xmm12,%xmm11"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm7,%xmm3"); + asm volatile ("pxor %xmm15,%xmm11"); + + d = l - 1; + + while (boundary >= 0) { + /* + * All transitions above the next G23 boundary use Q *= 2. + */ + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pand %xmm7,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm15,%xmm4"); + asm volatile ("pand %xmm15,%xmm12"); + asm volatile ("pand %xmm15,%xmm5"); + asm volatile ("pand %xmm15,%xmm13"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm14,%xmm11"); + asm volatile ("pxor %xmm7,%xmm3"); + asm volatile ("pxor %xmm15,%xmm11"); + } + + /* + * d == boundary: Q *= 3. + */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + /* + * Save the old Q values before the normal x2 + * transition and XOR them back to obtain x3. + */ + asm volatile ("movdqa %xmm1,%xmm6"); + asm volatile ("movdqa %xmm9,%xmm14"); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pand %xmm7,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); asm volatile ("pxor %xmm6,%xmm1"); asm volatile ("pxor %xmm14,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm15,%xmm4"); + asm volatile ("pand %xmm15,%xmm12"); + asm volatile ("pand %xmm15,%xmm5"); + asm volatile ("pand %xmm15,%xmm13"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm14,%xmm11"); + asm volatile ("pxor %xmm7,%xmm3"); + asm volatile ("pxor %xmm15,%xmm11"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; } + /* + * No G23 boundaries remain. Process the remaining + * intermediate disks using only Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[d][i + 16])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pand %xmm7,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm12,%xmm8"); + asm volatile ("pxor %xmm12,%xmm9"); + + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("movdqa %xmm12,%xmm13"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("psrlw $4,%xmm13"); + asm volatile ("pand %xmm15,%xmm4"); + asm volatile ("pand %xmm15,%xmm12"); + asm volatile ("pand %xmm15,%xmm5"); + asm volatile ("pand %xmm15,%xmm13"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm14,%xmm10"); + asm volatile ("pxor %xmm7,%xmm2"); + asm volatile ("pxor %xmm15,%xmm10"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("movdqa %xmm6,%xmm14"); + asm volatile ("movdqa %xmm7,%xmm15"); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm12,%xmm14"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pshufb %xmm13,%xmm15"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm14,%xmm11"); + asm volatile ("pxor %xmm7,%xmm3"); + asm volatile ("pxor %xmm15,%xmm11"); + } + + /* + * D0 always follows Q *= 2. The lowest G23 boundary is 50. + */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + asm volatile ("movdqa %0,%%xmm12" : : "m" (v[0][i + 16])); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pxor %xmm13,%xmm13"); + asm volatile ("pcmpgtb %xmm1,%xmm5"); + asm volatile ("pcmpgtb %xmm9,%xmm13"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("paddb %xmm9,%xmm9"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pand %xmm7,%xmm13"); + asm volatile ("pxor %xmm5,%xmm1"); + asm volatile ("pxor %xmm13,%xmm9"); + asm volatile ("pxor %xmm4,%xmm0"); asm volatile ("pxor %xmm4,%xmm1"); asm volatile ("pxor %xmm4,%xmm2"); @@ -711,19 +1701,23 @@ static __always_inline void raid_gen4_ssse3ext_gen(int nd, size_t size, void **v void raid_gen4_ssse3ext_raid(int nd, size_t size, void **vv) { - raid_gen4_ssse3ext_gen(nd, size, vv, 2); + raid_gen4_ssse3ext_x2(nd, size, vv); } void raid_gen4_ssse3ext_aes(int nd, size_t size, void **vv) { - raid_gen4_ssse3ext_gen(nd, size, vv, 3); + if (raid_g23_x2_only(nd)) + raid_gen4_ssse3ext_x2(nd, size, vv); + else + raid_gen4_ssse3ext_g23(nd, size, vv); } #endif /* * GEN5 (penta parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. */ -void raid_gen5_ssse3_raid(int nd, size_t size, void **vv) +void raid_gen5_ssse3_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -754,7 +1748,7 @@ void raid_gen5_ssse3_raid(int nd, size_t size, void **vv) /* generic case with at least two data disks */ for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); asm volatile ("movdqa %xmm4,%xmm0"); @@ -855,11 +1849,305 @@ void raid_gen5_ssse3_raid(int nd, size_t size, void **vv) raid_sse_end(); } +/* + * GEN5 (penta parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen5_ssse3_g23(int nd, size_t size, + void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + uint8_t *t; + int d, l; + size_t i; + uint8_t buffer[16 + 16]; + uint8_t *pd = __align_ptr(buffer, 16); + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + t = v[nd + 4]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 5; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + /* generic case with at least two data disks */ + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + + /* + * xmm0 = Q + * pd[0] = P + */ + asm volatile ("movdqa %xmm4,%xmm0"); + asm volatile ("movdqa %%xmm4,%0" : "=m" (pd[0])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm1" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm1"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* S */ + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* T */ + asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm3"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm3"); + + d = l - 1; + + /* + * Process all complete G23 segments. + */ + while (boundary >= 0) { + /* + * All transitions above the boundary use Q *= 2. + */ + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm0,%xmm5"); + asm volatile ("paddb %xmm0,%xmm0"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm0"); + + /* P ^= D, Q ^= D */ + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[0])); + + /* split D into nibbles */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* T */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* + * d == boundary: Q *= 3. + * + * xmm6 can temporarily hold the old Q. After the x3 + * transition it is free again and can be reused to + * load the spilled P accumulator. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + /* save old Q */ + asm volatile ("movdqa %xmm0,%xmm6"); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm0,%xmm5"); + asm volatile ("paddb %xmm0,%xmm0"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm0"); + + /* Q *= 3 */ + asm volatile ("pxor %xmm6,%xmm0"); + + /* now xmm6 can be reused for P */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[0])); + + /* P ^= D, Q ^= D */ + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[0])); + + /* split D into nibbles */ + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* T */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm0,%xmm5"); + asm volatile ("paddb %xmm0,%xmm0"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm0"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[0])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* + * D0 always uses Q *= 2. The lowest G23 boundary is 50. + */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + asm volatile ("pxor %xmm5,%xmm5"); + asm volatile ("pcmpgtb %xmm0,%xmm5"); + asm volatile ("paddb %xmm0,%xmm0"); + asm volatile ("pand %xmm7,%xmm5"); + asm volatile ("pxor %xmm5,%xmm0"); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm4,%xmm3"); + asm volatile ("pxor %xmm4,%xmm6"); + + asm volatile ("movntdq %%xmm6,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm0,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (r[i])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (s[i])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (t[i])); + } + + raid_sse_end(); +} + +void raid_gen5_ssse3_raid(int nd, size_t size, void **vv) +{ + raid_gen5_ssse3_x2(nd, size, vv); +} + +void raid_gen5_ssse3_aes(int nd, size_t size, void **vv) +{ + if (raid_g23_x2_only(nd)) + raid_gen5_ssse3_x2(nd, size, vv); + else + raid_gen5_ssse3_g23(nd, size, vv); +} + #ifdef CONFIG_X86_64 /* - * GENX SSSE3ext implementation + * GENX SSSE3ext implementation using only Q *= 2. */ -static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, int np, int generator) +static __always_inline void raid_genX_ssse3ext_x2(int nd, size_t size, void **vv, int np) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -894,7 +2182,7 @@ static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, i asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm10" : : "m" (v[l][i])); asm volatile ("movdqa %xmm10,%xmm0"); @@ -941,15 +2229,12 @@ static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, i for (d = l - 1; d > 0; --d) { asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm12"); + /* Q *= 2 */ asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm1,%xmm11"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm14,%xmm11"); asm volatile ("pxor %xmm11,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm12,%xmm1"); asm volatile ("pxor %xmm10,%xmm0"); asm volatile ("pxor %xmm10,%xmm1"); @@ -999,15 +2284,12 @@ static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, i /* first disk with all coefficients at 1 */ asm volatile ("movdqa %0,%%xmm10" : : "m" (v[0][i])); - if (generator == 3) - asm volatile ("movdqa %xmm1,%xmm12"); + /* final Q *= 2 */ asm volatile ("pxor %xmm11,%xmm11"); asm volatile ("pcmpgtb %xmm1,%xmm11"); asm volatile ("paddb %xmm1,%xmm1"); asm volatile ("pand %xmm14,%xmm11"); asm volatile ("pxor %xmm11,%xmm1"); - if (generator == 3) - asm volatile ("pxor %xmm12,%xmm1"); asm volatile ("pxor %xmm10,%xmm0"); asm volatile ("pxor %xmm10,%xmm1"); @@ -1036,25 +2318,332 @@ static __always_inline void raid_genX_ssse3ext(int nd, size_t size, void **vv, i } /* - * GEN5 (penta parity with Cauchy matrix) SSSE3 implementation - * - * Note that it uses 16 registers, meaning that x64 is required. + * GENX SSSE3ext implementation using the AES G23 Q recurrence. */ +static __always_inline void raid_genX_ssse3ext_g23(int nd, size_t size, void **vv, int np) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + uint8_t *t; + uint8_t *u; + int d, l; + size_t i; + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + t = v[nd + 4]; + if (np >= 6) + u = v[nd + 5]; + + /* special case with only one data disk */ + if (l == 0) { + for (d = 0; d < np; ++d) + memcpy(v[1 + d], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + asm volatile ("movdqa %0,%%xmm14" : : "m" (gfconst16.poly[0])); + asm volatile ("movdqa %0,%%xmm15" : : "m" (gfconst16.low4[0])); + + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[l][i])); + + asm volatile ("movdqa %xmm10,%xmm0"); + asm volatile ("movdqa %xmm10,%xmm1"); + + asm volatile ("movdqa %xmm10,%xmm11"); + asm volatile ("psrlw $4,%xmm11"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + + if (np >= 3) { + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("pshufb %xmm10,%xmm2"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm13,%xmm2"); + } + + if (np >= 4) { + asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("pshufb %xmm10,%xmm3"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm13,%xmm3"); + } + + if (np >= 5) { + asm volatile ("movdqa %0,%%xmm4" : : "m" (raid_gfcauchypshufb[l][3][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[l][3][1][0])); + asm volatile ("pshufb %xmm10,%xmm4"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm13,%xmm4"); + } + + if (np >= 6) { + asm volatile ("movdqa %0,%%xmm5" : : "m" (raid_gfcauchypshufb[l][4][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[l][4][1][0])); + asm volatile ("pshufb %xmm10,%xmm5"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm13,%xmm5"); + } + + d = l - 1; + + while (boundary >= 0) { + /* + * All transitions above the next G23 boundary use Q *= 2. + */ + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm1,%xmm11"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm14,%xmm11"); + asm volatile ("pxor %xmm11,%xmm1"); + + asm volatile ("pxor %xmm10,%xmm0"); + asm volatile ("pxor %xmm10,%xmm1"); + + asm volatile ("movdqa %xmm10,%xmm11"); + asm volatile ("psrlw $4,%xmm11"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + + if (np >= 3) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm2"); + asm volatile ("pxor %xmm13,%xmm2"); + } + + if (np >= 4) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm3"); + asm volatile ("pxor %xmm13,%xmm3"); + } + + if (np >= 5) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm4"); + asm volatile ("pxor %xmm13,%xmm4"); + } + + if (np >= 6) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm5"); + asm volatile ("pxor %xmm13,%xmm5"); + } + } + + /* + * d == boundary: Q *= 3. + */ + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i])); + + /* preserve old Q */ + asm volatile ("movdqa %xmm1,%xmm12"); + + /* Q *= 2 */ + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm1,%xmm11"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm14,%xmm11"); + asm volatile ("pxor %xmm11,%xmm1"); + + /* Q *= 3 */ + asm volatile ("pxor %xmm12,%xmm1"); + + asm volatile ("pxor %xmm10,%xmm0"); + asm volatile ("pxor %xmm10,%xmm1"); + + asm volatile ("movdqa %xmm10,%xmm11"); + asm volatile ("psrlw $4,%xmm11"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + + if (np >= 3) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm2"); + asm volatile ("pxor %xmm13,%xmm2"); + } + + if (np >= 4) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm3"); + asm volatile ("pxor %xmm13,%xmm3"); + } + + if (np >= 5) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm4"); + asm volatile ("pxor %xmm13,%xmm4"); + } + + if (np >= 6) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm5"); + asm volatile ("pxor %xmm13,%xmm5"); + } + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * No G23 boundaries remain. Process all remaining + * intermediate disks with Q *= 2. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[d][i])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm1,%xmm11"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm14,%xmm11"); + asm volatile ("pxor %xmm11,%xmm1"); + + asm volatile ("pxor %xmm10,%xmm0"); + asm volatile ("pxor %xmm10,%xmm1"); + + asm volatile ("movdqa %xmm10,%xmm11"); + asm volatile ("psrlw $4,%xmm11"); + asm volatile ("pand %xmm15,%xmm10"); + asm volatile ("pand %xmm15,%xmm11"); + + if (np >= 3) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm2"); + asm volatile ("pxor %xmm13,%xmm2"); + } + + if (np >= 4) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm3"); + asm volatile ("pxor %xmm13,%xmm3"); + } + + if (np >= 5) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm4"); + asm volatile ("pxor %xmm13,%xmm4"); + } + + if (np >= 6) { + asm volatile ("movdqa %0,%%xmm12" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm13" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm10,%xmm12"); + asm volatile ("pshufb %xmm11,%xmm13"); + asm volatile ("pxor %xmm12,%xmm5"); + asm volatile ("pxor %xmm13,%xmm5"); + } + } + + /* + * D0 always follows Q *= 2. + */ + asm volatile ("movdqa %0,%%xmm10" : : "m" (v[0][i])); + + asm volatile ("pxor %xmm11,%xmm11"); + asm volatile ("pcmpgtb %xmm1,%xmm11"); + asm volatile ("paddb %xmm1,%xmm1"); + asm volatile ("pand %xmm14,%xmm11"); + asm volatile ("pxor %xmm11,%xmm1"); + + asm volatile ("pxor %xmm10,%xmm0"); + asm volatile ("pxor %xmm10,%xmm1"); + if (np >= 3) + asm volatile ("pxor %xmm10,%xmm2"); + if (np >= 4) + asm volatile ("pxor %xmm10,%xmm3"); + if (np >= 5) + asm volatile ("pxor %xmm10,%xmm4"); + if (np >= 6) + asm volatile ("pxor %xmm10,%xmm5"); + + asm volatile ("movntdq %%xmm0,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (q[i])); + if (np >= 3) + asm volatile ("movntdq %%xmm2,%0" : "=m" (r[i])); + if (np >= 4) + asm volatile ("movntdq %%xmm3,%0" : "=m" (s[i])); + if (np >= 5) + asm volatile ("movntdq %%xmm4,%0" : "=m" (t[i])); + if (np >= 6) + asm volatile ("movntdq %%xmm5,%0" : "=m" (u[i])); + } + + raid_sse_end(); +} + void raid_gen5_ssse3ext_raid(int nd, size_t size, void **vv) { - raid_genX_ssse3ext(nd, size, vv, 5, 2); + raid_genX_ssse3ext_x2(nd, size, vv, 5); } void raid_gen5_ssse3ext_aes(int nd, size_t size, void **vv) { - raid_genX_ssse3ext(nd, size, vv, 5, 3); + if (raid_g23_x2_only(nd)) + raid_genX_ssse3ext_x2(nd, size, vv, 5); + else + raid_genX_ssse3ext_g23(nd, size, vv, 5); } #endif /* * GEN6 (hexa parity with Cauchy matrix) SSSE3 implementation + * using only Q *= 2. */ -void raid_gen6_ssse3_raid(int nd, size_t size, void **vv) +void raid_gen6_ssse3_x2(int nd, size_t size, void **vv) { uint8_t **v = (uint8_t **)vv; uint8_t *p; @@ -1087,7 +2676,7 @@ void raid_gen6_ssse3_raid(int nd, size_t size, void **vv) /* generic case with at least two data disks */ for (i = 0; i < size; i += 16) { - /* last disk without the generator multiplication */ + /* last disk initializes P/Q without a preceding Q transition */ asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); asm volatile ("movdqa %%xmm4,%0" : "=m" (pd[0])); @@ -1207,6 +2796,326 @@ void raid_gen6_ssse3_raid(int nd, size_t size, void **vv) raid_sse_end(); } +/* + * GEN6 (hexa parity with Cauchy matrix) SSSE3 implementation + * using the AES G23 Q recurrence. + */ +static __always_inline void raid_gen6_ssse3_g23(int nd, size_t size, + void **vv) +{ + uint8_t **v = (uint8_t **)vv; + uint8_t *p; + uint8_t *q; + uint8_t *r; + uint8_t *s; + uint8_t *t; + uint8_t *u; + int d, l; + size_t i; + uint8_t buffer[2 * 16 + 16]; + uint8_t *pd = __align_ptr(buffer, 16); + + l = nd - 1; + p = v[nd]; + q = v[nd + 1]; + r = v[nd + 2]; + s = v[nd + 3]; + t = v[nd + 4]; + u = v[nd + 5]; + + /* special case with only one data disk */ + if (l == 0) { + for (i = 0; i < 6; ++i) + memcpy(v[1 + i], v[0], size); + return; + } + + int g23_boundary = raid_g23_boundary(l - 1); + + raid_sse_begin(); + + for (i = 0; i < size; i += 16) { + int boundary = g23_boundary; + + /* last disk initializes P/Q without a preceding Q transition */ + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[l][i])); + + /* P and Q are spilled */ + asm volatile ("movdqa %%xmm4,%0" : "=m" (pd[0])); + asm volatile ("movdqa %%xmm4,%0" : "=m" (pd[16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm0" : : "m" (raid_gfcauchypshufb[l][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm0"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm0"); + + /* S */ + asm volatile ("movdqa %0,%%xmm1" : : "m" (raid_gfcauchypshufb[l][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm1"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* T */ + asm volatile ("movdqa %0,%%xmm2" : : "m" (raid_gfcauchypshufb[l][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm2"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* U */ + asm volatile ("movdqa %0,%%xmm3" : : "m" (raid_gfcauchypshufb[l][4][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[l][4][1][0])); + asm volatile ("pshufb %xmm4,%xmm3"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm7,%xmm3"); + + d = l - 1; + + while (boundary >= 0) { + /* pure x2 segment */ + for (; d > boundary; --d) { + asm volatile ("movdqa %0,%%xmm5" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[16])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pcmpgtb %xmm6,%xmm4"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pxor %xmm4,%xmm6"); + + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + asm volatile ("pxor %xmm4,%xmm5"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm5,%0" : "=m" (pd[0])); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm0"); + asm volatile ("pxor %xmm7,%xmm0"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* T */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* U */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* + * d == boundary: Q *= 3. + * + * xmm6 = current Q + * xmm5 = saved old Q + */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[16])); + asm volatile ("movdqa %xmm6,%xmm5"); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + /* Q *= 2 */ + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pcmpgtb %xmm6,%xmm4"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pxor %xmm4,%xmm6"); + + /* Q *= 3 */ + asm volatile ("pxor %xmm5,%xmm6"); + + /* xmm5 is free again: load P */ + asm volatile ("movdqa %0,%%xmm5" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + asm volatile ("pxor %xmm4,%xmm5"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm5,%0" : "=m" (pd[0])); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + /* R */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm0"); + asm volatile ("pxor %xmm7,%xmm0"); + + /* S */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + /* T */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + /* U */ + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + + --d; + + boundary -= 51; + if (boundary < 50) + boundary = -1; + } + + /* + * Remaining intermediate disks contain no G23 boundary. + */ + for (; d > 0; --d) { + asm volatile ("movdqa %0,%%xmm5" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[16])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pcmpgtb %xmm6,%xmm4"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pxor %xmm4,%xmm6"); + + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[d][i])); + + asm volatile ("pxor %xmm4,%xmm5"); + asm volatile ("pxor %xmm4,%xmm6"); + asm volatile ("movdqa %%xmm5,%0" : "=m" (pd[0])); + asm volatile ("movdqa %%xmm6,%0" : "=m" (pd[16])); + + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.low4[0])); + asm volatile ("movdqa %xmm4,%xmm5"); + asm volatile ("psrlw $4,%xmm5"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pand %xmm7,%xmm5"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][1][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][1][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm0"); + asm volatile ("pxor %xmm7,%xmm0"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][2][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][2][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm1"); + asm volatile ("pxor %xmm7,%xmm1"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][3][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][3][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm2"); + asm volatile ("pxor %xmm7,%xmm2"); + + asm volatile ("movdqa %0,%%xmm6" : : "m" (raid_gfcauchypshufb[d][4][0][0])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (raid_gfcauchypshufb[d][4][1][0])); + asm volatile ("pshufb %xmm4,%xmm6"); + asm volatile ("pshufb %xmm5,%xmm7"); + asm volatile ("pxor %xmm6,%xmm3"); + asm volatile ("pxor %xmm7,%xmm3"); + } + + /* + * D0 always follows Q *= 2. + */ + asm volatile ("movdqa %0,%%xmm5" : : "m" (pd[0])); + asm volatile ("movdqa %0,%%xmm6" : : "m" (pd[16])); + asm volatile ("movdqa %0,%%xmm7" : : "m" (gfconst16.poly[0])); + + asm volatile ("pxor %xmm4,%xmm4"); + asm volatile ("pcmpgtb %xmm6,%xmm4"); + asm volatile ("paddb %xmm6,%xmm6"); + asm volatile ("pand %xmm7,%xmm4"); + asm volatile ("pxor %xmm4,%xmm6"); + + asm volatile ("movdqa %0,%%xmm4" : : "m" (v[0][i])); + + asm volatile ("pxor %xmm4,%xmm0"); + asm volatile ("pxor %xmm4,%xmm1"); + asm volatile ("pxor %xmm4,%xmm2"); + asm volatile ("pxor %xmm4,%xmm3"); + asm volatile ("pxor %xmm4,%xmm5"); + asm volatile ("pxor %xmm4,%xmm6"); + + asm volatile ("movntdq %%xmm5,%0" : "=m" (p[i])); + asm volatile ("movntdq %%xmm6,%0" : "=m" (q[i])); + asm volatile ("movntdq %%xmm0,%0" : "=m" (r[i])); + asm volatile ("movntdq %%xmm1,%0" : "=m" (s[i])); + asm volatile ("movntdq %%xmm2,%0" : "=m" (t[i])); + asm volatile ("movntdq %%xmm3,%0" : "=m" (u[i])); + } + + raid_sse_end(); +} + +void raid_gen6_ssse3_raid(int nd, size_t size, void **vv) +{ + raid_gen6_ssse3_x2(nd, size, vv); +} + +void raid_gen6_ssse3_aes(int nd, size_t size, void **vv) +{ + if (raid_g23_x2_only(nd)) + raid_gen6_ssse3_x2(nd, size, vv); + else + raid_gen6_ssse3_g23(nd, size, vv); +} + #ifdef CONFIG_X86_64 /* * GEN6 (hexa parity with Cauchy matrix) SSSE3 implementation @@ -1215,12 +3124,15 @@ void raid_gen6_ssse3_raid(int nd, size_t size, void **vv) */ void raid_gen6_ssse3ext_raid(int nd, size_t size, void **vv) { - raid_genX_ssse3ext(nd, size, vv, 6, 2); + raid_genX_ssse3ext_x2(nd, size, vv, 6); } void raid_gen6_ssse3ext_aes(int nd, size_t size, void **vv) { - raid_genX_ssse3ext(nd, size, vv, 6, 3); + if (raid_g23_x2_only(nd)) + raid_genX_ssse3ext_x2(nd, size, vv, 6); + else + raid_genX_ssse3ext_g23(nd, size, vv, 6); } #endif @@ -1803,7 +3715,9 @@ void raid_register_ssse3(void) raid_gen_register(RAID_ALGO_CAUCHY_PAR4, "ssse3", raid_gen4_ssse3_raid, RAID_POLY_RAID); raid_gen_register(RAID_ALGO_CAUCHY_PAR4, "ssse3", raid_gen4_ssse3_aes, RAID_POLY_AES); raid_gen_register(RAID_ALGO_CAUCHY_PAR5, "ssse3", raid_gen5_ssse3_raid, RAID_POLY_RAID); + raid_gen_register(RAID_ALGO_CAUCHY_PAR5, "ssse3", raid_gen5_ssse3_aes, RAID_POLY_AES); raid_gen_register(RAID_ALGO_CAUCHY_PAR6, "ssse3", raid_gen6_ssse3_raid, RAID_POLY_RAID); + raid_gen_register(RAID_ALGO_CAUCHY_PAR6, "ssse3", raid_gen6_ssse3_aes, RAID_POLY_AES); #ifdef CONFIG_X86_64 if (!raid_cpu_has_slow_extendedreg()) { raid_gen_register(RAID_ALGO_CAUCHY_PAR3, "ssse3e", raid_gen3_ssse3ext_raid, RAID_POLY_RAID); diff --git a/raid/tables.c b/raid/tables.c index 2384ec9c..144dd02f 100644 --- a/raid/tables.c +++ b/raid/tables.c @@ -8980,42 +8980,6 @@ const uint8_t __aligned(256) raid_gfaffine_raid[256][8] = { 0x2f, 0x97, 0xcb, 0x65, 0x1d, 0x21, 0xbf, 0x5f }, }; -const uint8_t __aligned(256) raid_gfexp_raid[256] = -{ - 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, - 0x1d, 0x3a, 0x74, 0xe8, 0xcd, 0x87, 0x13, 0x26, - 0x4c, 0x98, 0x2d, 0x5a, 0xb4, 0x75, 0xea, 0xc9, - 0x8f, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, - 0x9d, 0x27, 0x4e, 0x9c, 0x25, 0x4a, 0x94, 0x35, - 0x6a, 0xd4, 0xb5, 0x77, 0xee, 0xc1, 0x9f, 0x23, - 0x46, 0x8c, 0x05, 0x0a, 0x14, 0x28, 0x50, 0xa0, - 0x5d, 0xba, 0x69, 0xd2, 0xb9, 0x6f, 0xde, 0xa1, - 0x5f, 0xbe, 0x61, 0xc2, 0x99, 0x2f, 0x5e, 0xbc, - 0x65, 0xca, 0x89, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, - 0xfd, 0xe7, 0xd3, 0xbb, 0x6b, 0xd6, 0xb1, 0x7f, - 0xfe, 0xe1, 0xdf, 0xa3, 0x5b, 0xb6, 0x71, 0xe2, - 0xd9, 0xaf, 0x43, 0x86, 0x11, 0x22, 0x44, 0x88, - 0x0d, 0x1a, 0x34, 0x68, 0xd0, 0xbd, 0x67, 0xce, - 0x81, 0x1f, 0x3e, 0x7c, 0xf8, 0xed, 0xc7, 0x93, - 0x3b, 0x76, 0xec, 0xc5, 0x97, 0x33, 0x66, 0xcc, - 0x85, 0x17, 0x2e, 0x5c, 0xb8, 0x6d, 0xda, 0xa9, - 0x4f, 0x9e, 0x21, 0x42, 0x84, 0x15, 0x2a, 0x54, - 0xa8, 0x4d, 0x9a, 0x29, 0x52, 0xa4, 0x55, 0xaa, - 0x49, 0x92, 0x39, 0x72, 0xe4, 0xd5, 0xb7, 0x73, - 0xe6, 0xd1, 0xbf, 0x63, 0xc6, 0x91, 0x3f, 0x7e, - 0xfc, 0xe5, 0xd7, 0xb3, 0x7b, 0xf6, 0xf1, 0xff, - 0xe3, 0xdb, 0xab, 0x4b, 0x96, 0x31, 0x62, 0xc4, - 0x95, 0x37, 0x6e, 0xdc, 0xa5, 0x57, 0xae, 0x41, - 0x82, 0x19, 0x32, 0x64, 0xc8, 0x8d, 0x07, 0x0e, - 0x1c, 0x38, 0x70, 0xe0, 0xdd, 0xa7, 0x53, 0xa6, - 0x51, 0xa2, 0x59, 0xb2, 0x79, 0xf2, 0xf9, 0xef, - 0xc3, 0x9b, 0x2b, 0x56, 0xac, 0x45, 0x8a, 0x09, - 0x12, 0x24, 0x48, 0x90, 0x3d, 0x7a, 0xf4, 0xf5, - 0xf7, 0xf3, 0xfb, 0xeb, 0xcb, 0x8b, 0x0b, 0x16, - 0x2c, 0x58, 0xb0, 0x7d, 0xfa, 0xe9, 0xcf, 0x83, - 0x1b, 0x36, 0x6c, 0xd8, 0xad, 0x47, 0x8e, 0x01, -}; - const uint8_t __aligned(256) raid_gfinv_raid[256] = { /* note that the first element is not significant */ @@ -24665,42 +24629,6 @@ const uint8_t __aligned(256) raid_gfmul_aes[256][256] = }, }; -const uint8_t __aligned(256) raid_gfexp_aes[256] = -{ - 0x01, 0x03, 0x05, 0x0f, 0x11, 0x33, 0x55, 0xff, - 0x1a, 0x2e, 0x72, 0x96, 0xa1, 0xf8, 0x13, 0x35, - 0x5f, 0xe1, 0x38, 0x48, 0xd8, 0x73, 0x95, 0xa4, - 0xf7, 0x02, 0x06, 0x0a, 0x1e, 0x22, 0x66, 0xaa, - 0xe5, 0x34, 0x5c, 0xe4, 0x37, 0x59, 0xeb, 0x26, - 0x6a, 0xbe, 0xd9, 0x70, 0x90, 0xab, 0xe6, 0x31, - 0x53, 0xf5, 0x04, 0x0c, 0x14, 0x3c, 0x44, 0xcc, - 0x4f, 0xd1, 0x68, 0xb8, 0xd3, 0x6e, 0xb2, 0xcd, - 0x4c, 0xd4, 0x67, 0xa9, 0xe0, 0x3b, 0x4d, 0xd7, - 0x62, 0xa6, 0xf1, 0x08, 0x18, 0x28, 0x78, 0x88, - 0x83, 0x9e, 0xb9, 0xd0, 0x6b, 0xbd, 0xdc, 0x7f, - 0x81, 0x98, 0xb3, 0xce, 0x49, 0xdb, 0x76, 0x9a, - 0xb5, 0xc4, 0x57, 0xf9, 0x10, 0x30, 0x50, 0xf0, - 0x0b, 0x1d, 0x27, 0x69, 0xbb, 0xd6, 0x61, 0xa3, - 0xfe, 0x19, 0x2b, 0x7d, 0x87, 0x92, 0xad, 0xec, - 0x2f, 0x71, 0x93, 0xae, 0xe9, 0x20, 0x60, 0xa0, - 0xfb, 0x16, 0x3a, 0x4e, 0xd2, 0x6d, 0xb7, 0xc2, - 0x5d, 0xe7, 0x32, 0x56, 0xfa, 0x15, 0x3f, 0x41, - 0xc3, 0x5e, 0xe2, 0x3d, 0x47, 0xc9, 0x40, 0xc0, - 0x5b, 0xed, 0x2c, 0x74, 0x9c, 0xbf, 0xda, 0x75, - 0x9f, 0xba, 0xd5, 0x64, 0xac, 0xef, 0x2a, 0x7e, - 0x82, 0x9d, 0xbc, 0xdf, 0x7a, 0x8e, 0x89, 0x80, - 0x9b, 0xb6, 0xc1, 0x58, 0xe8, 0x23, 0x65, 0xaf, - 0xea, 0x25, 0x6f, 0xb1, 0xc8, 0x43, 0xc5, 0x54, - 0xfc, 0x1f, 0x21, 0x63, 0xa5, 0xf4, 0x07, 0x09, - 0x1b, 0x2d, 0x77, 0x99, 0xb0, 0xcb, 0x46, 0xca, - 0x45, 0xcf, 0x4a, 0xde, 0x79, 0x8b, 0x86, 0x91, - 0xa8, 0xe3, 0x3e, 0x42, 0xc6, 0x51, 0xf3, 0x0e, - 0x12, 0x36, 0x5a, 0xee, 0x29, 0x7b, 0x8d, 0x8c, - 0x8f, 0x8a, 0x85, 0x94, 0xa7, 0xf2, 0x0d, 0x17, - 0x39, 0x4b, 0xdd, 0x7c, 0x84, 0x97, 0xa2, 0xfd, - 0x1c, 0x24, 0x6c, 0xb4, 0xc7, 0x52, 0xf6, 0x01, -}; - const uint8_t __aligned(256) raid_gfinv_aes[256] = { /* note that the first element is not significant */ @@ -24743,11 +24671,11 @@ const uint8_t __aligned(256) raid_gfinv_aes[256] = * This matrix is valid for up to 6 parity with 251 data disks. * * 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 - * 01 03 05 0f 11 33 55 ff 1a 2e 72 96 a1 f8 13 35 5f e1 38 48 d8 73 95 a4 f7 02 06 0a 1e 22 66 aa e5 34 5c e4 37 59 eb 26 6a be d9 70 90 ab e6 31 53 f5 04 0c 14 3c 44 cc 4f d1 68 b8 d3 6e b2 cd 4c d4 67 a9 e0 3b 4d d7 62 a6 f1 08 18 28 78 88 83 9e b9 d0 6b bd dc 7f 81 98 b3 ce 49 db 76 9a b5 c4 57 f9 10 30 50 f0 0b 1d 27 69 bb d6 61 a3 fe 19 2b 7d 87 92 ad ec 2f 71 93 ae e9 20 60 a0 fb 16 3a 4e d2 6d b7 c2 5d e7 32 56 fa 15 3f 41 c3 5e e2 3d 47 c9 40 c0 5b ed 2c 74 9c bf da 75 9f ba d5 64 ac ef 2a 7e 82 9d bc df 7a 8e 89 80 9b b6 c1 58 e8 23 65 af ea 25 6f b1 c8 43 c5 54 fc 1f 21 63 a5 f4 07 09 1b 2d 77 99 b0 cb 46 ca 45 cf 4a de 79 8b 86 91 a8 e3 3e 42 c6 51 f3 0e 12 36 5a ee 29 7b 8d 8c 8f 8a 85 94 a7 f2 0d 17 39 4b dd 7c 84 97 a2 fd 1c 24 6c - * 01 8c b8 af e2 76 89 7f 82 f8 ab ac 1f 3b 55 40 29 d1 46 05 e4 67 27 f5 53 69 77 2b a0 7c 72 73 d9 b6 0a b3 e7 6d 79 94 64 e6 2d bb eb c8 36 f1 4e 62 49 c5 25 20 5f b0 52 8d 03 ca 2c b4 e5 38 65 d3 3a 08 3e 66 4b 9c 87 6c 74 dd fb 5e ea 54 1b 31 04 e0 21 ae 09 fc ef 14 ba c4 86 df 07 e9 6f 0d 61 2f 78 9f 3c 30 5d ce a6 5a b2 1a c3 16 6e ee c0 23 48 8a 97 c2 50 22 42 0e 4a 6a 56 a1 9d bd f9 b5 d5 a7 35 60 7d bf d4 37 19 99 e1 34 ed 45 ad 51 39 aa c7 cb 68 8f d8 96 fa 98 1e f0 28 71 33 4d e3 18 0b fe 59 d6 17 f3 c6 ec a3 1d a9 0c 2a 83 9b 70 6b bc 91 c9 ff cd 24 92 cf 12 43 db 3d f4 7a a5 47 a8 d7 d2 32 be 95 b9 06 c1 3f 1c 4c da 11 93 63 8e 9a 10 44 fd 41 2e 84 85 8b 57 dc 80 9e a4 02 d0 90 13 f2 b1 26 de b7 a2 cc e8 5b 5c 0f 75 88 7e 81 15 58 - * 01 d0 ca bc ad 07 a3 fc 59 3b c8 e3 db 66 89 c7 9e 8d 06 b8 b3 3a a6 62 4e 5a 32 c0 a1 5c ab 67 2d 0c 2b ba bf a7 11 b1 4d 36 d2 b2 79 24 57 74 b5 87 86 cf c9 6a 29 95 f6 02 8c c1 d8 4f d9 46 6b 2c f9 dd 44 72 e8 fa 48 58 96 5b 9d 45 91 12 d7 f1 49 3e 3d 0e a8 43 18 25 71 0d 63 f3 47 4a ff b7 c3 50 ea 28 20 9f 7d c4 6c dc e5 82 ed bd b4 80 cb 70 05 13 75 60 3c 7c fd 85 4c 64 37 1f d6 ae 2f 6f 33 26 40 56 23 98 d3 e7 ee be d1 b6 8f 3f 97 2e cc 73 7b b9 03 90 e4 ac 19 14 a0 30 5e 22 76 4b 10 fb 5d 6e 6d 1a a2 84 41 c2 16 ce 08 c5 0b 1b a9 bb 21 17 8e aa 7f 38 15 8a 1c 8b 92 df 51 a5 c6 7a 39 9a 9c d5 d4 e6 27 04 77 2a e1 81 65 1e e2 42 f4 ec e9 78 5f 7e 34 f8 0f f2 93 61 09 1d 31 f5 69 e0 eb 55 de cd 94 da 35 88 b0 9b 68 0a af f0 54 fe ef 99 83 - * 01 e9 7f e4 7d 1e d6 cf 4b 1d b7 72 77 ce 9d 52 3d 07 8c ff 31 97 84 53 41 cc e0 ea 46 e3 0d ad 0e aa 78 f1 ed 9b 0b dd 3f f5 85 16 2a 35 62 f8 34 4e 60 67 79 5e 21 df f4 47 9a fc 29 86 ae 03 d7 5f 75 5a 65 c4 d1 54 b5 af 3b dc 20 d2 15 7c a2 2e c2 4c fa 6d 27 1c 50 eb 74 fe 56 d4 a0 58 0c 6e 48 30 24 d9 28 e5 13 7e 0f b0 bd 4d 05 82 49 93 91 89 6f 18 70 36 9f ac c0 a7 83 45 61 06 6a 59 f0 b6 de a9 4f 57 55 8f 44 c3 8b 7b 76 c9 b8 d5 23 ee 1f e2 f6 8e a8 ca 9e 66 12 90 38 b2 2d 96 da e1 ab 3c 8a 04 e8 64 ba d3 14 e6 1a fd 69 73 92 17 02 a3 9c b3 99 11 c5 68 40 ef 3a 5c 81 32 19 e7 98 bf a1 a6 88 f2 3e a4 f3 ec d0 43 33 f9 1b cd 5d 2b 37 be 6c c8 6b cb 25 80 2c 26 0a 87 95 42 51 f7 39 4a c1 fb 94 5b 08 b1 b4 71 db 8d 09 10 d8 bb 22 b9 2f c7 bc - * 01 3e 2a a2 75 39 bd 92 a7 72 15 78 f3 ab 16 a4 f1 69 32 c1 71 2f 58 48 6f 09 d3 b9 db 2b 24 f9 d5 cf cb 22 14 94 ad 38 e8 61 33 d9 e2 99 c3 ac ff 05 f4 81 73 4d 31 a6 f7 5a e0 0b b3 f6 d2 77 3d e4 50 68 29 c8 a9 ee b8 1b e3 03 1a e1 ec 93 fa 96 63 5f 2e f2 e9 8a 9d aa 7c 35 a5 0f cc 65 fc 40 8f 20 8e 45 64 5e 70 b7 83 a8 2d 6d 90 0e 52 ce 04 b2 ca 89 30 37 6a 0a fe de 6b 4b bf df 82 85 3c 7f 07 b1 7b e7 bb 25 d8 98 1d 36 02 c5 eb d1 f0 3b 95 3a f5 49 d0 79 ba 10 80 c9 1f 28 3f 5c 47 9b ea d6 23 4f 26 59 54 af b6 56 ae 0d 5b 1c 7d 9c dd e5 51 88 c2 67 43 06 be 55 ef 42 13 84 f8 c6 34 41 b0 4a 19 76 2c 57 6c 86 d4 5d 8d 18 21 a1 97 7e 7a 60 4c 91 9e 6e 0c 66 bc da fd ed 9a c4 74 87 dc 44 11 a3 1e 46 cd a0 c7 12 27 08 8c c0 17 9f 8b b4 fb e6 d7 + * 01 02 04 08 10 20 40 80 1b 36 6c d8 ab 4d 9a 2f 5e bc 63 c6 97 35 6a d4 b3 7d fa ef c5 91 39 72 e4 d3 bd 61 c2 9f 25 4a 94 33 66 cc 83 1d 3a 74 e8 cb 8d 8c 03 06 0c 18 30 60 c0 9b 2d 5a b4 73 e6 d7 b5 71 e2 df a5 51 a2 5f be 67 ce 87 15 2a 54 a8 4b 96 37 6e dc a3 5d ba 6f de a7 55 aa 4f 9e 27 4e 9c 23 46 ca 8f 05 0a 14 28 50 a0 5b b6 77 ee c7 95 31 62 c4 93 3d 7a f4 f3 fd e1 d9 a9 49 92 3f 7e fc e3 dd a1 59 b2 7f fe e7 d5 b1 79 f2 ff e5 d1 b9 69 d2 bf 65 af 45 8a 0f 1e 3c 78 f0 fb ed c1 99 29 52 a4 53 a6 57 ae 47 8e 07 0e 1c 38 70 e0 db ad 41 82 1f 3e 7c f8 eb cd 81 19 32 64 c8 8b 0d 1a 34 68 d0 bb 6d da 75 ea cf 85 11 22 44 88 0b 16 2c 58 b0 7b f6 f7 f5 f1 f9 e9 c9 89 09 12 24 48 90 3b 76 ec c3 9d 21 42 84 13 26 4c 98 2b 56 ac 43 86 17 2e 5c + * 01 27 e7 9a be d1 53 6e 8b b8 88 96 7b 69 d7 45 07 7c 14 73 d9 f7 8d 31 e3 bd fd 64 50 57 84 c7 ac f1 94 c1 ed 33 97 fa 8c 1f 40 0f 12 b4 28 c8 dc 56 95 6b 65 5f 2f 4d d5 8f 60 09 1e 6c 7a 30 05 93 1c 78 b2 e4 c9 c4 0a f8 48 9f 4f fc 62 89 c0 1b 5a 24 eb a5 58 a7 16 10 81 06 68 59 f0 c6 66 17 cf 42 ae 44 13 5d 92 ec ad 76 3f d4 4a f9 29 fe 4e bc 72 7f 52 04 ce aa 25 b3 86 cc da a8 bf d6 39 63 fb 99 e9 d3 dd f2 18 f4 79 a1 d0 70 46 ef de b0 37 a6 a0 11 ee 22 47 1a 71 32 e1 e6 d2 4b 0b 55 87 3b 41 6f c5 a2 ca b1 f3 61 df cd 20 3e 0e 3d d8 e5 67 08 2c 51 91 b7 23 e0 6a 7e 9e 02 a4 b9 f6 a9 3a 4c 21 85 5b 77 2d 36 3c 38 bb ea 2e 2b a3 26 74 54 af b5 34 0c ff ab 5e 9c 75 6d 83 cb f5 43 7d 35 db c3 2a e8 1d 49 ba 82 03 19 e2 c2 90 15 9d 98 5c 0d 8e + * 01 aa 84 c5 46 f4 4a 69 45 29 9f ae 03 c6 50 49 e7 2d bc 54 8e e9 a5 a3 85 15 d1 b4 fd 32 e2 68 0e 16 62 31 2c 56 5c 20 7f 90 5b ad 5e 5a b9 94 34 df c9 18 ef 13 42 4f 60 d8 db b6 c3 67 6c c0 5f 3f ee de ea 70 a2 9b d5 82 44 cb dc 51 e0 ab 76 2f 41 b1 b3 a6 3a a4 24 f2 80 ca 6f c7 2b 58 6d f0 19 e1 99 8a 66 96 f8 a1 7c 37 86 0b 1c 93 55 02 4c 75 a7 3d 09 39 e8 88 17 bb b0 14 61 0c 0f b7 98 95 c4 38 cf 5d 4e 36 ce 27 ba 8f fc 10 b8 1d 57 25 f3 73 ed 71 64 d9 bf 35 e5 2a 63 06 c2 52 74 72 3e 59 83 6b fa 30 9e 87 11 d4 79 48 fe 92 be 9d 23 91 12 53 7d d6 1e 08 e3 43 6e 8d 89 7a 8c 47 a8 f7 8b 81 fb e6 b5 c1 ec 77 7e 05 78 da 1a 33 c8 f5 bd 28 97 65 1b 9c 21 26 04 3c 0a 7b f9 07 d0 2e ac dd eb d3 f1 f6 4b cc b2 40 ff 6a 22 1f e4 cd 0d af d2 a9 a0 + * 01 8b 75 80 2a 58 18 b6 f4 16 49 36 43 d7 6e 27 bc 56 9f 3f db ef 83 99 61 06 c6 a8 69 7d 0a fc 57 be 5f ae bb 0f 76 4f f8 71 7f 2b 63 0c b0 05 fa ad 12 b7 0d c8 02 9a 84 b2 e2 19 e4 42 2f 39 a3 a5 e8 ed a1 91 5e 4e e7 a4 89 cc c5 59 13 cd 98 fe 9c b8 d9 f9 fd 3e 46 c3 9b 74 51 d0 47 50 62 b9 4b 7a 77 ab 94 f2 a7 79 33 af a6 e3 ce 8d 24 34 fb cb 87 82 cf c9 53 45 28 8e 73 88 d8 ee f0 68 a2 67 dd c1 1d 10 21 d3 08 3a 2d ba 3b 1e f1 a9 2c 54 97 93 b3 d2 f6 60 17 03 c2 ac 6c 0b f3 e9 85 b1 55 f5 3c d6 4d 04 bd 29 5c 23 7c 9e dc 72 32 40 ea 1f e1 6b 78 c7 90 6f da 66 09 41 15 1b 92 25 1c 65 d1 c4 35 d4 3d 96 df 5d 5a 31 a0 8f 7b bf 38 44 e6 86 c0 9d 20 64 1a 48 95 b4 07 e0 7e 14 8a 6d de ff 22 70 0e 4a f7 aa ec 8c 2e 52 d5 11 e5 ca 5b 30 37 b5 eb + * 01 2d e3 45 51 ad 42 17 df b7 a1 8c 19 f0 47 79 23 77 ea c2 ca 93 97 5b e0 ff 0f c9 bf 3b 85 fa d0 68 ef 40 ab 5d 57 cc 64 16 9c f2 db a2 90 65 9f 96 d9 02 8d a9 e7 aa 0b c8 74 28 55 d5 0a ed 0d f3 63 44 05 b1 8e 58 d4 a8 c4 8f 88 4f 1d 4e 2c 07 30 6b 15 5c 33 1c 6f 3e f4 1a 20 c5 c3 2b e9 1e 86 84 7f 9b f7 a4 f6 31 36 7d 11 6d e1 37 08 bc fd da 4a b4 54 b3 6c ec 91 cd 71 b2 13 5e 10 34 bb 22 c6 3d 3f a7 50 92 7a 7c 99 a3 4d 87 d6 a5 8a e5 ac d2 89 be 95 06 70 b6 46 59 e2 2e 2a 73 7b 53 ce 9a c0 fe 49 a0 35 18 0e 66 ae fb 14 e8 fc 5a 94 b8 60 2f 26 dc 29 1b 62 4b 25 af dd 75 ee e4 12 f9 56 d1 69 43 3c 82 c1 f8 98 9d 48 5f 09 d3 b5 81 03 1f de 7e cb 04 6e 4c eb 39 61 cf 76 d8 80 52 f5 d7 bd 72 c7 67 a6 ba 38 0c 6a b0 e6 f1 24 21 41 78 32 83 9e */ const uint8_t __aligned(256) raid_gfcauchy_aes[6][256] = { @@ -24786,174 +24714,174 @@ const uint8_t __aligned(256) raid_gfcauchy_aes[6][256] = 0x01, 0x01, 0x01, }, { - 0x01, 0x03, 0x05, 0x0f, 0x11, 0x33, 0x55, 0xff, - 0x1a, 0x2e, 0x72, 0x96, 0xa1, 0xf8, 0x13, 0x35, - 0x5f, 0xe1, 0x38, 0x48, 0xd8, 0x73, 0x95, 0xa4, - 0xf7, 0x02, 0x06, 0x0a, 0x1e, 0x22, 0x66, 0xaa, - 0xe5, 0x34, 0x5c, 0xe4, 0x37, 0x59, 0xeb, 0x26, - 0x6a, 0xbe, 0xd9, 0x70, 0x90, 0xab, 0xe6, 0x31, - 0x53, 0xf5, 0x04, 0x0c, 0x14, 0x3c, 0x44, 0xcc, - 0x4f, 0xd1, 0x68, 0xb8, 0xd3, 0x6e, 0xb2, 0xcd, - 0x4c, 0xd4, 0x67, 0xa9, 0xe0, 0x3b, 0x4d, 0xd7, - 0x62, 0xa6, 0xf1, 0x08, 0x18, 0x28, 0x78, 0x88, - 0x83, 0x9e, 0xb9, 0xd0, 0x6b, 0xbd, 0xdc, 0x7f, - 0x81, 0x98, 0xb3, 0xce, 0x49, 0xdb, 0x76, 0x9a, - 0xb5, 0xc4, 0x57, 0xf9, 0x10, 0x30, 0x50, 0xf0, - 0x0b, 0x1d, 0x27, 0x69, 0xbb, 0xd6, 0x61, 0xa3, - 0xfe, 0x19, 0x2b, 0x7d, 0x87, 0x92, 0xad, 0xec, - 0x2f, 0x71, 0x93, 0xae, 0xe9, 0x20, 0x60, 0xa0, - 0xfb, 0x16, 0x3a, 0x4e, 0xd2, 0x6d, 0xb7, 0xc2, - 0x5d, 0xe7, 0x32, 0x56, 0xfa, 0x15, 0x3f, 0x41, - 0xc3, 0x5e, 0xe2, 0x3d, 0x47, 0xc9, 0x40, 0xc0, - 0x5b, 0xed, 0x2c, 0x74, 0x9c, 0xbf, 0xda, 0x75, - 0x9f, 0xba, 0xd5, 0x64, 0xac, 0xef, 0x2a, 0x7e, - 0x82, 0x9d, 0xbc, 0xdf, 0x7a, 0x8e, 0x89, 0x80, - 0x9b, 0xb6, 0xc1, 0x58, 0xe8, 0x23, 0x65, 0xaf, - 0xea, 0x25, 0x6f, 0xb1, 0xc8, 0x43, 0xc5, 0x54, - 0xfc, 0x1f, 0x21, 0x63, 0xa5, 0xf4, 0x07, 0x09, - 0x1b, 0x2d, 0x77, 0x99, 0xb0, 0xcb, 0x46, 0xca, - 0x45, 0xcf, 0x4a, 0xde, 0x79, 0x8b, 0x86, 0x91, - 0xa8, 0xe3, 0x3e, 0x42, 0xc6, 0x51, 0xf3, 0x0e, - 0x12, 0x36, 0x5a, 0xee, 0x29, 0x7b, 0x8d, 0x8c, - 0x8f, 0x8a, 0x85, 0x94, 0xa7, 0xf2, 0x0d, 0x17, - 0x39, 0x4b, 0xdd, 0x7c, 0x84, 0x97, 0xa2, 0xfd, - 0x1c, 0x24, 0x6c, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, + 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, + 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, + 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, + 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, + 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, + 0xe8, 0xcb, 0x8d, 0x8c, 0x03, 0x06, 0x0c, 0x18, + 0x30, 0x60, 0xc0, 0x9b, 0x2d, 0x5a, 0xb4, 0x73, + 0xe6, 0xd7, 0xb5, 0x71, 0xe2, 0xdf, 0xa5, 0x51, + 0xa2, 0x5f, 0xbe, 0x67, 0xce, 0x87, 0x15, 0x2a, + 0x54, 0xa8, 0x4b, 0x96, 0x37, 0x6e, 0xdc, 0xa3, + 0x5d, 0xba, 0x6f, 0xde, 0xa7, 0x55, 0xaa, 0x4f, + 0x9e, 0x27, 0x4e, 0x9c, 0x23, 0x46, 0xca, 0x8f, + 0x05, 0x0a, 0x14, 0x28, 0x50, 0xa0, 0x5b, 0xb6, + 0x77, 0xee, 0xc7, 0x95, 0x31, 0x62, 0xc4, 0x93, + 0x3d, 0x7a, 0xf4, 0xf3, 0xfd, 0xe1, 0xd9, 0xa9, + 0x49, 0x92, 0x3f, 0x7e, 0xfc, 0xe3, 0xdd, 0xa1, + 0x59, 0xb2, 0x7f, 0xfe, 0xe7, 0xd5, 0xb1, 0x79, + 0xf2, 0xff, 0xe5, 0xd1, 0xb9, 0x69, 0xd2, 0xbf, + 0x65, 0xaf, 0x45, 0x8a, 0x0f, 0x1e, 0x3c, 0x78, + 0xf0, 0xfb, 0xed, 0xc1, 0x99, 0x29, 0x52, 0xa4, + 0x53, 0xa6, 0x57, 0xae, 0x47, 0x8e, 0x07, 0x0e, + 0x1c, 0x38, 0x70, 0xe0, 0xdb, 0xad, 0x41, 0x82, + 0x1f, 0x3e, 0x7c, 0xf8, 0xeb, 0xcd, 0x81, 0x19, + 0x32, 0x64, 0xc8, 0x8b, 0x0d, 0x1a, 0x34, 0x68, + 0xd0, 0xbb, 0x6d, 0xda, 0x75, 0xea, 0xcf, 0x85, + 0x11, 0x22, 0x44, 0x88, 0x0b, 0x16, 0x2c, 0x58, + 0xb0, 0x7b, 0xf6, 0xf7, 0xf5, 0xf1, 0xf9, 0xe9, + 0xc9, 0x89, 0x09, 0x12, 0x24, 0x48, 0x90, 0x3b, + 0x76, 0xec, 0xc3, 0x9d, 0x21, 0x42, 0x84, 0x13, + 0x26, 0x4c, 0x98, 0x2b, 0x56, 0xac, 0x43, 0x86, + 0x17, 0x2e, 0x5c, }, { - 0x01, 0x8c, 0xb8, 0xaf, 0xe2, 0x76, 0x89, 0x7f, - 0x82, 0xf8, 0xab, 0xac, 0x1f, 0x3b, 0x55, 0x40, - 0x29, 0xd1, 0x46, 0x05, 0xe4, 0x67, 0x27, 0xf5, - 0x53, 0x69, 0x77, 0x2b, 0xa0, 0x7c, 0x72, 0x73, - 0xd9, 0xb6, 0x0a, 0xb3, 0xe7, 0x6d, 0x79, 0x94, - 0x64, 0xe6, 0x2d, 0xbb, 0xeb, 0xc8, 0x36, 0xf1, - 0x4e, 0x62, 0x49, 0xc5, 0x25, 0x20, 0x5f, 0xb0, - 0x52, 0x8d, 0x03, 0xca, 0x2c, 0xb4, 0xe5, 0x38, - 0x65, 0xd3, 0x3a, 0x08, 0x3e, 0x66, 0x4b, 0x9c, - 0x87, 0x6c, 0x74, 0xdd, 0xfb, 0x5e, 0xea, 0x54, - 0x1b, 0x31, 0x04, 0xe0, 0x21, 0xae, 0x09, 0xfc, - 0xef, 0x14, 0xba, 0xc4, 0x86, 0xdf, 0x07, 0xe9, - 0x6f, 0x0d, 0x61, 0x2f, 0x78, 0x9f, 0x3c, 0x30, - 0x5d, 0xce, 0xa6, 0x5a, 0xb2, 0x1a, 0xc3, 0x16, - 0x6e, 0xee, 0xc0, 0x23, 0x48, 0x8a, 0x97, 0xc2, - 0x50, 0x22, 0x42, 0x0e, 0x4a, 0x6a, 0x56, 0xa1, - 0x9d, 0xbd, 0xf9, 0xb5, 0xd5, 0xa7, 0x35, 0x60, - 0x7d, 0xbf, 0xd4, 0x37, 0x19, 0x99, 0xe1, 0x34, - 0xed, 0x45, 0xad, 0x51, 0x39, 0xaa, 0xc7, 0xcb, - 0x68, 0x8f, 0xd8, 0x96, 0xfa, 0x98, 0x1e, 0xf0, - 0x28, 0x71, 0x33, 0x4d, 0xe3, 0x18, 0x0b, 0xfe, - 0x59, 0xd6, 0x17, 0xf3, 0xc6, 0xec, 0xa3, 0x1d, - 0xa9, 0x0c, 0x2a, 0x83, 0x9b, 0x70, 0x6b, 0xbc, - 0x91, 0xc9, 0xff, 0xcd, 0x24, 0x92, 0xcf, 0x12, - 0x43, 0xdb, 0x3d, 0xf4, 0x7a, 0xa5, 0x47, 0xa8, - 0xd7, 0xd2, 0x32, 0xbe, 0x95, 0xb9, 0x06, 0xc1, - 0x3f, 0x1c, 0x4c, 0xda, 0x11, 0x93, 0x63, 0x8e, - 0x9a, 0x10, 0x44, 0xfd, 0x41, 0x2e, 0x84, 0x85, - 0x8b, 0x57, 0xdc, 0x80, 0x9e, 0xa4, 0x02, 0xd0, - 0x90, 0x13, 0xf2, 0xb1, 0x26, 0xde, 0xb7, 0xa2, - 0xcc, 0xe8, 0x5b, 0x5c, 0x0f, 0x75, 0x88, 0x7e, - 0x81, 0x15, 0x58, + 0x01, 0x27, 0xe7, 0x9a, 0xbe, 0xd1, 0x53, 0x6e, + 0x8b, 0xb8, 0x88, 0x96, 0x7b, 0x69, 0xd7, 0x45, + 0x07, 0x7c, 0x14, 0x73, 0xd9, 0xf7, 0x8d, 0x31, + 0xe3, 0xbd, 0xfd, 0x64, 0x50, 0x57, 0x84, 0xc7, + 0xac, 0xf1, 0x94, 0xc1, 0xed, 0x33, 0x97, 0xfa, + 0x8c, 0x1f, 0x40, 0x0f, 0x12, 0xb4, 0x28, 0xc8, + 0xdc, 0x56, 0x95, 0x6b, 0x65, 0x5f, 0x2f, 0x4d, + 0xd5, 0x8f, 0x60, 0x09, 0x1e, 0x6c, 0x7a, 0x30, + 0x05, 0x93, 0x1c, 0x78, 0xb2, 0xe4, 0xc9, 0xc4, + 0x0a, 0xf8, 0x48, 0x9f, 0x4f, 0xfc, 0x62, 0x89, + 0xc0, 0x1b, 0x5a, 0x24, 0xeb, 0xa5, 0x58, 0xa7, + 0x16, 0x10, 0x81, 0x06, 0x68, 0x59, 0xf0, 0xc6, + 0x66, 0x17, 0xcf, 0x42, 0xae, 0x44, 0x13, 0x5d, + 0x92, 0xec, 0xad, 0x76, 0x3f, 0xd4, 0x4a, 0xf9, + 0x29, 0xfe, 0x4e, 0xbc, 0x72, 0x7f, 0x52, 0x04, + 0xce, 0xaa, 0x25, 0xb3, 0x86, 0xcc, 0xda, 0xa8, + 0xbf, 0xd6, 0x39, 0x63, 0xfb, 0x99, 0xe9, 0xd3, + 0xdd, 0xf2, 0x18, 0xf4, 0x79, 0xa1, 0xd0, 0x70, + 0x46, 0xef, 0xde, 0xb0, 0x37, 0xa6, 0xa0, 0x11, + 0xee, 0x22, 0x47, 0x1a, 0x71, 0x32, 0xe1, 0xe6, + 0xd2, 0x4b, 0x0b, 0x55, 0x87, 0x3b, 0x41, 0x6f, + 0xc5, 0xa2, 0xca, 0xb1, 0xf3, 0x61, 0xdf, 0xcd, + 0x20, 0x3e, 0x0e, 0x3d, 0xd8, 0xe5, 0x67, 0x08, + 0x2c, 0x51, 0x91, 0xb7, 0x23, 0xe0, 0x6a, 0x7e, + 0x9e, 0x02, 0xa4, 0xb9, 0xf6, 0xa9, 0x3a, 0x4c, + 0x21, 0x85, 0x5b, 0x77, 0x2d, 0x36, 0x3c, 0x38, + 0xbb, 0xea, 0x2e, 0x2b, 0xa3, 0x26, 0x74, 0x54, + 0xaf, 0xb5, 0x34, 0x0c, 0xff, 0xab, 0x5e, 0x9c, + 0x75, 0x6d, 0x83, 0xcb, 0xf5, 0x43, 0x7d, 0x35, + 0xdb, 0xc3, 0x2a, 0xe8, 0x1d, 0x49, 0xba, 0x82, + 0x03, 0x19, 0xe2, 0xc2, 0x90, 0x15, 0x9d, 0x98, + 0x5c, 0x0d, 0x8e, }, { - 0x01, 0xd0, 0xca, 0xbc, 0xad, 0x07, 0xa3, 0xfc, - 0x59, 0x3b, 0xc8, 0xe3, 0xdb, 0x66, 0x89, 0xc7, - 0x9e, 0x8d, 0x06, 0xb8, 0xb3, 0x3a, 0xa6, 0x62, - 0x4e, 0x5a, 0x32, 0xc0, 0xa1, 0x5c, 0xab, 0x67, - 0x2d, 0x0c, 0x2b, 0xba, 0xbf, 0xa7, 0x11, 0xb1, - 0x4d, 0x36, 0xd2, 0xb2, 0x79, 0x24, 0x57, 0x74, - 0xb5, 0x87, 0x86, 0xcf, 0xc9, 0x6a, 0x29, 0x95, - 0xf6, 0x02, 0x8c, 0xc1, 0xd8, 0x4f, 0xd9, 0x46, - 0x6b, 0x2c, 0xf9, 0xdd, 0x44, 0x72, 0xe8, 0xfa, - 0x48, 0x58, 0x96, 0x5b, 0x9d, 0x45, 0x91, 0x12, - 0xd7, 0xf1, 0x49, 0x3e, 0x3d, 0x0e, 0xa8, 0x43, - 0x18, 0x25, 0x71, 0x0d, 0x63, 0xf3, 0x47, 0x4a, - 0xff, 0xb7, 0xc3, 0x50, 0xea, 0x28, 0x20, 0x9f, - 0x7d, 0xc4, 0x6c, 0xdc, 0xe5, 0x82, 0xed, 0xbd, - 0xb4, 0x80, 0xcb, 0x70, 0x05, 0x13, 0x75, 0x60, - 0x3c, 0x7c, 0xfd, 0x85, 0x4c, 0x64, 0x37, 0x1f, - 0xd6, 0xae, 0x2f, 0x6f, 0x33, 0x26, 0x40, 0x56, - 0x23, 0x98, 0xd3, 0xe7, 0xee, 0xbe, 0xd1, 0xb6, - 0x8f, 0x3f, 0x97, 0x2e, 0xcc, 0x73, 0x7b, 0xb9, - 0x03, 0x90, 0xe4, 0xac, 0x19, 0x14, 0xa0, 0x30, - 0x5e, 0x22, 0x76, 0x4b, 0x10, 0xfb, 0x5d, 0x6e, - 0x6d, 0x1a, 0xa2, 0x84, 0x41, 0xc2, 0x16, 0xce, - 0x08, 0xc5, 0x0b, 0x1b, 0xa9, 0xbb, 0x21, 0x17, - 0x8e, 0xaa, 0x7f, 0x38, 0x15, 0x8a, 0x1c, 0x8b, - 0x92, 0xdf, 0x51, 0xa5, 0xc6, 0x7a, 0x39, 0x9a, - 0x9c, 0xd5, 0xd4, 0xe6, 0x27, 0x04, 0x77, 0x2a, - 0xe1, 0x81, 0x65, 0x1e, 0xe2, 0x42, 0xf4, 0xec, - 0xe9, 0x78, 0x5f, 0x7e, 0x34, 0xf8, 0x0f, 0xf2, - 0x93, 0x61, 0x09, 0x1d, 0x31, 0xf5, 0x69, 0xe0, - 0xeb, 0x55, 0xde, 0xcd, 0x94, 0xda, 0x35, 0x88, - 0xb0, 0x9b, 0x68, 0x0a, 0xaf, 0xf0, 0x54, 0xfe, - 0xef, 0x99, 0x83, + 0x01, 0xaa, 0x84, 0xc5, 0x46, 0xf4, 0x4a, 0x69, + 0x45, 0x29, 0x9f, 0xae, 0x03, 0xc6, 0x50, 0x49, + 0xe7, 0x2d, 0xbc, 0x54, 0x8e, 0xe9, 0xa5, 0xa3, + 0x85, 0x15, 0xd1, 0xb4, 0xfd, 0x32, 0xe2, 0x68, + 0x0e, 0x16, 0x62, 0x31, 0x2c, 0x56, 0x5c, 0x20, + 0x7f, 0x90, 0x5b, 0xad, 0x5e, 0x5a, 0xb9, 0x94, + 0x34, 0xdf, 0xc9, 0x18, 0xef, 0x13, 0x42, 0x4f, + 0x60, 0xd8, 0xdb, 0xb6, 0xc3, 0x67, 0x6c, 0xc0, + 0x5f, 0x3f, 0xee, 0xde, 0xea, 0x70, 0xa2, 0x9b, + 0xd5, 0x82, 0x44, 0xcb, 0xdc, 0x51, 0xe0, 0xab, + 0x76, 0x2f, 0x41, 0xb1, 0xb3, 0xa6, 0x3a, 0xa4, + 0x24, 0xf2, 0x80, 0xca, 0x6f, 0xc7, 0x2b, 0x58, + 0x6d, 0xf0, 0x19, 0xe1, 0x99, 0x8a, 0x66, 0x96, + 0xf8, 0xa1, 0x7c, 0x37, 0x86, 0x0b, 0x1c, 0x93, + 0x55, 0x02, 0x4c, 0x75, 0xa7, 0x3d, 0x09, 0x39, + 0xe8, 0x88, 0x17, 0xbb, 0xb0, 0x14, 0x61, 0x0c, + 0x0f, 0xb7, 0x98, 0x95, 0xc4, 0x38, 0xcf, 0x5d, + 0x4e, 0x36, 0xce, 0x27, 0xba, 0x8f, 0xfc, 0x10, + 0xb8, 0x1d, 0x57, 0x25, 0xf3, 0x73, 0xed, 0x71, + 0x64, 0xd9, 0xbf, 0x35, 0xe5, 0x2a, 0x63, 0x06, + 0xc2, 0x52, 0x74, 0x72, 0x3e, 0x59, 0x83, 0x6b, + 0xfa, 0x30, 0x9e, 0x87, 0x11, 0xd4, 0x79, 0x48, + 0xfe, 0x92, 0xbe, 0x9d, 0x23, 0x91, 0x12, 0x53, + 0x7d, 0xd6, 0x1e, 0x08, 0xe3, 0x43, 0x6e, 0x8d, + 0x89, 0x7a, 0x8c, 0x47, 0xa8, 0xf7, 0x8b, 0x81, + 0xfb, 0xe6, 0xb5, 0xc1, 0xec, 0x77, 0x7e, 0x05, + 0x78, 0xda, 0x1a, 0x33, 0xc8, 0xf5, 0xbd, 0x28, + 0x97, 0x65, 0x1b, 0x9c, 0x21, 0x26, 0x04, 0x3c, + 0x0a, 0x7b, 0xf9, 0x07, 0xd0, 0x2e, 0xac, 0xdd, + 0xeb, 0xd3, 0xf1, 0xf6, 0x4b, 0xcc, 0xb2, 0x40, + 0xff, 0x6a, 0x22, 0x1f, 0xe4, 0xcd, 0x0d, 0xaf, + 0xd2, 0xa9, 0xa0, }, { - 0x01, 0xe9, 0x7f, 0xe4, 0x7d, 0x1e, 0xd6, 0xcf, - 0x4b, 0x1d, 0xb7, 0x72, 0x77, 0xce, 0x9d, 0x52, - 0x3d, 0x07, 0x8c, 0xff, 0x31, 0x97, 0x84, 0x53, - 0x41, 0xcc, 0xe0, 0xea, 0x46, 0xe3, 0x0d, 0xad, - 0x0e, 0xaa, 0x78, 0xf1, 0xed, 0x9b, 0x0b, 0xdd, - 0x3f, 0xf5, 0x85, 0x16, 0x2a, 0x35, 0x62, 0xf8, - 0x34, 0x4e, 0x60, 0x67, 0x79, 0x5e, 0x21, 0xdf, - 0xf4, 0x47, 0x9a, 0xfc, 0x29, 0x86, 0xae, 0x03, - 0xd7, 0x5f, 0x75, 0x5a, 0x65, 0xc4, 0xd1, 0x54, - 0xb5, 0xaf, 0x3b, 0xdc, 0x20, 0xd2, 0x15, 0x7c, - 0xa2, 0x2e, 0xc2, 0x4c, 0xfa, 0x6d, 0x27, 0x1c, - 0x50, 0xeb, 0x74, 0xfe, 0x56, 0xd4, 0xa0, 0x58, - 0x0c, 0x6e, 0x48, 0x30, 0x24, 0xd9, 0x28, 0xe5, - 0x13, 0x7e, 0x0f, 0xb0, 0xbd, 0x4d, 0x05, 0x82, - 0x49, 0x93, 0x91, 0x89, 0x6f, 0x18, 0x70, 0x36, - 0x9f, 0xac, 0xc0, 0xa7, 0x83, 0x45, 0x61, 0x06, - 0x6a, 0x59, 0xf0, 0xb6, 0xde, 0xa9, 0x4f, 0x57, - 0x55, 0x8f, 0x44, 0xc3, 0x8b, 0x7b, 0x76, 0xc9, - 0xb8, 0xd5, 0x23, 0xee, 0x1f, 0xe2, 0xf6, 0x8e, - 0xa8, 0xca, 0x9e, 0x66, 0x12, 0x90, 0x38, 0xb2, - 0x2d, 0x96, 0xda, 0xe1, 0xab, 0x3c, 0x8a, 0x04, - 0xe8, 0x64, 0xba, 0xd3, 0x14, 0xe6, 0x1a, 0xfd, - 0x69, 0x73, 0x92, 0x17, 0x02, 0xa3, 0x9c, 0xb3, - 0x99, 0x11, 0xc5, 0x68, 0x40, 0xef, 0x3a, 0x5c, - 0x81, 0x32, 0x19, 0xe7, 0x98, 0xbf, 0xa1, 0xa6, - 0x88, 0xf2, 0x3e, 0xa4, 0xf3, 0xec, 0xd0, 0x43, - 0x33, 0xf9, 0x1b, 0xcd, 0x5d, 0x2b, 0x37, 0xbe, - 0x6c, 0xc8, 0x6b, 0xcb, 0x25, 0x80, 0x2c, 0x26, - 0x0a, 0x87, 0x95, 0x42, 0x51, 0xf7, 0x39, 0x4a, - 0xc1, 0xfb, 0x94, 0x5b, 0x08, 0xb1, 0xb4, 0x71, - 0xdb, 0x8d, 0x09, 0x10, 0xd8, 0xbb, 0x22, 0xb9, - 0x2f, 0xc7, 0xbc, + 0x01, 0x8b, 0x75, 0x80, 0x2a, 0x58, 0x18, 0xb6, + 0xf4, 0x16, 0x49, 0x36, 0x43, 0xd7, 0x6e, 0x27, + 0xbc, 0x56, 0x9f, 0x3f, 0xdb, 0xef, 0x83, 0x99, + 0x61, 0x06, 0xc6, 0xa8, 0x69, 0x7d, 0x0a, 0xfc, + 0x57, 0xbe, 0x5f, 0xae, 0xbb, 0x0f, 0x76, 0x4f, + 0xf8, 0x71, 0x7f, 0x2b, 0x63, 0x0c, 0xb0, 0x05, + 0xfa, 0xad, 0x12, 0xb7, 0x0d, 0xc8, 0x02, 0x9a, + 0x84, 0xb2, 0xe2, 0x19, 0xe4, 0x42, 0x2f, 0x39, + 0xa3, 0xa5, 0xe8, 0xed, 0xa1, 0x91, 0x5e, 0x4e, + 0xe7, 0xa4, 0x89, 0xcc, 0xc5, 0x59, 0x13, 0xcd, + 0x98, 0xfe, 0x9c, 0xb8, 0xd9, 0xf9, 0xfd, 0x3e, + 0x46, 0xc3, 0x9b, 0x74, 0x51, 0xd0, 0x47, 0x50, + 0x62, 0xb9, 0x4b, 0x7a, 0x77, 0xab, 0x94, 0xf2, + 0xa7, 0x79, 0x33, 0xaf, 0xa6, 0xe3, 0xce, 0x8d, + 0x24, 0x34, 0xfb, 0xcb, 0x87, 0x82, 0xcf, 0xc9, + 0x53, 0x45, 0x28, 0x8e, 0x73, 0x88, 0xd8, 0xee, + 0xf0, 0x68, 0xa2, 0x67, 0xdd, 0xc1, 0x1d, 0x10, + 0x21, 0xd3, 0x08, 0x3a, 0x2d, 0xba, 0x3b, 0x1e, + 0xf1, 0xa9, 0x2c, 0x54, 0x97, 0x93, 0xb3, 0xd2, + 0xf6, 0x60, 0x17, 0x03, 0xc2, 0xac, 0x6c, 0x0b, + 0xf3, 0xe9, 0x85, 0xb1, 0x55, 0xf5, 0x3c, 0xd6, + 0x4d, 0x04, 0xbd, 0x29, 0x5c, 0x23, 0x7c, 0x9e, + 0xdc, 0x72, 0x32, 0x40, 0xea, 0x1f, 0xe1, 0x6b, + 0x78, 0xc7, 0x90, 0x6f, 0xda, 0x66, 0x09, 0x41, + 0x15, 0x1b, 0x92, 0x25, 0x1c, 0x65, 0xd1, 0xc4, + 0x35, 0xd4, 0x3d, 0x96, 0xdf, 0x5d, 0x5a, 0x31, + 0xa0, 0x8f, 0x7b, 0xbf, 0x38, 0x44, 0xe6, 0x86, + 0xc0, 0x9d, 0x20, 0x64, 0x1a, 0x48, 0x95, 0xb4, + 0x07, 0xe0, 0x7e, 0x14, 0x8a, 0x6d, 0xde, 0xff, + 0x22, 0x70, 0x0e, 0x4a, 0xf7, 0xaa, 0xec, 0x8c, + 0x2e, 0x52, 0xd5, 0x11, 0xe5, 0xca, 0x5b, 0x30, + 0x37, 0xb5, 0xeb, }, { - 0x01, 0x3e, 0x2a, 0xa2, 0x75, 0x39, 0xbd, 0x92, - 0xa7, 0x72, 0x15, 0x78, 0xf3, 0xab, 0x16, 0xa4, - 0xf1, 0x69, 0x32, 0xc1, 0x71, 0x2f, 0x58, 0x48, - 0x6f, 0x09, 0xd3, 0xb9, 0xdb, 0x2b, 0x24, 0xf9, - 0xd5, 0xcf, 0xcb, 0x22, 0x14, 0x94, 0xad, 0x38, - 0xe8, 0x61, 0x33, 0xd9, 0xe2, 0x99, 0xc3, 0xac, - 0xff, 0x05, 0xf4, 0x81, 0x73, 0x4d, 0x31, 0xa6, - 0xf7, 0x5a, 0xe0, 0x0b, 0xb3, 0xf6, 0xd2, 0x77, - 0x3d, 0xe4, 0x50, 0x68, 0x29, 0xc8, 0xa9, 0xee, - 0xb8, 0x1b, 0xe3, 0x03, 0x1a, 0xe1, 0xec, 0x93, - 0xfa, 0x96, 0x63, 0x5f, 0x2e, 0xf2, 0xe9, 0x8a, - 0x9d, 0xaa, 0x7c, 0x35, 0xa5, 0x0f, 0xcc, 0x65, - 0xfc, 0x40, 0x8f, 0x20, 0x8e, 0x45, 0x64, 0x5e, - 0x70, 0xb7, 0x83, 0xa8, 0x2d, 0x6d, 0x90, 0x0e, - 0x52, 0xce, 0x04, 0xb2, 0xca, 0x89, 0x30, 0x37, - 0x6a, 0x0a, 0xfe, 0xde, 0x6b, 0x4b, 0xbf, 0xdf, - 0x82, 0x85, 0x3c, 0x7f, 0x07, 0xb1, 0x7b, 0xe7, - 0xbb, 0x25, 0xd8, 0x98, 0x1d, 0x36, 0x02, 0xc5, - 0xeb, 0xd1, 0xf0, 0x3b, 0x95, 0x3a, 0xf5, 0x49, - 0xd0, 0x79, 0xba, 0x10, 0x80, 0xc9, 0x1f, 0x28, - 0x3f, 0x5c, 0x47, 0x9b, 0xea, 0xd6, 0x23, 0x4f, - 0x26, 0x59, 0x54, 0xaf, 0xb6, 0x56, 0xae, 0x0d, - 0x5b, 0x1c, 0x7d, 0x9c, 0xdd, 0xe5, 0x51, 0x88, - 0xc2, 0x67, 0x43, 0x06, 0xbe, 0x55, 0xef, 0x42, - 0x13, 0x84, 0xf8, 0xc6, 0x34, 0x41, 0xb0, 0x4a, - 0x19, 0x76, 0x2c, 0x57, 0x6c, 0x86, 0xd4, 0x5d, - 0x8d, 0x18, 0x21, 0xa1, 0x97, 0x7e, 0x7a, 0x60, - 0x4c, 0x91, 0x9e, 0x6e, 0x0c, 0x66, 0xbc, 0xda, - 0xfd, 0xed, 0x9a, 0xc4, 0x74, 0x87, 0xdc, 0x44, - 0x11, 0xa3, 0x1e, 0x46, 0xcd, 0xa0, 0xc7, 0x12, - 0x27, 0x08, 0x8c, 0xc0, 0x17, 0x9f, 0x8b, 0xb4, - 0xfb, 0xe6, 0xd7, + 0x01, 0x2d, 0xe3, 0x45, 0x51, 0xad, 0x42, 0x17, + 0xdf, 0xb7, 0xa1, 0x8c, 0x19, 0xf0, 0x47, 0x79, + 0x23, 0x77, 0xea, 0xc2, 0xca, 0x93, 0x97, 0x5b, + 0xe0, 0xff, 0x0f, 0xc9, 0xbf, 0x3b, 0x85, 0xfa, + 0xd0, 0x68, 0xef, 0x40, 0xab, 0x5d, 0x57, 0xcc, + 0x64, 0x16, 0x9c, 0xf2, 0xdb, 0xa2, 0x90, 0x65, + 0x9f, 0x96, 0xd9, 0x02, 0x8d, 0xa9, 0xe7, 0xaa, + 0x0b, 0xc8, 0x74, 0x28, 0x55, 0xd5, 0x0a, 0xed, + 0x0d, 0xf3, 0x63, 0x44, 0x05, 0xb1, 0x8e, 0x58, + 0xd4, 0xa8, 0xc4, 0x8f, 0x88, 0x4f, 0x1d, 0x4e, + 0x2c, 0x07, 0x30, 0x6b, 0x15, 0x5c, 0x33, 0x1c, + 0x6f, 0x3e, 0xf4, 0x1a, 0x20, 0xc5, 0xc3, 0x2b, + 0xe9, 0x1e, 0x86, 0x84, 0x7f, 0x9b, 0xf7, 0xa4, + 0xf6, 0x31, 0x36, 0x7d, 0x11, 0x6d, 0xe1, 0x37, + 0x08, 0xbc, 0xfd, 0xda, 0x4a, 0xb4, 0x54, 0xb3, + 0x6c, 0xec, 0x91, 0xcd, 0x71, 0xb2, 0x13, 0x5e, + 0x10, 0x34, 0xbb, 0x22, 0xc6, 0x3d, 0x3f, 0xa7, + 0x50, 0x92, 0x7a, 0x7c, 0x99, 0xa3, 0x4d, 0x87, + 0xd6, 0xa5, 0x8a, 0xe5, 0xac, 0xd2, 0x89, 0xbe, + 0x95, 0x06, 0x70, 0xb6, 0x46, 0x59, 0xe2, 0x2e, + 0x2a, 0x73, 0x7b, 0x53, 0xce, 0x9a, 0xc0, 0xfe, + 0x49, 0xa0, 0x35, 0x18, 0x0e, 0x66, 0xae, 0xfb, + 0x14, 0xe8, 0xfc, 0x5a, 0x94, 0xb8, 0x60, 0x2f, + 0x26, 0xdc, 0x29, 0x1b, 0x62, 0x4b, 0x25, 0xaf, + 0xdd, 0x75, 0xee, 0xe4, 0x12, 0xf9, 0x56, 0xd1, + 0x69, 0x43, 0x3c, 0x82, 0xc1, 0xf8, 0x98, 0x9d, + 0x48, 0x5f, 0x09, 0xd3, 0xb5, 0x81, 0x03, 0x1f, + 0xde, 0x7e, 0xcb, 0x04, 0x6e, 0x4c, 0xeb, 0x39, + 0x61, 0xcf, 0x76, 0xd8, 0x80, 0x52, 0xf5, 0xd7, + 0xbd, 0x72, 0xc7, 0x67, 0xa6, 0xba, 0x38, 0x0c, + 0x6a, 0xb0, 0xe6, 0xf1, 0x24, 0x21, 0x41, 0x78, + 0x32, 0x83, 0x9e, }, }; @@ -24988,1629 +24916,45 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, }, }, - { - { - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - }, - { - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - }, - { - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - }, - { - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - }, - { - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - }, - }, - { - { - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - }, - { - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - }, - { - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - }, - { - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - }, - { - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - }, - }, - { - { - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - }, - { - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - }, - { - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - }, - { - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - }, - { - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - }, - }, - { - { - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - }, - { - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - }, - { - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - }, - { - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - }, - { - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - }, - }, - { - { - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - }, - { - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - }, - { - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - }, - { - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - }, - { - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - }, - }, - { - { - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - }, - { - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - }, - { - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - }, - { - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - }, - { - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - }, - }, - { - { - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - }, - { - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - }, - { - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - }, - { - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - }, - { - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - }, - }, - { - { - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - }, - { - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - }, - { - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - }, - { - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - }, - { - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - }, - }, - { - { - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - }, - { - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - }, - { - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - }, - { - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - }, - { - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - }, - }, - { - { - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - }, - { - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - }, - { - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - }, - { - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - }, - { - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - }, - }, - { - { - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - }, - { - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - }, - { - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - }, - { - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - }, - { - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - }, - }, - { - { - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - }, - { - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - }, - { - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - }, - { - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - }, - { - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - }, - }, - { - { - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - }, - { - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - }, - { - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - }, - { - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - }, - { - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - }, - }, - { - { - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - }, - { - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - }, - { - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - }, - { - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - }, - { - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - }, - }, - { - { - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - }, - { - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - }, - { - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - }, - { - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - }, - { - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - }, - }, - { - { - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - }, - { - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - }, - { - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - }, - { - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - }, - { - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - }, - }, - { - { - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - }, - { - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - }, - { - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - }, - { - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - }, - { - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - }, - }, - { - { - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - }, - { - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - }, - { - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - }, - { - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - }, - { - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - }, - }, - { - { - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - }, - { - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - }, - { - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - }, - { - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - }, - { - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - }, - }, - { - { - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - }, - { - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - }, - { - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - }, - { - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - }, - { - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - }, - }, - { - { - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - }, - { - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - }, - { - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - }, - { - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - }, - { - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - }, - }, - { - { - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - }, - { - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - }, - { - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - }, - { - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - }, - { - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - }, - }, - { - { - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - }, - { - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - }, - { - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - }, - { - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - }, - { - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - }, - }, - { - { - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - }, - { - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - }, - { - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - }, - { - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - }, - { - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - }, - }, { { { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, }, { - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - }, - { - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - }, - { - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - }, - { - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - }, - }, - { - { - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - }, - { - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - }, - { - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - }, - { - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - }, - { - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - }, - }, - { - { - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - }, - { - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - }, - { - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - }, - { - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - }, - { - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - }, - }, - { - { - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - }, - { - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - }, - { - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - }, - { + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, }, - { - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - }, - }, - { - { - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - }, - { - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - }, - { - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - }, - { - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - }, - { - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - }, - }, - { - { - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - }, - { - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - }, - { - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - }, - { - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - }, - { - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - }, - }, - { { { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, }, { - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - }, - { - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - }, - { - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - }, - { - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - }, - }, - { - { - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - }, - { - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, }, { { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, }, - { - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - }, - { - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - }, }, { { - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - }, - { - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - }, - { - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - }, - { - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - }, - { - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - }, - }, - { - { - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - }, - { - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - }, - { - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - }, - { - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - }, - { - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - }, - }, - { - { - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - }, - { - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - }, - { - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - }, - { - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - }, - { - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - }, - }, - { - { - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, }, { { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, }, { - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - }, - { - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - }, - { - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - }, - }, - { - { - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - }, - { - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - }, - { - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - }, - { - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - }, - { - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - }, - }, - { - { - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - }, - { - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - }, - { - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - }, - { - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - }, - { - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - }, - }, - { - { - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - }, - { - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - }, - { - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - }, - { - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - }, - { - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - }, - }, - { - { - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - }, - { - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - }, - { - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - }, - { - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - }, - { - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - }, - }, - { - { - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - }, - { - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - }, - { - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - }, - { - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - }, - { - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - }, - }, - { - { - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - }, - { - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - }, - { - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - }, - { - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - }, - { - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - }, - }, - { - { - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - }, - { - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - }, - { - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - }, - { - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - }, - { - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - }, - }, - { - { - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - }, - { - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - }, - { - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - }, - { - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - }, - { - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - }, - }, - { - { - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - }, - { - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - }, - { - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - }, - { - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - }, - { - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - }, - }, - { - { - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - }, - { - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - }, - { - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - }, - { - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - }, - { - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - }, - }, - { - { - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - }, - { - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - }, - { - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, - }, - { - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - }, - { - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - }, - }, - { - { - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - }, - { - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - }, - { - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - }, - { - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - }, - { - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - }, - }, - { - { - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - }, - { - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - }, - { - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - }, - { - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - }, - { - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - }, - }, - { - { - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - }, - { - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - }, - { - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - }, - { - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - }, - { - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - }, - }, - { - { - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - }, - { - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - }, - { - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - }, - { - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - }, - { - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - }, - }, - { - { - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - }, - { - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - }, - { - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - }, - { - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - }, - { - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - }, - }, - { - { - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - }, - { - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - }, - { - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - }, - { - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - }, - { - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - }, - }, - { - { - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - }, - { - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - }, - { - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - }, - { - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - }, - { - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - }, - }, - { - { - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - }, - { - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - }, - { - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - }, - { - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - }, - { - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - }, - }, - { - { - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - }, - { - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - }, - { - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - }, - { - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - }, - { - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - }, - }, - { - { - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - }, - { - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - }, - { - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - }, - { - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - }, - { - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - }, - }, - { - { - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - }, - { - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - }, - { - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - }, - { - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - }, - { - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - }, - }, - { - { - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - }, - { - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - }, - { - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - }, - { - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - }, - { - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - }, - }, - { - { - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - }, - { - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - }, - { - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - }, - { - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - }, - { - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - }, - }, - { - { - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - }, - { - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - }, - { - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - }, - { - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - }, - { - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - }, - }, - { - { - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - }, - { - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - }, - { - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - }, - { - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - }, - { - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - }, - }, - { - { - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - }, - { - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - }, - { - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - }, - { - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - }, - { - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - }, - }, - { - { - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - }, - { - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - }, - { - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - }, - { - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - }, - { - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - }, - }, - { - { - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - }, - { - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - }, - { - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - }, - { - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - }, - { - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - }, - }, - { - { - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - }, - { - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - }, - { - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, }, { { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, }, - { - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - }, - }, - { - { - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - }, - { - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - }, - { - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - }, - { - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - }, - { - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - }, - }, - { - { - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - }, - { - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - }, - { - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - }, - { - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - }, - { - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - }, - }, - { - { - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - }, - { - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - }, - { - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - }, - { - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - }, - { - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - }, - }, - { - { - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - }, - { - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - }, - { - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - }, - { - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - }, - { - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - }, - }, - { - { - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - }, - { - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - }, - { - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - }, - { - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - }, - { - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - }, - }, - { - { - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - }, - { - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - }, - { - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - }, - { - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - }, - { - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - }, - }, - { - { - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - }, - { - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - }, - { - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - }, - { - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - }, - { - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - }, - }, - { - { - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - }, - { - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, - }, - { - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - }, - { - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - }, { { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, @@ -26621,549 +24965,21 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, }, - { - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - }, - { - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - }, - { - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - }, - { - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - }, - }, - { - { - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - }, - { - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - }, - { - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - }, - { - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - }, - { - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - }, - }, - { - { - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - }, - { - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - }, - { - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - }, - { - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - }, - { - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - }, - }, - { - { - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - }, - { - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - }, - { - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - }, - { - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - }, - { - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - }, - }, - { - { - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - }, - { - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - }, - { - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - }, - { - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - }, - { - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - }, - }, - { - { - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - }, - { - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - }, - { - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - }, - { - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - }, - { - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - }, - }, - { - { - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - }, - { - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - }, - { - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - }, - { - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - }, - { - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - }, - }, - { - { - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - }, - { - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - }, - { - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - }, - { - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - }, - { - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - }, - }, - { - { - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - }, - { - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - }, - { - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - }, - { - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - }, - { - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - }, - }, - { - { - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - }, - { - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - }, - { - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - }, - { - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - }, - { - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - }, - }, - { - { - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - }, - { - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - }, - { - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - }, - { - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - }, - { - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - }, - }, - { - { - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - }, - { - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - }, - { - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - }, - { - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - }, - { - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - }, - }, - { - { - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - }, - { - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - }, - { - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - }, - { - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - }, - { - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - }, - }, - { - { - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - }, - { - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - }, - { - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - }, - { - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - }, - { - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - }, - }, - { - { - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - }, - { - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - }, - { - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - }, - { - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - }, - { - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - }, - }, - { - { - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - }, - { - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - }, - { - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - }, - { - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, - }, - { - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - }, - }, - { - { - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - }, - { - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - }, - { - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - }, - { - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - }, - { - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - }, - }, - { - { - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - }, - { - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - }, - { - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - }, - { - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - }, - { - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - }, - }, - { - { - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - }, - { - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - }, - { - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - }, - { - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - }, - { - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - }, - }, - { - { - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - }, - { - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - }, - { - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - }, - { - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - }, - { - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - }, - }, - { { { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, }, { - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, }, { - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, }, { - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - }, - { - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - }, - }, - { - { - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - }, - { - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - }, - { - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - }, - { - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - }, - { - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - }, - }, - { - { - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - }, - { - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - }, - { - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - }, - { - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - }, - { - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - }, - }, - { - { - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - }, - { - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - }, - { - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - }, - { - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - }, - { - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - }, - }, - { - { - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - }, - { - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - }, - { - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - }, - { - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - }, - { - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, }, }, { @@ -27172,610 +24988,104 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, }, { - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, }, { - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, }, { - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, }, { - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, }, }, { - { - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - }, - { - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - }, - { - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - }, - { - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - }, - { - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - }, - }, - { - { - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - }, - { - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - }, { { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, }, { - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, }, { - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - }, - }, - { - { - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - }, - { - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - }, - { - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - }, - { - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - }, - { - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - }, - }, - { - { - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - }, - { - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - }, - { - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - }, - { - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - }, - { - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - }, - }, - { - { - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - }, - { - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - }, - { - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, }, { - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, }, - { - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - }, - }, - { - { - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - }, - { - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - }, - { - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - }, - { - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - }, - { - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - }, - }, - { - { - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - }, - { - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - }, - { - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - }, - { - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - }, - { - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - }, - }, - { - { - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - }, - { - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - }, - { - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - }, - { - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - }, - { - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - }, - }, - { - { - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - }, - { - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - }, - { - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - }, - { - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - }, - { - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - }, - }, - { - { - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - }, - { - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - }, - { - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - }, - { - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - }, - { - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - }, - }, - { - { - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - }, - { - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - }, - { - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - }, - { - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - }, - { - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - }, - }, - { - { - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - }, - { - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - }, - { - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - }, - { - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - }, - { - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - }, - }, - { - { - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - }, - { - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - }, - { - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - }, - { - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - }, - { - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - }, - }, - { - { - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - }, - { - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - }, - { - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - }, - { - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - }, - { - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - }, - }, - { - { - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - }, - { - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - }, - { - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - }, - { - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - }, - { - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - }, - }, - { - { - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - }, - { - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - }, - { - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - }, - { - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - }, - { - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - }, - }, - { - { - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - }, - { - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - }, - { - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - }, - { - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - }, - { - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - }, - }, - { { { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, }, - { - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - }, - { - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - }, - { - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - }, - { - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - }, }, { { - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, }, { - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - }, - { - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - }, - { - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - }, - { - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - }, - }, - { - { - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - }, - { - { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - }, - { - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - }, - { - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - }, - { - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - }, - }, - { - { - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - }, - { - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - }, - { - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - }, - { - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - }, - { - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - }, - }, - { - { - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - }, - { - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - }, - { - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - }, - { - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - }, - { - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - }, - }, - { - { - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - }, - { - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - }, - { - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - }, - { - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - }, - { - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - }, - }, - { - { - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, }, { { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, }, { + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + }, + { + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - }, - { - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - }, - { - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, }, }, { { - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, }, { - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, }, { - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + }, + { + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + }, + { + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + }, + }, + { + { + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + }, + { + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, }, { { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, }, { - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - }, - }, - { - { - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - }, - { - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - }, - { - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - }, - { - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - }, - { - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - }, - }, - { - { - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - }, - { - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - }, - { - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - }, - { - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, }, { { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, @@ -27783,417 +25093,109 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, }, { - { - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - }, - { - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - }, - { - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - }, - { - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - }, - { - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - }, - }, - { - { - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - }, - { - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - }, - { - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - }, - { - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - }, - { - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - }, - }, - { - { - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - }, - { - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - }, - { - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - }, - { - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - }, - { - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - }, - }, - { - { - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - }, - { - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - }, - { - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - }, - { - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - }, - { - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - }, - }, - { - { - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - }, - { - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - }, - { - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - }, - { - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - }, - { - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - }, - }, - { - { - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - }, - { - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - }, - { - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - }, - { - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - }, - { - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - }, - }, - { - { - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - }, - { - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - }, - { - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - }, - { - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - }, - { - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - }, - }, - { - { - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - }, - { - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - }, - { - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - }, - { - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - }, - { - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - }, - }, - { - { - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - }, - { - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - }, - { - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - }, - { - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - }, - { - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - }, - }, - { - { - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - }, - { - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - }, - { - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - }, - { - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - }, - { - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - }, - }, - { - { - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - }, - { - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - }, - { - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - }, - { - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - }, - { - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - }, - }, - { - { - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - }, - { - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - }, - { - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - }, - { - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - }, - { - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - }, - }, - { - { - { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - }, - { - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - }, - { - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - }, - { - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - }, - { - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - }, - }, - { - { - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - }, - { - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - }, - { - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - }, - { - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - }, { { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, }, - }, - { - { - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - }, - { - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - }, - { - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - }, - { - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - }, - { - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, - }, - }, - { - { - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - }, - { - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - }, - { - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - }, - { - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - }, - { - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - }, - }, - { - { - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - }, - { - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - }, - { - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - }, { { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, }, { - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + }, + { + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + }, + { + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, }, }, { { + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + }, + { + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + }, + { + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + }, + { + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + }, + { + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + }, + }, + { + { + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + }, + { + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + }, + { + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + }, + { + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + }, + { + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + }, + }, + { + { + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, }, { - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, }, { - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, }, { - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, }, { - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, }, }, { { - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, }, { - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, }, { - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, }, { - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, }, { { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, @@ -28202,152 +25204,42 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, }, { - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, }, { - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, }, { - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, }, - { - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - }, - }, - { { { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, }, - { - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - }, - { - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, - }, - { - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - }, - { - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - }, }, { { - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, }, { - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - }, - { - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - }, - { - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - }, - { - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - }, - }, - { - { - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - }, - { - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - }, - { - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, - }, - { - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - }, - { - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - }, - }, - { - { - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - }, - { - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - }, - { - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - }, - { - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, }, { { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, }, - }, - { { - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - }, - { - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - }, - { - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - }, - { - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - }, - { - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - }, - }, - { - { - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, - }, - { - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - }, - { - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - }, - { - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, }, { { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, @@ -28356,24 +25248,684 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, }, { - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, }, + { + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + }, + { + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + }, + { + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + }, + }, + { + { + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + }, + { + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + }, + { + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + }, + { + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + }, + { + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + }, + }, + { + { + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + }, + { + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + }, + { + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + }, + { + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + }, + { + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + }, + }, + { + { + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + }, + { + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + }, + { + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + }, + { + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + }, + { + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + }, + }, + { + { + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + }, + { + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + }, + { + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + }, + { + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + }, + { + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + }, + }, + { + { + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + }, + { + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + }, + { + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + }, + { + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + }, + { + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + }, + }, + { + { + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + }, + { + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + }, + { + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + }, + { + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + }, + { + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + }, + }, + { + { + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + }, + { + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + }, + { + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + }, + { + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + }, + { + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + }, + }, + { + { + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + }, + { + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + }, + { + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + }, + { + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + }, + { + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + }, + }, + { + { + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + }, + { + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + }, + { + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + }, + { + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + }, + { + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + }, + }, + { + { + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + }, + { + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + }, + { + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + }, + { + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + }, + { + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + }, + }, + { + { + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + }, + { + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + }, + { + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + }, + { + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + }, + { + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + }, + }, + { + { + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + }, + { + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + }, + { + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + }, + { + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + }, + { + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + }, + }, + { + { + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + }, + { + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + }, + { + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + }, + { + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + }, + { + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + }, + }, + { + { + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + }, + { + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + }, + { + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + }, + { + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + }, + { + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + }, + }, + { + { + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + }, + { + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + }, + { + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + }, + { + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + }, + { + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + }, + }, + { { { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, }, { - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, }, { - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + }, + { + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + }, + { + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + }, + { + { + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + }, + { + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + }, + { + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + }, + { + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + }, + { + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + }, + }, + { + { + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + }, + { + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + }, + { + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + }, + { + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + }, + { + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + }, + }, + { + { + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + }, + { + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + }, + { + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + }, + { + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + }, + { + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + }, + }, + { + { + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + }, + { + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + }, + { + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + }, + { + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + }, + { + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + }, + }, + { + { + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + }, + { + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + }, + { + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + }, + { + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + }, + { + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + }, + }, + { + { + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + }, + { + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + }, + { + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + }, + { + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + }, + { + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + }, + }, + { + { + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + }, + { + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + }, + { + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + }, + { + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + }, + { + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + }, + }, + { + { + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + }, + { + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + }, + { + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + }, + { + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + }, + { + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + }, + }, + { + { + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + }, + { + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + }, + { + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + }, + { + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + }, + { + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + }, + }, + { + { + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + }, + { + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + }, + { + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + }, + { + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + }, + { + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + }, + }, + { + { + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + }, + { + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + }, + { + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + }, + { + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + }, + { + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + }, + }, + { + { + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + }, + { + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + }, + { + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + }, + { + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + }, + { + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + }, + }, + { + { + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + }, + { + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + }, + { + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + }, + { + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + }, + { + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + }, + }, + { + { + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + }, + { + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + }, + { + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + }, + { + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + }, + { + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, }, }, { @@ -28382,1622 +25934,258 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, }, { - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, }, { - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, }, { - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, }, { - { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, }, }, { { - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + }, + { + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + }, + { + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, }, { { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, }, { - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + }, + }, + { + { + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + }, + { + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + }, + { + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + }, + { + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + }, + { + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + }, + }, + { + { + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + }, + { + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + }, + { + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, }, { { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, }, { - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - }, - }, - { - { - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - }, - { - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - }, - { - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - }, - { - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, - }, - { - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - }, - }, - { - { - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - }, - { - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - }, - { - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - }, - { - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - }, - { - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - }, - }, - { - { - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - }, - { - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - }, - { - { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - }, - { - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - }, - { - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - }, - }, - { - { - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - }, - { - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - }, - { - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - }, - { - { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - }, - { + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, }, }, { { - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - }, - { - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - }, - { - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - }, - { - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - }, - { - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - }, - }, - { - { - { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - }, - { - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - }, - { - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - }, - { - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - }, - { - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - }, - }, - { - { - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - }, - { - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - }, - { - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - }, - { - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - }, - { - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - }, - }, - { - { - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - }, - { - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - }, - { - { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - }, - { - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, }, { + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - }, - }, - { - { - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, }, { { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, }, { - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, }, { - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - }, - { - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - }, - }, - { - { - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - }, - { - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - }, - { - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - }, - { - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - }, - { - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - }, - }, - { - { - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - }, - { - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - }, - { - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - }, - { - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - }, - { - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - }, - }, - { - { - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - }, - { - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - }, - { - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - }, - { - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - }, - { - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, }, }, { { - { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, }, { - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, }, { - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - }, - { - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - }, - { - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, - }, - }, - { - { - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - }, - { - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - }, - { - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - }, - { - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - }, - { - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - }, - }, - { - { - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - }, - { - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - }, - { - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - }, - { - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - }, - { - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - }, - }, - { - { - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - }, - { - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - }, - { - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - }, - { - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - }, - { - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - }, - }, - { - { - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - }, - { - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - }, - { - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - }, - { - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - }, - { - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - }, - }, - { - { - { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, - { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, - }, - { - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - }, - { - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - }, - { - { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - }, - { - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - }, - }, - { - { - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - }, - { - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - }, - { - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - }, - { - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, }, { { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, }, + { + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + }, }, { { - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + }, + { + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + }, + { + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + }, + { + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, }, { { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, }, - { - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - }, - { - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - }, - { - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - }, }, { - { - { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - }, { { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, }, { - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, }, { - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - }, - { - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - }, - }, - { - { - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - }, - { - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - }, - { - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - }, - { - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - }, - { - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - }, - }, - { - { - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - }, - { - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - }, - { - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - }, - { - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - }, - { - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - }, - }, - { - { - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - }, - { - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, - }, - { - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, }, { { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, }, - { - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - }, - }, - { - { - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - }, - { - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - }, - { - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - }, - { - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - }, - { - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - }, - }, - { - { - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - }, - { - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - }, - { - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - }, - { - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - }, - { - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - }, - }, - { - { - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - }, - { - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - }, - { - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - }, - { - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - }, - { - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - }, - }, - { - { - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - }, - { - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - }, - { - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - }, - { - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - }, - { - { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - }, - }, - { - { - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - }, - { - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - }, - { - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, - }, - { - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - }, - { - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - }, - }, - { - { - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, - { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, - }, - { - { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - }, - { - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - }, - { - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - }, - { - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - }, - }, - { - { - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - }, - { - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - }, - { - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, - }, - { - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - }, - { - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - }, - }, - { - { - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - }, - { - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - }, - { - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, - }, - { - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - }, - { - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - }, - }, - { - { - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - }, - { - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - }, - { - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - }, - { - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - }, - { - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - }, - }, - { - { - { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, - { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, - }, - { - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - }, - { - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - }, - { - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - }, - { - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, - }, - }, - { - { - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - }, - { - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - }, - { - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - }, - { - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - }, - { - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - }, - }, - { - { - { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, - { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, - }, - { - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - }, - { - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - }, - { - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - }, - { - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - }, - }, - { - { - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - }, - { - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, - }, - { - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - }, - { - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - }, - { - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - }, - }, - { - { - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - }, - { - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - }, - { - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - }, - { - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - }, - { - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - }, - }, - { - { - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - }, - { - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - }, - { - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - }, { { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, }, - { - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - }, }, { { - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, }, { - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, }, { - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - }, - { - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - }, - { - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - }, - }, - { - { - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - }, - { - { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - }, - { - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - }, - { - { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, - { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, - }, - { - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - }, - }, - { - { - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, - }, - { - { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - }, - { - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, - }, - { - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - }, - { - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - }, - }, - { - { - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - }, - { - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, }, { { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, }, { - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - }, - { - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - }, - }, - { - { - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - }, - { - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, - }, - { - { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, - { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, - }, - { - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - }, - { - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, }, }, { { + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - }, - { - { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, }, { { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, }, - { - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - }, - { - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - }, - }, - { - { - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - }, - { - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - }, - { - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - }, - { - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - }, - { - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - }, - }, - { - { - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, - }, - { - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - }, - { - { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - }, - { - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, - }, - { - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - }, - }, - { - { - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - }, - { - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - }, - { - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - }, - { - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - }, - { - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - }, - }, - { - { - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - }, - { - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - }, - { - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, - }, - { - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - }, - { - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - }, - }, - { - { - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - }, - { - { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, - { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, - }, - { - { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - }, - { - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - }, - { - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, - }, - }, - { - { - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, - { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, - }, - { - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - }, - { - { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, - { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, - }, - { - { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - }, - { - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - }, - }, - { - { - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, - }, - { - { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - }, - { - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, - }, - { - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - }, - { - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - }, - }, - { - { - { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - }, - { - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - }, - { - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - }, - { - { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - }, - { - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, - }, - }, - { - { - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, - }, - { - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - }, - { - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - }, - { - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, - }, - { - { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - }, - }, - { - { - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - }, - { - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - }, - { - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - }, - { - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - }, - { - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, - }, - }, - { - { - { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, - { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, - }, - { - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, - }, - { - { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - }, - { - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - }, - { - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - }, - }, - { - { - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - }, - { - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - }, - { - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - }, - { - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - }, - { - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - }, - }, - { - { - { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, - { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, - }, - { - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, - }, - { - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, - { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, - }, - { - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, - }, - { - { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, - { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, - }, - }, - { - { - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - }, - { - { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, - { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, - }, - { - { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - }, - { - { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, - { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, - }, { { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, }, - }, - { - { - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - }, - { - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - }, - { - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - }, - { - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - }, - { - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, - }, - }, - { - { - { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, - { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, - }, - { - { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - }, - { - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - }, - { - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - }, - { - { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, - { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, - }, - }, - { - { - { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - }, - { - { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - }, - { - { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - }, - { - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, - }, - { - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, - }, - }, - { - { - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - }, - { - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - }, - { - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, - }, - { - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, - { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, - }, - { - { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, - { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, - }, - }, - { - { - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, - { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, - }, - { - { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - }, - { - { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, - { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, - }, - { - { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - }, - { - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - }, - }, - { - { - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, - }, - { - { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, - { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, - }, - { - { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, - { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, - }, - { - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - }, - { - { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, - { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, - }, - }, - { - { - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, - }, { { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, }, { - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - }, - { - { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, - { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, - }, - { - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - }, - }, - { - { - { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - }, - { - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - }, - { - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - }, - { - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - }, - { - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - }, - }, - { - { - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, - }, - { - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - }, - { - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, - }, - { - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - }, - { - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - }, - }, - { - { - { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, - { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, - }, - { - { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, - { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, - }, - { - { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - }, - { - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, - }, - { - { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, - { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, }, }, { { + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, }, { - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, }, { - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - }, - { - { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, - { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, - }, - { - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, - { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, - }, - }, - { - { - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, - }, - { - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, }, { - { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, - { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, }, { - { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, - { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, - }, - { - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, }, }, { { - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, }, { - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, - { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, }, { - { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, - { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, }, { - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, }, { { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, @@ -30006,64 +26194,196 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, - { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, }, { - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, - { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, }, { - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, - { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, }, { - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, - { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, }, { - { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, - { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, }, }, { { - { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, }, { - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, - { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, }, { - { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, - { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + }, + { + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + }, + { + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + }, + }, + { + { + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + }, + { + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + }, + { + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + }, + { + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + }, + { + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + }, + }, + { + { + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + }, + { + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + }, + { + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + }, + { + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + }, + { + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + }, + }, + { + { + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + }, + { + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + }, + { + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, }, { { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, }, { - { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, - { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, }, }, { { - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, }, { + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + }, + { + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + }, + { + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + }, + { + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + }, + { + { + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, }, { - { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, - { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, }, { - { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, - { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + }, + { + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + }, + { + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + }, + }, + { + { + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + }, + { + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + }, + { + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + }, + { + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + }, + { + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + }, + }, + { + { + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + }, + { + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + }, + { + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + }, + { + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, }, { { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, @@ -30072,200 +26392,310 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, - { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, }, { - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, }, { - { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, - { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, }, { - { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, - { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, }, { - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, }, }, { { - { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, - { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, }, { - { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, - { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, }, { - { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, }, { - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, - }, - { - { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - }, - }, - { - { - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - }, - { - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - }, - { - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - }, - { - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - }, - { - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, - }, - }, - { - { - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, }, { { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, }, - { - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - }, - { - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - }, - { - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, - { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, - }, }, { { - { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, - { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, }, { - { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, - { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, - }, - { - { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, - { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, - }, - { - { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, - { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, - }, - { - { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, - { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, - }, - }, - { - { - { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - }, - { - { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, - { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, - }, - { - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - }, - { - { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, - { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, - }, - { - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, - }, - }, - { - { - { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, - { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, - }, - { - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, - }, - { - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, - { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, - }, - { - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, - }, - { - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, - }, - }, - { - { - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, }, { { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, }, { - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, }, { - { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, - { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, - }, - { - { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, - { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, }, }, { { - { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, - { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + }, + { + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + }, + { + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + }, + { + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + }, + { + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + }, + }, + { + { + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + }, + { + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + }, + { + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + }, + { + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + }, + { + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + }, + }, + { + { + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + }, + { + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + }, + { + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + }, + { + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + }, + { + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + }, + }, + { + { + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + }, + { + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + }, + { + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + }, + { + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + }, + { + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + }, + }, + { + { + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + }, + { + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + }, + { + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, }, { { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, }, { - { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, - { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + }, + }, + { + { + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, }, { - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, - { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, }, { - { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, - { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + }, + { + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + }, + { + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + }, + }, + { + { + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + }, + { + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + }, + { + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + }, + { + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + }, + { + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + }, + }, + { + { + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + }, + { + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + }, + { + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + }, + { + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + }, + { + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + }, + }, + { + { + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + }, + { + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + }, + { + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + }, + { + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + }, + { + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + }, + }, + { + { + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + }, + { + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + }, + { + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + }, + { + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + }, + { + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + }, + }, + { + { + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + }, + { + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + }, + { + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + }, + { + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + }, + { + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, }, }, { @@ -30274,17 +26704,677 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, }, { - { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, - { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + }, + { + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + }, + { + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + }, + { + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + }, + }, + { + { + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + }, + { + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + }, + { + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + }, + { + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + }, + { + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + }, + }, + { + { + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + }, + { + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + }, + { + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + }, + { + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + }, + { + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + }, + }, + { + { + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + }, + { + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + }, + { + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + }, + { + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + }, + { + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + }, + }, + { + { + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + }, + { + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + }, + { + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + }, + { + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + }, + { + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + }, + }, + { + { + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + }, + { + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + }, + { + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + }, + { + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + }, + { + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + }, + }, + { + { + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + }, + { + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + }, + { + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + }, + { + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + }, + { + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + }, + }, + { + { + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + }, + { + { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + }, + { + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + }, + { + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + }, + { + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + }, + }, + { + { + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + }, + { + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + }, + { + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, }, { { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, }, + { + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + }, + }, + { + { + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + }, + { + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + }, + { + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + }, + { + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + }, + { + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + }, + }, + { + { + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + }, + { + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + }, + { + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + }, + { + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + }, + { + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + }, + }, + { + { + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + }, + { + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + }, + { + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + }, + { + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + { + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + }, + }, + { + { + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + }, + { + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + }, + { + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + }, + { + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + }, + { + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + }, + }, + { + { + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + }, + { + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + }, + { + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + }, + { + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + }, + { + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + }, + }, + { + { + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + }, + { + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + }, + { + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + }, + { + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + }, + { + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + }, + }, + { + { + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + }, + { + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + }, + { + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + }, + { + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + }, + { + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + }, + }, + { + { + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + }, + { + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + }, + { + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + }, + { + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + }, + { + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + }, + }, + { + { + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + }, + { + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + }, + { + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + }, + { + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + }, + { + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + }, + }, + { + { + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + }, + { + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + }, + { + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + }, + { + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + }, + { + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + }, + }, + { + { + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + }, + { + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + }, + { + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + }, + { + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + }, + { + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + }, + }, + { + { + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + }, + { + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + }, + { + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + }, + { + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + }, + { + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + }, + }, + { + { + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + }, + { + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + }, + { + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + }, + { + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + }, + { + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + }, + }, + { + { + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + }, + { + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + }, + { + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + }, + { + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + }, + { + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + }, + }, + { + { + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + }, + { + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + }, + { + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + }, + { + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + }, + { + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + }, + }, + { + { + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + }, + { + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + }, + { + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + }, + { + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + }, + { + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + }, + }, + { + { + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + }, + { + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + }, + { + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + }, + { + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + }, + { + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + }, + }, + { + { + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + }, + { + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + }, + { + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + }, + { + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + }, + { + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + }, + }, + { + { + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + }, + { + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + }, + { + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + }, + { + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + }, + { + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + }, + }, + { + { + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + }, + { + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + }, + { + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + }, + { + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + }, + { + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + }, + }, + { + { + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + }, + { + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + }, + { + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + }, { { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, }, + { + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + }, + }, + { + { + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + }, + { + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + }, + { + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + }, + { + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + }, { { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, @@ -30292,130 +27382,108 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, - { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, - }, - { - { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, - { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, - }, - { - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, - }, - { - { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, - { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, - }, - { - { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, - { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, - }, - }, - { - { - { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, - { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - }, - { - { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, - { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, - }, - { - { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, - { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, - }, - { - { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, - { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, - }, - { - { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, - { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, - }, - }, - { - { - { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, - { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, - }, - { - { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - }, - { - { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, - { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, - }, - { - { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - }, - { - { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, - { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, - }, - }, - { - { - { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, - { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, - }, - { - { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, - { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, - }, - { - { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - }, - { - { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, - { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, - }, - { - { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, - { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, - }, - }, - { - { - { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, - { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, - }, - { - { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - }, - { - { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, - { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, - }, - { - { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, - { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, - }, - { - { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, - { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, - }, - }, - { - { - { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, - { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, - }, - { - { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, - { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, }, { { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, }, { - { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, - { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + }, + { + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + }, + { + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + }, + }, + { + { + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + }, + { + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + }, + { + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + }, + { + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + }, + { + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + }, + }, + { + { + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + }, + { + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + }, + { + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + }, + { + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + }, + { + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + }, + }, + { + { + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + }, + { + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + }, + { + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + }, + { + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + }, + { + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + }, + }, + { + { + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + }, + { + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + }, + { + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + }, + { + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, }, { { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, @@ -30424,20 +27492,1274 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, - { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, }, { + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + }, + { + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + }, + { + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + }, + { + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + }, + }, + { + { + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + }, + { + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + }, + { + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + }, + { + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + }, + { + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + }, + }, + { + { + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + }, + { + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + }, + { + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + }, + { + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + }, + { + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + }, + }, + { + { + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + }, + { + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + }, + { + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + }, + { + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + }, + { + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + }, + }, + { + { + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + }, + { + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + }, + { + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + }, + { + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + }, + { + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + }, + }, + { + { + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + }, + { + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + }, + { + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + }, + { + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + }, + { + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + }, + }, + { + { + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + }, + { + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + }, + { + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + }, + { + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + }, + { + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + }, + }, + { + { + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + }, + { + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + }, + { + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + }, + { + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + }, + { + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + }, + }, + { + { + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + }, + { + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + }, + { + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + }, + { + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + }, + { + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + }, + }, + { + { + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + }, + { + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + }, + { + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + }, + { + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + }, + { + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + }, + }, + { + { + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + }, + { + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + }, + { + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + }, + { + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + }, + { + { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + }, + }, + { + { + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + }, + { + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + }, + { + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + }, + { + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + }, + { + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + }, + }, + { + { + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + }, + { + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + }, + { + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + }, + { + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + }, + { + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + }, + }, + { + { + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + }, + { + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + }, + { + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + }, + { + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + }, + { + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + }, + }, + { + { + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + }, + { + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + }, + { + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + }, + { + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + }, + { + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + }, + }, + { + { + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + }, + { + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + }, + { + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + }, + { + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + }, + { + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + }, + }, + { + { + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + }, + { + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + }, + { + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + }, + { + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + }, + { + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + }, + }, + { + { + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + }, + { + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + }, + { + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + }, + { + { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + }, + { + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + }, + }, + { + { + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + }, + { + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + }, + { + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + }, + { + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + }, + { + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + }, + }, + { + { + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + }, + { + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + }, + { + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + }, + { + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + }, + { + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + }, + }, + { + { + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + }, + { + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + }, + { + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + }, + { + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + }, + { + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + }, + }, + { + { + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + }, + { + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + }, + { + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + }, + { + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + }, + { + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, - { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + }, + }, + { + { + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + }, + { + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + }, + { + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + }, + { + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + }, + { + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + }, + }, + { + { + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + }, + { + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + }, + { + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + }, + { + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + }, + { + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + }, + }, + { + { + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + }, + { + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + { + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + }, + { + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + }, + { + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + }, + }, + { + { + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + }, + { + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + }, + { + { 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0 }, + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + }, + { + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + }, + { + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + }, + }, + { + { + { 0x00, 0xf2, 0xff, 0x0d, 0xe5, 0x17, 0x1a, 0xe8, 0xd1, 0x23, 0x2e, 0xdc, 0x34, 0xc6, 0xcb, 0x39 }, + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + }, + { + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + }, + { + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + }, + { + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + }, + { + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + }, + }, + { + { + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, }, { { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, }, { - { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, - { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + }, + { + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + }, + { + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + }, + }, + { + { + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + }, + { + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + }, + { + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + }, + { + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + }, + { + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + }, + }, + { + { + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + }, + { + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + }, + { + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + }, + { + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + }, + { + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + }, + }, + { + { + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + }, + { + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + }, + { + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + }, + { + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + }, + { + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + }, + }, + { + { + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + }, + { + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + }, + { + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + }, + { + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + }, + { + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + }, + }, + { + { + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + }, + { + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + }, + { + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + }, + { + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + }, + { + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + }, + }, + { + { + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + }, + { + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + }, + { + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + }, + { + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + }, + { + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + }, + }, + { + { + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + }, + { + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + }, + { + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + }, + { + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + }, + { + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + }, + }, + { + { + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + }, + { + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + }, + { + { 0x00, 0xd9, 0xa9, 0x70, 0x49, 0x90, 0xe0, 0x39, 0x92, 0x4b, 0x3b, 0xe2, 0xdb, 0x02, 0x72, 0xab }, + { 0x00, 0x3f, 0x7e, 0x41, 0xfc, 0xc3, 0x82, 0xbd, 0xe3, 0xdc, 0x9d, 0xa2, 0x1f, 0x20, 0x61, 0x5e }, + }, + { + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + }, + { + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + }, + }, + { + { + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + }, + { + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + }, + { + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + }, + { + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + }, + { + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + }, + }, + { + { + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + }, + { + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + }, + { + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + }, + { + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + }, + { + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + }, + }, + { + { + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + }, + { + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + }, + { + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + }, + { + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + }, + { + { 0x00, 0x46, 0x8c, 0xca, 0x03, 0x45, 0x8f, 0xc9, 0x06, 0x40, 0x8a, 0xcc, 0x05, 0x43, 0x89, 0xcf }, + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + }, + }, + { + { + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + }, + { + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + }, + { + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + }, + { + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + }, + { + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + }, + }, + { + { + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + }, + { + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + }, + { + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + }, + { + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + }, + { + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + }, + }, + { + { + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + }, + { + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + }, + { + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + }, + { + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + }, + { + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + }, + }, + { + { + { 0x00, 0xf0, 0xfb, 0x0b, 0xed, 0x1d, 0x16, 0xe6, 0xc1, 0x31, 0x3a, 0xca, 0x2c, 0xdc, 0xd7, 0x27 }, + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + }, + { + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + }, + { + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + }, + { + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + }, + { + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + }, + }, + { + { + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + }, + { + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + }, + { + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + }, + { + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + }, + { + { 0x00, 0x73, 0xe6, 0x95, 0xd7, 0xa4, 0x31, 0x42, 0xb5, 0xc6, 0x53, 0x20, 0x62, 0x11, 0x84, 0xf7 }, + { 0x00, 0x71, 0xe2, 0x93, 0xdf, 0xae, 0x3d, 0x4c, 0xa5, 0xd4, 0x47, 0x36, 0x7a, 0x0b, 0x98, 0xe9 }, + }, + }, + { + { + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + }, + { + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + }, + { + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + }, + { + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + }, + { + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + }, + }, + { + { + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + }, + { + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + }, + { + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + }, + { + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + }, + { + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + }, + }, + { + { + { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + }, + { + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + }, + { + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + }, + { + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + { 0x00, 0x27, 0x4e, 0x69, 0x9c, 0xbb, 0xd2, 0xf5, 0x23, 0x04, 0x6d, 0x4a, 0xbf, 0x98, 0xf1, 0xd6 }, + }, + { + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + }, + }, + { + { + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + }, + { + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + }, + { + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + { 0x00, 0xe7, 0xd5, 0x32, 0xb1, 0x56, 0x64, 0x83, 0x79, 0x9e, 0xac, 0x4b, 0xc8, 0x2f, 0x1d, 0xfa }, + }, + { + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + }, + { + { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + { 0x00, 0x63, 0xc6, 0xa5, 0x97, 0xf4, 0x51, 0x32, 0x35, 0x56, 0xf3, 0x90, 0xa2, 0xc1, 0x64, 0x07 }, + }, + }, + { + { + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + }, + { + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + }, + { + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + }, + { + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + }, + { + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + }, + }, + { + { + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + }, + { + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + }, + { + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + }, + { + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + }, + { + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + }, + }, + { + { + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + }, + { + { 0x00, 0xc5, 0x91, 0x54, 0x39, 0xfc, 0xa8, 0x6d, 0x72, 0xb7, 0xe3, 0x26, 0x4b, 0x8e, 0xda, 0x1f }, + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + }, + { + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + }, + { + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, + }, + { + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + }, + }, + { + { + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + }, + { + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + { 0x00, 0xce, 0x87, 0x49, 0x15, 0xdb, 0x92, 0x5c, 0x2a, 0xe4, 0xad, 0x63, 0x3f, 0xf1, 0xb8, 0x76 }, + }, + { + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + }, + { + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + }, + { + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + }, + }, + { + { + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + }, + { + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + }, + { + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + }, + { + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + }, + { + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + }, + }, + { + { + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + }, + { + { 0x00, 0xb1, 0x79, 0xc8, 0xf2, 0x43, 0x8b, 0x3a, 0xff, 0x4e, 0x86, 0x37, 0x0d, 0xbc, 0x74, 0xc5 }, + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + }, + { + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + }, + { + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + }, + { + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + { 0x00, 0x9b, 0x2d, 0xb6, 0x5a, 0xc1, 0x77, 0xec, 0xb4, 0x2f, 0x99, 0x02, 0xee, 0x75, 0xc3, 0x58 }, + }, + }, + { + { + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + }, + { + { 0x00, 0xf3, 0xfd, 0x0e, 0xe1, 0x12, 0x1c, 0xef, 0xd9, 0x2a, 0x24, 0xd7, 0x38, 0xcb, 0xc5, 0x36 }, + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + }, + { + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + }, + { + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + }, + { + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + }, + }, + { + { + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + }, + { + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + }, + { + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + }, + { + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + }, + { + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + }, + }, + { + { + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + }, + { + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + }, + { + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + }, + { + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + }, + { + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + }, + }, + { + { + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + }, + { + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + }, + { + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + }, + { + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, }, { { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, @@ -30446,21 +28768,1473 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, - { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + }, + { + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + }, + { + { 0x00, 0xfe, 0xe7, 0x19, 0xd5, 0x2b, 0x32, 0xcc, 0xb1, 0x4f, 0x56, 0xa8, 0x64, 0x9a, 0x83, 0x7d }, + { 0x00, 0x79, 0xf2, 0x8b, 0xff, 0x86, 0x0d, 0x74, 0xe5, 0x9c, 0x17, 0x6e, 0x1a, 0x63, 0xe8, 0x91 }, + }, + { + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + }, + { + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + }, + }, + { + { + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + }, + { + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + }, + { + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + }, + { + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + }, + { + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + }, + }, + { + { + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + }, + { + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + }, + { + { 0x00, 0xbe, 0x67, 0xd9, 0xce, 0x70, 0xa9, 0x17, 0x87, 0x39, 0xe0, 0x5e, 0x49, 0xf7, 0x2e, 0x90 }, + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + }, + { + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + }, + { + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + { 0x00, 0x59, 0xb2, 0xeb, 0x7f, 0x26, 0xcd, 0x94, 0xfe, 0xa7, 0x4c, 0x15, 0x81, 0xd8, 0x33, 0x6a }, + }, + }, + { + { + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + }, + { + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + }, + { + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + }, + { + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + }, + { + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + }, + }, + { + { + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + }, + { + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + }, + { + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + }, + { + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + }, + { + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + }, + }, + { + { + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + }, + { + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + }, + { + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + }, + { + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + }, + { + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + }, + }, + { + { + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + }, + { + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + }, + { + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + }, + { + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + }, + { + { 0x00, 0x60, 0xc0, 0xa0, 0x9b, 0xfb, 0x5b, 0x3b, 0x2d, 0x4d, 0xed, 0x8d, 0xb6, 0xd6, 0x76, 0x16 }, + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + }, + }, + { + { + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + }, + { + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + }, + { + { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + }, + { + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + }, + { + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + { 0x00, 0xc6, 0x97, 0x51, 0x35, 0xf3, 0xa2, 0x64, 0x6a, 0xac, 0xfd, 0x3b, 0x5f, 0x99, 0xc8, 0x0e }, + }, + }, + { + { + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + }, + { + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + }, + { + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + }, + { + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + }, + { + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + }, + }, + { + { + { 0x00, 0x3e, 0x7c, 0x42, 0xf8, 0xc6, 0x84, 0xba, 0xeb, 0xd5, 0x97, 0xa9, 0x13, 0x2d, 0x6f, 0x51 }, + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + }, + { + { 0x00, 0x51, 0xa2, 0xf3, 0x5f, 0x0e, 0xfd, 0xac, 0xbe, 0xef, 0x1c, 0x4d, 0xe1, 0xb0, 0x43, 0x12 }, + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + }, + { + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + }, + { + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + }, + { + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + }, + }, + { + { + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + }, + { + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + }, + { + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + }, + { + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + }, + { + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + }, + }, + { + { + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + }, + { + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + }, + { + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + }, + { + { 0x00, 0x6f, 0xde, 0xb1, 0xa7, 0xc8, 0x79, 0x16, 0x55, 0x3a, 0x8b, 0xe4, 0xf2, 0x9d, 0x2c, 0x43 }, + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + }, + { + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + }, + }, + { + { + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + }, + { + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + { 0x00, 0x06, 0x0c, 0x0a, 0x18, 0x1e, 0x14, 0x12, 0x30, 0x36, 0x3c, 0x3a, 0x28, 0x2e, 0x24, 0x22 }, + }, + { + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + }, + { + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + }, + { + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + }, + }, + { + { + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + }, + { + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + }, + { + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + }, + { + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + }, + { + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + }, + }, + { + { + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + }, + { + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + }, + { + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + }, + { + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + }, + { + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + }, + }, + { + { + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + }, + { + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + }, + { + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + { 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78 }, + }, + { + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + }, + { + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + }, + }, + { + { + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + }, + { + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, + }, + { + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, }, { { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, }, { - { 0x00, 0x99, 0x29, 0xb0, 0x52, 0xcb, 0x7b, 0xe2, 0xa4, 0x3d, 0x8d, 0x14, 0xf6, 0x6f, 0xdf, 0x46 }, - { 0x00, 0x53, 0xa6, 0xf5, 0x57, 0x04, 0xf1, 0xa2, 0xae, 0xfd, 0x08, 0x5b, 0xf9, 0xaa, 0x5f, 0x0c }, + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + }, + }, + { + { + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + }, + { + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + }, + { + { 0x00, 0x7a, 0xf4, 0x8e, 0xf3, 0x89, 0x07, 0x7d, 0xfd, 0x87, 0x09, 0x73, 0x0e, 0x74, 0xfa, 0x80 }, + { 0x00, 0xe1, 0xd9, 0x38, 0xa9, 0x48, 0x70, 0x91, 0x49, 0xa8, 0x90, 0x71, 0xe0, 0x01, 0x39, 0xd8 }, + }, + { + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + }, + { + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + }, + }, + { + { + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + }, + { + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + { 0x00, 0xae, 0x47, 0xe9, 0x8e, 0x20, 0xc9, 0x67, 0x07, 0xa9, 0x40, 0xee, 0x89, 0x27, 0xce, 0x60 }, + }, + { + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + }, + { + { 0x00, 0x92, 0x3f, 0xad, 0x7e, 0xec, 0x41, 0xd3, 0xfc, 0x6e, 0xc3, 0x51, 0x82, 0x10, 0xbd, 0x2f }, + { 0x00, 0xe3, 0xdd, 0x3e, 0xa1, 0x42, 0x7c, 0x9f, 0x59, 0xba, 0x84, 0x67, 0xf8, 0x1b, 0x25, 0xc6 }, + }, + { + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + { 0x00, 0x62, 0xc4, 0xa6, 0x93, 0xf1, 0x57, 0x35, 0x3d, 0x5f, 0xf9, 0x9b, 0xae, 0xcc, 0x6a, 0x08 }, + }, + }, + { + { + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + }, + { + { 0x00, 0xb9, 0x69, 0xd0, 0xd2, 0x6b, 0xbb, 0x02, 0xbf, 0x06, 0xd6, 0x6f, 0x6d, 0xd4, 0x04, 0xbd }, + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + }, + { + { 0x00, 0x47, 0x8e, 0xc9, 0x07, 0x40, 0x89, 0xce, 0x0e, 0x49, 0x80, 0xc7, 0x09, 0x4e, 0x87, 0xc0 }, + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + }, + { + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + { 0x00, 0x66, 0xcc, 0xaa, 0x83, 0xe5, 0x4f, 0x29, 0x1d, 0x7b, 0xd1, 0xb7, 0x9e, 0xf8, 0x52, 0x34 }, + }, + { + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + }, + }, + { + { + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + }, + { + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + }, + { + { 0x00, 0xa8, 0x4b, 0xe3, 0x96, 0x3e, 0xdd, 0x75, 0x37, 0x9f, 0x7c, 0xd4, 0xa1, 0x09, 0xea, 0x42 }, + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + }, + { + { 0x00, 0x1c, 0x38, 0x24, 0x70, 0x6c, 0x48, 0x54, 0xe0, 0xfc, 0xd8, 0xc4, 0x90, 0x8c, 0xa8, 0xb4 }, + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + }, + { + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + }, + }, + { + { + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + }, + { + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + }, + { + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + }, + { + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + }, + { + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + }, + }, + { + { + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + }, + { + { 0x00, 0x3a, 0x74, 0x4e, 0xe8, 0xd2, 0x9c, 0xa6, 0xcb, 0xf1, 0xbf, 0x85, 0x23, 0x19, 0x57, 0x6d }, + { 0x00, 0x8d, 0x01, 0x8c, 0x02, 0x8f, 0x03, 0x8e, 0x04, 0x89, 0x05, 0x88, 0x06, 0x8b, 0x07, 0x8a }, + }, + { + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + }, + { + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + }, + { + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + }, + }, + { + { + { 0x00, 0x68, 0xd0, 0xb8, 0xbb, 0xd3, 0x6b, 0x03, 0x6d, 0x05, 0xbd, 0xd5, 0xd6, 0xbe, 0x06, 0x6e }, + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + }, + { + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + }, + { + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + }, + { + { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, + { 0x00, 0xf4, 0xf3, 0x07, 0xfd, 0x09, 0x0e, 0xfa, 0xe1, 0x15, 0x12, 0xe6, 0x1c, 0xe8, 0xef, 0x1b }, + }, + { + { 0x00, 0xd1, 0xb9, 0x68, 0x69, 0xb8, 0xd0, 0x01, 0xd2, 0x03, 0x6b, 0xba, 0xbb, 0x6a, 0x02, 0xd3 }, + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + }, + }, + { + { + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + { + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + }, + { + { 0x00, 0xfb, 0xed, 0x16, 0xc1, 0x3a, 0x2c, 0xd7, 0x99, 0x62, 0x74, 0x8f, 0x58, 0xa3, 0xb5, 0x4e }, + { 0x00, 0x29, 0x52, 0x7b, 0xa4, 0x8d, 0xf6, 0xdf, 0x53, 0x7a, 0x01, 0x28, 0xf7, 0xde, 0xa5, 0x8c }, + }, + { + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + }, + { + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + }, + }, + { + { + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + }, + { + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + }, + { + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + }, + { + { 0x00, 0xd4, 0xb3, 0x67, 0x7d, 0xa9, 0xce, 0x1a, 0xfa, 0x2e, 0x49, 0x9d, 0x87, 0x53, 0x34, 0xe0 }, + { 0x00, 0xef, 0xc5, 0x2a, 0x91, 0x7e, 0x54, 0xbb, 0x39, 0xd6, 0xfc, 0x13, 0xa8, 0x47, 0x6d, 0x82 }, + }, + { + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + }, + }, + { + { + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + }, + { + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + }, + { + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + }, + { + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + { 0x00, 0xfd, 0xe1, 0x1c, 0xd9, 0x24, 0x38, 0xc5, 0xa9, 0x54, 0x48, 0xb5, 0x70, 0x8d, 0x91, 0x6c }, + }, + { + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + }, + }, + { + { + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + }, + { + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + }, + { + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + }, + { + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + }, + { + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + }, + }, + { + { + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + }, + { + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + }, + { + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + }, + { + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + }, + { + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + { 0x00, 0xa4, 0x53, 0xf7, 0xa6, 0x02, 0xf5, 0x51, 0x57, 0xf3, 0x04, 0xa0, 0xf1, 0x55, 0xa2, 0x06 }, + }, + }, + { + { + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + }, + { + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + { 0x00, 0x4d, 0x9a, 0xd7, 0x2f, 0x62, 0xb5, 0xf8, 0x5e, 0x13, 0xc4, 0x89, 0x71, 0x3c, 0xeb, 0xa6 }, + }, + { + { 0x00, 0x77, 0xee, 0x99, 0xc7, 0xb0, 0x29, 0x5e, 0x95, 0xe2, 0x7b, 0x0c, 0x52, 0x25, 0xbc, 0xcb }, + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + }, + { + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + { 0x00, 0xa7, 0x55, 0xf2, 0xaa, 0x0d, 0xff, 0x58, 0x4f, 0xe8, 0x1a, 0xbd, 0xe5, 0x42, 0xb0, 0x17 }, + }, + { + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + }, + }, + { + { + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + }, + { + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + }, + { + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + }, + { + { 0x00, 0x5a, 0xb4, 0xee, 0x73, 0x29, 0xc7, 0x9d, 0xe6, 0xbc, 0x52, 0x08, 0x95, 0xcf, 0x21, 0x7b }, + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + }, + { + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + }, + }, + { + { + { 0x00, 0x85, 0x11, 0x94, 0x22, 0xa7, 0x33, 0xb6, 0x44, 0xc1, 0x55, 0xd0, 0x66, 0xe3, 0x77, 0xf2 }, + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + }, + { + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + }, + { + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + { 0x00, 0x50, 0xa0, 0xf0, 0x5b, 0x0b, 0xfb, 0xab, 0xb6, 0xe6, 0x16, 0x46, 0xed, 0xbd, 0x4d, 0x1d }, + }, + { + { 0x00, 0x31, 0x62, 0x53, 0xc4, 0xf5, 0xa6, 0x97, 0x93, 0xa2, 0xf1, 0xc0, 0x57, 0x66, 0x35, 0x04 }, + { 0x00, 0x3d, 0x7a, 0x47, 0xf4, 0xc9, 0x8e, 0xb3, 0xf3, 0xce, 0x89, 0xb4, 0x07, 0x3a, 0x7d, 0x40 }, + }, + { + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + }, + }, + { + { + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + }, + { + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + { 0x00, 0x45, 0x8a, 0xcf, 0x0f, 0x4a, 0x85, 0xc0, 0x1e, 0x5b, 0x94, 0xd1, 0x11, 0x54, 0x9b, 0xde }, + }, + { + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + }, + { + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + }, + { + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + }, + }, + { + { + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + }, + { + { 0x00, 0xea, 0xcf, 0x25, 0x85, 0x6f, 0x4a, 0xa0, 0x11, 0xfb, 0xde, 0x34, 0x94, 0x7e, 0x5b, 0xb1 }, + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + }, + { + { 0x00, 0xda, 0xaf, 0x75, 0x45, 0x9f, 0xea, 0x30, 0x8a, 0x50, 0x25, 0xff, 0xcf, 0x15, 0x60, 0xba }, + { 0x00, 0x0f, 0x1e, 0x11, 0x3c, 0x33, 0x22, 0x2d, 0x78, 0x77, 0x66, 0x69, 0x44, 0x4b, 0x5a, 0x55 }, + }, + { + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + }, + { + { 0x00, 0x5f, 0xbe, 0xe1, 0x67, 0x38, 0xd9, 0x86, 0xce, 0x91, 0x70, 0x2f, 0xa9, 0xf6, 0x17, 0x48 }, + { 0x00, 0x87, 0x15, 0x92, 0x2a, 0xad, 0x3f, 0xb8, 0x54, 0xd3, 0x41, 0xc6, 0x7e, 0xf9, 0x6b, 0xec }, + }, + }, + { + { + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + }, + { + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + }, + { + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + }, + { + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + }, + { + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + }, + }, + { + { + { 0x00, 0x88, 0x0b, 0x83, 0x16, 0x9e, 0x1d, 0x95, 0x2c, 0xa4, 0x27, 0xaf, 0x3a, 0xb2, 0x31, 0xb9 }, + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + }, + { + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + }, + { + { 0x00, 0x33, 0x66, 0x55, 0xcc, 0xff, 0xaa, 0x99, 0x83, 0xb0, 0xe5, 0xd6, 0x4f, 0x7c, 0x29, 0x1a }, + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + }, + { + { 0x00, 0xbf, 0x65, 0xda, 0xca, 0x75, 0xaf, 0x10, 0x8f, 0x30, 0xea, 0x55, 0x45, 0xfa, 0x20, 0x9f }, + { 0x00, 0x05, 0x0a, 0x0f, 0x14, 0x11, 0x1e, 0x1b, 0x28, 0x2d, 0x22, 0x27, 0x3c, 0x39, 0x36, 0x33 }, + }, + { + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + }, + }, + { + { + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + }, + { + { 0x00, 0xa3, 0x5d, 0xfe, 0xba, 0x19, 0xe7, 0x44, 0x6f, 0xcc, 0x32, 0x91, 0xd5, 0x76, 0x88, 0x2b }, + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + }, + { + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + }, + { + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + }, + { + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + }, + }, + { + { + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + }, + { + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + }, + { + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + }, + { + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + }, + { + { 0x00, 0x81, 0x19, 0x98, 0x32, 0xb3, 0x2b, 0xaa, 0x64, 0xe5, 0x7d, 0xfc, 0x56, 0xd7, 0x4f, 0xce }, + { 0x00, 0xc8, 0x8b, 0x43, 0x0d, 0xc5, 0x86, 0x4e, 0x1a, 0xd2, 0x91, 0x59, 0x17, 0xdf, 0x9c, 0x54 }, + }, + }, + { + { + { 0x00, 0x2c, 0x58, 0x74, 0xb0, 0x9c, 0xe8, 0xc4, 0x7b, 0x57, 0x23, 0x0f, 0xcb, 0xe7, 0x93, 0xbf }, + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + }, + { + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f }, + }, + { + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + }, + { + { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + }, + { + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + }, + }, + { + { + { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + }, + { + { 0x00, 0x54, 0xa8, 0xfc, 0x4b, 0x1f, 0xe3, 0xb7, 0x96, 0xc2, 0x3e, 0x6a, 0xdd, 0x89, 0x75, 0x21 }, + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + }, + { + { 0x00, 0x28, 0x50, 0x78, 0xa0, 0x88, 0xf0, 0xd8, 0x5b, 0x73, 0x0b, 0x23, 0xfb, 0xd3, 0xab, 0x83 }, + { 0x00, 0xb6, 0x77, 0xc1, 0xee, 0x58, 0x99, 0x2f, 0xc7, 0x71, 0xb0, 0x06, 0x29, 0x9f, 0x5e, 0xe8 }, + }, + { + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + }, + { + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + }, + }, + { + { + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + }, + { + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + }, + { + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + { 0x00, 0xb3, 0x7d, 0xce, 0xfa, 0x49, 0x87, 0x34, 0xef, 0x5c, 0x92, 0x21, 0x15, 0xa6, 0x68, 0xdb }, + }, + { + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + }, + { + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + }, + }, + { + { + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + }, + { + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, + }, + { + { 0x00, 0x65, 0xca, 0xaf, 0x8f, 0xea, 0x45, 0x20, 0x05, 0x60, 0xcf, 0xaa, 0x8a, 0xef, 0x40, 0x25 }, + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + }, + { + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + }, + { + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + }, + }, + { + { + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + }, + { + { 0x00, 0x34, 0x68, 0x5c, 0xd0, 0xe4, 0xb8, 0x8c, 0xbb, 0x8f, 0xd3, 0xe7, 0x6b, 0x5f, 0x03, 0x37 }, + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + }, + { + { 0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99 }, + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + }, + { + { 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0x1b, 0x3b, 0x5b, 0x7b, 0x9b, 0xbb, 0xdb, 0xfb }, + { 0x00, 0x36, 0x6c, 0x5a, 0xd8, 0xee, 0xb4, 0x82, 0xab, 0x9d, 0xc7, 0xf1, 0x73, 0x45, 0x1f, 0x29 }, + }, + { + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + }, + }, + { + { + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + }, + { + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + }, + { + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + }, + { + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + }, + { + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + }, + }, + { + { + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + }, + { + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + }, + { + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + }, + { + { 0x00, 0x1a, 0x34, 0x2e, 0x68, 0x72, 0x5c, 0x46, 0xd0, 0xca, 0xe4, 0xfe, 0xb8, 0xa2, 0x8c, 0x96 }, + { 0x00, 0xbb, 0x6d, 0xd6, 0xda, 0x61, 0xb7, 0x0c, 0xaf, 0x14, 0xc2, 0x79, 0x75, 0xce, 0x18, 0xa3 }, + }, + { + { 0x00, 0x6e, 0xdc, 0xb2, 0xa3, 0xcd, 0x7f, 0x11, 0x5d, 0x33, 0x81, 0xef, 0xfe, 0x90, 0x22, 0x4c }, + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + }, + }, + { + { + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + }, + { + { 0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53 }, + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + }, + { + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + }, + { + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + }, + { + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + }, + }, + { + { + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + }, + { + { 0x00, 0x5e, 0xbc, 0xe2, 0x63, 0x3d, 0xdf, 0x81, 0xc6, 0x98, 0x7a, 0x24, 0xa5, 0xfb, 0x19, 0x47 }, + { 0x00, 0x97, 0x35, 0xa2, 0x6a, 0xfd, 0x5f, 0xc8, 0xd4, 0x43, 0xe1, 0x76, 0xbe, 0x29, 0x8b, 0x1c }, + }, + { + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + }, + { + { 0x00, 0x95, 0x31, 0xa4, 0x62, 0xf7, 0x53, 0xc6, 0xc4, 0x51, 0xf5, 0x60, 0xa6, 0x33, 0x97, 0x02 }, + { 0x00, 0x93, 0x3d, 0xae, 0x7a, 0xe9, 0x47, 0xd4, 0xf4, 0x67, 0xc9, 0x5a, 0x8e, 0x1d, 0xb3, 0x20 }, + }, + { + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + }, + }, + { + { + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + }, + { + { 0x00, 0x9c, 0x23, 0xbf, 0x46, 0xda, 0x65, 0xf9, 0x8c, 0x10, 0xaf, 0x33, 0xca, 0x56, 0xe9, 0x75 }, + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + }, + { + { 0x00, 0x3c, 0x78, 0x44, 0xf0, 0xcc, 0x88, 0xb4, 0xfb, 0xc7, 0x83, 0xbf, 0x0b, 0x37, 0x73, 0x4f }, + { 0x00, 0xed, 0xc1, 0x2c, 0x99, 0x74, 0x58, 0xb5, 0x29, 0xc4, 0xe8, 0x05, 0xb0, 0x5d, 0x71, 0x9c }, + }, + { + { 0x00, 0xb4, 0x73, 0xc7, 0xe6, 0x52, 0x95, 0x21, 0xd7, 0x63, 0xa4, 0x10, 0x31, 0x85, 0x42, 0xf6 }, + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + }, + { + { 0x00, 0x39, 0x72, 0x4b, 0xe4, 0xdd, 0x96, 0xaf, 0xd3, 0xea, 0xa1, 0x98, 0x37, 0x0e, 0x45, 0x7c }, + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + }, + }, + { + { + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + }, + { + { 0x00, 0x75, 0xea, 0x9f, 0xcf, 0xba, 0x25, 0x50, 0x85, 0xf0, 0x6f, 0x1a, 0x4a, 0x3f, 0xa0, 0xd5 }, + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + }, + { + { 0x00, 0x0a, 0x14, 0x1e, 0x28, 0x22, 0x3c, 0x36, 0x50, 0x5a, 0x44, 0x4e, 0x78, 0x72, 0x6c, 0x66 }, + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + }, + { + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + }, + { + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + }, + }, + { + { + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + }, + { + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + }, + { + { 0x00, 0x7b, 0xf6, 0x8d, 0xf7, 0x8c, 0x01, 0x7a, 0xf5, 0x8e, 0x03, 0x78, 0x02, 0x79, 0xf4, 0x8f }, + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + }, + { + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + }, + { + { 0x00, 0xcf, 0x85, 0x4a, 0x11, 0xde, 0x94, 0x5b, 0x22, 0xed, 0xa7, 0x68, 0x33, 0xfc, 0xb6, 0x79 }, + { 0x00, 0x44, 0x88, 0xcc, 0x0b, 0x4f, 0x83, 0xc7, 0x16, 0x52, 0x9e, 0xda, 0x1d, 0x59, 0x95, 0xd1 }, + }, + }, + { + { + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + }, + { + { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + }, + { + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + { 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77 }, + }, + { + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + { 0x00, 0xa1, 0x59, 0xf8, 0xb2, 0x13, 0xeb, 0x4a, 0x7f, 0xde, 0x26, 0x87, 0xcd, 0x6c, 0x94, 0x35 }, + }, + { + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + }, + }, + { + { + { 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e, 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee }, + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + }, + { + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + { 0x00, 0x04, 0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x28, 0x2c, 0x30, 0x34, 0x38, 0x3c }, + }, + { + { 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d }, + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + }, + { + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + }, + { + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + { 0x00, 0x2f, 0x5e, 0x71, 0xbc, 0x93, 0xe2, 0xcd, 0x63, 0x4c, 0x3d, 0x12, 0xdf, 0xf0, 0x81, 0xae }, + }, + }, + { + { + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + }, + { + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + }, + { + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + }, + { + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + }, + { + { 0x00, 0x80, 0x1b, 0x9b, 0x36, 0xb6, 0x2d, 0xad, 0x6c, 0xec, 0x77, 0xf7, 0x5a, 0xda, 0x41, 0xc1 }, + { 0x00, 0xd8, 0xab, 0x73, 0x4d, 0x95, 0xe6, 0x3e, 0x9a, 0x42, 0x31, 0xe9, 0xd7, 0x0f, 0x7c, 0xa4 }, + }, + }, + { + { + { 0x00, 0x48, 0x90, 0xd8, 0x3b, 0x73, 0xab, 0xe3, 0x76, 0x3e, 0xe6, 0xae, 0x4d, 0x05, 0xdd, 0x95 }, + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + }, + { + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + }, + { + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + }, + { + { 0x00, 0x6d, 0xda, 0xb7, 0xaf, 0xc2, 0x75, 0x18, 0x45, 0x28, 0x9f, 0xf2, 0xea, 0x87, 0x30, 0x5d }, + { 0x00, 0x8a, 0x0f, 0x85, 0x1e, 0x94, 0x11, 0x9b, 0x3c, 0xb6, 0x33, 0xb9, 0x22, 0xa8, 0x2d, 0xa7 }, + }, + { + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + }, + }, + { + { + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + }, + { + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + { 0x00, 0x91, 0x39, 0xa8, 0x72, 0xe3, 0x4b, 0xda, 0xe4, 0x75, 0xdd, 0x4c, 0x96, 0x07, 0xaf, 0x3e }, + }, + { + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + }, + { + { 0x00, 0xde, 0xa7, 0x79, 0x55, 0x8b, 0xf2, 0x2c, 0xaa, 0x74, 0x0d, 0xd3, 0xff, 0x21, 0x58, 0x86 }, + { 0x00, 0x4f, 0x9e, 0xd1, 0x27, 0x68, 0xb9, 0xf6, 0x4e, 0x01, 0xd0, 0x9f, 0x69, 0x26, 0xf7, 0xb8 }, + }, + { + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + { 0x00, 0xc9, 0x89, 0x40, 0x09, 0xc0, 0x80, 0x49, 0x12, 0xdb, 0x9b, 0x52, 0x1b, 0xd2, 0x92, 0x5b }, + }, + }, + { + { + { 0x00, 0x3b, 0x76, 0x4d, 0xec, 0xd7, 0x9a, 0xa1, 0xc3, 0xf8, 0xb5, 0x8e, 0x2f, 0x14, 0x59, 0x62 }, + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + }, + { + { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x7d, 0xfa, 0x87, 0xef, 0x92, 0x15, 0x68, 0xc5, 0xb8, 0x3f, 0x42, 0x2a, 0x57, 0xd0, 0xad }, + }, + { + { 0x00, 0xdd, 0xa1, 0x7c, 0x59, 0x84, 0xf8, 0x25, 0xb2, 0x6f, 0x13, 0xce, 0xeb, 0x36, 0x4a, 0x97 }, + { 0x00, 0x7f, 0xfe, 0x81, 0xe7, 0x98, 0x19, 0x66, 0xd5, 0xaa, 0x2b, 0x54, 0x32, 0x4d, 0xcc, 0xb3 }, + }, + { + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + }, + { + { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, + { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + }, + }, + { + { + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + }, + { + { 0x00, 0xdb, 0xad, 0x76, 0x41, 0x9a, 0xec, 0x37, 0x82, 0x59, 0x2f, 0xf4, 0xc3, 0x18, 0x6e, 0xb5 }, + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + }, + { + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + }, + { + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + }, + { + { 0x00, 0xbd, 0x61, 0xdc, 0xc2, 0x7f, 0xa3, 0x1e, 0x9f, 0x22, 0xfe, 0x43, 0x5d, 0xe0, 0x3c, 0x81 }, + { 0x00, 0x25, 0x4a, 0x6f, 0x94, 0xb1, 0xde, 0xfb, 0x33, 0x16, 0x79, 0x5c, 0xa7, 0x82, 0xed, 0xc8 }, + }, + }, + { + { + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + }, + { + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + }, + { + { 0x00, 0xd3, 0xbd, 0x6e, 0x61, 0xb2, 0xdc, 0x0f, 0xc2, 0x11, 0x7f, 0xac, 0xa3, 0x70, 0x1e, 0xcd }, + { 0x00, 0x9f, 0x25, 0xba, 0x4a, 0xd5, 0x6f, 0xf0, 0x94, 0x0b, 0xb1, 0x2e, 0xde, 0x41, 0xfb, 0x64 }, + }, + { + { 0x00, 0x70, 0xe0, 0x90, 0xdb, 0xab, 0x3b, 0x4b, 0xad, 0xdd, 0x4d, 0x3d, 0x76, 0x06, 0x96, 0xe6 }, + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + }, + { + { 0x00, 0x72, 0xe4, 0x96, 0xd3, 0xa1, 0x37, 0x45, 0xbd, 0xcf, 0x59, 0x2b, 0x6e, 0x1c, 0x8a, 0xf8 }, + { 0x00, 0x61, 0xc2, 0xa3, 0x9f, 0xfe, 0x5d, 0x3c, 0x25, 0x44, 0xe7, 0x86, 0xba, 0xdb, 0x78, 0x19 }, + }, + }, + { + { + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + }, + { + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + { 0x00, 0x96, 0x37, 0xa1, 0x6e, 0xf8, 0x59, 0xcf, 0xdc, 0x4a, 0xeb, 0x7d, 0xb2, 0x24, 0x85, 0x13 }, + }, + { + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + }, + { + { 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, 0x48, 0x46, 0x54, 0x5a }, + { 0x00, 0xe0, 0xdb, 0x3b, 0xad, 0x4d, 0x76, 0x96, 0x41, 0xa1, 0x9a, 0x7a, 0xec, 0x0c, 0x37, 0xd7 }, }, { { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, { 0x00, 0xc4, 0x93, 0x57, 0x3d, 0xf9, 0xae, 0x6a, 0x7a, 0xbe, 0xe9, 0x2d, 0x47, 0x83, 0xd4, 0x10 }, }, + }, + { + { + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + }, + { + { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, + { 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e }, + }, + { + { 0x00, 0xf6, 0xf7, 0x01, 0xf5, 0x03, 0x02, 0xf4, 0xf1, 0x07, 0x06, 0xf0, 0x04, 0xf2, 0xf3, 0x05 }, + { 0x00, 0xf9, 0xe9, 0x10, 0xc9, 0x30, 0x20, 0xd9, 0x89, 0x70, 0x60, 0x99, 0x40, 0xb9, 0xa9, 0x50 }, + }, + { + { 0x00, 0x4a, 0x94, 0xde, 0x33, 0x79, 0xa7, 0xed, 0x66, 0x2c, 0xf2, 0xb8, 0x55, 0x1f, 0xc1, 0x8b }, + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + }, + { + { 0x00, 0x67, 0xce, 0xa9, 0x87, 0xe0, 0x49, 0x2e, 0x15, 0x72, 0xdb, 0xbc, 0x92, 0xf5, 0x5c, 0x3b }, + { 0x00, 0x2a, 0x54, 0x7e, 0xa8, 0x82, 0xfc, 0xd6, 0x4b, 0x61, 0x1f, 0x35, 0xe3, 0xc9, 0xb7, 0x9d }, + }, + }, + { + { + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + }, + { + { 0x00, 0x1d, 0x3a, 0x27, 0x74, 0x69, 0x4e, 0x53, 0xe8, 0xf5, 0xd2, 0xcf, 0x9c, 0x81, 0xa6, 0xbb }, + { 0x00, 0xcb, 0x8d, 0x46, 0x01, 0xca, 0x8c, 0x47, 0x02, 0xc9, 0x8f, 0x44, 0x03, 0xc8, 0x8e, 0x45 }, + }, + { + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + { 0x00, 0xdc, 0xa3, 0x7f, 0x5d, 0x81, 0xfe, 0x22, 0xba, 0x66, 0x19, 0xc5, 0xe7, 0x3b, 0x44, 0x98 }, + }, + { + { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xe9, 0xc9, 0x20, 0x89, 0x60, 0x40, 0xa9, 0x09, 0xe0, 0xc0, 0x29, 0x80, 0x69, 0x49, 0xa0 }, + }, + { + { 0x00, 0xa6, 0x57, 0xf1, 0xae, 0x08, 0xf9, 0x5f, 0x47, 0xe1, 0x10, 0xb6, 0xe9, 0x4f, 0xbe, 0x18 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + }, + }, + { + { + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + }, + { + { 0x00, 0x49, 0x92, 0xdb, 0x3f, 0x76, 0xad, 0xe4, 0x7e, 0x37, 0xec, 0xa5, 0x41, 0x08, 0xd3, 0x9a }, + { 0x00, 0xfc, 0xe3, 0x1f, 0xdd, 0x21, 0x3e, 0xc2, 0xa1, 0x5d, 0x42, 0xbe, 0x7c, 0x80, 0x9f, 0x63 }, + }, + { + { 0x00, 0xcc, 0x83, 0x4f, 0x1d, 0xd1, 0x9e, 0x52, 0x3a, 0xf6, 0xb9, 0x75, 0x27, 0xeb, 0xa4, 0x68 }, + { 0x00, 0x74, 0xe8, 0x9c, 0xcb, 0xbf, 0x23, 0x57, 0x8d, 0xf9, 0x65, 0x11, 0x46, 0x32, 0xae, 0xda }, + }, + { + { 0x00, 0xaa, 0x4f, 0xe5, 0x9e, 0x34, 0xd1, 0x7b, 0x27, 0x8d, 0x68, 0xc2, 0xb9, 0x13, 0xf6, 0x5c }, + { 0x00, 0x4e, 0x9c, 0xd2, 0x23, 0x6d, 0xbf, 0xf1, 0x46, 0x08, 0xda, 0x94, 0x65, 0x2b, 0xf9, 0xb7 }, + }, + { + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + }, + }, + { + { + { 0x00, 0x84, 0x13, 0x97, 0x26, 0xa2, 0x35, 0xb1, 0x4c, 0xc8, 0x5f, 0xdb, 0x6a, 0xee, 0x79, 0xfd }, + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + }, + { + { 0x00, 0xba, 0x6f, 0xd5, 0xde, 0x64, 0xb1, 0x0b, 0xa7, 0x1d, 0xc8, 0x72, 0x79, 0xc3, 0x16, 0xac }, + { 0x00, 0x55, 0xaa, 0xff, 0x4f, 0x1a, 0xe5, 0xb0, 0x9e, 0xcb, 0x34, 0x61, 0xd1, 0x84, 0x7b, 0x2e }, + }, + { + { 0x00, 0xb2, 0x7f, 0xcd, 0xfe, 0x4c, 0x81, 0x33, 0xe7, 0x55, 0x98, 0x2a, 0x19, 0xab, 0x66, 0xd4 }, + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + }, + { + { 0x00, 0xec, 0xc3, 0x2f, 0x9d, 0x71, 0x5e, 0xb2, 0x21, 0xcd, 0xe2, 0x0e, 0xbc, 0x50, 0x7f, 0x93 }, + { 0x00, 0x42, 0x84, 0xc6, 0x13, 0x51, 0x97, 0xd5, 0x26, 0x64, 0xa2, 0xe0, 0x35, 0x77, 0xb1, 0xf3 }, + }, + { + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + { 0x00, 0xad, 0x41, 0xec, 0x82, 0x2f, 0xc3, 0x6e, 0x1f, 0xb2, 0x5e, 0xf3, 0x9d, 0x30, 0xdc, 0x71 }, + }, + }, + { + { + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + }, + { + { 0x00, 0x82, 0x1f, 0x9d, 0x3e, 0xbc, 0x21, 0xa3, 0x7c, 0xfe, 0x63, 0xe1, 0x42, 0xc0, 0x5d, 0xdf }, + { 0x00, 0xf8, 0xeb, 0x13, 0xcd, 0x35, 0x26, 0xde, 0x81, 0x79, 0x6a, 0x92, 0x4c, 0xb4, 0xa7, 0x5f }, + }, + { + { 0x00, 0x40, 0x80, 0xc0, 0x1b, 0x5b, 0x9b, 0xdb, 0x36, 0x76, 0xb6, 0xf6, 0x2d, 0x6d, 0xad, 0xed }, + { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, + }, + { + { 0x00, 0x8c, 0x03, 0x8f, 0x06, 0x8a, 0x05, 0x89, 0x0c, 0x80, 0x0f, 0x83, 0x0a, 0x86, 0x09, 0x85 }, + { 0x00, 0x18, 0x30, 0x28, 0x60, 0x78, 0x50, 0x48, 0xc0, 0xd8, 0xf0, 0xe8, 0xa0, 0xb8, 0x90, 0x88 }, + }, + { + { 0x00, 0x0c, 0x18, 0x14, 0x30, 0x3c, 0x28, 0x24, 0x60, 0x6c, 0x78, 0x74, 0x50, 0x5c, 0x48, 0x44 }, + { 0x00, 0xc0, 0x9b, 0x5b, 0x2d, 0xed, 0xb6, 0x76, 0x5a, 0x9a, 0xc1, 0x01, 0x77, 0xb7, 0xec, 0x2c }, + }, + }, + { + { + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + }, + { + { 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11 }, + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + }, + { + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + { 0x00, 0x69, 0xd2, 0xbb, 0xbf, 0xd6, 0x6d, 0x04, 0x65, 0x0c, 0xb7, 0xde, 0xda, 0xb3, 0x08, 0x61 }, + }, + { + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + }, + { + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + }, + }, + { + { + { 0x00, 0x4c, 0x98, 0xd4, 0x2b, 0x67, 0xb3, 0xff, 0x56, 0x1a, 0xce, 0x82, 0x7d, 0x31, 0xe5, 0xa9 }, + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + }, + { + { 0x00, 0x19, 0x32, 0x2b, 0x64, 0x7d, 0x56, 0x4f, 0xc8, 0xd1, 0xfa, 0xe3, 0xac, 0xb5, 0x9e, 0x87 }, + { 0x00, 0x8b, 0x0d, 0x86, 0x1a, 0x91, 0x17, 0x9c, 0x34, 0xbf, 0x39, 0xb2, 0x2e, 0xa5, 0x23, 0xa8 }, + }, + { + { 0x00, 0x6a, 0xd4, 0xbe, 0xb3, 0xd9, 0x67, 0x0d, 0x7d, 0x17, 0xa9, 0xc3, 0xce, 0xa4, 0x1a, 0x70 }, + { 0x00, 0xfa, 0xef, 0x15, 0xc5, 0x3f, 0x2a, 0xd0, 0x91, 0x6b, 0x7e, 0x84, 0x54, 0xae, 0xbb, 0x41 }, + }, + { + { 0x00, 0x52, 0xa4, 0xf6, 0x53, 0x01, 0xf7, 0xa5, 0xa6, 0xf4, 0x02, 0x50, 0xf5, 0xa7, 0x51, 0x03 }, + { 0x00, 0x57, 0xae, 0xf9, 0x47, 0x10, 0xe9, 0xbe, 0x8e, 0xd9, 0x20, 0x77, 0xc9, 0x9e, 0x67, 0x30 }, + }, + { + { 0x00, 0xb0, 0x7b, 0xcb, 0xf6, 0x46, 0x8d, 0x3d, 0xf7, 0x47, 0x8c, 0x3c, 0x01, 0xb1, 0x7a, 0xca }, + { 0x00, 0xf5, 0xf1, 0x04, 0xf9, 0x0c, 0x08, 0xfd, 0xe9, 0x1c, 0x18, 0xed, 0x10, 0xe5, 0xe1, 0x14 }, + }, + }, + { + { + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + }, + { + { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, + { 0x00, 0xa2, 0x5f, 0xfd, 0xbe, 0x1c, 0xe1, 0x43, 0x67, 0xc5, 0x38, 0x9a, 0xd9, 0x7b, 0x86, 0x24 }, + }, + { + { 0x00, 0x22, 0x44, 0x66, 0x88, 0xaa, 0xcc, 0xee, 0x0b, 0x29, 0x4f, 0x6d, 0x83, 0xa1, 0xc7, 0xe5 }, + { 0x00, 0x16, 0x2c, 0x3a, 0x58, 0x4e, 0x74, 0x62, 0xb0, 0xa6, 0x9c, 0x8a, 0xe8, 0xfe, 0xc4, 0xd2 }, + }, + { + { 0x00, 0xd5, 0xb1, 0x64, 0x79, 0xac, 0xc8, 0x1d, 0xf2, 0x27, 0x43, 0x96, 0x8b, 0x5e, 0x3a, 0xef }, + { 0x00, 0xff, 0xe5, 0x1a, 0xd1, 0x2e, 0x34, 0xcb, 0xb9, 0x46, 0x5c, 0xa3, 0x68, 0x97, 0x8d, 0x72 }, + }, { { 0x00, 0xe6, 0xd7, 0x31, 0xb5, 0x53, 0x62, 0x84, 0x71, 0x97, 0xa6, 0x40, 0xc4, 0x22, 0x13, 0xf5 }, { 0x00, 0xe2, 0xdf, 0x3d, 0xa5, 0x47, 0x7a, 0x98, 0x51, 0xb3, 0x8e, 0x6c, 0xf4, 0x16, 0x2b, 0xc9 }, @@ -30468,24 +30242,178 @@ const uint8_t __aligned(256) raid_gfcauchypshufb_aes[251][5][2][16] = }, { { - { 0x00, 0x6c, 0xd8, 0xb4, 0xab, 0xc7, 0x73, 0x1f, 0x4d, 0x21, 0x95, 0xf9, 0xe6, 0x8a, 0x3e, 0x52 }, - { 0x00, 0x9a, 0x2f, 0xb5, 0x5e, 0xc4, 0x71, 0xeb, 0xbc, 0x26, 0x93, 0x09, 0xe2, 0x78, 0xcd, 0x57 }, + { 0x00, 0x2b, 0x56, 0x7d, 0xac, 0x87, 0xfa, 0xd1, 0x43, 0x68, 0x15, 0x3e, 0xef, 0xc4, 0xb9, 0x92 }, + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, }, { - { 0x00, 0x58, 0xb0, 0xe8, 0x7b, 0x23, 0xcb, 0x93, 0xf6, 0xae, 0x46, 0x1e, 0x8d, 0xd5, 0x3d, 0x65 }, - { 0x00, 0xf7, 0xf5, 0x02, 0xf1, 0x06, 0x04, 0xf3, 0xf9, 0x0e, 0x0c, 0xfb, 0x08, 0xff, 0xfd, 0x0a }, + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + { 0x00, 0x94, 0x33, 0xa7, 0x66, 0xf2, 0x55, 0xc1, 0xcc, 0x58, 0xff, 0x6b, 0xaa, 0x3e, 0x99, 0x0d }, + }, + { + { 0x00, 0x1f, 0x3e, 0x21, 0x7c, 0x63, 0x42, 0x5d, 0xf8, 0xe7, 0xc6, 0xd9, 0x84, 0x9b, 0xba, 0xa5 }, + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + }, + { + { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff }, + { 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, 0x74, 0x7f, 0x62, 0x69 }, + }, + { + { 0x00, 0xf1, 0xf9, 0x08, 0xe9, 0x18, 0x10, 0xe1, 0xc9, 0x38, 0x30, 0xc1, 0x20, 0xd1, 0xd9, 0x28 }, + { 0x00, 0x89, 0x09, 0x80, 0x12, 0x9b, 0x1b, 0x92, 0x24, 0xad, 0x2d, 0xa4, 0x36, 0xbf, 0x3f, 0xb6 }, + }, + }, + { + { + { 0x00, 0x56, 0xac, 0xfa, 0x43, 0x15, 0xef, 0xb9, 0x86, 0xd0, 0x2a, 0x7c, 0xc5, 0x93, 0x69, 0x3f }, + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + }, + { + { 0x00, 0x90, 0x3b, 0xab, 0x76, 0xe6, 0x4d, 0xdd, 0xec, 0x7c, 0xd7, 0x47, 0x9a, 0x0a, 0xa1, 0x31 }, + { 0x00, 0xc3, 0x9d, 0x5e, 0x21, 0xe2, 0xbc, 0x7f, 0x42, 0x81, 0xdf, 0x1c, 0x63, 0xa0, 0xfe, 0x3d }, + }, + { + { 0x00, 0xe4, 0xd3, 0x37, 0xbd, 0x59, 0x6e, 0x8a, 0x61, 0x85, 0xb2, 0x56, 0xdc, 0x38, 0x0f, 0xeb }, + { 0x00, 0xc2, 0x9f, 0x5d, 0x25, 0xe7, 0xba, 0x78, 0x4a, 0x88, 0xd5, 0x17, 0x6f, 0xad, 0xf0, 0x32 }, + }, + { + { 0x00, 0xe5, 0xd1, 0x34, 0xb9, 0x5c, 0x68, 0x8d, 0x69, 0x8c, 0xb8, 0x5d, 0xd0, 0x35, 0x01, 0xe4 }, + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + }, + { + { 0x00, 0x24, 0x48, 0x6c, 0x90, 0xb4, 0xd8, 0xfc, 0x3b, 0x1f, 0x73, 0x57, 0xab, 0x8f, 0xe3, 0xc7 }, + { 0x00, 0x76, 0xec, 0x9a, 0xc3, 0xb5, 0x2f, 0x59, 0x9d, 0xeb, 0x71, 0x07, 0x5e, 0x28, 0xb2, 0xc4 }, + }, + }, + { + { + { 0x00, 0xac, 0x43, 0xef, 0x86, 0x2a, 0xc5, 0x69, 0x17, 0xbb, 0x54, 0xf8, 0x91, 0x3d, 0xd2, 0x7e }, + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + }, + { + { 0x00, 0x15, 0x2a, 0x3f, 0x54, 0x41, 0x7e, 0x6b, 0xa8, 0xbd, 0x82, 0x97, 0xfc, 0xe9, 0xd6, 0xc3 }, + { 0x00, 0x4b, 0x96, 0xdd, 0x37, 0x7c, 0xa1, 0xea, 0x6e, 0x25, 0xf8, 0xb3, 0x59, 0x12, 0xcf, 0x84 }, + }, + { + { 0x00, 0xcd, 0x81, 0x4c, 0x19, 0xd4, 0x98, 0x55, 0x32, 0xff, 0xb3, 0x7e, 0x2b, 0xe6, 0xaa, 0x67 }, + { 0x00, 0x64, 0xc8, 0xac, 0x8b, 0xef, 0x43, 0x27, 0x0d, 0x69, 0xc5, 0xa1, 0x86, 0xe2, 0x4e, 0x2a }, + }, + { + { 0x00, 0xca, 0x8f, 0x45, 0x05, 0xcf, 0x8a, 0x40, 0x0a, 0xc0, 0x85, 0x4f, 0x0f, 0xc5, 0x80, 0x4a }, + { 0x00, 0x14, 0x28, 0x3c, 0x50, 0x44, 0x78, 0x6c, 0xa0, 0xb4, 0x88, 0x9c, 0xf0, 0xe4, 0xd8, 0xcc }, + }, + { + { 0x00, 0x21, 0x42, 0x63, 0x84, 0xa5, 0xc6, 0xe7, 0x13, 0x32, 0x51, 0x70, 0x97, 0xb6, 0xd5, 0xf4 }, + { 0x00, 0x26, 0x4c, 0x6a, 0x98, 0xbe, 0xd4, 0xf2, 0x2b, 0x0d, 0x67, 0x41, 0xb3, 0x95, 0xff, 0xd9 }, + }, + }, + { + { + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + }, + { + { 0x00, 0x9d, 0x21, 0xbc, 0x42, 0xdf, 0x63, 0xfe, 0x84, 0x19, 0xa5, 0x38, 0xc6, 0x5b, 0xe7, 0x7a }, + { 0x00, 0x13, 0x26, 0x35, 0x4c, 0x5f, 0x6a, 0x79, 0x98, 0x8b, 0xbe, 0xad, 0xd4, 0xc7, 0xf2, 0xe1 }, + }, + { + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + }, + { + { 0x00, 0x5b, 0xb6, 0xed, 0x77, 0x2c, 0xc1, 0x9a, 0xee, 0xb5, 0x58, 0x03, 0x99, 0xc2, 0x2f, 0x74 }, + { 0x00, 0xc7, 0x95, 0x52, 0x31, 0xf6, 0xa4, 0x63, 0x62, 0xa5, 0xf7, 0x30, 0x53, 0x94, 0xc6, 0x01 }, + }, + { + { 0x00, 0x41, 0x82, 0xc3, 0x1f, 0x5e, 0x9d, 0xdc, 0x3e, 0x7f, 0xbc, 0xfd, 0x21, 0x60, 0xa3, 0xe2 }, + { 0x00, 0x7c, 0xf8, 0x84, 0xeb, 0x97, 0x13, 0x6f, 0xcd, 0xb1, 0x35, 0x49, 0x26, 0x5a, 0xde, 0xa2 }, + }, + }, + { + { + { 0x00, 0x86, 0x17, 0x91, 0x2e, 0xa8, 0x39, 0xbf, 0x5c, 0xda, 0x4b, 0xcd, 0x72, 0xf4, 0x65, 0xe3 }, + { 0x00, 0xb8, 0x6b, 0xd3, 0xd6, 0x6e, 0xbd, 0x05, 0xb7, 0x0f, 0xdc, 0x64, 0x61, 0xd9, 0x0a, 0xb2 }, + }, + { + { 0x00, 0x98, 0x2b, 0xb3, 0x56, 0xce, 0x7d, 0xe5, 0xac, 0x34, 0x87, 0x1f, 0xfa, 0x62, 0xd1, 0x49 }, + { 0x00, 0x43, 0x86, 0xc5, 0x17, 0x54, 0x91, 0xd2, 0x2e, 0x6d, 0xa8, 0xeb, 0x39, 0x7a, 0xbf, 0xfc }, + }, + { + { 0x00, 0xaf, 0x45, 0xea, 0x8a, 0x25, 0xcf, 0x60, 0x0f, 0xa0, 0x4a, 0xe5, 0x85, 0x2a, 0xc0, 0x6f }, + { 0x00, 0x1e, 0x3c, 0x22, 0x78, 0x66, 0x44, 0x5a, 0xf0, 0xee, 0xcc, 0xd2, 0x88, 0x96, 0xb4, 0xaa }, + }, + { + { 0x00, 0x30, 0x60, 0x50, 0xc0, 0xf0, 0xa0, 0x90, 0x9b, 0xab, 0xfb, 0xcb, 0x5b, 0x6b, 0x3b, 0x0b }, + { 0x00, 0x2d, 0x5a, 0x77, 0xb4, 0x99, 0xee, 0xc3, 0x73, 0x5e, 0x29, 0x04, 0xc7, 0xea, 0x9d, 0xb0 }, + }, + { + { 0x00, 0x78, 0xf0, 0x88, 0xfb, 0x83, 0x0b, 0x73, 0xed, 0x95, 0x1d, 0x65, 0x16, 0x6e, 0xe6, 0x9e }, + { 0x00, 0xc1, 0x99, 0x58, 0x29, 0xe8, 0xb0, 0x71, 0x52, 0x93, 0xcb, 0x0a, 0x7b, 0xba, 0xe2, 0x23 }, + }, + }, + { + { + { 0x00, 0x17, 0x2e, 0x39, 0x5c, 0x4b, 0x72, 0x65, 0xb8, 0xaf, 0x96, 0x81, 0xe4, 0xf3, 0xca, 0xdd }, + { 0x00, 0x6b, 0xd6, 0xbd, 0xb7, 0xdc, 0x61, 0x0a, 0x75, 0x1e, 0xa3, 0xc8, 0xc2, 0xa9, 0x14, 0x7f }, + }, + { + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, + }, + { + { 0x00, 0xd2, 0xbf, 0x6d, 0x65, 0xb7, 0xda, 0x08, 0xca, 0x18, 0x75, 0xa7, 0xaf, 0x7d, 0x10, 0xc2 }, + { 0x00, 0x8f, 0x05, 0x8a, 0x0a, 0x85, 0x0f, 0x80, 0x14, 0x9b, 0x11, 0x9e, 0x1e, 0x91, 0x1b, 0x94 }, + }, + { + { 0x00, 0x37, 0x6e, 0x59, 0xdc, 0xeb, 0xb2, 0x85, 0xa3, 0x94, 0xcd, 0xfa, 0x7f, 0x48, 0x11, 0x26 }, + { 0x00, 0x5d, 0xba, 0xe7, 0x6f, 0x32, 0xd5, 0x88, 0xde, 0x83, 0x64, 0x39, 0xb1, 0xec, 0x0b, 0x56 }, + }, + { + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + }, + }, + { + { + { 0x00, 0x2e, 0x5c, 0x72, 0xb8, 0x96, 0xe4, 0xca, 0x6b, 0x45, 0x37, 0x19, 0xd3, 0xfd, 0x8f, 0xa1 }, + { 0x00, 0xd6, 0xb7, 0x61, 0x75, 0xa3, 0xc2, 0x14, 0xea, 0x3c, 0x5d, 0x8b, 0x9f, 0x49, 0x28, 0xfe }, + }, + { + { 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, 0x5c, 0x51, 0x46, 0x4b }, + { 0x00, 0xd0, 0xbb, 0x6b, 0x6d, 0xbd, 0xd6, 0x06, 0xda, 0x0a, 0x61, 0xb1, 0xb7, 0x67, 0x0c, 0xdc }, + }, + { + { 0x00, 0xa9, 0x49, 0xe0, 0x92, 0x3b, 0xdb, 0x72, 0x3f, 0x96, 0x76, 0xdf, 0xad, 0x04, 0xe4, 0x4d }, + { 0x00, 0x7e, 0xfc, 0x82, 0xe3, 0x9d, 0x1f, 0x61, 0xdd, 0xa3, 0x21, 0x5f, 0x3e, 0x40, 0xc2, 0xbc }, + }, + { + { 0x00, 0xb5, 0x71, 0xc4, 0xe2, 0x57, 0x93, 0x26, 0xdf, 0x6a, 0xae, 0x1b, 0x3d, 0x88, 0x4c, 0xf9 }, + { 0x00, 0xa5, 0x51, 0xf4, 0xa2, 0x07, 0xf3, 0x56, 0x5f, 0xfa, 0x0e, 0xab, 0xfd, 0x58, 0xac, 0x09 }, }, { { 0x00, 0x83, 0x1d, 0x9e, 0x3a, 0xb9, 0x27, 0xa4, 0x74, 0xf7, 0x69, 0xea, 0x4e, 0xcd, 0x53, 0xd0 }, { 0x00, 0xe8, 0xcb, 0x23, 0x8d, 0x65, 0x46, 0xae, 0x01, 0xe9, 0xca, 0x22, 0x8c, 0x64, 0x47, 0xaf }, }, + }, + { { - { 0x00, 0xbc, 0x63, 0xdf, 0xc6, 0x7a, 0xa5, 0x19, 0x97, 0x2b, 0xf4, 0x48, 0x51, 0xed, 0x32, 0x8e }, - { 0x00, 0x35, 0x6a, 0x5f, 0xd4, 0xe1, 0xbe, 0x8b, 0xb3, 0x86, 0xd9, 0xec, 0x67, 0x52, 0x0d, 0x38 }, + { 0x00, 0x5c, 0xb8, 0xe4, 0x6b, 0x37, 0xd3, 0x8f, 0xd6, 0x8a, 0x6e, 0x32, 0xbd, 0xe1, 0x05, 0x59 }, + { 0x00, 0xb7, 0x75, 0xc2, 0xea, 0x5d, 0x9f, 0x28, 0xcf, 0x78, 0xba, 0x0d, 0x25, 0x92, 0x50, 0xe7 }, }, { - { 0x00, 0xd7, 0xb5, 0x62, 0x71, 0xa6, 0xc4, 0x13, 0xe2, 0x35, 0x57, 0x80, 0x93, 0x44, 0x26, 0xf1 }, - { 0x00, 0xdf, 0xa5, 0x7a, 0x51, 0x8e, 0xf4, 0x2b, 0xa2, 0x7d, 0x07, 0xd8, 0xf3, 0x2c, 0x56, 0x89 }, + { 0x00, 0x8e, 0x07, 0x89, 0x0e, 0x80, 0x09, 0x87, 0x1c, 0x92, 0x1b, 0x95, 0x12, 0x9c, 0x15, 0x9b }, + { 0x00, 0x38, 0x70, 0x48, 0xe0, 0xd8, 0x90, 0xa8, 0xdb, 0xe3, 0xab, 0x93, 0x3b, 0x03, 0x4b, 0x73 }, + }, + { + { 0x00, 0xa0, 0x5b, 0xfb, 0xb6, 0x16, 0xed, 0x4d, 0x77, 0xd7, 0x2c, 0x8c, 0xc1, 0x61, 0x9a, 0x3a }, + { 0x00, 0xee, 0xc7, 0x29, 0x95, 0x7b, 0x52, 0xbc, 0x31, 0xdf, 0xf6, 0x18, 0xa4, 0x4a, 0x63, 0x8d }, + }, + { + { 0x00, 0xeb, 0xcd, 0x26, 0x81, 0x6a, 0x4c, 0xa7, 0x19, 0xf2, 0xd4, 0x3f, 0x98, 0x73, 0x55, 0xbe }, + { 0x00, 0x32, 0x64, 0x56, 0xc8, 0xfa, 0xac, 0x9e, 0x8b, 0xb9, 0xef, 0xdd, 0x43, 0x71, 0x27, 0x15 }, + }, + { + { 0x00, 0x9e, 0x27, 0xb9, 0x4e, 0xd0, 0x69, 0xf7, 0x9c, 0x02, 0xbb, 0x25, 0xd2, 0x4c, 0xf5, 0x6b }, + { 0x00, 0x23, 0x46, 0x65, 0x8c, 0xaf, 0xca, 0xe9, 0x03, 0x20, 0x45, 0x66, 0x8f, 0xac, 0xc9, 0xea }, }, }, }; diff --git a/raid/test.c b/raid/test.c index 89f2919f..a0ec1d67 100644 --- a/raid/test.c +++ b/raid/test.c @@ -189,19 +189,22 @@ int raid_test_sort(void) * * RAID_MODE_CAUCHY_AES: * polynomial 0x11b - * primitive generator g=3 + * G23 Extended Cauchy construction * * The parity generation tests compare optimized implementations against * raid_gen_ref(), but both use the same active generator matrix. Therefore * they can agree even if the matrix itself is mathematically unsuitable. * - * This test instead checks a few fundamental properties of the field - * generator and of the generated Cauchy matrix. + * This test instead constructs the expected Q sequence independently and + * checks the generated matrix coefficients. */ int raid_test_poly(unsigned mode) { + uint8_t q[255]; + uint8_t v; int i, j; int p, d; + int g23_count; /* * This test is defined only for the two Cauchy modes. @@ -216,7 +219,6 @@ int raid_test_poly(unsigned mode) /* * Select the mode first so that: * - * raid_gfexp * raid_gfcauchy * raid_gfmul * raid_gfinv @@ -229,92 +231,104 @@ int raid_test_poly(unsigned mode) raid_mode(mode); /* - * Primitive order alone is not enough to protect parity format - * compatibility. Each Cauchy mode has a fixed reducing polynomial - * and primitive generator, which determine the actual matrix coefficients. + * Each Cauchy mode has a fixed reducing polynomial and matrix + * construction, which together determine the parity format. */ if (mode == RAID_MODE_CAUCHY_RAID) { if (raid_poly_byte != RAID_POLY_RAID) return -1; - if (raid_gfexp[1] != 2) - return -1; - } else if (mode == RAID_MODE_CAUCHY_AES) { + } else { if (raid_poly_byte != RAID_POLY_AES) return -1; - if (raid_gfexp[1] != 3) - return -1; } /* - * raid_gfexp[a] contains g^a for the primitive generator associated - * with the active Cauchy mode. - * - * The multiplicative group GF(2^8)* contains 255 elements: - * - * 255 = 3 * 5 * 17 - * - * The order of every nonzero field element divides 255. - * - * To prove that g has order exactly 255, it is therefore sufficient - * to verify: - * - * g^255 == 1 - * - * and to exclude the three maximal proper divisors: - * - * 255 / 3 = 85 - * 255 / 5 = 51 - * 255 / 17 = 15 - * - * Hence a primitive generator must satisfy: - * - * g^85 != 1 - * g^51 != 1 - * g^15 != 1 + * Build the expected Q sequence independently of raid_g23_boundary() + * and the optimized generator implementations. */ - if (raid_gfexp[0] != 1) - return -1; - if (raid_gfexp[255] != 1) - return -1; - if (raid_gfexp[85] == 1) - return -1; - if (raid_gfexp[51] == 1) - return -1; - if (raid_gfexp[15] == 1) - return -1; + q[0] = 1; + g23_count = 51; + for (i = 0; i < 254; ++i) { + uint8_t f = 2; - /* - * The Q row of the Extended Cauchy matrix contains: - * - * 1, g, g^2, g^3, ... - * - * SnapRAID supports RAID_DATA_MAX data disks, so all generator powers - * corresponding to those columns must be distinct. - * - * A primitive generator of order 255 guarantees this, but checking it - * explicitly is inexpensive and also verifies the generated - * raid_gfexp[] table itself. - */ - for (i = 0; i < RAID_DATA_MAX; ++i) - for (j = i + 1; j < RAID_DATA_MAX; ++j) - if (raid_gfexp[i] == raid_gfexp[j]) + if (mode == RAID_MODE_CAUCHY_AES && --g23_count == 0) { + f = 3; + g23_count = 51; + } + q[i + 1] = mul(f, q[i]); + } + + /* Both constructions enumerate distinct nonzero Q coefficients. */ + for (i = 0; i < 255; ++i) { + if (q[i] == 0) + return -1; + for (j = i + 1; j < 255; ++j) + if (q[i] == q[j]) return -1; + } - /* - * The second row of the Extended Cauchy matrix is exactly g^d. - * - * Verify that the exponent table and the actual matrix used for - * parity generation agree for every supported data column. - * - * This makes sure that the primitive generator checked above is the - * same generator actually used by the Q row. - */ - for (d = 0; d < RAID_DATA_MAX; ++d) - if (raid_gfcauchy[1][d] != raid_gfexp[d]) + for (d = 0; d < RAID_DATA_MAX; ++d) { + if (raid_gfcauchy[0][d] != 1) + return -1; + if (raid_gfcauchy[1][d] != q[d]) + return -1; + } + + if (mode == RAID_MODE_CAUCHY_AES) { + /* In AES, 2 has order 51 and 3 has order 255. */ + v = 1; + for (i = 1; i <= 51; ++i) { + v = mul(2, v); + if ((i == 3 || i == 17) && v == 1) + return -1; + } + if (v != 1) return -1; + v = 1; + for (i = 1; i <= 255; ++i) { + v = mul(3, v); + if ((i == 15 || i == 51 || i == 85) && v == 1) + return -1; + } + if (v != 1) + return -1; + + if (q[251] != 0xb8 || q[252] != 0x6b + || q[253] != 0xd6 || q[254] != 0xb7) + return -1; + if (inv(q[251]) != 0xa5 || inv(q[252]) != 0xdf + || inv(q[253]) != 0xe2 || inv(q[254]) != 0x71) + return -1; + + /* the descending Y allocation keeps hypothetical higher-parity matrices nested */ + for (i = 6; i <= 9; ++i) { + int disk = 257 - i; + + for (j = 1; j < i - 1; ++j) + if (255 - j < disk || 255 - j > 254) + return -1; + if (255 - (i - 2) != disk) + return -1; + } + + /* independently reconstruct and normalize the four Cauchy rows */ + for (p = 2; p < RAID_PARITY_MAX; ++p) { + uint8_t y = inv(q[256 - p]); + uint8_t f = inv(inv(q[0]) ^ y); + uint8_t scale = inv(f); + + for (d = 0; d < RAID_DATA_MAX; ++d) { + uint8_t c = inv(inv(q[d]) ^ y); + + if (raid_gfcauchy[p][d] != mul(c, scale)) + return -1; + } + } + } + /* - * Every coefficient of the active 6x251 Cauchy generator matrix must + * Every coefficient of the active 6x251 Extended Cauchy generator matrix must * be nonzero. * * A single coefficient is itself a 1x1 submatrix, so a zero @@ -550,6 +564,57 @@ bail: /* LCOV_EXCL_STOP */ } +int raid_test_rec2_g23(size_t size) +{ + static const int missing[][2] = { + { 1, 20 }, /* within the first coset */ + { 50, 51 }, /* across the first G23 boundary */ + { 10, 204 } /* across multiple cosets */ + }; + void *v_alloc; + void **v; + void *save[2]; + int ip[2] = { 0, 1 }; + int nv = RAID_DATA_MAX + RAID_PARITY_MAX + 3; + int i, j; + + raid_mode(RAID_MODE_CAUCHY_AES); + v = raid_malloc_vector(nv, size, &v_alloc); + if (!v) + return -1; + + memset(v[nv - 1], 0, size); + raid_zero(v[nv - 1]); + raid_mrand_vector(3, RAID_DATA_MAX, size, v); + raid_gen_ref(RAID_DATA_MAX, RAID_PARITY_MAX, size, v); + + for (j = 0; j < (int)(sizeof(missing) / sizeof(missing[0])); ++j) { + int id[2] = { missing[j][0], missing[j][1] }; + + for (i = 0; i < 2; ++i) { + save[i] = v[id[i]]; + v[id[i]] = v[RAID_DATA_MAX + RAID_PARITY_MAX + i]; + } + + raid_rec2_int8(2, id, ip, RAID_DATA_MAX, size, v); + + for (i = 0; i < 2; ++i) { + if (memcmp(v[id[i]], save[i], size) != 0) + goto bail; + v[id[i]] = save[i]; + } + } + + free(v_alloc); + free(v); + return 0; + +bail: + free(v_alloc); + free(v); + return -1; +} + int raid_test_tail(int mode, int nd_max, size_t size) { void (*f[RAID_PARITY_MAX][32])(int nr, int *id, int *ip, int nd, size_t size, void **vbuf); @@ -826,7 +891,6 @@ int raid_test_par(int mode, int nd, size_t size) /* setup all the available functions */ test_setup(1) = raid_gen1_int32; test_setup(1) = raid_gen1_int64; - test_setup(2) = raid_gen2_int8; if (mode == RAID_MODE_CAUCHY_AES) { test_setup(2) = raid_gen2_int32_aes; test_setup(2) = raid_gen2_int64_aes; @@ -935,6 +999,8 @@ int raid_test_par(int mode, int nd, size_t size) if (mode == RAID_MODE_CAUCHY_AES) { test_setup(3) = raid_gen3_ssse3_aes; test_setup(4) = raid_gen4_ssse3_aes; + test_setup(5) = raid_gen5_ssse3_aes; + test_setup(6) = raid_gen6_ssse3_aes; } else { test_setup(3) = raid_gen3_ssse3_raid; test_setup(4) = raid_gen4_ssse3_raid; diff --git a/raid/test.h b/raid/test.h index bda0b456..ba40b621 100644 --- a/raid/test.h +++ b/raid/test.h @@ -41,7 +41,7 @@ int raid_test_gfaffine(void); /** * Tests the Galois field and Cauchy matrix properties. * - * Verifies the expected polynomial and primitive generator and basic + * Verifies the expected polynomial and matrix construction and basic * properties of the Extended Cauchy matrix for the specified RAID mode. * * Returns 0 on success. @@ -60,6 +60,14 @@ int raid_test_poly(unsigned mode); */ int raid_test_rec(unsigned mode, int nd, size_t size); +/** + * Tests AES P/Q double-disk recovery for failures within one G23 coset, + * across a G23 boundary, and across multiple cosets. + * + * Returns 0 on success. + */ +int raid_test_rec2_g23(size_t size); + /** * Tests recovering functions on the tail data disks. * diff --git a/raid/test/fulltest.c b/raid/test/fulltest.c index c1611359..9ce80247 100644 --- a/raid/test/fulltest.c +++ b/raid/test/fulltest.c @@ -151,6 +151,13 @@ int main(void) /* LCOV_EXCL_STOP */ } + printf("Test Cauchy AES P/Q recovery within and across G23 cosets...\n"); + if (raid_test_rec2_g23(TEST_SIZE) != 0) { + /* LCOV_EXCL_START */ + goto bail; + /* LCOV_EXCL_STOP */ + } + printf("OK\n"); return 0; diff --git a/raid/test/invtest.c b/raid/test/invtest.c index f51cd16c..059276d7 100644 --- a/raid/test/invtest.c +++ b/raid/test/invtest.c @@ -8,7 +8,7 @@ * nonsingular (invertible) for both operating modes: * * RAID: GF polynomial 0x11d, primitive generator g=2 - * AES: GF polynomial 0x11b, primitive generator g=3 + * AES: GF polynomial 0x11b, G23 Extended Cauchy construction */ #include "internal.h" diff --git a/raid/test/invtestx.c b/raid/test/invtestx.c index e672e561..304d0432 100644 --- a/raid/test/invtestx.c +++ b/raid/test/invtestx.c @@ -8,7 +8,7 @@ * nonsingular (invertible) for both operating modes: * * RAID: GF polynomial 0x11d, primitive generator g=2 - * AES: GF polynomial 0x11b, primitive generator g=3 + * AES: GF polynomial 0x11b, G23 Extended Cauchy construction */ #include "internal.h" diff --git a/raid/test/speedtest.c b/raid/test/speedtest.c index 591ff39a..f29d4eb6 100644 --- a/raid/test/speedtest.c +++ b/raid/test/speedtest.c @@ -232,12 +232,7 @@ void speed_gen(int nd, void **v, int size, int delta, int period, const char *ms printf("%8s", raid_gen_tag(RAID_ALGO_CAUCHY_PAR2)); fflush(stdout); - SPEED_START { - raid_gen2_int8(nd, size, v); - } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - fflush(stdout); + printf("%8s", ""); if (mode == RAID_MODE_CAUCHY_AES) { SPEED_START { @@ -742,15 +737,17 @@ void speed_gen(int nd, void **v, int size, int delta, int period, const char *ms #endif } if (raid_cpu_has_ssse3()) { - if (mode == RAID_MODE_CAUCHY_RAID) { + if (mode == RAID_MODE_CAUCHY_AES) { + SPEED_START { + raid_gen5_ssse3_aes(nd, size, v); + } SPEED_STOP + } else { SPEED_START { raid_gen5_ssse3_raid(nd, size, v); } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - } else { - printf("%8s", ""); } + + printf("%8" PRIu64, ds / dt); fflush(stdout); #ifdef CONFIG_X86_64 if (mode == RAID_MODE_CAUCHY_AES) { @@ -881,15 +878,17 @@ void speed_gen(int nd, void **v, int size, int delta, int period, const char *ms #endif } if (raid_cpu_has_ssse3()) { - if (mode == RAID_MODE_CAUCHY_RAID) { + if (mode == RAID_MODE_CAUCHY_AES) { + SPEED_START { + raid_gen6_ssse3_aes(nd, size, v); + } SPEED_STOP + } else { SPEED_START { raid_gen6_ssse3_raid(nd, size, v); } SPEED_STOP - - printf("%8" PRIu64, ds / dt); - } else { - printf("%8s", ""); } + + printf("%8" PRIu64, ds / dt); fflush(stdout); #ifdef CONFIG_X86_64 if (mode == RAID_MODE_CAUCHY_AES) {