{
  "ok": true,
  "tool": "webftr-js8-post-ldpc-info87-runtime-export-probe",
  "tool_version": "step62-source-derived-deinterleaver-whitening-map-probe",
  "rx_only_guard": {
    "tx": false,
    "ptt": false,
    "tune": false,
    "send": false,
    "js8call_runtime_control": false
  },
  "no_gui_runtime_started": true,
  "input_wav": "/decoders/js8_test.wav",
  "log_dir": "/decoders/js8_decoder/logs",
  "output_dir": "/decoders/js8_decoder/logs/step61_post_ldpc_runtime",
  "candidate_json": "/decoders/js8_decoder/logs/step61_post_ldpc_runtime/js8_test_fec_candidate_step17.json",
  "matrix_error": null,
  "soft_error": null,
  "matrix_ok": true,
  "soft_ok": true,
  "runtime_info87_rows_count": 48,
  "zero_distance_candidate_count": 0,
  "best_distance": 3,
  "best_runtime_info87_row": {
    "source": "matrix_probe.all_matrix_probes",
    "row_name": "matrix_probe_10",
    "info87_bits": [
      0,
      1,
      1,
      0,
      0,
      0,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      1,
      0,
      1,
      1,
      0,
      0,
      1,
      0,
      0,
      1,
      1,
      0,
      0,
      1,
      0,
      0,
      1,
      0,
      1,
      1,
      1,
      0,
      0,
      0,
      1,
      1,
      0,
      1,
      1,
      0,
      1,
      1,
      0,
      1,
      1,
      0,
      1,
      0,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      1,
      1,
      0,
      1,
      1,
      1,
      0,
      1,
      1,
      0,
      1,
      0,
      0,
      1,
      0,
      0,
      1,
      0,
      1,
      0,
      0
    ],
    "info87_bitstring": "011000100000011111100101100100110010010111000110110110110101100000110111011010010010100",
    "info87_llr": [
      2.713685,
      0.256719,
      -2.159951,
      2.471102,
      0.050013,
      3.558419,
      -3.330023,
      0.0,
      0.03282,
      2.053571,
      1.05003,
      0.874533,
      3.576055,
      -0.03837,
      -4.07886,
      -3.298054,
      -2.719878,
      -0.105514,
      -2.454153,
      2.387264,
      2.968724,
      -0.199817,
      0.136163,
      -2.793506,
      -1.940982,
      1.912324,
      0.48993,
      -1.621495,
      0.155054,
      0.63733,
      -4.117514,
      -0.320699,
      2.691802,
      1.996951,
      -3.201109,
      2.064683,
      2.705783,
      -4.163159,
      1.517749,
      -0.39142,
      -2.826873,
      -3.303247,
      0.411809,
      0.0,
      3.401936,
      -2.978935,
      0.000245,
      0.938613,
      -3.970155,
      -2.847049,
      1.016789,
      -0.323135,
      -3.632038,
      4.130021,
      -2.493348,
      -1.489597,
      2.143109,
      0.245366,
      1.855579,
      -3.499585,
      -3.395818,
      0.001417,
      3.498217,
      1.199596,
      3.379353,
      0.096777,
      -3.430657,
      -1.063134,
      0.003106,
      -9.4e-05,
      -3.378169,
      -1.747844,
      1.512,
      -4.105595,
      -1.813838,
      1.663707,
      0.116975,
      3.324597,
      2.678618,
      -3.274867,
      2.019584,
      0.397888,
      -0.453233,
      2.632003,
      0.016174,
      0.843582,
      3.850408
    ],
    "info87_llr_count": 87,
    "least_reliable_info87_indices": [
      7,
      43,
      69,
      46,
      61,
      68,
      84,
      8,
      13,
      4,
      65,
      17,
      76,
      22,
      28,
      21,
      57,
      1
    ],
    "message174_crc12": {
      "ok": true,
      "distance": 3,
      "crc_match": false,
      "received_crc12": 1172,
      "computed_crc12": 1116,
      "message_preview_12chars": "OWVbaoN6srWt",
      "message_words_6bit": [
        24,
        32,
        31,
        37,
        36,
        50,
        23,
        6,
        54,
        53,
        32,
        55
      ]
    },
    "source_index_context": {
      "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
      "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
      "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
      "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
    },
    "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse",
    "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
  },
  "runtime_info87_rows_preview": [
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_10",
      "info87_bits": [
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0
      ],
      "info87_bitstring": "011000100000011111100101100100110010010111000110110110110101100000110111011010010010100",
      "info87_llr": [
        2.713685,
        0.256719,
        -2.159951,
        2.471102,
        0.050013,
        3.558419,
        -3.330023,
        0.0,
        0.03282,
        2.053571,
        1.05003,
        0.874533,
        3.576055,
        -0.03837,
        -4.07886,
        -3.298054,
        -2.719878,
        -0.105514,
        -2.454153,
        2.387264,
        2.968724,
        -0.199817,
        0.136163,
        -2.793506,
        -1.940982,
        1.912324,
        0.48993,
        -1.621495,
        0.155054,
        0.63733,
        -4.117514,
        -0.320699,
        2.691802,
        1.996951,
        -3.201109,
        2.064683,
        2.705783,
        -4.163159,
        1.517749,
        -0.39142,
        -2.826873,
        -3.303247,
        0.411809,
        0.0,
        3.401936,
        -2.978935,
        0.000245,
        0.938613,
        -3.970155,
        -2.847049,
        1.016789,
        -0.323135,
        -3.632038,
        4.130021,
        -2.493348,
        -1.489597,
        2.143109,
        0.245366,
        1.855579,
        -3.499585,
        -3.395818,
        0.001417,
        3.498217,
        1.199596,
        3.379353,
        0.096777,
        -3.430657,
        -1.063134,
        0.003106,
        -9.4e-05,
        -3.378169,
        -1.747844,
        1.512,
        -4.105595,
        -1.813838,
        1.663707,
        0.116975,
        3.324597,
        2.678618,
        -3.274867,
        2.019584,
        0.397888,
        -0.453233,
        2.632003,
        0.016174,
        0.843582,
        3.850408
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        7,
        43,
        69,
        46,
        61,
        68,
        84,
        8,
        13,
        4,
        65,
        17,
        76,
        22,
        28,
        21,
        57,
        1
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 3,
        "crc_match": false,
        "received_crc12": 1172,
        "computed_crc12": 1116,
        "message_preview_12chars": "OWVbaoN6srWt",
        "message_words_6bit": [
          24,
          32,
          31,
          37,
          36,
          50,
          23,
          6,
          54,
          53,
          32,
          55
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse",
      "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_10",
      "info87_bits": [
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0
      ],
      "info87_bitstring": "011000100000011111100101100100110010010111000110110110110101100000110111011010010010100",
      "info87_llr": [
        2.713685,
        0.256719,
        -2.159951,
        2.471102,
        0.050013,
        3.558419,
        -3.330023,
        0.0,
        0.03282,
        2.053571,
        1.05003,
        0.874533,
        3.576055,
        -0.03837,
        -4.07886,
        -3.298054,
        -2.719878,
        -0.105514,
        -2.454153,
        2.387264,
        2.968724,
        -0.199817,
        0.136163,
        -2.793506,
        -1.940982,
        1.912324,
        0.48993,
        -1.621495,
        0.155054,
        0.63733,
        -4.117514,
        -0.320699,
        2.691802,
        1.996951,
        -3.201109,
        2.064683,
        2.705783,
        -4.163159,
        1.517749,
        -0.39142,
        -2.826873,
        -3.303247,
        0.411809,
        0.0,
        3.401936,
        -2.978935,
        0.000245,
        0.938613,
        -3.970155,
        -2.847049,
        1.016789,
        -0.323135,
        -3.632038,
        4.130021,
        -2.493348,
        -1.489597,
        2.143109,
        0.245366,
        1.855579,
        -3.499585,
        -3.395818,
        0.001417,
        3.498217,
        1.199596,
        3.379353,
        0.096777,
        -3.430657,
        -1.063134,
        0.003106,
        -9.4e-05,
        -3.378169,
        -1.747844,
        1.512,
        -4.105595,
        -1.813838,
        1.663707,
        0.116975,
        3.324597,
        2.678618,
        -3.274867,
        2.019584,
        0.397888,
        -0.453233,
        2.632003,
        0.016174,
        0.843582,
        3.850408
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        7,
        43,
        69,
        46,
        61,
        68,
        84,
        8,
        13,
        4,
        65,
        17,
        76,
        22,
        28,
        21,
        57,
        1
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 3,
        "crc_match": false,
        "received_crc12": 1172,
        "computed_crc12": 1116,
        "message_preview_12chars": "OWVbaoN6srWt",
        "message_words_6bit": [
          24,
          32,
          31,
          37,
          36,
          50,
          23,
          6,
          54,
          53,
          32,
          55
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_1",
      "info87_bits": [
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "010110001111011100011011101000000010100111011010101000010111000101001010011010000010000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 1040,
        "computed_crc12": 240,
        "message_preview_12chars": "MFSRe2dQeN5A",
        "message_words_6bit": [
          22,
          15,
          28,
          27,
          40,
          2,
          39,
          26,
          40,
          23,
          5,
          10
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_1",
      "info87_bits": [
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "010110001111011100011011101000000010100111011010101000010111000101001010011010000010000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 4,
        "crc_match": false,
        "received_crc12": 1040,
        "computed_crc12": 240,
        "message_preview_12chars": "MFSRe2dQeN5A",
        "message_words_6bit": [
          22,
          15,
          28,
          27,
          40,
          2,
          39,
          26,
          40,
          23,
          5,
          10
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_4",
      "info87_bits": [
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0
      ],
      "info87_bitstring": "100010101110111110111011101000011011001110001101100110111101100110111100010101101011100",
      "info87_llr": [
        -3.175167,
        1.444138,
        1.348215,
        2.373598,
        -0.077873,
        0.053645,
        -0.863008,
        -0.060529,
        0.139647,
        -3.147547,
        -1.318165,
        0.501753,
        -2.580003,
        -0.950294,
        -0.721196,
        -3.35976,
        -2.643905,
        2.649394,
        -0.142766,
        -0.131907,
        -0.712903,
        0.831188,
        -0.47611,
        -0.39454,
        -0.001825,
        0.00114,
        -0.387615,
        2.678121,
        0.379239,
        0.367315,
        0.159525,
        0.022724,
        0.106544,
        1.047778,
        -0.488105,
        -0.005443,
        0.021519,
        0.0,
        0.0,
        -0.60639,
        -0.525575,
        2.300703,
        2.878553,
        1.39816,
        -1.201506,
        -1.361139,
        1.038295,
        -1.728366,
        -0.375057,
        0.256955,
        1.477831,
        0.00654,
        0.000562,
        0.161258,
        -1.444438,
        -1.202161,
        -2.114301,
        -1.599597,
        0.050862,
        -0.067634,
        -0.831333,
        0.61417,
        0.367797,
        -2.643836,
        -1.673644,
        0.250335,
        -0.628159,
        -0.389345,
        0.000978,
        -1.905868,
        0.267501,
        0.334387,
        0.592541,
        -0.125369,
        0.046555,
        -0.461264,
        0.171058,
        -0.077739,
        -0.026378,
        0.025472,
        -2.889754,
        0.558538,
        -0.514067,
        -1.908812,
        -0.772235,
        0.548293,
        0.818247
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        37,
        38,
        52,
        68,
        25,
        24,
        35,
        51,
        36,
        31,
        79,
        78,
        74,
        58,
        5,
        7,
        59,
        77
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2908,
        "computed_crc12": 538,
        "message_preview_12chars": "Yk xeREDczcy",
        "message_words_6bit": [
          34,
          46,
          62,
          59,
          40,
          27,
          14,
          13,
          38,
          61,
          38,
          60
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_msb_input+no_interleaver",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_9",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0
      ],
      "info87_bitstring": "010000010101001000110110111100000000010000010010011011010010101011011100001011010010010",
      "info87_llr": [
        3.175167,
        -0.0,
        -0.0,
        1.4804,
        1.16514,
        1.121706,
        0.186898,
        -0.319708,
        0.140275,
        -3.409336,
        2.262486,
        -0.767498,
        0.23193,
        0.103943,
        -0.180688,
        1.420297,
        0.677631,
        1.519813,
        -0.085593,
        -0.30299,
        0.079755,
        -0.638724,
        -0.318538,
        0.631145,
        -0.407482,
        -2.232178,
        -1.724721,
        -0.560404,
        0.528597,
        0.52663,
        3.230417,
        0.852882,
        0.088681,
        3.091603,
        0.422278,
        -0.131414,
        0.001272,
        0.003121,
        1.905868,
        1.897049,
        1.626923,
        0.290978,
        0.076629,
        -6.3e-05,
        0.020602,
        2.801472,
        -3.265939,
        2.268536,
        3.147547,
        -2.39421,
        -3.426809,
        -0.159398,
        0.203929,
        -0.615313,
        0.461264,
        -0.195897,
        0.777201,
        2.038189,
        -2.136661,
        1.973914,
        -2.156834,
        1.696947,
        -0.863176,
        3.086802,
        -1.368014,
        -2.596191,
        2.230806,
        -0.000523,
        -0.001614,
        -0.758241,
        -0.001038,
        0.000416,
        0.264625,
        0.741723,
        -0.537432,
        0.062268,
        -0.003991,
        -0.022123,
        0.217118,
        -3.370148,
        1.662669,
        0.54334,
        -0.17214,
        0.062002,
        0.107093,
        -0.018111,
        0.214881
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        2,
        43,
        71,
        67,
        70,
        36,
        68,
        37,
        76,
        85,
        44,
        77,
        83,
        75,
        42,
        20,
        18
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 1682,
        "computed_crc12": 3828,
        "message_preview_12chars": "GL8sy0GIRIhS",
        "message_words_6bit": [
          16,
          21,
          8,
          54,
          60,
          0,
          16,
          18,
          27,
          18,
          43,
          28
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_msb_input+ft8_bitrev_interleave_codeword_to_rx_inverse+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_4",
      "info87_bits": [
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0
      ],
      "info87_bitstring": "100010101110111110111011101000011011001110001101100110111101100110111100010101101011100",
      "info87_llr": [
        -3.175167,
        1.444138,
        1.348215,
        2.373598,
        -0.077873,
        0.053645,
        -0.863008,
        -0.060529,
        0.139647,
        -3.147547,
        -1.318165,
        0.501753,
        -2.580003,
        -0.950294,
        -0.721196,
        -3.35976,
        -2.643905,
        2.649394,
        -0.142766,
        -0.131907,
        -0.712903,
        0.831188,
        -0.47611,
        -0.39454,
        -0.001825,
        0.00114,
        -0.387615,
        2.678121,
        0.379239,
        0.367315,
        0.159525,
        0.022724,
        0.106544,
        1.047778,
        -0.488105,
        -0.005443,
        0.021519,
        0.0,
        0.0,
        -0.60639,
        -0.525575,
        2.300703,
        2.878553,
        1.39816,
        -1.201506,
        -1.361139,
        1.038295,
        -1.728366,
        -0.375057,
        0.256955,
        1.477831,
        0.00654,
        0.000562,
        0.161258,
        -1.444438,
        -1.202161,
        -2.114301,
        -1.599597,
        0.050862,
        -0.067634,
        -0.831333,
        0.61417,
        0.367797,
        -2.643836,
        -1.673644,
        0.250335,
        -0.628159,
        -0.389345,
        0.000978,
        -1.905868,
        0.267501,
        0.334387,
        0.592541,
        -0.125369,
        0.046555,
        -0.461264,
        0.171058,
        -0.077739,
        -0.026378,
        0.025472,
        -2.889754,
        0.558538,
        -0.514067,
        -1.908812,
        -0.772235,
        0.548293,
        0.818247
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        37,
        38,
        52,
        68,
        25,
        24,
        35,
        51,
        36,
        31,
        79,
        78,
        74,
        58,
        5,
        7,
        59,
        77
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2908,
        "computed_crc12": 538,
        "message_preview_12chars": "Yk xeREDczcy",
        "message_words_6bit": [
          34,
          46,
          62,
          59,
          40,
          27,
          14,
          13,
          38,
          61,
          38,
          60
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_9",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0
      ],
      "info87_bitstring": "010000010101001000110110111100000000010000010010011011010010101011011100001011010010010",
      "info87_llr": [
        3.175167,
        -0.0,
        -0.0,
        1.4804,
        1.16514,
        1.121706,
        0.186898,
        -0.319708,
        0.140275,
        -3.409336,
        2.262486,
        -0.767498,
        0.23193,
        0.103943,
        -0.180688,
        1.420297,
        0.677631,
        1.519813,
        -0.085593,
        -0.30299,
        0.079755,
        -0.638724,
        -0.318538,
        0.631145,
        -0.407482,
        -2.232178,
        -1.724721,
        -0.560404,
        0.528597,
        0.52663,
        3.230417,
        0.852882,
        0.088681,
        3.091603,
        0.422278,
        -0.131414,
        0.001272,
        0.003121,
        1.905868,
        1.897049,
        1.626923,
        0.290978,
        0.076629,
        -6.3e-05,
        0.020602,
        2.801472,
        -3.265939,
        2.268536,
        3.147547,
        -2.39421,
        -3.426809,
        -0.159398,
        0.203929,
        -0.615313,
        0.461264,
        -0.195897,
        0.777201,
        2.038189,
        -2.136661,
        1.973914,
        -2.156834,
        1.696947,
        -0.863176,
        3.086802,
        -1.368014,
        -2.596191,
        2.230806,
        -0.000523,
        -0.001614,
        -0.758241,
        -0.001038,
        0.000416,
        0.264625,
        0.741723,
        -0.537432,
        0.062268,
        -0.003991,
        -0.022123,
        0.217118,
        -3.370148,
        1.662669,
        0.54334,
        -0.17214,
        0.062002,
        0.107093,
        -0.018111,
        0.214881
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        1,
        2,
        43,
        71,
        67,
        70,
        36,
        68,
        37,
        76,
        85,
        44,
        77,
        83,
        75,
        42,
        20,
        18
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 1682,
        "computed_crc12": 3828,
        "message_preview_12chars": "GL8sy0GIRIhS",
        "message_words_6bit": [
          16,
          21,
          8,
          54,
          60,
          0,
          16,
          18,
          27,
          18,
          43,
          28
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_0",
      "info87_bits": [
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1
      ],
      "info87_bitstring": "110101001001110011000100100010111010110001100110100110111001010001110101011110100100011",
      "info87_llr": [
        9.4e-05,
        -0.843582,
        0.012829,
        -2.903463,
        2.892455,
        -0.531347,
        2.723669,
        2.493348,
        -0.353466,
        1.150631,
        0.378726,
        -1.051437,
        -0.45484,
        -3.316036,
        0.429434,
        3.059825,
        -2.678618,
        -0.0,
        1.934438,
        0.392916,
        2.429102,
        -2.24473,
        3.134559,
        2.454153,
        -0.078989,
        0.00183,
        0.193759,
        0.056904,
        -2.691802,
        2.499481,
        -0.934393,
        -2.178735,
        -0.761092,
        1.309731,
        -3.019619,
        0.360195,
        -1.664767,
        -1.025842,
        1.268122,
        0.316207,
        1.138967,
        -0.590327,
        -0.043792,
        1.290776,
        0.31154,
        -1.564157,
        0.002901,
        0.000165,
        -0.03282,
        2.847049,
        0.74099,
        -0.22908,
        -1.207554,
        0.048049,
        -0.303281,
        -2.586942,
        -1.977414,
        2.075297,
        1.666613,
        -0.105136,
        4.190429,
        -3.953619,
        0.278364,
        0.679773,
        3.005974,
        -0.341378,
        -0.87875,
        -0.00058,
        1.867634,
        -1.199596,
        1.366832,
        -1.828026,
        0.110502,
        -0.571401,
        -0.050013,
        -2.143109,
        -3.020953,
        0.496822,
        0.001354,
        -0.000171,
        1.719111,
        -1.300276,
        1.47461,
        0.429605,
        1.436634,
        -0.646178,
        -0.085386
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        17,
        0,
        47,
        79,
        67,
        78,
        25,
        46,
        2,
        48,
        42,
        53,
        74,
        27,
        24,
        86,
        59,
        72
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 3363,
        "computed_crc12": 2480,
        "message_preview_12chars": "r9p4YwnccvHr",
        "message_words_6bit": [
          53,
          9,
          51,
          4,
          34,
          58,
          49,
          38,
          38,
          57,
          17,
          53
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_1",
      "info87_bits": [
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "000110001111011100001011101000000010100110000000101000000111000000001011011100000001000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2056,
        "computed_crc12": 322,
        "message_preview_12chars": "6FSBe2c0e70B",
        "message_words_6bit": [
          6,
          15,
          28,
          11,
          40,
          2,
          38,
          0,
          40,
          7,
          0,
          11
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_3",
      "info87_bits": [
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "000110001111011100001011101000000010100111001000101000000111000000001000011100000011000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2072,
        "computed_crc12": 1128,
        "message_preview_12chars": "6FSBe2d8e708",
        "message_words_6bit": [
          6,
          15,
          28,
          11,
          40,
          2,
          39,
          8,
          40,
          7,
          0,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_0",
      "info87_bits": [
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1
      ],
      "info87_bitstring": "110101001001110011000100100010111010110001100110100110111001010001110101011110100100011",
      "info87_llr": [
        9.4e-05,
        -0.843582,
        0.012829,
        -2.903463,
        2.892455,
        -0.531347,
        2.723669,
        2.493348,
        -0.353466,
        1.150631,
        0.378726,
        -1.051437,
        -0.45484,
        -3.316036,
        0.429434,
        3.059825,
        -2.678618,
        -0.0,
        1.934438,
        0.392916,
        2.429102,
        -2.24473,
        3.134559,
        2.454153,
        -0.078989,
        0.00183,
        0.193759,
        0.056904,
        -2.691802,
        2.499481,
        -0.934393,
        -2.178735,
        -0.761092,
        1.309731,
        -3.019619,
        0.360195,
        -1.664767,
        -1.025842,
        1.268122,
        0.316207,
        1.138967,
        -0.590327,
        -0.043792,
        1.290776,
        0.31154,
        -1.564157,
        0.002901,
        0.000165,
        -0.03282,
        2.847049,
        0.74099,
        -0.22908,
        -1.207554,
        0.048049,
        -0.303281,
        -2.586942,
        -1.977414,
        2.075297,
        1.666613,
        -0.105136,
        4.190429,
        -3.953619,
        0.278364,
        0.679773,
        3.005974,
        -0.341378,
        -0.87875,
        -0.00058,
        1.867634,
        -1.199596,
        1.366832,
        -1.828026,
        0.110502,
        -0.571401,
        -0.050013,
        -2.143109,
        -3.020953,
        0.496822,
        0.001354,
        -0.000171,
        1.719111,
        -1.300276,
        1.47461,
        0.429605,
        1.436634,
        -0.646178,
        -0.085386
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        17,
        0,
        47,
        79,
        67,
        78,
        25,
        46,
        2,
        48,
        42,
        53,
        74,
        27,
        24,
        86,
        59,
        72
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 3363,
        "computed_crc12": 2480,
        "message_preview_12chars": "r9p4YwnccvHr",
        "message_words_6bit": [
          53,
          9,
          51,
          4,
          34,
          58,
          49,
          38,
          38,
          57,
          17,
          53
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_1",
      "info87_bits": [
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "000110001111011100001011101000000010100110000000101000000111000000001011011100000001000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2056,
        "computed_crc12": 322,
        "message_preview_12chars": "6FSBe2c0e70B",
        "message_words_6bit": [
          6,
          15,
          28,
          11,
          40,
          2,
          38,
          0,
          40,
          7,
          0,
          11
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_3",
      "info87_bits": [
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0
      ],
      "info87_bitstring": "000110001111011100001011101000000010100111001000101000000111000000001000011100000011000",
      "info87_llr": [
        3.175167,
        0.056321,
        3.170705,
        -1.564157,
        -1.45811,
        0.047068,
        2.230806,
        0.598509,
        -0.876032,
        -1.199596,
        -0.694114,
        -0.397472,
        3.091603,
        -0.092097,
        -0.788017,
        -0.646178,
        0.297679,
        0.412663,
        2.847049,
        0.122657,
        -2.806158,
        0.453233,
        -0.454097,
        -0.619239,
        -0.874533,
        2.328045,
        -0.420991,
        2.493348,
        1.093158,
        2.05361,
        0.316207,
        1.905647,
        0.496531,
        2.643836,
        -1.079496,
        2.998213,
        -2.586942,
        1.381831,
        0.863378,
        -2.692102,
        -0.085204,
        -0.086109,
        2.333258,
        -0.007679,
        -0.009994,
        1.845347,
        0.253688,
        2.235631,
        -3.409336,
        1.278624,
        -0.656886,
        1.811813,
        0.186374,
        1.808903,
        0.062268,
        0.127104,
        0.24178,
        -0.843582,
        -1.478186,
        -0.685705,
        0.076629,
        0.945528,
        0.988495,
        -0.0,
        2.291429,
        0.063785,
        3.433312,
        0.395494,
        -0.453862,
        2.789631,
        -0.000311,
        0.002223,
        0.21435,
        -2.29281,
        -0.279472,
        -0.149104,
        0.819062,
        1.082949,
        3.430657,
        0.202548,
        0.905423,
        1.813838,
        0.02759,
        -0.107735,
        3.230417,
        0.553283,
        0.777223
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        71,
        43,
        44,
        82,
        5,
        1,
        54,
        65,
        60,
        40,
        41,
        13,
        83,
        19,
        55,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 5,
        "crc_match": false,
        "received_crc12": 2072,
        "computed_crc12": 1128,
        "message_preview_12chars": "6FSBe2d8e708",
        "message_words_6bit": [
          6,
          15,
          28,
          11,
          40,
          2,
          39,
          8,
          40,
          7,
          0,
          8
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_12",
      "info87_bits": [
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1
      ],
      "info87_bitstring": "011111101001010010101010010000110100001011100000111001100011110000001100110101100001101",
      "info87_llr": [
        2.101967,
        -4.117514,
        -3.297244,
        -3.632038,
        -1.363105,
        -1.093202,
        -1.519813,
        0.002036,
        -4.152866,
        2.834496,
        1.622557,
        -1.940982,
        2.733183,
        -0.741723,
        1.601279,
        2.704126,
        -4.11138,
        2.232178,
        -2.315199,
        3.385419,
        -1.362274,
        0.224901,
        -1.121706,
        0.437375,
        2.019584,
        -1.03893,
        4.130021,
        2.758807,
        2.053571,
        2.473652,
        -0.020183,
        -1.157734,
        2.968724,
        -0.103943,
        1.663707,
        0.056274,
        3.379353,
        0.0,
        -0.708155,
        0.587045,
        -1.836714,
        -4.104344,
        -1.9119,
        2.935174,
        3.401936,
        1.232715,
        0.001921,
        2.766914,
        -0.117422,
        -2.149854,
        -0.518808,
        0.487537,
        0.167728,
        -4.094247,
        -0.52255,
        2.732805,
        1.581872,
        3.988749,
        -0.000882,
        -3.503246,
        -1.656279,
        -2.723669,
        1.162894,
        2.439925,
        2.306513,
        1.249106,
        0.319708,
        3.953619,
        -0.000416,
        -4.190429,
        0.538466,
        2.815679,
        -0.631145,
        -0.037787,
        2.471102,
        -0.285196,
        0.765382,
        -3.778508,
        -0.489756,
        3.370148,
        3.42297,
        1.912324,
        2.243297,
        -4.07886,
        -1.781826,
        2.705783,
        -0.777791
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        37,
        68,
        58,
        46,
        7,
        30,
        73,
        35,
        33,
        48,
        52,
        21,
        75,
        66,
        23,
        51,
        78,
        50
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 2829,
        "computed_crc12": 2484,
        "message_preview_12chars": "VfIgGqBWvZmC",
        "message_words_6bit": [
          31,
          41,
          18,
          42,
          16,
          52,
          11,
          32,
          57,
          35,
          48,
          12
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+ft8_bitrev_interleave_codeword_to_rx_inverse",
      "variant": "mapped_ft8_gray_alt_high_demap_msb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_3",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1
      ],
      "info87_bitstring": "010000110111101000100011011100110110000100100110110001000110001000010001001110110110001",
      "info87_llr": [
        2.172928,
        -2.101967,
        3.175167,
        1.121706,
        1.368356,
        1.81338,
        -0.824318,
        -0.319708,
        0.628159,
        -2.732805,
        -2.664998,
        -3.409336,
        -0.207122,
        0.103943,
        -1.047778,
        1.519813,
        0.863008,
        1.420297,
        -0.436859,
        0.518808,
        3.075435,
        0.631145,
        -0.592541,
        -0.638724,
        1.979192,
        -2.232178,
        -3.371067,
        -0.587045,
        0.60639,
        0.658555,
        -2.373598,
        -2.243297,
        3.230417,
        -2.766914,
        -2.638105,
        3.091603,
        1.905868,
        1.03893,
        1.465707,
        -1.601279,
        1.626923,
        2.708393,
        -0.021519,
        0.000882,
        0.076629,
        -3.42297,
        -3.265939,
        3.846103,
        -3.426809,
        -2.834496,
        3.147547,
        1.157734,
        -0.287454,
        0.439145,
        0.777201,
        0.285196,
        0.461264,
        -2.306513,
        -2.136661,
        2.778555,
        1.843943,
        1.9119,
        -2.878553,
        3.297244,
        2.702748,
        3.086802,
        0.001825,
        -0.001921,
        2.230806,
        0.000416,
        -0.001548,
        -1.309509,
        1.599597,
        0.741723,
        -1.138699,
        -0.056274,
        -0.010932,
        0.062268,
        -3.422233,
        -3.370148,
        4.047507,
        -0.167728,
        -0.17214,
        0.607919,
        0.214881,
        0.020183,
        -0.159525
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        69,
        43,
        70,
        66,
        67,
        76,
        85,
        42,
        75,
        77,
        44,
        13,
        86,
        81,
        82,
        12,
        84,
        55
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3505,
        "computed_crc12": 2816,
        "message_preview_12chars": "GteZSs4cn68H",
        "message_words_6bit": [
          16,
          55,
          40,
          35,
          28,
          54,
          4,
          38,
          49,
          6,
          8,
          17
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_7",
      "info87_bits": [
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0
      ],
      "info87_bitstring": "111100100011101110110001011111111110010010101111010010111011111001100101101110111010110",
      "info87_llr": [
        -3.175167,
        -3.82771,
        -4.9e-05,
        -1.040608,
        0.939677,
        0.156556,
        -2.230806,
        0.887799,
        2.039994,
        1.571643,
        0.225341,
        0.227087,
        -3.091603,
        0.831188,
        -0.095328,
        -0.075924,
        -0.628159,
        1.086498,
        -2.628219,
        -2.22137,
        -0.031912,
        0.061186,
        1.138699,
        -0.147322,
        1.300501,
        -2.614037,
        -1.889293,
        -1.828416,
        -2.708393,
        -1.189916,
        -0.14308,
        -2.084988,
        -1.81338,
        -2.643836,
        -2.940997,
        0.343759,
        2.523602,
        -0.943239,
        1.309509,
        2.692102,
        -0.063109,
        2.059284,
        -1.59595,
        0.006225,
        -1.465707,
        -1.845347,
        -3.011479,
        -0.294151,
        3.409336,
        -1.2999,
        0.043293,
        0.849095,
        -1.655424,
        -0.015875,
        -0.062268,
        -0.375057,
        -0.378599,
        1.36742,
        -1.892904,
        0.058209,
        -0.076629,
        -2.916908,
        -0.022761,
        0.0,
        1.641495,
        -2.911402,
        -2.670773,
        0.201274,
        3.371067,
        -2.789631,
        0.001279,
        -0.49846,
        -0.155722,
        2.314073,
        -2.778555,
        0.149104,
        -2.270338,
        0.132678,
        -2.72115,
        -0.608006,
        -0.517774,
        0.215662,
        0.08892,
        0.664985,
        -3.230417,
        -0.836063,
        0.19177
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        2,
        70,
        43,
        53,
        62,
        20,
        50,
        59,
        21,
        54,
        40,
        15,
        60,
        82,
        14,
        77,
        30
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3542,
        "computed_crc12": 1122,
        "message_preview_12chars": "yZknV IlIxvb",
        "message_words_6bit": [
          60,
          35,
          46,
          49,
          31,
          62,
          18,
          47,
          18,
          59,
          57,
          37
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+ft8_bitrev_deinterleave_rx_to_codeword",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+no_interleaver"
    },
    {
      "source": "matrix_probe.all_matrix_probes",
      "row_name": "matrix_probe_8",
      "info87_bits": [
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "010110001000001100110011011101110001111111110001101011010000000100111010011001100010000",
      "info87_llr": [
        3.175167,
        0.057045,
        3.17051,
        -1.232715,
        -0.500191,
        0.021618,
        2.230806,
        0.597155,
        -0.875872,
        1.693366,
        0.047167,
        0.239839,
        3.091603,
        -0.013014,
        -0.792197,
        -0.63305,
        0.294919,
        0.413614,
        -3.426809,
        -2.574582,
        0.452689,
        0.52255,
        -0.437724,
        -0.639146,
        1.519813,
        -1.871425,
        -1.512742,
        -2.474457,
        2.465203,
        -0.759693,
        -0.17214,
        -2.003996,
        -0.116291,
        2.643836,
        1.073942,
        -3.102051,
        -2.232178,
        -1.190156,
        -0.818606,
        -2.692102,
        -0.182262,
        -0.183864,
        -2.136661,
        -0.001955,
        0.000923,
        1.845347,
        0.170201,
        -2.460054,
        -3.409336,
        1.274102,
        -0.554723,
        1.092918,
        -0.921661,
        -1.177107,
        0.062268,
        0.138717,
        0.230764,
        1.656279,
        0.310471,
        1.864325,
        0.076629,
        0.935043,
        0.998441,
        -0.0,
        0.052129,
        2.038325,
        -3.265939,
        -0.405396,
        -0.408577,
        2.789631,
        -0.000795,
        0.001775,
        0.103943,
        -2.300429,
        -0.187704,
        -0.149104,
        -0.869434,
        -1.053321,
        -3.370148,
        0.345628,
        0.147585,
        1.781826,
        0.120028,
        -0.273148,
        3.230417,
        0.548301,
        0.777434
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        44,
        71,
        43,
        13,
        5,
        10,
        64,
        1,
        54,
        60,
        72,
        32,
        82,
        55,
        80,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 784,
        "computed_crc12": 1504,
        "message_preview_12chars": "M8CpTn-nhG4w",
        "message_words_6bit": [
          22,
          8,
          12,
          51,
          29,
          49,
          63,
          49,
          43,
          16,
          4,
          58
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "ft8_gray_primary_demap_msb_input+no_interleaver+inverted_bits",
      "variant": "mapped_ft8_gray_alt_high_demap_lsb_input+ft8_bitrev_deinterleave_rx_to_codeword"
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_12",
      "info87_bits": [
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1
      ],
      "info87_bitstring": "011111101001010010101010010000110100001011100000111001100011110000001100110101100001101",
      "info87_llr": [
        2.101967,
        -4.117514,
        -3.297244,
        -3.632038,
        -1.363105,
        -1.093202,
        -1.519813,
        0.002036,
        -4.152866,
        2.834496,
        1.622557,
        -1.940982,
        2.733183,
        -0.741723,
        1.601279,
        2.704126,
        -4.11138,
        2.232178,
        -2.315199,
        3.385419,
        -1.362274,
        0.224901,
        -1.121706,
        0.437375,
        2.019584,
        -1.03893,
        4.130021,
        2.758807,
        2.053571,
        2.473652,
        -0.020183,
        -1.157734,
        2.968724,
        -0.103943,
        1.663707,
        0.056274,
        3.379353,
        0.0,
        -0.708155,
        0.587045,
        -1.836714,
        -4.104344,
        -1.9119,
        2.935174,
        3.401936,
        1.232715,
        0.001921,
        2.766914,
        -0.117422,
        -2.149854,
        -0.518808,
        0.487537,
        0.167728,
        -4.094247,
        -0.52255,
        2.732805,
        1.581872,
        3.988749,
        -0.000882,
        -3.503246,
        -1.656279,
        -2.723669,
        1.162894,
        2.439925,
        2.306513,
        1.249106,
        0.319708,
        3.953619,
        -0.000416,
        -4.190429,
        0.538466,
        2.815679,
        -0.631145,
        -0.037787,
        2.471102,
        -0.285196,
        0.765382,
        -3.778508,
        -0.489756,
        3.370148,
        3.42297,
        1.912324,
        2.243297,
        -4.07886,
        -1.781826,
        2.705783,
        -0.777791
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        37,
        68,
        58,
        46,
        7,
        30,
        73,
        35,
        33,
        48,
        52,
        21,
        75,
        66,
        23,
        51,
        78,
        50
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 2829,
        "computed_crc12": 2484,
        "message_preview_12chars": "VfIgGqBWvZmC",
        "message_words_6bit": [
          31,
          41,
          18,
          42,
          16,
          52,
          11,
          32,
          57,
          35,
          48,
          12
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_3",
      "info87_bits": [
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1
      ],
      "info87_bitstring": "010000110111101000100011011100110110000100100110110001000110001000010001001110110110001",
      "info87_llr": [
        2.172928,
        -2.101967,
        3.175167,
        1.121706,
        1.368356,
        1.81338,
        -0.824318,
        -0.319708,
        0.628159,
        -2.732805,
        -2.664998,
        -3.409336,
        -0.207122,
        0.103943,
        -1.047778,
        1.519813,
        0.863008,
        1.420297,
        -0.436859,
        0.518808,
        3.075435,
        0.631145,
        -0.592541,
        -0.638724,
        1.979192,
        -2.232178,
        -3.371067,
        -0.587045,
        0.60639,
        0.658555,
        -2.373598,
        -2.243297,
        3.230417,
        -2.766914,
        -2.638105,
        3.091603,
        1.905868,
        1.03893,
        1.465707,
        -1.601279,
        1.626923,
        2.708393,
        -0.021519,
        0.000882,
        0.076629,
        -3.42297,
        -3.265939,
        3.846103,
        -3.426809,
        -2.834496,
        3.147547,
        1.157734,
        -0.287454,
        0.439145,
        0.777201,
        0.285196,
        0.461264,
        -2.306513,
        -2.136661,
        2.778555,
        1.843943,
        1.9119,
        -2.878553,
        3.297244,
        2.702748,
        3.086802,
        0.001825,
        -0.001921,
        2.230806,
        0.000416,
        -0.001548,
        -1.309509,
        1.599597,
        0.741723,
        -1.138699,
        -0.056274,
        -0.010932,
        0.062268,
        -3.422233,
        -3.370148,
        4.047507,
        -0.167728,
        -0.17214,
        0.607919,
        0.214881,
        0.020183,
        -0.159525
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        69,
        43,
        70,
        66,
        67,
        76,
        85,
        42,
        75,
        77,
        44,
        13,
        86,
        81,
        82,
        12,
        84,
        55
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3505,
        "computed_crc12": 2816,
        "message_preview_12chars": "GteZSs4cn68H",
        "message_words_6bit": [
          16,
          55,
          40,
          35,
          28,
          54,
          4,
          38,
          49,
          6,
          8,
          17
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_7",
      "info87_bits": [
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0
      ],
      "info87_bitstring": "111100100011101110110001011111111110010010101111010010111011111001100101101110111010110",
      "info87_llr": [
        -3.175167,
        -3.82771,
        -4.9e-05,
        -1.040608,
        0.939677,
        0.156556,
        -2.230806,
        0.887799,
        2.039994,
        1.571643,
        0.225341,
        0.227087,
        -3.091603,
        0.831188,
        -0.095328,
        -0.075924,
        -0.628159,
        1.086498,
        -2.628219,
        -2.22137,
        -0.031912,
        0.061186,
        1.138699,
        -0.147322,
        1.300501,
        -2.614037,
        -1.889293,
        -1.828416,
        -2.708393,
        -1.189916,
        -0.14308,
        -2.084988,
        -1.81338,
        -2.643836,
        -2.940997,
        0.343759,
        2.523602,
        -0.943239,
        1.309509,
        2.692102,
        -0.063109,
        2.059284,
        -1.59595,
        0.006225,
        -1.465707,
        -1.845347,
        -3.011479,
        -0.294151,
        3.409336,
        -1.2999,
        0.043293,
        0.849095,
        -1.655424,
        -0.015875,
        -0.062268,
        -0.375057,
        -0.378599,
        1.36742,
        -1.892904,
        0.058209,
        -0.076629,
        -2.916908,
        -0.022761,
        0.0,
        1.641495,
        -2.911402,
        -2.670773,
        0.201274,
        3.371067,
        -2.789631,
        0.001279,
        -0.49846,
        -0.155722,
        2.314073,
        -2.778555,
        0.149104,
        -2.270338,
        0.132678,
        -2.72115,
        -0.608006,
        -0.517774,
        0.215662,
        0.08892,
        0.664985,
        -3.230417,
        -0.836063,
        0.19177
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        2,
        70,
        43,
        53,
        62,
        20,
        50,
        59,
        21,
        54,
        40,
        15,
        60,
        82,
        14,
        77,
        30
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3542,
        "computed_crc12": 1122,
        "message_preview_12chars": "yZknV IlIxvb",
        "message_words_6bit": [
          60,
          35,
          46,
          49,
          31,
          62,
          18,
          47,
          18,
          59,
          57,
          37
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "matrix_probe.post_ldpc_info87_llr_rows",
      "row_name": "matrix_export_8",
      "info87_bits": [
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0
      ],
      "info87_bitstring": "010110001000001100110011011101110001111111110001101011010000000100111010011001100010000",
      "info87_llr": [
        3.175167,
        0.057045,
        3.17051,
        -1.232715,
        -0.500191,
        0.021618,
        2.230806,
        0.597155,
        -0.875872,
        1.693366,
        0.047167,
        0.239839,
        3.091603,
        -0.013014,
        -0.792197,
        -0.63305,
        0.294919,
        0.413614,
        -3.426809,
        -2.574582,
        0.452689,
        0.52255,
        -0.437724,
        -0.639146,
        1.519813,
        -1.871425,
        -1.512742,
        -2.474457,
        2.465203,
        -0.759693,
        -0.17214,
        -2.003996,
        -0.116291,
        2.643836,
        1.073942,
        -3.102051,
        -2.232178,
        -1.190156,
        -0.818606,
        -2.692102,
        -0.182262,
        -0.183864,
        -2.136661,
        -0.001955,
        0.000923,
        1.845347,
        0.170201,
        -2.460054,
        -3.409336,
        1.274102,
        -0.554723,
        1.092918,
        -0.921661,
        -1.177107,
        0.062268,
        0.138717,
        0.230764,
        1.656279,
        0.310471,
        1.864325,
        0.076629,
        0.935043,
        0.998441,
        -0.0,
        0.052129,
        2.038325,
        -3.265939,
        -0.405396,
        -0.408577,
        2.789631,
        -0.000795,
        0.001775,
        0.103943,
        -2.300429,
        -0.187704,
        -0.149104,
        -0.869434,
        -1.053321,
        -3.370148,
        0.345628,
        0.147585,
        1.781826,
        0.120028,
        -0.273148,
        3.230417,
        0.548301,
        0.777434
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        63,
        70,
        44,
        71,
        43,
        13,
        5,
        10,
        64,
        1,
        54,
        60,
        72,
        32,
        82,
        55,
        80,
        75
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 784,
        "computed_crc12": 1504,
        "message_preview_12chars": "M8CpTn-nhG4w",
        "message_words_6bit": [
          22,
          8,
          12,
          51,
          29,
          49,
          63,
          49,
          43,
          16,
          4,
          58
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "matrix_meta": {}
    },
    {
      "source": "soft_decode.post_ldpc_info87_llr_rows",
      "row_name": "soft_export_5",
      "info87_bits": [
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1
      ],
      "info87_bitstring": "111011000011010100001100000001000101010001000010010010100100000001001100100110001100101",
      "info87_llr": [
        -3.316036,
        -2.713685,
        -2.878553,
        1.93682,
        -1.245662,
        -1.512,
        -0.002208,
        -0.000245,
        3.147547,
        3.448494,
        -2.678618,
        -2.747263,
        0.199817,
        0.154132,
        0.461264,
        -1.016789,
        3.378169,
        0.607919,
        0.375057,
        0.105514,
        -0.565632,
        -0.638724,
        0.233293,
        3.82771,
        3.35976,
        2.792591,
        1.747844,
        0.658555,
        2.454153,
        -1.086498,
        3.230417,
        2.384652,
        1.2999,
        -1.850067,
        1.063134,
        -1.564157,
        1.465707,
        -1.924969,
        3.222493,
        3.330023,
        2.233949,
        -3.324597,
        0.076629,
        9.4e-05,
        3.278734,
        0.508765,
        -0.496596,
        -0.03282,
        0.413875,
        -3.409336,
        -0.016174,
        3.202786,
        -0.116975,
        1.405675,
        -0.096777,
        1.420297,
        -0.050013,
        -0.887799,
        2.333258,
        2.159951,
        2.499481,
        1.81338,
        1.867634,
        3.086802,
        3.175167,
        -1.855579,
        2.230806,
        -0.001417,
        -0.646178,
        -0.707018,
        0.628159,
        0.934146,
        -1.138699,
        0.755664,
        2.719878,
        -0.0,
        -1.047778,
        0.21435,
        4.047507,
        3.430657,
        -1.536191,
        -0.874533,
        0.316207,
        0.320699,
        -0.860464,
        0.836063,
        -1.796585
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        75,
        43,
        7,
        67,
        6,
        50,
        47,
        56,
        42,
        54,
        19,
        52,
        13,
        12,
        77,
        22,
        82,
        83
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3173,
        "computed_crc12": 2608,
        "message_preview_12chars": "x3KC15H2Ia1C",
        "message_words_6bit": [
          59,
          3,
          20,
          12,
          1,
          5,
          17,
          2,
          18,
          36,
          1,
          12
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "soft_meta": {}
    },
    {
      "source": "soft_decode.soft_decode_results",
      "row_name": "soft_result_5",
      "info87_bits": [
        1,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        1
      ],
      "info87_bitstring": "111011000011010100001100000001000101010001000010010010100100000001001100100110001100101",
      "info87_llr": [
        -3.316036,
        -2.713685,
        -2.878553,
        1.93682,
        -1.245662,
        -1.512,
        -0.002208,
        -0.000245,
        3.147547,
        3.448494,
        -2.678618,
        -2.747263,
        0.199817,
        0.154132,
        0.461264,
        -1.016789,
        3.378169,
        0.607919,
        0.375057,
        0.105514,
        -0.565632,
        -0.638724,
        0.233293,
        3.82771,
        3.35976,
        2.792591,
        1.747844,
        0.658555,
        2.454153,
        -1.086498,
        3.230417,
        2.384652,
        1.2999,
        -1.850067,
        1.063134,
        -1.564157,
        1.465707,
        -1.924969,
        3.222493,
        3.330023,
        2.233949,
        -3.324597,
        0.076629,
        9.4e-05,
        3.278734,
        0.508765,
        -0.496596,
        -0.03282,
        0.413875,
        -3.409336,
        -0.016174,
        3.202786,
        -0.116975,
        1.405675,
        -0.096777,
        1.420297,
        -0.050013,
        -0.887799,
        2.333258,
        2.159951,
        2.499481,
        1.81338,
        1.867634,
        3.086802,
        3.175167,
        -1.855579,
        2.230806,
        -0.001417,
        -0.646178,
        -0.707018,
        0.628159,
        0.934146,
        -1.138699,
        0.755664,
        2.719878,
        -0.0,
        -1.047778,
        0.21435,
        4.047507,
        3.430657,
        -1.536191,
        -0.874533,
        0.316207,
        0.320699,
        -0.860464,
        0.836063,
        -1.796585
      ],
      "info87_llr_count": 87,
      "least_reliable_info87_indices": [
        75,
        43,
        7,
        67,
        6,
        50,
        47,
        56,
        42,
        54,
        19,
        52,
        13,
        12,
        77,
        22,
        82,
        83
      ],
      "message174_crc12": {
        "ok": true,
        "distance": 6,
        "crc_match": false,
        "received_crc12": 3173,
        "computed_crc12": 2608,
        "message_preview_12chars": "x3KC15H2Ia1C",
        "message_words_6bit": [
          59,
          3,
          20,
          12,
          1,
          5,
          17,
          2,
          18,
          36,
          1,
          12
        ]
      },
      "source_index_context": {
        "info87_scope": "post-LDPC information bits 0..86 from source-aligned message174/CRC12 contract",
        "message_words": "bits 0..71 form 12 x 6-bit words in extractmessage174()",
        "crc12_contract": "CRC12 poly 0xc06, xor 42; checkCRC12() extracts received CRC from packed bytes bits[9]/bits[10] after MSB-first packing",
        "deinterleaver_whitening_status": "not asserted as final; this probe exports runtime rows so the next step can align source-derived reorder/whitening indices against real LDPC rows"
      },
      "transform": "lsb_within_each_tone+ft8_bitrev_deinterleave_rx_to_codeword+inverted_bits",
      "variant": "mapped_ft8_gray_primary_demap_lsb_input+ft8_bitrev_interleave_codeword_to_rx_inverse"
    }
  ],
  "outputs": {
    "post_ldpc_info87_runtime_export_json": "/decoders/js8_decoder/logs/step61_post_ldpc_runtime/step61_post_ldpc_info87_runtime_export.json"
  },
  "warnings": [
    "This is still a diagnostic runtime export, not a final JS8 text decoder.",
    "Step61 patches the runtime LDPC probes to expose post-LDPC info87 rows and source-index context for the next reorder/whitening alignment step."
  ],
  "next_action": "If best_distance is 0, implement source-confirmed message174 text unpack. If best_distance remains >0, build Step62 to test source-derived deinterleaver/whitening index maps against these exact runtime rows."
}
