diff options
author | Max <msuraev@sysmocom.de> | 2017-10-16 14:58:00 +0200 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-12-11 10:36:47 +0000 |
commit | 32e5641dbbfd91b650a9ec8cf62d28fd22109e9e (patch) | |
tree | 401803f3b61944c3264c341a54878c8456c61110 | |
parent | 9dd3bf0cb4e780b54772f4abe1e2966b09f99301 (diff) |
Add functions for extended RACH coding
Add support for extended RACH (11 bit) according 3GPP TS 45.003 ยง5.3.2:
* convolutional code with puncturing
* encoding/decoding routines
* corresponding tests
Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548
-rw-r--r-- | TODO-RELEASE | 1 | ||||
-rw-r--r-- | include/osmocom/coding/gsm0503_coding.h | 7 | ||||
-rw-r--r-- | src/coding/gsm0503_coding.c | 80 | ||||
-rw-r--r-- | src/coding/libosmocoding.map | 2 | ||||
-rw-r--r-- | src/gsm/libosmogsm.map | 1 | ||||
-rw-r--r-- | tests/coding/coding_test.c | 41 | ||||
-rw-r--r-- | tests/coding/coding_test.ok | 30720 | ||||
-rw-r--r-- | tests/conv/conv_gsm0503_test.ok | 8 | ||||
-rw-r--r-- | utils/conv_codes_gsm.py | 11 |
9 files changed, 30850 insertions, 21 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE index 99865c68..a5def797 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,4 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line core msgb_queue_free() add inline func to msgb.h +coding gsm0503_rach_ext-encode() add func to gsm0503_coding.h diff --git a/include/osmocom/coding/gsm0503_coding.h b/include/osmocom/coding/gsm0503_coding.h index a2d4115b..86610bac 100644 --- a/include/osmocom/coding/gsm0503_coding.h +++ b/include/osmocom/coding/gsm0503_coding.h @@ -5,6 +5,8 @@ #pragma once #include <stdint.h> + +#include <osmocom/core/defs.h> #include <osmocom/core/bits.h> /*! \addtogroup coding @@ -63,8 +65,11 @@ int gsm0503_tch_ahs_decode(uint8_t *tch_data, const sbit_t *bursts, int odd, int codec_mode_req, uint8_t *codec, int codecs, uint8_t *ft, uint8_t *cmr, int *n_errors, int *n_bits_total); -int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic); +int gsm0503_rach_ext_encode(ubit_t *burst, uint16_t ra, uint8_t bsic, bool is_11bit); +int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic) OSMO_DEPRECATED("Use gsm0503_rach_ext_encode() instead"); + int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic); +int gsm0503_rach_ext_decode(uint16_t *ra, const sbit_t *burst, uint8_t bsic); int gsm0503_sch_encode(ubit_t *burst, const uint8_t *sb_info); int gsm0503_sch_decode(uint8_t *sb_info, const sbit_t *burst); diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index cacc6121..f3b319ad 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -2824,13 +2824,47 @@ invalid_length: * b(0) = MSB of PLMN colour code * b(5) = LSB of BS colour code */ -static int rach_apply_bsic(ubit_t *d, uint8_t bsic) +static inline void rach_apply_bsic(ubit_t *d, uint8_t bsic, uint8_t start) { int i; /* Apply it */ for (i = 0; i < 6; i++) - d[8 + i] ^= ((bsic >> (5 - i)) & 1); + d[start + i] ^= ((bsic >> (5 - i)) & 1); +} + +static inline int16_t rach_decode(const sbit_t *burst, uint8_t bsic, bool is_11bit) +{ + ubit_t conv[17]; + uint8_t ra[2] = { 0 }, nbits = is_11bit ? 11 : 8; + int rv; + + osmo_conv_decode(is_11bit ? &gsm0503_rach_ext : &gsm0503_rach, burst, conv); + + rach_apply_bsic(conv, bsic, nbits); + + rv = osmo_crc8gen_check_bits(&gsm0503_rach_crc6, conv, nbits, conv + nbits); + if (rv) + return -1; + + osmo_ubit2pbit_ext(ra, 0, conv, 0, nbits, 1); + + return is_11bit ? osmo_load16le(ra) : ra[0]; +} + +/*! Decode the Extended (11-bit) RACH according to 3GPP TS 45.003 + * \param[out] ra output buffer for RACH data + * \param[in] burst Input burst data + * \param[in] bsic BSIC used in this cell + * \returns 0 on success; negative on error (e.g. CRC error) */ +int gsm0503_rach_ext_decode(uint16_t *ra, const sbit_t *burst, uint8_t bsic) +{ + int16_t r = rach_decode(burst, bsic, true); + + if (r < 0) + return r; + + *ra = r; return 0; } @@ -2842,18 +2876,12 @@ static int rach_apply_bsic(ubit_t *d, uint8_t bsic) * \returns 0 on success; negative on error (e.g. CRC error) */ int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic) { - ubit_t conv[14]; - int rv; - - osmo_conv_decode(&gsm0503_rach, burst, conv); + int16_t r = rach_decode(burst, bsic, false); - rach_apply_bsic(conv, bsic); - - rv = osmo_crc8gen_check_bits(&gsm0503_rach_crc6, conv, 8, conv + 8); - if (rv) - return -1; + if (r < 0) + return r; - osmo_ubit2pbit_ext(ra, 0, conv, 0, 8, 1); + *ra = r; return 0; } @@ -2865,15 +2893,33 @@ int gsm0503_rach_decode(uint8_t *ra, const sbit_t *burst, uint8_t bsic) * \returns 0 on success; negative on error */ int gsm0503_rach_encode(ubit_t *burst, const uint8_t *ra, uint8_t bsic) { - ubit_t conv[14]; + return gsm0503_rach_ext_encode(burst, *ra, bsic, false); +} + +/*! Encode the Extended (11-bit) or regular (8-bit) RACH according to 3GPP TS 45.003 + * \param[out] burst Caller-allocated output burst buffer + * \param[in] ra11 Input RACH data + * \param[in] bsic BSIC used in this cell + * \param[in] is_11bit whether given RA is 11 bit or not + * \returns 0 on success; negative on error */ +int gsm0503_rach_ext_encode(ubit_t *burst, uint16_t ra11, uint8_t bsic, bool is_11bit) +{ + ubit_t conv[17]; + uint8_t ra[2] = { 0 }, nbits = 8; + + if (is_11bit) { + osmo_store16le(ra11, ra); + nbits = 11; + } else + ra[0] = (uint8_t)ra11; - osmo_pbit2ubit_ext(conv, 0, ra, 0, 8, 1); + osmo_pbit2ubit_ext(conv, 0, ra, 0, nbits, 1); - osmo_crc8gen_set_bits(&gsm0503_rach_crc6, conv, 8, conv + 8); + osmo_crc8gen_set_bits(&gsm0503_rach_crc6, conv, nbits, conv + nbits); - rach_apply_bsic(conv, bsic); + rach_apply_bsic(conv, bsic, nbits); - osmo_conv_encode(&gsm0503_rach, conv, burst); + osmo_conv_encode(is_11bit ? &gsm0503_rach_ext : &gsm0503_rach, conv, burst); return 0; } diff --git a/src/coding/libosmocoding.map b/src/coding/libosmocoding.map index dbb53dec..95953cf2 100644 --- a/src/coding/libosmocoding.map +++ b/src/coding/libosmocoding.map @@ -108,6 +108,8 @@ gsm0503_tch_afs_encode; gsm0503_tch_afs_decode; gsm0503_tch_ahs_encode; gsm0503_tch_ahs_decode; +gsm0503_rach_ext_encode; +gsm0503_rach_ext_decode; gsm0503_rach_encode; gsm0503_rach_decode; gsm0503_sch_encode; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index a72db524..6e6638a9 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -97,6 +97,7 @@ gsm0502_calc_paging_group; gsm0503_xcch; gsm0503_rach; +gsm0503_rach_ext; gsm0503_sch; gsm0503_cs2; gsm0503_cs3; diff --git a/tests/coding/coding_test.c b/tests/coding/coding_test.c index b77410fd..511dbb7b 100644 --- a/tests/coding/coding_test.c +++ b/tests/coding/coding_test.c @@ -110,7 +110,7 @@ static void test_rach(uint8_t bsic, uint8_t ra) /* Encode L2 message */ printf("Encoding: %02x\n", ra); - gsm0503_rach_encode(bursts_u, &ra, bsic); + gsm0503_rach_ext_encode(bursts_u, ra, bsic, false); /* Prepare soft-bits */ osmo_ubit2sbit(bursts_s, bursts_u, 36); @@ -126,7 +126,38 @@ static void test_rach(uint8_t bsic, uint8_t ra) gsm0503_rach_decode(&result, bursts_s, bsic); printf("Decoded: %02x\n", result); - OSMO_ASSERT(ra == result); + if (ra != result) + printf("FAIL [RACH]: encoded %u != %u decoded\n", ra, result); + + printf("\n"); +} + +static void test_rach_ext(uint8_t bsic, uint16_t ra) +{ + uint16_t result = 3000; /* Max ext. RA is 2^11 = 2048 */ + ubit_t bursts_u[36]; + sbit_t bursts_s[36]; + + /* Encode L2 message */ + printf("Encoding: %02x\n", ra); + gsm0503_rach_ext_encode(bursts_u, ra, bsic, true); + + /* Prepare soft-bits */ + osmo_ubit2sbit(bursts_s, bursts_u, 36); + + printf("U-Bits: %s\n", osmo_ubit_dump(bursts_u, 36)); + + printf("S-Bits: %s\n", osmo_hexdump((uint8_t *)bursts_s, 36)); + + /* Destroy some bits */ + memset(bursts_s + 9, 0, 8); + + /* Decode, correcting errors */ + gsm0503_rach_ext_decode(&result, bursts_s, bsic); + printf("Decoded: %02x\n", result); + + if (ra != result) + printf("FAIL [RACH ext]: encoded %u != %u decoded\n", ra, result); printf("\n"); } @@ -332,6 +363,12 @@ int main(int argc, char **argv) test_rach(0x1a, i); } + for (i = 0; i < 2048; i++) { + test_rach_ext(0x3f, i); + test_rach_ext(0x00, i); + test_rach_ext(0x1a, i); + } + for (i = 0; i < len_l2; i++) test_sch(test_l2[i]); diff --git a/tests/coding/coding_test.ok b/tests/coding/coding_test.ok index 619f038b..8813af20 100644 --- a/tests/coding/coding_test.ok +++ b/tests/coding/coding_test.ok @@ -3880,6 +3880,30726 @@ U-Bits: 111010011010101001001101010001111111 S-Bits: 81 81 81 7f 81 7f 7f 81 81 7f 81 7f 81 7f 81 7f 7f 81 7f 7f 81 81 7f 81 7f 81 7f 7f 7f 81 81 81 81 81 81 81 Decoded: ff +Encoding: 00 +U-Bits: 000000000000000000000000000000000000 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f +Decoded: 00 + +Encoding: 00 +U-Bits: 000000000000000000011101001101001001 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 7f 7f 81 +Decoded: 00 + +Encoding: 00 +U-Bits: 000000000000000000011010000101110111 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 +Decoded: 00 + +Encoding: 01 +U-Bits: 110111100000000000011101001100100010 +S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 7f +Decoded: 01 + +Encoding: 01 +U-Bits: 110111100000000000000000000001101011 +S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 81 81 +Decoded: 01 + +Encoding: 01 +U-Bits: 110111100000000000000111001001010101 +S-Bits: 81 81 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 7f 81 +Decoded: 01 + +Encoding: 02 +U-Bits: 010001111000000000000111010011001001 +S-Bits: 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 +Decoded: 02 + +Encoding: 02 +U-Bits: 010001111000000000011010011110000000 +S-Bits: 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f +Decoded: 02 + +Encoding: 02 +U-Bits: 010001111000000000011101010110111110 +S-Bits: 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 7f +Decoded: 02 + +Encoding: 03 +U-Bits: 100110011000000000011010011111101011 +S-Bits: 81 7f 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 81 81 7f 81 7f 81 81 +Decoded: 03 + +Encoding: 03 +U-Bits: 100110011000000000000111010010100010 +S-Bits: 81 7f 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 81 7f +Decoded: 03 + +Encoding: 03 +U-Bits: 100110011000000000000000011010011100 +S-Bits: 81 7f 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 7f 7f +Decoded: 03 + +Encoding: 04 +U-Bits: 001010011110000000011101010000011000 +S-Bits: 7f 7f 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f +Decoded: 04 + +Encoding: 04 +U-Bits: 001010011110000000000000011101010001 +S-Bits: 7f 7f 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 +Decoded: 04 + +Encoding: 04 +U-Bits: 001010011110000000000111010101101111 +S-Bits: 7f 7f 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 +Decoded: 04 + +Encoding: 05 +U-Bits: 111101111110000000000000011100111010 +S-Bits: 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 81 7f +Decoded: 05 + +Encoding: 05 +U-Bits: 111101111110000000011101010001110011 +S-Bits: 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 81 81 7f 7f 81 81 +Decoded: 05 + +Encoding: 05 +U-Bits: 111101111110000000011010011001001101 +S-Bits: 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 81 7f 81 +Decoded: 05 + +Encoding: 06 +U-Bits: 011011100110000000011010000011010001 +S-Bits: 7f 81 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 81 +Decoded: 06 + +Encoding: 06 +U-Bits: 011011100110000000000111001110011000 +S-Bits: 7f 81 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f +Decoded: 06 + +Encoding: 06 +U-Bits: 011011100110000000000000000110100110 +S-Bits: 7f 81 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f +Decoded: 06 + +Encoding: 07 +U-Bits: 101100000110000000000111001111110011 +S-Bits: 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 81 81 +Decoded: 07 + +Encoding: 07 +U-Bits: 101100000110000000011010000010111010 +S-Bits: 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 81 7f +Decoded: 07 + +Encoding: 07 +U-Bits: 101100000110000000011101001010000100 +S-Bits: 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f +Decoded: 07 + +Encoding: 08 +U-Bits: 000110100111100000000111010100000100 +S-Bits: 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 7f 7f +Decoded: 08 + +Encoding: 08 +U-Bits: 000110100111100000011010011001001101 +S-Bits: 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 81 7f 81 +Decoded: 08 + +Encoding: 08 +U-Bits: 000110100111100000011101010001110011 +S-Bits: 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 81 81 7f 7f 81 81 +Decoded: 08 + +Encoding: 09 +U-Bits: 110001000111100000011010011000100110 +S-Bits: 81 81 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 7f +Decoded: 09 + +Encoding: 09 +U-Bits: 110001000111100000000111010101101111 +S-Bits: 81 81 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 +Decoded: 09 + +Encoding: 09 +U-Bits: 110001000111100000000000011101010001 +S-Bits: 81 81 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 +Decoded: 09 + +Encoding: 0a +U-Bits: 010111011111100000000000000111001101 +S-Bits: 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 7f 81 +Decoded: 0a + +Encoding: 0a +U-Bits: 010111011111100000011101001010000100 +S-Bits: 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f +Decoded: 0a + +Encoding: 0a +U-Bits: 010111011111100000011010000010111010 +S-Bits: 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 81 7f +Decoded: 0a + +Encoding: 0b +U-Bits: 100000111111100000011101001011101111 +S-Bits: 81 7f 7f 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 81 81 7f 81 81 81 81 +Decoded: 0b + +Encoding: 0b +U-Bits: 100000111111100000000000000110100110 +S-Bits: 81 7f 7f 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f +Decoded: 0b + +Encoding: 0b +U-Bits: 100000111111100000000111001110011000 +S-Bits: 81 7f 7f 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f +Decoded: 0b + +Encoding: 0c +U-Bits: 001100111001100000011010000100011100 +S-Bits: 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 7f 7f +Decoded: 0c + +Encoding: 0c +U-Bits: 001100111001100000000111001001010101 +S-Bits: 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 7f 81 +Decoded: 0c + +Encoding: 0c +U-Bits: 001100111001100000000000000001101011 +S-Bits: 7f 7f 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 81 81 +Decoded: 0c + +Encoding: 0d +U-Bits: 111011011001100000000111001000111110 +S-Bits: 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 7f +Decoded: 0d + +Encoding: 0d +U-Bits: 111011011001100000011010000101110111 +S-Bits: 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 +Decoded: 0d + +Encoding: 0d +U-Bits: 111011011001100000011101001101001001 +S-Bits: 81 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 7f 7f 81 +Decoded: 0d + +Encoding: 0e +U-Bits: 011101000001100000011101010111010101 +S-Bits: 7f 81 81 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 81 7f 81 7f 81 7f 81 +Decoded: 0e + +Encoding: 0e +U-Bits: 011101000001100000000000011010011100 +S-Bits: 7f 81 81 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 7f 7f +Decoded: 0e + +Encoding: 0e +U-Bits: 011101000001100000000111010010100010 +S-Bits: 7f 81 81 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 81 7f +Decoded: 0e + +Encoding: 0f +U-Bits: 101010100001100000000000011011110111 +S-Bits: 81 7f 81 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 +Decoded: 0f + +Encoding: 0f +U-Bits: 101010100001100000011101010110111110 +S-Bits: 81 7f 81 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 7f +Decoded: 0f + +Encoding: 0f +U-Bits: 101010100001100000011010011110000000 +S-Bits: 81 7f 81 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f +Decoded: 0f + +Encoding: 10 +U-Bits: 000001101001111000000001110101000010 +S-Bits: 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 81 7f +Decoded: 10 + +Encoding: 10 +U-Bits: 000001101001111000011100111000001011 +S-Bits: 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 7f 7f 7f 81 7f 81 81 +Decoded: 10 + +Encoding: 10 +U-Bits: 000001101001111000011011110000110101 +S-Bits: 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 7f 81 +Decoded: 10 + +Encoding: 11 +U-Bits: 110110001001111000011100111001100000 +S-Bits: 81 81 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f +Decoded: 11 + +Encoding: 11 +U-Bits: 110110001001111000000001110100101001 +S-Bits: 81 81 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 81 +Decoded: 11 + +Encoding: 11 +U-Bits: 110110001001111000000110111100010111 +S-Bits: 81 81 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 +Decoded: 11 + +Encoding: 12 +U-Bits: 010000010001111000000110100110001011 +S-Bits: 7f 81 7f 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 81 81 +Decoded: 12 + +Encoding: 12 +U-Bits: 010000010001111000011011101011000010 +S-Bits: 7f 81 7f 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 81 7f +Decoded: 12 + +Encoding: 12 +U-Bits: 010000010001111000011100100011111100 +S-Bits: 7f 81 7f 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 7f 7f +Decoded: 12 + +Encoding: 13 +U-Bits: 100111110001111000011011101010101001 +S-Bits: 81 7f 7f 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 7f 81 7f 81 7f 81 7f 7f 81 +Decoded: 13 + +Encoding: 13 +U-Bits: 100111110001111000000110100111100000 +S-Bits: 81 7f 7f 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f +Decoded: 13 + +Encoding: 13 +U-Bits: 100111110001111000000001101111011110 +S-Bits: 81 7f 7f 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 7f +Decoded: 13 + +Encoding: 14 +U-Bits: 001011110111111000011100100101011010 +S-Bits: 7f 7f 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 81 7f 81 7f +Decoded: 14 + +Encoding: 14 +U-Bits: 001011110111111000000001101000010011 +S-Bits: 7f 7f 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 81 81 +Decoded: 14 + +Encoding: 14 +U-Bits: 001011110111111000000110100000101101 +S-Bits: 7f 7f 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 7f 81 +Decoded: 14 + +Encoding: 15 +U-Bits: 111100010111111000000001101001111000 +S-Bits: 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f +Decoded: 15 + +Encoding: 15 +U-Bits: 111100010111111000011100100100110001 +S-Bits: 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 7f 81 81 7f 7f 7f 81 +Decoded: 15 + +Encoding: 15 +U-Bits: 111100010111111000011011101100001111 +S-Bits: 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 81 +Decoded: 15 + +Encoding: 16 +U-Bits: 011010001111111000011011110110010011 +S-Bits: 7f 81 81 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 7f 7f 81 7f 7f 81 81 +Decoded: 16 + +Encoding: 16 +U-Bits: 011010001111111000000110111011011010 +S-Bits: 7f 81 81 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 81 7f +Decoded: 16 + +Encoding: 16 +U-Bits: 011010001111111000000001110011100100 +S-Bits: 7f 81 81 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 7f 7f +Decoded: 16 + +Encoding: 17 +U-Bits: 101101101111111000000110111010110001 +S-Bits: 81 7f 81 81 7f 81 81 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 7f 81 81 7f 7f 7f 81 +Decoded: 17 + +Encoding: 17 +U-Bits: 101101101111111000011011110111111000 +S-Bits: 81 7f 81 81 7f 81 81 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f +Decoded: 17 + +Encoding: 17 +U-Bits: 101101101111111000011100111111000110 +S-Bits: 81 7f 81 81 7f 81 81 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 7f +Decoded: 17 + +Encoding: 18 +U-Bits: 000111001110011000000110100001000110 +S-Bits: 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 7f +Decoded: 18 + +Encoding: 18 +U-Bits: 000111001110011000011011101100001111 +S-Bits: 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 81 +Decoded: 18 + +Encoding: 18 +U-Bits: 000111001110011000011100100100110001 +S-Bits: 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 7f 81 81 7f 7f 7f 81 +Decoded: 18 + +Encoding: 19 +U-Bits: 110000101110011000011011101101100100 +S-Bits: 81 81 7f 7f 7f 7f 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 7f 81 7f 7f +Decoded: 19 + +Encoding: 19 +U-Bits: 110000101110011000000110100000101101 +S-Bits: 81 81 7f 7f 7f 7f 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 7f 81 +Decoded: 19 + +Encoding: 19 +U-Bits: 110000101110011000000001101000010011 +S-Bits: 81 81 7f 7f 7f 7f 81 7f 81 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 81 81 +Decoded: 19 + +Encoding: 1a +U-Bits: 010110110110011000000001110010001111 +S-Bits: 7f 81 7f 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 +Decoded: 1a + +Encoding: 1a +U-Bits: 010110110110011000011100111111000110 +S-Bits: 7f 81 7f 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 7f 81 81 7f +Decoded: 1a + +Encoding: 1a +U-Bits: 010110110110011000011011110111111000 +S-Bits: 7f 81 7f 81 81 7f 81 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f +Decoded: 1a + +Encoding: 1b +U-Bits: 100001010110011000011100111110101101 +S-Bits: 81 7f 7f 7f 7f 81 7f 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 81 81 7f 81 7f 81 81 7f 81 +Decoded: 1b + +Encoding: 1b +U-Bits: 100001010110011000000001110011100100 +S-Bits: 81 7f 7f 7f 7f 81 7f 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 7f 7f +Decoded: 1b + +Encoding: 1b +U-Bits: 100001010110011000000110111011011010 +S-Bits: 81 7f 7f 7f 7f 81 7f 81 7f 81 81 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 81 7f 81 7f +Decoded: 1b + +Encoding: 1c +U-Bits: 001101010000011000011011110001011110 +S-Bits: 7f 7f 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 81 7f +Decoded: 1c + +Encoding: 1c +U-Bits: 001101010000011000000110111100010111 +S-Bits: 7f 7f 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 81 7f 81 81 81 +Decoded: 1c + +Encoding: 1c +U-Bits: 001101010000011000000001110100101001 +S-Bits: 7f 7f 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 81 +Decoded: 1c + +Encoding: 1d +U-Bits: 111010110000011000000110111101111100 +S-Bits: 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 7f 7f +Decoded: 1d + +Encoding: 1d +U-Bits: 111010110000011000011011110000110101 +S-Bits: 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 7f 7f 7f 81 81 7f 81 7f 81 +Decoded: 1d + +Encoding: 1d +U-Bits: 111010110000011000011100111000001011 +S-Bits: 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 7f 7f 7f 81 7f 81 81 +Decoded: 1d + +Encoding: 1e +U-Bits: 011100101000011000011100100010010111 +S-Bits: 7f 81 81 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 7f 7f 81 7f 81 81 81 +Decoded: 1e + +Encoding: 1e +U-Bits: 011100101000011000000001101111011110 +S-Bits: 7f 81 81 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 7f +Decoded: 1e + +Encoding: 1e +U-Bits: 011100101000011000000110100111100000 +S-Bits: 7f 81 81 81 7f 7f 81 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f +Decoded: 1e + +Encoding: 1f +U-Bits: 101011001000011000000001101110110101 +S-Bits: 81 7f 81 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 81 7f 81 7f 81 +Decoded: 1f + +Encoding: 1f +U-Bits: 101011001000011000011100100011111100 +S-Bits: 81 7f 81 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 7f 7f +Decoded: 1f + +Encoding: 1f +U-Bits: 101011001000011000011011101011000010 +S-Bits: 81 7f 81 7f 81 81 7f 7f 81 7f 7f 7f 7f 81 81 7f 7f 7f 7f 81 81 7f 81 81 81 7f 81 7f 81 81 7f 7f 7f 7f 81 7f +Decoded: 1f + +Encoding: 20 +U-Bits: 000000011010011110000000011101010001 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 +Decoded: 20 + +Encoding: 20 +U-Bits: 000000011010011110011101010000011000 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 7f 7f +Decoded: 20 + +Encoding: 20 +U-Bits: 000000011010011110011010011000100110 +S-Bits: 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 7f +Decoded: 20 + +Encoding: 21 +U-Bits: 110111111010011110011101010001110011 +S-Bits: 81 81 7f 81 81 81 81 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 81 81 81 7f 7f 81 81 +Decoded: 21 + +Encoding: 21 +U-Bits: 110111111010011110000000011100111010 +S-Bits: 81 81 7f 81 81 81 81 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 81 7f +Decoded: 21 + +Encoding: 21 +U-Bits: 110111111010011110000111010100000100 +S-Bits: 81 81 7f 81 81 81 81 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 7f 7f +Decoded: 21 + +Encoding: 22 +U-Bits: 010001100010011110000111001110011000 +S-Bits: 7f 81 7f 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 7f 81 81 7f 7f 7f +Decoded: 22 + +Encoding: 22 +U-Bits: 010001100010011110011010000011010001 +S-Bits: 7f 81 7f 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 7f 81 +Decoded: 22 + +Encoding: 22 +U-Bits: 010001100010011110011101001011101111 +S-Bits: 7f 81 7f 7f 7f 81 81 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 81 81 7f 81 81 81 81 +Decoded: 22 + +Encoding: 23 +U-Bits: 100110000010011110011010000010111010 +S-Bits: 81 7f 7f 81 81 7f 7f 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 7f 81 7f 81 81 81 7f 81 7f +Decoded: 23 + +Encoding: 23 +U-Bits: 100110000010011110000111001111110011 +S-Bits: 81 7f 7f 81 81 7f 7f 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 81 81 81 7f 7f 81 81 +Decoded: 23 + +Encoding: 23 +U-Bits: 100110000010011110000000000111001101 +S-Bits: 81 7f 7f 81 81 7f 7f 7f 7f 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 7f 81 +Decoded: 23 + +Encoding: 24 +U-Bits: 001010000100011110011101001101001001 +S-Bits: 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 81 7f 7f 81 7f 7f 81 +Decoded: 24 + +Encoding: 24 +U-Bits: 001010000100011110000000000000000000 +S-Bits: 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f +Decoded: 24 + +Encoding: 24 +U-Bits: 001010000100011110000111001000111110 +S-Bits: 7f 7f 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 7f +Decoded: 24 + +Encoding: 25 +U-Bits: 111101100100011110000000000001101011 +S-Bits: 81 81 81 81 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 81 81 +Decoded: 25 + +Encoding: 25 +U-Bits: 111101100100011110011101001100100010 +S-Bits: 81 81 81 81 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 7f +Decoded: 25 + +Encoding: 25 +U-Bits: 111101100100011110011010000100011100 +S-Bits: 81 81 81 81 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 7f 7f +Decoded: 25 + +Encoding: 26 +U-Bits: 011011111100011110011010011110000000 +S-Bits: 7f 81 81 7f 81 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f +Decoded: 26 + +Encoding: 26 +U-Bits: 011011111100011110000111010011001001 +S-Bits: 7f 81 81 7f 81 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 +Decoded: 26 + +Encoding: 26 +U-Bits: 011011111100011110000000011011110111 +S-Bits: 7f 81 81 7f 81 81 81 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 +Decoded: 26 + +Encoding: 27 +U-Bits: 101100011100011110000111010010100010 +S-Bits: 81 7f 81 81 7f 7f 7f 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 7f 81 7f 7f 7f 81 7f +Decoded: 27 + +Encoding: 27 +U-Bits: 101100011100011110011010011111101011 +S-Bits: 81 7f 81 81 7f 7f 7f 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 81 81 7f 81 7f 81 81 +Decoded: 27 + +Encoding: 27 +U-Bits: 101100011100011110011101010111010101 +S-Bits: 81 7f 81 81 7f 7f 7f 81 81 81 7f 7f 7f 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 81 7f 81 7f 81 7f 81 +Decoded: 27 + +Encoding: 28 +U-Bits: 000110111101111110000111001001010101 +S-Bits: 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 81 7f 81 7f 81 7f 81 +Decoded: 28 + +Encoding: 28 +U-Bits: 000110111101111110011010000100011100 +S-Bits: 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 7f 7f 81 81 81 7f 7f +Decoded: 28 + +Encoding: 28 +U-Bits: 000110111101111110011101001100100010 +S-Bits: 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 7f +Decoded: 28 + +Encoding: 29 +U-Bits: 110001011101111110011010000101110111 +S-Bits: 81 81 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 +Decoded: 29 + +Encoding: 29 +U-Bits: 110001011101111110000111001000111110 +S-Bits: 81 81 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 7f +Decoded: 29 + +Encoding: 29 +U-Bits: 110001011101111110000000000000000000 +S-Bits: 81 81 7f 7f 7f 81 7f 81 81 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f +Decoded: 29 + +Encoding: 2a +U-Bits: 010111000101111110000000011010011100 +S-Bits: 7f 81 7f 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 7f 7f 81 81 81 7f 7f +Decoded: 2a + +Encoding: 2a +U-Bits: 010111000101111110011101010111010101 +S-Bits: 7f 81 7f 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 81 7f 81 7f 81 7f 81 +Decoded: 2a + +Encoding: 2a +U-Bits: 010111000101111110011010011111101011 +S-Bits: 7f 81 7f 81 81 81 7f 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 81 81 81 81 7f 81 7f 81 81 +Decoded: 2a + +Encoding: 2b +U-Bits: 100000100101111110011101010110111110 +S-Bits: 81 7f 7f 7f 7f 7f 81 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 81 7f +Decoded: 2b + +Encoding: 2b +U-Bits: 100000100101111110000000011011110111 +S-Bits: 81 7f 7f 7f 7f 7f 81 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 7f 81 81 81 81 7f 81 81 81 +Decoded: 2b + +Encoding: 2b +U-Bits: 100000100101111110000111010011001001 +S-Bits: 81 7f 7f 7f 7f 7f 81 7f 7f 81 7f 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 +Decoded: 2b + +Encoding: 2c +U-Bits: 001100100011111110011010011001001101 +S-Bits: 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 81 81 7f 81 7f 7f 81 81 7f 7f 81 7f 7f 81 81 7f 81 +Decoded: 2c + +Encoding: 2c +U-Bits: 001100100011111110000111010100000100 +S-Bits: 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 7f 7f 7f 7f 81 7f 7f +Decoded: 2c + +Encoding: 2c +U-Bits: 001100100011111110000000011100111010 +S-Bits: 7f 7f 81 81 7f 7f 81 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 7f 7f 7f 7f 81 81 81 7f 7f 81 81 81 7f 81 7f +Decoded: 2c + +Encoding: 2d +U-Bits: 111011000011111110000111010101101111 +S-Bits: 81 81 81 7f 81 81 7f 7f 7f 7f 81 81 81 81 81 81 81 7f 7f 7f 7f 81 81 81 7f 81 7f 81 7f 81 81 7f 81 81 81 81 +Decoded: 2d + +Encoding: 2d +U-Bits: 111011000011111110011010011000100110 +S-Bits: 81 81 81 |