{
  "schema": "webftr-js8-decoder-lab-browser-report-v1",
  "version": "step32-anchored-candidate-fast-export-guard",
  "created_utc": "2026-05-26T14:16:53Z",
  "project": "WebFTR JS8 Decoder Lab",
  "root": "/decoders/js8_decoder",
  "expected_root": "/decoders/js8_decoder",
  "logs_dir": "/decoders/js8_decoder/logs",
  "runtime_dir": "/decoders/js8_decoder/runtime",
  "daemon_status": {
    "schema": "webftr-js8lab-daemon-status-v2",
    "version": "step32-anchored-candidate-fast-export-guard",
    "created_utc": "2026-05-26T07:46:12Z",
    "updated_utc": "2026-05-26T11:59:32Z",
    "state": "diagnostics_failed",
    "detail": "Diagnose mit Fehler beendet",
    "exit_code": 143,
    "root": "/decoders/js8_decoder",
    "expected_root": "/decoders/js8_decoder",
    "wav": "/decoders/js8_test.wav",
    "mode": "server-deep-run",
    "start_guard": {
      "start_stops_existing_instance": true,
      "stale_pid_cleanup": true,
      "root_orphan_cleanup": true,
      "port_guard": true,
      "foreign_port_owner_not_killed": true
    },
    "server": {
      "host": "0.0.0.0",
      "port": 8000,
      "pid": 479114,
      "running": true,
      "log": "/decoders/js8_decoder/logs/js8_browser_server.log"
    },
    "diagnostics": {
      "pid": 479132,
      "running": false,
      "log": "/decoders/js8_decoder/logs/js8_start_diagnostics_latest.log",
      "last_command": "./run_js8_decoder_lab.sh server-deep-run /decoders/js8_test.wav"
    },
    "links": {
      "home": "/",
      "api_report": "/api/report",
      "api_status": "/api/status",
      "logs": "/logs/",
      "latest_log": "/logs/latest.log",
      "start_diagnostics_log": "/logs/js8_start_diagnostics_latest.log",
      "server_log": "/logs/js8_browser_server.log"
    },
    "rx_only_guard": {
      "tx": false,
      "ptt": false,
      "tune": false,
      "send": false,
      "js8call_runtime_control": false
    },
    "history": [
      {
        "utc": "2026-05-26T10:36:24Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:36:25Z",
        "state": "diagnostics_failed",
        "detail": "Diagnose mit Fehler beendet",
        "exit_code": 1
      },
      {
        "utc": "2026-05-26T10:54:56Z",
        "state": "restarting",
        "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:54:56Z",
        "state": "server_starting",
        "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:54:57Z",
        "state": "server_running",
        "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
        "exit_code": 0
      },
      {
        "utc": "2026-05-26T10:54:57Z",
        "state": "diagnostics_running",
        "detail": "Diagnose läuft: server-deep-run /decoders/js8_test.wav",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:54:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 1/9: INPUT CHECK",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:54:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9A: QUICK WINDOW PREFILTER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:54:58Z",
        "state": "diagnostics_running",
        "detail": "Diagnosejob im Hintergrund gestartet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:55:12Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9B: BOUNDED DIRTY WINDOW SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:56:12Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 3/9: PROFILE SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T10:58:06Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 4/9: FRAME RECOVER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:01:07Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 5/9: AUTO LDPC PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:03:48Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 6/9: CANDIDATE EXPORT",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:06:49Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 7/9: LDPC MATRIX PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:06:51Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 8/9: LDPC SOFT DECODE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:06:52Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:06:54Z",
        "state": "diagnostics_failed",
        "detail": "Diagnose mit Fehler beendet",
        "exit_code": 143
      },
      {
        "utc": "2026-05-26T11:17:20Z",
        "state": "restarting",
        "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:20Z",
        "state": "server_starting",
        "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:22Z",
        "state": "server_running",
        "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
        "exit_code": 0
      },
      {
        "utc": "2026-05-26T11:17:22Z",
        "state": "diagnostics_running",
        "detail": "Diagnose läuft: server-deep-run /decoders/js8_test.wav",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:22Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 1/9: INPUT CHECK",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:23Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9A: QUICK WINDOW PREFILTER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:23Z",
        "state": "diagnostics_running",
        "detail": "Diagnosejob im Hintergrund gestartet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:17:36Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9B: BOUNDED DIRTY WINDOW SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:18:36Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 3/9: PROFILE SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:20:47Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 4/9: FRAME RECOVER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:23:48Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 5/9: AUTO LDPC PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:26:32Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 6/9: CANDIDATE EXPORT",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:29:33Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 7/9: LDPC MATRIX PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:29:35Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 8/9: LDPC SOFT DECODE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:29:35Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:29:37Z",
        "state": "diagnostics_failed",
        "detail": "Diagnose mit Fehler beendet",
        "exit_code": 143
      },
      {
        "utc": "2026-05-26T11:48:33Z",
        "state": "restarting",
        "detail": "Start-Guard: bestehende JS8Lab-Instanz wird geprüft und beendet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:33Z",
        "state": "server_starting",
        "detail": "Browser-Logserver startet auf 0.0.0.0:8000",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:34Z",
        "state": "server_running",
        "detail": "Browser-Logserver läuft auf 0.0.0.0:8000",
        "exit_code": 0
      },
      {
        "utc": "2026-05-26T11:48:34Z",
        "state": "diagnostics_running",
        "detail": "Diagnose läuft: server-deep-run /decoders/js8_test.wav",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:35Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 1/9: INPUT CHECK",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:35Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9A: QUICK WINDOW PREFILTER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:35Z",
        "state": "diagnostics_running",
        "detail": "Diagnosejob im Hintergrund gestartet",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:48:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 2/9B: BOUNDED DIRTY WINDOW SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:49:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 3/9: PROFILE SCAN",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:51:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 4/9: FRAME RECOVER",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:54:59Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 5/9: AUTO LDPC PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:57:29Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 6/9: CANDIDATE EXPORT",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:57:58Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 7/9: LDPC MATRIX PROBE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:58:12Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 8/9: LDPC SOFT DECODE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:59:31Z",
        "state": "diagnostics_running",
        "detail": "REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE",
        "exit_code": null
      },
      {
        "utc": "2026-05-26T11:59:32Z",
        "state": "diagnostics_failed",
        "detail": "Diagnose mit Fehler beendet",
        "exit_code": 143
      }
    ],
    "status_file": "/decoders/js8_decoder/runtime/js8lab_status.json"
  },
  "wav_candidates": [
    {
      "path": "/decoders/js8_test.wav",
      "exists": true,
      "is_file": true,
      "is_dir": false,
      "size": 4608442,
      "mtime_utc": "2026-05-26T06:05:27Z"
    },
    {
      "path": "/home/webftr/decoders/js8_test.wav",
      "exists": false,
      "error": "[Errno 2] No such file or directory: '/home/webftr/decoders/js8_test.wav'"
    },
    {
      "path": "/decoders/js8_decoder/decoders/js8_test.wav",
      "exists": false,
      "error": "[Errno 2] No such file or directory: '/decoders/js8_decoder/decoders/js8_test.wav'"
    }
  ],
  "selected_wav_hint": {
    "path": "/decoders/js8_test.wav",
    "exists": true,
    "is_file": true,
    "is_dir": false,
    "size": 4608442,
    "mtime_utc": "2026-05-26T06:05:27Z"
  },
  "rx_only_guard": {
    "tx": false,
    "ptt": false,
    "tune": false,
    "send": false,
    "js8call_runtime_control": false,
    "webftr_productive_integration": false
  },
  "latest_manifest": {
    "name": "20260526T114834Z_server-deep-run_manifest.json",
    "url": "/logs/20260526T114834Z_server-deep-run_manifest.json",
    "stat": {
      "exists": true,
      "is_file": true,
      "is_dir": false,
      "size": 1063,
      "mtime_utc": "2026-05-26T11:59:32Z"
    },
    "json": {
      "schema": "webftr-js8-decoder-lab-log-manifest-v2",
      "project": "WebFTR JS8 Decoder Lab",
      "version": "step32-anchored-candidate-fast-export-guard",
      "status": "failed",
      "exit_code": 143,
      "command": "server-deep-run",
      "timestamp_utc": "2026-05-26T11:59:32Z",
      "root": "/decoders/js8_decoder",
      "log_file": "/decoders/js8_decoder/logs/20260526T114834Z_server-deep-run.log",
      "python": "3.11.2",
      "platform": "Linux-6.12.75+rpt-rpi-v8-aarch64-with-glibc2.36",
      "rx_only_guard": {
        "tx": false,
        "ptt": false,
        "tune": false,
        "send": false,
        "note": "This lab wrapper performs RX-only WAV/source inspection and never starts JS8Call runtime TX actions."
      },
      "server_deep_run": {
        "requested_path": "/decoders/js8_test.wav",
        "resolved_wav": "/decoders/js8_test.wav",
        "real_run_exit_code": 143
      },
      "outputs": {
        "browser_report_json": "/decoders/js8_decoder/logs/js8_browser_report_latest.json"
      },
      "next_links": {
        "api_report": "/api/report",
        "logs": "/logs/",
        "latest_log": "/logs/latest.log"
      }
    }
  },
  "latest_log": {
    "url": "/logs/latest.log",
    "stat": {
      "exists": true,
      "is_file": true,
      "is_dir": false,
      "size": 152534,
      "mtime_utc": "2026-05-26T11:59:32Z"
    },
    "tail": "5\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 50\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 45\n        }\n      ]\n    },\n    {\n      \"variant\": \"raw_msb_symbol_order\",\n      \"transform\": \"reverse_inverted_codeword\",\n      \"source_rank_score\": 127.389188,\n      \"source_llr_stats\": {\n        \"count\": 174,\n        \"avg_abs\": 2.347297,\n        \"min_abs\": 0.029594,\n        \"max_abs\": 4.31172,\n        \"positive\": 133,\n        \"negative\": 41,\n        \"zero\": 0\n      },\n      \"success\": false,\n      \"iterations_used\": 40,\n      \"final_syndrome_weight\": 33,\n      \"message91\": null,\n      \"message91_sha256_16\": \"3da67efa8398894a\",\n      \"codeword174_sha256_16\": \"c0ffb55faec27219\",\n      \"trace\": [\n        {\n          \"iteration\": 0,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 1,\n          \"syndrome_weight\": 33\n        },\n        {\n          \"iteration\": 2,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 3,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 4,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 5,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 6,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 7,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 8,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 9,\n          \"syndrome_weight\": 43\n        },\n        {\n          \"iteration\": 10,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 15,\n          \"syndrome_weight\": 46\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 41\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 35\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 45\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 34\n        }\n      ]\n    },\n    {\n      \"variant\": \"lsb_within_each_tone\",\n      \"transform\": \"reverse_inverted_codeword\",\n      \"source_rank_score\": 119.389188,\n      \"source_llr_stats\": {\n        \"count\": 174,\n        \"avg_abs\": 2.347297,\n        \"min_abs\": 0.029594,\n        \"max_abs\": 4.31172,\n        \"positive\": 133,\n        \"negative\": 41,\n        \"zero\": 0\n      },\n      \"success\": false,\n      \"iterations_used\": 40,\n      \"final_syndrome_weight\": 33,\n      \"message91\": null,\n      \"message91_sha256_16\": \"3da67efa8398894a\",\n      \"codeword174_sha256_16\": \"c0ffb55faec27219\",\n      \"trace\": [\n        {\n          \"iteration\": 0,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 1,\n          \"syndrome_weight\": 33\n        },\n        {\n          \"iteration\": 2,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 3,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 4,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 5,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 6,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 7,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 8,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 9,\n          \"syndrome_weight\": 43\n        },\n        {\n          \"iteration\": 10,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 15,\n          \"syndrome_weight\": 46\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 41\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 35\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 45\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 34\n        }\n      ]\n    },\n    {\n      \"variant\": \"reverse_symbol_order\",\n      \"transform\": \"inverted_bits\",\n      \"source_rank_score\": 113.389188,\n      \"source_llr_stats\": {\n        \"count\": 174,\n        \"avg_abs\": 2.347297,\n        \"min_abs\": 0.029594,\n        \"max_abs\": 4.31172,\n        \"positive\": 133,\n        \"negative\": 41,\n        \"zero\": 0\n      },\n      \"success\": false,\n      \"iterations_used\": 40,\n      \"final_syndrome_weight\": 33,\n      \"message91\": null,\n      \"message91_sha256_16\": \"3da67efa8398894a\",\n      \"codeword174_sha256_16\": \"c0ffb55faec27219\",\n      \"trace\": [\n        {\n          \"iteration\": 0,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 1,\n          \"syndrome_weight\": 33\n        },\n        {\n          \"iteration\": 2,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 3,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 4,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 5,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 6,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 7,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 8,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 9,\n          \"syndrome_weight\": 43\n        },\n        {\n          \"iteration\": 10,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 15,\n          \"syndrome_weight\": 46\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 41\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 35\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 45\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 34\n        }\n      ]\n    },\n    {\n      \"variant\": \"reverse_full_bitstream\",\n      \"transform\": \"inverted_bits\",\n      \"source_rank_score\": 112.389188,\n      \"source_llr_stats\": {\n        \"count\": 174,\n        \"avg_abs\": 2.347297,\n        \"min_abs\": 0.029594,\n        \"max_abs\": 4.31172,\n        \"positive\": 133,\n        \"negative\": 41,\n        \"zero\": 0\n      },\n      \"success\": false,\n      \"iterations_used\": 40,\n      \"final_syndrome_weight\": 33,\n      \"message91\": null,\n      \"message91_sha256_16\": \"3da67efa8398894a\",\n      \"codeword174_sha256_16\": \"c0ffb55faec27219\",\n      \"trace\": [\n        {\n          \"iteration\": 0,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 1,\n          \"syndrome_weight\": 33\n        },\n        {\n          \"iteration\": 2,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 3,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 4,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 5,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 6,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 7,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 8,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 9,\n          \"syndrome_weight\": 43\n        },\n        {\n          \"iteration\": 10,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 15,\n          \"syndrome_weight\": 46\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 41\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 35\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 45\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 34\n        }\n      ]\n    },\n    {\n      \"variant\": \"lab_mask_xor_preview\",\n      \"transform\": \"reverse_inverted_codeword\",\n      \"source_rank_score\": 101.389188,\n      \"source_llr_stats\": {\n        \"count\": 174,\n        \"avg_abs\": 2.347297,\n        \"min_abs\": 0.029594,\n        \"max_abs\": 4.31172,\n        \"positive\": 133,\n        \"negative\": 41,\n        \"zero\": 0\n      },\n      \"success\": false,\n      \"iterations_used\": 40,\n      \"final_syndrome_weight\": 33,\n      \"message91\": null,\n      \"message91_sha256_16\": \"3da67efa8398894a\",\n      \"codeword174_sha256_16\": \"c0ffb55faec27219\",\n      \"trace\": [\n        {\n          \"iteration\": 0,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 1,\n          \"syndrome_weight\": 33\n        },\n        {\n          \"iteration\": 2,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 3,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 4,\n          \"syndrome_weight\": 38\n        },\n        {\n          \"iteration\": 5,\n          \"syndrome_weight\": 42\n        },\n        {\n          \"iteration\": 6,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 7,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 8,\n          \"syndrome_weight\": 37\n        },\n        {\n          \"iteration\": 9,\n          \"syndrome_weight\": 43\n        },\n        {\n          \"iteration\": 10,\n          \"syndrome_weight\": 40\n        },\n        {\n          \"iteration\": 15,\n          \"syndrome_weight\": 46\n        },\n        {\n          \"iteration\": 20,\n          \"syndrome_weight\": 41\n        },\n        {\n          \"iteration\": 25,\n          \"syndrome_weight\": 35\n        },\n        {\n          \"iteration\": 30,\n          \"syndrome_weight\": 45\n        },\n        {\n          \"iteration\": 35,\n          \"syndrome_weight\": 44\n        },\n        {\n          \"iteration\": 40,\n          \"syndrome_weight\": 34\n        }\n      ]\n    }\n  ],\n  \"decodes\": [],\n  \"outputs\": {\n    \"ldpc_soft_decode_json\": \"/decoders/js8_decoder/runtime/ldpc_soft_decode/step32_ldpc_soft_decode.json\"\n  },\n  \"warnings\": [\n    \"Step 32 runs a real normalized-min-sum soft LDPC probe against the public (174,91) matrix contract.\",\n    \"This still does not unpack JS8 text or validate CRC/message payloads.\",\n    \"If success is true and syndrome_weight is 0, the next step can unpack the 91-bit message. Otherwise more deinterleaver/order/LLR tuning is required.\"\n  ],\n  \"next_action\": \"Upload logs. Next step: if no valid codeword, improve interleaver/order/LLR mapping; if valid, add JS8 message unpack/CRC.\"\n}\n\n[webftr-js8-lab] OK\n[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T115812Z_ldpc-soft-decode.log\n[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T115812Z_ldpc-soft-decode_manifest.json\n[webftr-js8-lab] ldpc-soft-decode exit_code=0\n\n========== REAL-RUN STEP 9/9: JS8LAB LOG BUNDLE ==========\n[webftr-js8-lab] collecting JS8Lab logs from /decoders/js8_decoder/logs\n[webftr-js8-lab] upload this JS8Lab bundle: /decoders/js8_decoder/logs/js8_decoder_lab_real_run_20260526T114834Z.zip\n\n[webftr-js8-lab] real-run completed with errors, but JS8Lab log bundle was created.\n[webftr-js8-lab] upload bundle: /decoders/js8_decoder/logs/js8_decoder_lab_real_run_20260526T114834Z.zip\n\n[webftr-js8-lab] FAILED exit_code=143\n[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T114834Z_real-run.log\n[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T114834Z_real-run_manifest.json\n\n[webftr-js8-lab] server-deep-run completed with errors, but logs/browser report were written.\n\n[webftr-js8-lab] FAILED exit_code=143\n[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260526T114834Z_server-deep-run.log\n[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260526T114834Z_server-deep-run_manifest.json\n"
  },
  "output_refs": {
    "input_check": {
      "name": "20260526T114835Z_input_check_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T114835Z_input_check_output.json",
      "url": "/logs/20260526T114835Z_input_check_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 686,
        "mtime_utc": "2026-05-26T11:48:35Z"
      },
      "json_preview": {
        "ok": true,
        "mode": "JS8",
        "tool": "webftr-js8-input-check",
        "tool_version": "step32-anchored-candidate-fast-export-guard",
        "input_wav": "/decoders/js8_test.wav",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "decodes": [],
        "warnings": [],
        "wav": {
          "path": "/decoders/js8_test.wav",
          "channels": 1,
          "sample_rate": 12000,
          "sample_width_bytes": 2,
          "frames": 2304199,
          "duration_seconds": 192.016583,
          "rms_dbfs": -9.14,
          "peak_dbfs": -0.72,
          "clipped": false
        },
        "next_action": "Run profile-scan, then auto-ldpc-probe on this WAV."
      }
    },
    "real_run_quick_prefilter": {
      "name": "20260526T114834Z_real_run_quick_prefilter_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_quick_prefilter_output.json",
      "url": "/logs/20260526T114834Z_real_run_quick_prefilter_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 8817,
        "mtime_utc": "2026-05-26T11:48:57Z"
      },
      "json_preview": {
        "ok": true,
        "mode": "JS8",
        "tool": "webftr-js8-quick-window-scan",
        "tool_version": "step32-anchored-candidate-fast-export-guard",
        "input_wav": "/decoders/js8_test.wav",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "wav": {
          "sample_rate": 12000,
          "duration_seconds": 192.016583,
          "frames": 2304199,
          "rms_dbfs": -9.164808449038551,
          "peak_dbfs": -0.7246929351669301,
          "clipped": false
        },
        "scan_params": {
          "window_seconds": 60.0,
          "hop_seconds": 12.0,
          "max_seconds": 180.0,
          "output_dir": "/decoders/js8_decoder/runtime/quick_prefilter_windows"
        },
        "selected_window": {
          "start_seconds": 24.0,
          "end_seconds": 84.0,
          "duration_seconds": 60.0,
          "avg_activity_score": -6.2272,
          "active_chunks": 5,
          "chunk_count": 5,
          "selection_score": 11.2728,
          "window_wav": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
          "tone_candidates": [
            {
              "freq_hz": 1025.0,
              "relative_db": 0.0,
              "power": 7.98385996
            },
            {
              "freq_hz": 1000.0,
              "relative_db": -0.38,
              "power": 7.31762699
            },
            {
              "freq_hz": 2025.0,
              "relative_db": -9.29,
              "power": 0.93974646
            },
            {
              "freq_hz": 975.0,
              "relative_db": -13.3,
              "power": 0.37314359
            },
            {
              "freq_hz": 1050.0,
              "relative_db": -25.6,
              "power": 0.02199227
            },
            {
              "freq_hz": 1775.0,
              "relative_db": -27.4,
              "power": 0.01453049
            },
            {
              "freq_hz": 1150.0,
              "relative_db": -27.44,
              "power": 0.01439727
            },
            {
              "freq_hz": 1425.0,
              "relative_db": -28.11,
              "power": 0.01233556
            },
            {
              "freq_hz": 1250.0,
              "relative_db": -29.08,
              "power": 0.00987629
            },
            {
              "freq_hz": 1825.0,
              "relative_db": -29.2,
              "power": 0.00959995
            },
            {
              "freq_hz": 1950.0,
              "relative_db": -29.78,
              "power": 0.00840634
            },
            {
              "freq_hz": 950.0,
              "relative_db": -29.91,
              "power": 0.00814511
            }
          ]
        },
        "selected_window_wav": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
        "top_windows": [
          {
            "start_seconds": 24.0,
            "end_seconds": 84.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2272,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2728,
            "window_wav": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
            "tone_candidates": [
              {
                "freq_hz": 1025.0,
                "relative_db": 0.0,
                "power": 7.98385996
              },
              {
                "freq_hz": 1000.0,
                "relative_db": -0.38,
                "power": 7.31762699
              },
              {
                "freq_hz": 2025.0,
                "relative_db": -9.29,
                "power": 0.93974646
              },
              {
                "freq_hz": 975.0,
                "relative_db": -13.3,
                "power": 0.37314359
              },
              {
                "freq_hz": 1050.0,
                "relative_db": -25.6,
                "power": 0.02199227
              },
              {
                "freq_hz": 1775.0,
                "relative_db": -27.4,
                "power": 0.01453049
              },
              {
                "freq_hz": 1150.0,
                "relative_db": -27.44,
                "power": 0.01439727
              },
              {
                "freq_hz": 1425.0,
                "relative_db": -28.11,
                "power": 0.01233556
              },
              {
                "freq_hz": 1250.0,
                "relative_db": -29.08,
                "power": 0.00987629
              },
              {
                "freq_hz": 1825.0,
                "relative_db": -29.2,
                "power": 0.00959995
              },
              {
                "freq_hz": 1950.0,
                "relative_db": -29.78,
                "power": 0.00840634
              },
              {
                "freq_hz": 950.0,
                "relative_db": -29.91,
                "power": 0.00814511
              }
            ]
          },
          {
            "start_seconds": 12.0,
            "end_seconds": 72.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2278,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2722
          },
          {
            "start_seconds": 36.0,
            "end_seconds": 96.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2346,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2654
          },
          {
            "start_seconds": 48.0,
            "end_seconds": 108.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2483,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2517
          },
          {
            "start_seconds": 0.0,
            "end_seconds": 60.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2606,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2394
          },
          {
            "start_seconds": 60.0,
            "end_seconds": 120.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2619,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2381
          },
          {
            "start_seconds": 108.0,
            "end_seconds": 168.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2716,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2284
          },
          {
            "start_seconds": 72.0,
            "end_seconds": 132.0,
            "duration_seconds": 60.0,
            "avg_activity_score": -6.2752,
            "active_chunks": 5,
            "chunk_count": 5,
            "selection_score": 11.2248
          }
        ],
        "chunk_preview": [
          {
            "chunk_index": 0,
            "start_seconds": 0.0,
            "end_seconds": 12.0,
            "rms_dbfs": -9.07,
            "peak_dbfs": -3.22,
            "activity_score": -6.2351
          },
          {
            "chunk_index": 1,
            "start_seconds": 12.0,
            "end_seconds": 24.0,
            "rms_dbfs": -9.27,
            "peak_dbfs": -3.01,
            "activity_score": -6.4225
          },
          {
            "chunk_index": 2,
            "start_seconds": 24.0,
            "end_seconds": 36.0,
            "rms_dbfs": -9.24,
            "peak_dbfs": -2.73,
            "activity_score": -6.3769
          },
          {
            "chunk_index": 3,
            "start_seconds": 36.0,
            "end_seconds": 48.0,
            "rms_dbfs": -9.24,
            "peak_dbfs": -2.39,
            "activity_score": -6.3632
          },
          {
            "chunk_index": 4,
            "start_seconds": 48.0,
            "end_seconds": 60.0,
            "rms_dbfs": -8.87,
            "peak_dbfs": -0.72,
            "activity_score": -5.9054
          },
          {
            "chunk_index": 5,
            "start_seconds": 60.0,
            "end_seconds": 72.0,
            "rms_dbfs": -9.03,
            "peak_dbfs": -0.72,
            "activity_score": -6.0711
          },
          {
            "chunk_index": 6,
            "start_seconds": 72.0,
            "end_seconds": 84.0,
            "rms_dbfs": -9.26,
            "peak_dbfs": -3.1,
            "activity_score": -6.4194
          },
          {
            "chunk_index": 7,
            "start_seconds": 84.0,
            "end_seconds": 96.0,
            "rms_dbfs": -9.29,
            "peak_dbfs": -2.42,
            "activity_score": -6.4141
          }
        ],
        "chunk_tail_preview": [
          {
            "chunk_index": 7,
            "start_seconds": 84.0,
            "end_seconds": 96.0,
            "rms_dbfs": -9.29,
            "peak_dbfs": -2.42,
            "activity_score": -6.4141
          },
          {
            "chunk_index": 8,
            "start_seconds": 96.0,
            "end_seconds": 108.0,
            "rms_dbfs": -9.3,
            "peak_dbfs": -2.65,
            "activity_score": -6.4314
          },
          {
            "chunk_index": 9,
            "start_seconds": 108.0,
            "end_seconds": 120.0,
            "rms_dbfs": -8.87,
            "peak_dbfs": -2.1,
            "activity_score": -5.9734
          },
          {
            "chunk_index": 10,
            "start_seconds": 120.0,
            "end_seconds": 132.0,
            "rms_dbfs": -9.02,
            "peak_dbfs": -2.36,
            "activity_score": -6.1378
          },
          {
            "chunk_index": 11,
            "start_seconds": 132.0,
            "end_seconds": 144.0,
            "rms_dbfs": -9.41,
            "peak_dbfs": -0.72,
            "activity_score": -6.4474
          },
          {
            "chunk_index": 12,
            "start_seconds": 144.0,
            "end_seconds": 156.0,
            "rms_dbfs": -9.3,
            "peak_dbfs": -2.31,
            "activity_score": -6.4185
          },
          {
            "chunk_index": 13,
            "start_seconds": 156.0,
            "end_seconds": 168.0,
            "rms_dbfs": -9.34,
            "peak_dbfs": -0.89,
            "activity_score": -6.3807
          },
          {
            "chunk_index": 14,
            "start_seconds": 168.0,
            "end_seconds": 180.0,
            "rms_dbfs": -8.99,
            "peak_dbfs": -3.03,
            "activity_score": -6.1457
          }
        ],
        "decodes": [],
        "warnings": [
          "Quick-window-scan only selects a likely analysis window; it is not a JS8 text decoder."
        ],
        "next_action": "Run sync/soft-symbol/FEC probes on selected_window_wav. Message unpack is not implemented in Step 32."
      }
    },
    "real_run_dirty_window_scan": {
      "name": "20260526T114834Z_real_run_dirty_window_scan_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_dirty_window_scan_output.json",
      "url": "/logs/20260526T114834Z_real_run_dirty_window_scan_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 1223,
        "mtime_utc": "2026-05-26T11:49:58Z"
      },
      "json_preview": {
        "ok": false,
        "error": "json_command_timeout_guard",
        "timeout_seconds": 60,
        "exit_code": 143,
        "command": [
          "python3",
          "-m",
          "webftr_js8_lab.js8_dirty_window_scan",
          "--input",
          "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
          "--pretty",
          "--window-seconds",
          "54",
          "--hop-seconds",
          "30",
          "--max-seconds",
          "75",
          "--max-windows",
          "1",
          "--max-starts",
          "3",
          "--max-base-candidates",
          "2",
          "--output-dir",
          "/decoders/js8_decoder/runtime/dirty_windows",
          "--prefer-js8"
        ],
        "stderr_log": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_dirty_window_scan_output.stderr.log",
        "stderr_tail": "/decoders/js8_decoder/src/webftr_js8_lab/js8_dirty_window_scan.py:4: DeprecationWarning: 'audioop' is deprecated and slated for removal in Python 3.13\n  import audioop\n",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "next_action": "Step 32 timeout guard stopped this expensive probe. The real-run now continues with quick-window fallback when available; otherwise inspect stderr/log bundle."
      }
    },
    "dirty_window_scan": {
      "name": "20260526T114834Z_real_run_dirty_window_scan_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_dirty_window_scan_output.json",
      "url": "/logs/20260526T114834Z_real_run_dirty_window_scan_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 1223,
        "mtime_utc": "2026-05-26T11:49:58Z"
      },
      "json_preview": {
        "ok": false,
        "error": "json_command_timeout_guard",
        "timeout_seconds": 60,
        "exit_code": 143,
        "command": [
          "python3",
          "-m",
          "webftr_js8_lab.js8_dirty_window_scan",
          "--input",
          "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
          "--pretty",
          "--window-seconds",
          "54",
          "--hop-seconds",
          "30",
          "--max-seconds",
          "75",
          "--max-windows",
          "1",
          "--max-starts",
          "3",
          "--max-base-candidates",
          "2",
          "--output-dir",
          "/decoders/js8_decoder/runtime/dirty_windows",
          "--prefer-js8"
        ],
        "stderr_log": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_dirty_window_scan_output.stderr.log",
        "stderr_tail": "/decoders/js8_decoder/src/webftr_js8_lab/js8_dirty_window_scan.py:4: DeprecationWarning: 'audioop' is deprecated and slated for removal in Python 3.13\n  import audioop\n",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "next_action": "Step 32 timeout guard stopped this expensive probe. The real-run now continues with quick-window fallback when available; otherwise inspect stderr/log bundle."
      }
    },
    "ldpc_soft_decode": {
      "name": "20260526T115812Z_ldpc_soft_decode_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T115812Z_ldpc_soft_decode_output.json",
      "url": "/logs/20260526T115812Z_ldpc_soft_decode_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 42471,
        "mtime_utc": "2026-05-26T11:59:30Z"
      },
      "json_preview": {
        "ok": true,
        "mode": "JS8",
        "tool": "webftr-js8-soft-ldpc-minsum-probe",
        "tool_version": "step32-anchored-candidate-fast-export-guard",
        "input_wav": null,
        "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "implementation_stage": "step32_soft_ldpc_minsum_probe_no_message_unpack",
        "matrix": {
          "code": "(174,91)",
          "message_bits": 91,
          "parity_bits": 83,
          "codeword_bits": 174,
          "check_count": 83
        },
        "decoder": {
          "algorithm": "normalized_min_sum",
          "max_iterations": 40,
          "alpha": 0.8,
          "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely"
        },
        "candidate_context": {
          "nsps_used": 6192,
          "nsps_is_js8_realistic": true,
          "selected_profile": {},
          "selected_variant": {
            "name": "raw_msb_symbol_order",
            "rank_score": 127.389188,
            "complete_174bit_candidate": true,
            "hard_bits_sha256_16": "aa237514554a5da8",
            "hard_weight_174": 42,
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            }
          }
        },
        "probe_count": 20,
        "best_soft_decode": {
          "variant": "raw_msb_symbol_order",
          "transform": "inverted_bits",
          "source_rank_score": 127.389188,
          "source_llr_stats": {
            "count": 174,
            "avg_abs": 2.347297,
            "min_abs": 0.029594,
            "max_abs": 4.31172,
            "positive": 133,
            "negative": 41,
            "zero": 0
          },
          "success": false,
          "iterations_used": 40,
          "final_syndrome_weight": 29,
          "message91": null,
          "message91_sha256_16": "c4420e8a3025fa0b",
          "codeword174_sha256_16": "a6cbd3921428e957",
          "trace": [
            {
              "iteration": 0,
              "syndrome_weight": 41
            },
            {
              "iteration": 1,
              "syndrome_weight": 40
            },
            {
              "iteration": 2,
              "syndrome_weight": 29
            },
            {
              "iteration": 3,
              "syndrome_weight": 49
            },
            {
              "iteration": 4,
              "syndrome_weight": 40
            },
            {
              "iteration": 5,
              "syndrome_weight": 32
            },
            {
              "iteration": 6,
              "syndrome_weight": 39
            },
            {
              "iteration": 7,
              "syndrome_weight": 46
            },
            {
              "iteration": 8,
              "syndrome_weight": 38
            },
            {
              "iteration": 9,
              "syndrome_weight": 45
            },
            {
              "iteration": 10,
              "syndrome_weight": 39
            },
            {
              "iteration": 15,
              "syndrome_weight": 43
            },
            {
              "iteration": 20,
              "syndrome_weight": 42
            },
            {
              "iteration": 25,
              "syndrome_weight": 40
            },
            {
              "iteration": 30,
              "syndrome_weight": 45
            },
            {
              "iteration": 35,
              "syndrome_weight": 39
            },
            {
              "iteration": 40,
              "syndrome_weight": 51
            }
          ]
        },
        "soft_decode_results": [
          {
            "variant": "raw_msb_symbol_order",
            "transform": "inverted_bits",
            "source_rank_score": 127.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 29,
            "message91": null,
            "message91_sha256_16": "c4420e8a3025fa0b",
            "codeword174_sha256_16": "a6cbd3921428e957",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 40
              },
              {
                "iteration": 2,
                "syndrome_weight": 29
              },
              {
                "iteration": 3,
                "syndrome_weight": 49
              },
              {
                "iteration": 4,
                "syndrome_weight": 40
              },
              {
                "iteration": 5,
                "syndrome_weight": 32
              },
              {
                "iteration": 6,
                "syndrome_weight": 39
              },
              {
                "iteration": 7,
                "syndrome_weight": 46
              },
              {
                "iteration": 8,
                "syndrome_weight": 38
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 43
              },
              {
                "iteration": 20,
                "syndrome_weight": 42
              },
              {
                "iteration": 25,
                "syndrome_weight": 40
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 39
              },
              {
                "iteration": 40,
                "syndrome_weight": 51
              }
            ]
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "inverted_bits",
            "source_rank_score": 119.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 29,
            "message91": null,
            "message91_sha256_16": "c4420e8a3025fa0b",
            "codeword174_sha256_16": "a6cbd3921428e957",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 40
              },
              {
                "iteration": 2,
                "syndrome_weight": 29
              },
              {
                "iteration": 3,
                "syndrome_weight": 49
              },
              {
                "iteration": 4,
                "syndrome_weight": 40
              },
              {
                "iteration": 5,
                "syndrome_weight": 32
              },
              {
                "iteration": 6,
                "syndrome_weight": 39
              },
              {
                "iteration": 7,
                "syndrome_weight": 46
              },
              {
                "iteration": 8,
                "syndrome_weight": 38
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 43
              },
              {
                "iteration": 20,
                "syndrome_weight": 42
              },
              {
                "iteration": 25,
                "syndrome_weight": 40
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 39
              },
              {
                "iteration": 40,
                "syndrome_weight": 51
              }
            ]
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "reverse_inverted_codeword",
            "source_rank_score": 113.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 29,
            "message91": null,
            "message91_sha256_16": "c4420e8a3025fa0b",
            "codeword174_sha256_16": "a6cbd3921428e957",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 40
              },
              {
                "iteration": 2,
                "syndrome_weight": 29
              },
              {
                "iteration": 3,
                "syndrome_weight": 49
              },
              {
                "iteration": 4,
                "syndrome_weight": 40
              },
              {
                "iteration": 5,
                "syndrome_weight": 32
              },
              {
                "iteration": 6,
                "syndrome_weight": 39
              },
              {
                "iteration": 7,
                "syndrome_weight": 46
              },
              {
                "iteration": 8,
                "syndrome_weight": 38
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 43
              },
              {
                "iteration": 20,
                "syndrome_weight": 42
              },
              {
                "iteration": 25,
                "syndrome_weight": 40
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 39
              },
              {
                "iteration": 40,
                "syndrome_weight": 51
              }
            ]
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "reverse_inverted_codeword",
            "source_rank_score": 112.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 29,
            "message91": null,
            "message91_sha256_16": "c4420e8a3025fa0b",
            "codeword174_sha256_16": "a6cbd3921428e957",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 40
              },
              {
                "iteration": 2,
                "syndrome_weight": 29
              },
              {
                "iteration": 3,
                "syndrome_weight": 49
              },
              {
                "iteration": 4,
                "syndrome_weight": 40
              },
              {
                "iteration": 5,
                "syndrome_weight": 32
              },
              {
                "iteration": 6,
                "syndrome_weight": 39
              },
              {
                "iteration": 7,
                "syndrome_weight": 46
              },
              {
                "iteration": 8,
                "syndrome_weight": 38
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 43
              },
              {
                "iteration": 20,
                "syndrome_weight": 42
              },
              {
                "iteration": 25,
                "syndrome_weight": 40
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 39
              },
              {
                "iteration": 40,
                "syndrome_weight": 51
              }
            ]
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "inverted_bits",
            "source_rank_score": 101.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 29,
            "message91": null,
            "message91_sha256_16": "c4420e8a3025fa0b",
            "codeword174_sha256_16": "a6cbd3921428e957",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 40
              },
              {
                "iteration": 2,
                "syndrome_weight": 29
              },
              {
                "iteration": 3,
                "syndrome_weight": 49
              },
              {
                "iteration": 4,
                "syndrome_weight": 40
              },
              {
                "iteration": 5,
                "syndrome_weight": 32
              },
              {
                "iteration": 6,
                "syndrome_weight": 39
              },
              {
                "iteration": 7,
                "syndrome_weight": 46
              },
              {
                "iteration": 8,
                "syndrome_weight": 38
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 43
              },
              {
                "iteration": 20,
                "syndrome_weight": 42
              },
              {
                "iteration": 25,
                "syndrome_weight": 40
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 39
              },
              {
                "iteration": 40,
                "syndrome_weight": 51
              }
            ]
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "reverse_codeword",
            "source_rank_score": 127.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 31,
            "message91": null,
            "message91_sha256_16": "ac67150b95806719",
            "codeword174_sha256_16": "a5cb1fcaa6b0cc6a",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 42
              },
              {
                "iteration": 2,
                "syndrome_weight": 46
              },
              {
                "iteration": 3,
                "syndrome_weight": 41
              },
              {
                "iteration": 4,
                "syndrome_weight": 36
              },
              {
                "iteration": 5,
                "syndrome_weight": 37
              },
              {
                "iteration": 6,
                "syndrome_weight": 49
              },
              {
                "iteration": 7,
                "syndrome_weight": 34
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 32
              },
              {
                "iteration": 10,
                "syndrome_weight": 36
              },
              {
                "iteration": 15,
                "syndrome_weight": 33
              },
              {
                "iteration": 20,
                "syndrome_weight": 46
              },
              {
                "iteration": 25,
                "syndrome_weight": 46
              },
              {
                "iteration": 30,
                "syndrome_weight": 34
              },
              {
                "iteration": 35,
                "syndrome_weight": 45
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "reverse_codeword",
            "source_rank_score": 119.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 31,
            "message91": null,
            "message91_sha256_16": "ac67150b95806719",
            "codeword174_sha256_16": "a5cb1fcaa6b0cc6a",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 42
              },
              {
                "iteration": 2,
                "syndrome_weight": 46
              },
              {
                "iteration": 3,
                "syndrome_weight": 41
              },
              {
                "iteration": 4,
                "syndrome_weight": 36
              },
              {
                "iteration": 5,
                "syndrome_weight": 37
              },
              {
                "iteration": 6,
                "syndrome_weight": 49
              },
              {
                "iteration": 7,
                "syndrome_weight": 34
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 32
              },
              {
                "iteration": 10,
                "syndrome_weight": 36
              },
              {
                "iteration": 15,
                "syndrome_weight": 33
              },
              {
                "iteration": 20,
                "syndrome_weight": 46
              },
              {
                "iteration": 25,
                "syndrome_weight": 46
              },
              {
                "iteration": 30,
                "syndrome_weight": 34
              },
              {
                "iteration": 35,
                "syndrome_weight": 45
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "as_exported",
            "source_rank_score": 113.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 31,
            "message91": null,
            "message91_sha256_16": "ac67150b95806719",
            "codeword174_sha256_16": "a5cb1fcaa6b0cc6a",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 42
              },
              {
                "iteration": 2,
                "syndrome_weight": 46
              },
              {
                "iteration": 3,
                "syndrome_weight": 41
              },
              {
                "iteration": 4,
                "syndrome_weight": 36
              },
              {
                "iteration": 5,
                "syndrome_weight": 37
              },
              {
                "iteration": 6,
                "syndrome_weight": 49
              },
              {
                "iteration": 7,
                "syndrome_weight": 34
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 32
              },
              {
                "iteration": 10,
                "syndrome_weight": 36
              },
              {
                "iteration": 15,
                "syndrome_weight": 33
              },
              {
                "iteration": 20,
                "syndrome_weight": 46
              },
              {
                "iteration": 25,
                "syndrome_weight": 46
              },
              {
                "iteration": 30,
                "syndrome_weight": 34
              },
              {
                "iteration": 35,
                "syndrome_weight": 45
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "as_exported",
            "source_rank_score": 112.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 31,
            "message91": null,
            "message91_sha256_16": "ac67150b95806719",
            "codeword174_sha256_16": "a5cb1fcaa6b0cc6a",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 42
              },
              {
                "iteration": 2,
                "syndrome_weight": 46
              },
              {
                "iteration": 3,
                "syndrome_weight": 41
              },
              {
                "iteration": 4,
                "syndrome_weight": 36
              },
              {
                "iteration": 5,
                "syndrome_weight": 37
              },
              {
                "iteration": 6,
                "syndrome_weight": 49
              },
              {
                "iteration": 7,
                "syndrome_weight": 34
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 32
              },
              {
                "iteration": 10,
                "syndrome_weight": 36
              },
              {
                "iteration": 15,
                "syndrome_weight": 33
              },
              {
                "iteration": 20,
                "syndrome_weight": 46
              },
              {
                "iteration": 25,
                "syndrome_weight": 46
              },
              {
                "iteration": 30,
                "syndrome_weight": 34
              },
              {
                "iteration": 35,
                "syndrome_weight": 45
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "reverse_codeword",
            "source_rank_score": 101.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 31,
            "message91": null,
            "message91_sha256_16": "ac67150b95806719",
            "codeword174_sha256_16": "a5cb1fcaa6b0cc6a",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 41
              },
              {
                "iteration": 1,
                "syndrome_weight": 42
              },
              {
                "iteration": 2,
                "syndrome_weight": 46
              },
              {
                "iteration": 3,
                "syndrome_weight": 41
              },
              {
                "iteration": 4,
                "syndrome_weight": 36
              },
              {
                "iteration": 5,
                "syndrome_weight": 37
              },
              {
                "iteration": 6,
                "syndrome_weight": 49
              },
              {
                "iteration": 7,
                "syndrome_weight": 34
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 32
              },
              {
                "iteration": 10,
                "syndrome_weight": 36
              },
              {
                "iteration": 15,
                "syndrome_weight": 33
              },
              {
                "iteration": 20,
                "syndrome_weight": 46
              },
              {
                "iteration": 25,
                "syndrome_weight": 46
              },
              {
                "iteration": 30,
                "syndrome_weight": 34
              },
              {
                "iteration": 35,
                "syndrome_weight": 45
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "as_exported",
            "source_rank_score": 127.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 32,
            "message91": null,
            "message91_sha256_16": "9286e1618d0e5dab",
            "codeword174_sha256_16": "f6869af30d1c1480",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 39
              },
              {
                "iteration": 1,
                "syndrome_weight": 38
              },
              {
                "iteration": 2,
                "syndrome_weight": 38
              },
              {
                "iteration": 3,
                "syndrome_weight": 42
              },
              {
                "iteration": 4,
                "syndrome_weight": 45
              },
              {
                "iteration": 5,
                "syndrome_weight": 44
              },
              {
                "iteration": 6,
                "syndrome_weight": 42
              },
              {
                "iteration": 7,
                "syndrome_weight": 42
              },
              {
                "iteration": 8,
                "syndrome_weight": 44
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 45
              },
              {
                "iteration": 20,
                "syndrome_weight": 50
              },
              {
                "iteration": 25,
                "syndrome_weight": 37
              },
              {
                "iteration": 30,
                "syndrome_weight": 42
              },
              {
                "iteration": 35,
                "syndrome_weight": 42
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "as_exported",
            "source_rank_score": 119.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 32,
            "message91": null,
            "message91_sha256_16": "9286e1618d0e5dab",
            "codeword174_sha256_16": "f6869af30d1c1480",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 39
              },
              {
                "iteration": 1,
                "syndrome_weight": 38
              },
              {
                "iteration": 2,
                "syndrome_weight": 38
              },
              {
                "iteration": 3,
                "syndrome_weight": 42
              },
              {
                "iteration": 4,
                "syndrome_weight": 45
              },
              {
                "iteration": 5,
                "syndrome_weight": 44
              },
              {
                "iteration": 6,
                "syndrome_weight": 42
              },
              {
                "iteration": 7,
                "syndrome_weight": 42
              },
              {
                "iteration": 8,
                "syndrome_weight": 44
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 45
              },
              {
                "iteration": 20,
                "syndrome_weight": 50
              },
              {
                "iteration": 25,
                "syndrome_weight": 37
              },
              {
                "iteration": 30,
                "syndrome_weight": 42
              },
              {
                "iteration": 35,
                "syndrome_weight": 42
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "reverse_codeword",
            "source_rank_score": 113.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 32,
            "message91": null,
            "message91_sha256_16": "9286e1618d0e5dab",
            "codeword174_sha256_16": "f6869af30d1c1480",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 39
              },
              {
                "iteration": 1,
                "syndrome_weight": 38
              },
              {
                "iteration": 2,
                "syndrome_weight": 38
              },
              {
                "iteration": 3,
                "syndrome_weight": 42
              },
              {
                "iteration": 4,
                "syndrome_weight": 45
              },
              {
                "iteration": 5,
                "syndrome_weight": 44
              },
              {
                "iteration": 6,
                "syndrome_weight": 42
              },
              {
                "iteration": 7,
                "syndrome_weight": 42
              },
              {
                "iteration": 8,
                "syndrome_weight": 44
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 45
              },
              {
                "iteration": 20,
                "syndrome_weight": 50
              },
              {
                "iteration": 25,
                "syndrome_weight": 37
              },
              {
                "iteration": 30,
                "syndrome_weight": 42
              },
              {
                "iteration": 35,
                "syndrome_weight": 42
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "reverse_codeword",
            "source_rank_score": 112.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 32,
            "message91": null,
            "message91_sha256_16": "9286e1618d0e5dab",
            "codeword174_sha256_16": "f6869af30d1c1480",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 39
              },
              {
                "iteration": 1,
                "syndrome_weight": 38
              },
              {
                "iteration": 2,
                "syndrome_weight": 38
              },
              {
                "iteration": 3,
                "syndrome_weight": 42
              },
              {
                "iteration": 4,
                "syndrome_weight": 45
              },
              {
                "iteration": 5,
                "syndrome_weight": 44
              },
              {
                "iteration": 6,
                "syndrome_weight": 42
              },
              {
                "iteration": 7,
                "syndrome_weight": 42
              },
              {
                "iteration": 8,
                "syndrome_weight": 44
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 45
              },
              {
                "iteration": 20,
                "syndrome_weight": 50
              },
              {
                "iteration": 25,
                "syndrome_weight": 37
              },
              {
                "iteration": 30,
                "syndrome_weight": 42
              },
              {
                "iteration": 35,
                "syndrome_weight": 42
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "as_exported",
            "source_rank_score": 101.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 32,
            "message91": null,
            "message91_sha256_16": "9286e1618d0e5dab",
            "codeword174_sha256_16": "f6869af30d1c1480",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 39
              },
              {
                "iteration": 1,
                "syndrome_weight": 38
              },
              {
                "iteration": 2,
                "syndrome_weight": 38
              },
              {
                "iteration": 3,
                "syndrome_weight": 42
              },
              {
                "iteration": 4,
                "syndrome_weight": 45
              },
              {
                "iteration": 5,
                "syndrome_weight": 44
              },
              {
                "iteration": 6,
                "syndrome_weight": 42
              },
              {
                "iteration": 7,
                "syndrome_weight": 42
              },
              {
                "iteration": 8,
                "syndrome_weight": 44
              },
              {
                "iteration": 9,
                "syndrome_weight": 45
              },
              {
                "iteration": 10,
                "syndrome_weight": 39
              },
              {
                "iteration": 15,
                "syndrome_weight": 45
              },
              {
                "iteration": 20,
                "syndrome_weight": 50
              },
              {
                "iteration": 25,
                "syndrome_weight": 37
              },
              {
                "iteration": 30,
                "syndrome_weight": 42
              },
              {
                "iteration": 35,
                "syndrome_weight": 42
              },
              {
                "iteration": 40,
                "syndrome_weight": 45
              }
            ]
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "reverse_inverted_codeword",
            "source_rank_score": 127.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 33,
            "message91": null,
            "message91_sha256_16": "3da67efa8398894a",
            "codeword174_sha256_16": "c0ffb55faec27219",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 37
              },
              {
                "iteration": 1,
                "syndrome_weight": 33
              },
              {
                "iteration": 2,
                "syndrome_weight": 42
              },
              {
                "iteration": 3,
                "syndrome_weight": 38
              },
              {
                "iteration": 4,
                "syndrome_weight": 38
              },
              {
                "iteration": 5,
                "syndrome_weight": 42
              },
              {
                "iteration": 6,
                "syndrome_weight": 44
              },
              {
                "iteration": 7,
                "syndrome_weight": 40
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 43
              },
              {
                "iteration": 10,
                "syndrome_weight": 40
              },
              {
                "iteration": 15,
                "syndrome_weight": 46
              },
              {
                "iteration": 20,
                "syndrome_weight": 41
              },
              {
                "iteration": 25,
                "syndrome_weight": 35
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 44
              },
              {
                "iteration": 40,
                "syndrome_weight": 34
              }
            ]
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "reverse_inverted_codeword",
            "source_rank_score": 119.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 33,
            "message91": null,
            "message91_sha256_16": "3da67efa8398894a",
            "codeword174_sha256_16": "c0ffb55faec27219",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 37
              },
              {
                "iteration": 1,
                "syndrome_weight": 33
              },
              {
                "iteration": 2,
                "syndrome_weight": 42
              },
              {
                "iteration": 3,
                "syndrome_weight": 38
              },
              {
                "iteration": 4,
                "syndrome_weight": 38
              },
              {
                "iteration": 5,
                "syndrome_weight": 42
              },
              {
                "iteration": 6,
                "syndrome_weight": 44
              },
              {
                "iteration": 7,
                "syndrome_weight": 40
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 43
              },
              {
                "iteration": 10,
                "syndrome_weight": 40
              },
              {
                "iteration": 15,
                "syndrome_weight": 46
              },
              {
                "iteration": 20,
                "syndrome_weight": 41
              },
              {
                "iteration": 25,
                "syndrome_weight": 35
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 44
              },
              {
                "iteration": 40,
                "syndrome_weight": 34
              }
            ]
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "inverted_bits",
            "source_rank_score": 113.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 33,
            "message91": null,
            "message91_sha256_16": "3da67efa8398894a",
            "codeword174_sha256_16": "c0ffb55faec27219",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 37
              },
              {
                "iteration": 1,
                "syndrome_weight": 33
              },
              {
                "iteration": 2,
                "syndrome_weight": 42
              },
              {
                "iteration": 3,
                "syndrome_weight": 38
              },
              {
                "iteration": 4,
                "syndrome_weight": 38
              },
              {
                "iteration": 5,
                "syndrome_weight": 42
              },
              {
                "iteration": 6,
                "syndrome_weight": 44
              },
              {
                "iteration": 7,
                "syndrome_weight": 40
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 43
              },
              {
                "iteration": 10,
                "syndrome_weight": 40
              },
              {
                "iteration": 15,
                "syndrome_weight": 46
              },
              {
                "iteration": 20,
                "syndrome_weight": 41
              },
              {
                "iteration": 25,
                "syndrome_weight": 35
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 44
              },
              {
                "iteration": 40,
                "syndrome_weight": 34
              }
            ]
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "inverted_bits",
            "source_rank_score": 112.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 33,
            "message91": null,
            "message91_sha256_16": "3da67efa8398894a",
            "codeword174_sha256_16": "c0ffb55faec27219",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 37
              },
              {
                "iteration": 1,
                "syndrome_weight": 33
              },
              {
                "iteration": 2,
                "syndrome_weight": 42
              },
              {
                "iteration": 3,
                "syndrome_weight": 38
              },
              {
                "iteration": 4,
                "syndrome_weight": 38
              },
              {
                "iteration": 5,
                "syndrome_weight": 42
              },
              {
                "iteration": 6,
                "syndrome_weight": 44
              },
              {
                "iteration": 7,
                "syndrome_weight": 40
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 43
              },
              {
                "iteration": 10,
                "syndrome_weight": 40
              },
              {
                "iteration": 15,
                "syndrome_weight": 46
              },
              {
                "iteration": 20,
                "syndrome_weight": 41
              },
              {
                "iteration": 25,
                "syndrome_weight": 35
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 44
              },
              {
                "iteration": 40,
                "syndrome_weight": 34
              }
            ]
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "reverse_inverted_codeword",
            "source_rank_score": 101.389188,
            "source_llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "success": false,
            "iterations_used": 40,
            "final_syndrome_weight": 33,
            "message91": null,
            "message91_sha256_16": "3da67efa8398894a",
            "codeword174_sha256_16": "c0ffb55faec27219",
            "trace": [
              {
                "iteration": 0,
                "syndrome_weight": 37
              },
              {
                "iteration": 1,
                "syndrome_weight": 33
              },
              {
                "iteration": 2,
                "syndrome_weight": 42
              },
              {
                "iteration": 3,
                "syndrome_weight": 38
              },
              {
                "iteration": 4,
                "syndrome_weight": 38
              },
              {
                "iteration": 5,
                "syndrome_weight": 42
              },
              {
                "iteration": 6,
                "syndrome_weight": 44
              },
              {
                "iteration": 7,
                "syndrome_weight": 40
              },
              {
                "iteration": 8,
                "syndrome_weight": 37
              },
              {
                "iteration": 9,
                "syndrome_weight": 43
              },
              {
                "iteration": 10,
                "syndrome_weight": 40
              },
              {
                "iteration": 15,
                "syndrome_weight": 46
              },
              {
                "iteration": 20,
                "syndrome_weight": 41
              },
              {
                "iteration": 25,
                "syndrome_weight": 35
              },
              {
                "iteration": 30,
                "syndrome_weight": 45
              },
              {
                "iteration": 35,
                "syndrome_weight": 44
              },
              {
                "iteration": 40,
                "syndrome_weight": 34
              }
            ]
          }
        ],
        "decodes": [],
        "outputs": {
          "ldpc_soft_decode_json": "/decoders/js8_decoder/runtime/ldpc_soft_decode/step32_ldpc_soft_decode.json"
        },
        "warnings": [
          "Step 32 runs a real normalized-min-sum soft LDPC probe against the public (174,91) matrix contract.",
          "This still does not unpack JS8 text or validate CRC/message payloads.",
          "If success is true and syndrome_weight is 0, the next step can unpack the 91-bit message. Otherwise more deinterleaver/order/LLR tuning is required."
        ],
        "next_action": "Upload logs. Next step: if no valid codeword, improve interleaver/order/LLR mapping; if valid, add JS8 message unpack/CRC."
      }
    },
    "ldpc_matrix_probe": {
      "name": "20260526T115758Z_ldpc_matrix_probe_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T115758Z_ldpc_matrix_probe_output.json",
      "url": "/logs/20260526T115758Z_ldpc_matrix_probe_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 49747,
        "mtime_utc": "2026-05-26T11:58:11Z"
      },
      "json_preview": {
        "ok": true,
        "mode": "JS8",
        "tool": "webftr-js8-real-ldpc-matrix-syndrome-probe",
        "tool_version": "step32-anchored-candidate-fast-export-guard",
        "input_wav": null,
        "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "implementation_stage": "step19_real_ldpc_generator_matrix_syndrome_probe_no_message_unpack",
        "matrix": {
          "code": "(174,91) LDPC generator matrix",
          "generator_rows": 83,
          "generator_cols": 91,
          "message_bits": 91,
          "parity_bits": 83,
          "source_file": "ldpc_174_91_c_generator.f90"
        },
        "candidate_context": {
          "nsps_used": 6192,
          "nsps_is_js8_realistic": true,
          "selected_profile": {},
          "selected_variant": {
            "name": "raw_msb_symbol_order",
            "rank_score": 127.389188,
            "complete_174bit_candidate": true,
            "hard_bits_sha256_16": "aa237514554a5da8",
            "hard_weight_174": 42,
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            }
          }
        },
        "variant_probe_count": 20,
        "best_matrix_probe": {
          "variant": "raw_msb_symbol_order",
          "transform": "reverse_codeword",
          "hard_weight_174": 42,
          "llr_avg_abs": 2.3472972758620685,
          "syndrome": {
            "bits_len": 174,
            "message91": "1010100010100001001010100001000100000101000000000000000000101000000000101000100000101011000",
            "parity83_observed": "00100100010010110110000010010010000000000000000000000000100101000000000000101101101",
            "parity83_expected": "11001001001010110100001110001011111110011011010011011100111011000101101111100101001",
            "syndrome83": "11101101011000000010001100011001111110011011010011011100011110000101101111001000100",
            "syndrome_weight": 42,
            "valid_codeword_hard_decision": false,
            "message91_sha256_16": "5886f6ba6ff97dcc",
            "codeword174_sha256_16": "586874e4d556ff00"
          },
          "repair": {
            "attempted": true,
            "flip_count": 7,
            "repair_success": false,
            "final_syndrome_weight": 21,
            "trace": [
              {
                "flip_index": 34,
                "llr_abs": 0.830568,
                "gain": 15,
                "syndrome_weight_after": 27
              },
              {
                "flip_index": 151,
                "llr_abs": 0.04658,
                "gain": 1,
                "syndrome_weight_after": 26
              },
              {
                "flip_index": 96,
                "llr_abs": 0.100571,
                "gain": 1,
                "syndrome_weight_after": 25
              },
              {
                "flip_index": 106,
                "llr_abs": 0.643602,
                "gain": 1,
                "syndrome_weight_after": 24
              },
              {
                "flip_index": 125,
                "llr_abs": 0.96535,
                "gain": 1,
                "syndrome_weight_after": 23
              },
              {
                "flip_index": 108,
                "llr_abs": 1.11363,
                "gain": 1,
                "syndrome_weight_after": 22
              },
              {
                "flip_index": 162,
                "llr_abs": 1.164758,
                "gain": 1,
                "syndrome_weight_after": 21
              }
            ],
            "repaired_message91_sha256_16": "ec0dca697e9b6b75"
          }
        },
        "all_matrix_probes": [
          {
            "variant": "raw_msb_symbol_order",
            "transform": "reverse_codeword",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "1010100010100001001010100001000100000101000000000000000000101000000000101000100000101011000",
              "parity83_observed": "00100100010010110110000010010010000000000000000000000000100101000000000000101101101",
              "parity83_expected": "11001001001010110100001110001011111110011011010011011100111011000101101111100101001",
              "syndrome83": "11101101011000000010001100011001111110011011010011011100011110000101101111001000100",
              "syndrome_weight": 42,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "5886f6ba6ff97dcc",
              "codeword174_sha256_16": "586874e4d556ff00"
            },
            "repair": {
              "attempted": true,
              "flip_count": 7,
              "repair_success": false,
              "final_syndrome_weight": 21,
              "trace": [
                {
                  "flip_index": 34,
                  "llr_abs": 0.830568,
                  "gain": 15,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 151,
                  "llr_abs": 0.04658,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 96,
                  "llr_abs": 0.100571,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 108,
                  "llr_abs": 1.11363,
                  "gain": 1,
                  "syndrome_weight_after": 22
                },
                {
                  "flip_index": 162,
                  "llr_abs": 1.164758,
                  "gain": 1,
                  "syndrome_weight_after": 21
                }
              ],
              "repaired_message91_sha256_16": "ec0dca697e9b6b75"
            }
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "as_exported",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "1010100010100001001010100001000100000101000000000000000000101000000000101000100000101011000",
              "parity83_observed": "00100100010010110110000010010010000000000000000000000000100101000000000000101101101",
              "parity83_expected": "11001001001010110100001110001011111110011011010011011100111011000101101111100101001",
              "syndrome83": "11101101011000000010001100011001111110011011010011011100011110000101101111001000100",
              "syndrome_weight": 42,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "5886f6ba6ff97dcc",
              "codeword174_sha256_16": "586874e4d556ff00"
            },
            "repair": {
              "attempted": true,
              "flip_count": 7,
              "repair_success": false,
              "final_syndrome_weight": 21,
              "trace": [
                {
                  "flip_index": 34,
                  "llr_abs": 0.830568,
                  "gain": 15,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 151,
                  "llr_abs": 0.04658,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 96,
                  "llr_abs": 0.100571,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 108,
                  "llr_abs": 1.11363,
                  "gain": 1,
                  "syndrome_weight_after": 22
                },
                {
                  "flip_index": 162,
                  "llr_abs": 1.164758,
                  "gain": 1,
                  "syndrome_weight_after": 21
                }
              ],
              "repaired_message91_sha256_16": "ec0dca697e9b6b75"
            }
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "as_exported",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "1011011010000000000001010010000000000000000000000000100100100000110110100100010010000011010",
              "parity83_observed": "10000010001010000000001010000000000000000001010000010001000010101001000010100010101",
              "parity83_expected": "00011111010111011100010011000111011010110110011110110100101101001010100011101101011",
              "syndrome83": "10011101011101011100011001000111011010110111001110100101101111100011100001001111110",
              "syndrome_weight": 48,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "7be631281b81e799",
              "codeword174_sha256_16": "aa237514554a5da8"
            },
            "repair": {
              "attempted": true,
              "flip_count": 7,
              "repair_success": false,
              "final_syndrome_weight": 21,
              "trace": [
                {
                  "flip_index": 77,
                  "llr_abs": 0.100571,
                  "gain": 21,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 136,
                  "llr_abs": 0.198239,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.513912,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 22
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 21
                }
              ],
              "repaired_message91_sha256_16": "bfdfff2107db5207"
            }
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "reverse_codeword",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "1011011010000000000001010010000000000000000000000000100100100000110110100100010010000011010",
              "parity83_observed": "10000010001010000000001010000000000000000001010000010001000010101001000010100010101",
              "parity83_expected": "00011111010111011100010011000111011010110110011110110100101101001010100011101101011",
              "syndrome83": "10011101011101011100011001000111011010110111001110100101101111100011100001001111110",
              "syndrome_weight": 48,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "7be631281b81e799",
              "codeword174_sha256_16": "aa237514554a5da8"
            },
            "repair": {
              "attempted": true,
              "flip_count": 7,
              "repair_success": false,
              "final_syndrome_weight": 21,
              "trace": [
                {
                  "flip_index": 77,
                  "llr_abs": 0.100571,
                  "gain": 21,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 136,
                  "llr_abs": 0.198239,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.513912,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 22
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 21
                }
              ],
              "repaired_message91_sha256_16": "bfdfff2107db5207"
            }
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "inverted_bits",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "0100100101111111111110100111111111111111111111111111011011011110010011011010110111110110101",
              "parity83_observed": "01111101011101111111011101111111111111111011101111101011111101010011111101110101010",
              "parity83_expected": "01010101111101100101111101010110101000110000001010110111011010101101111100000101110",
              "syndrome83": "00101000100000011010100000101001010111001011100101011100100111111110000001110000100",
              "syndrome_weight": 36,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "0b3495d4dcb58729",
              "codeword174_sha256_16": "512dbb8b5d661851"
            },
            "repair": {
              "attempted": true,
              "flip_count": 10,
              "repair_success": false,
              "final_syndrome_weight": 22,
              "trace": [
                {
                  "flip_index": 80,
                  "llr_abs": 0.186626,
                  "gain": 1,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 23,
                  "llr_abs": 0.368908,
                  "gain": 5,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 149,
                  "llr_abs": 0.203427,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.447295,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 153,
                  "llr_abs": 0.45403,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 141,
                  "llr_abs": 0.580772,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 146,
                  "llr_abs": 0.690814,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 22
                }
              ],
              "repaired_message91_sha256_16": "1e0f0b3594694a28"
            }
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "reverse_inverted_codeword",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "0100100101111111111110100111111111111111111111111111011011011110010011011010110111110110101",
              "parity83_observed": "01111101011101111111011101111111111111111011101111101011111101010011111101110101010",
              "parity83_expected": "01010101111101100101111101010110101000110000001010110111011010101101111100000101110",
              "syndrome83": "00101000100000011010100000101001010111001011100101011100100111111110000001110000100",
              "syndrome_weight": 36,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "0b3495d4dcb58729",
              "codeword174_sha256_16": "512dbb8b5d661851"
            },
            "repair": {
              "attempted": true,
              "flip_count": 10,
              "repair_success": false,
              "final_syndrome_weight": 22,
              "trace": [
                {
                  "flip_index": 80,
                  "llr_abs": 0.186626,
                  "gain": 1,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 23,
                  "llr_abs": 0.368908,
                  "gain": 5,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 149,
                  "llr_abs": 0.203427,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.447295,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 153,
                  "llr_abs": 0.45403,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 141,
                  "llr_abs": 0.580772,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 24
                },
                {
                  "flip_index": 146,
                  "llr_abs": 0.690814,
                  "gain": 1,
                  "syndrome_weight_after": 23
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 22
                }
              ],
              "repaired_message91_sha256_16": "1e0f0b3594694a28"
            }
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "inverted_bits",
            "hard_weight_174": 93,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "1100101001001010110000110011001011110101010000010110001010110001000110100011110000000101110",
              "parity83_observed": "01011001110111110110010111000101001001111101100010111101011010111011111111110110101",
              "parity83_expected": "10010001011000110111001100011000101000001101010110010011001111011000010001010100100",
              "syndrome83": "11001000101111000001011011011101100001110000110100101110010101100011101110100010001",
              "syndrome_weight": 41,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "1aad5d6d63b42d8b",
              "codeword174_sha256_16": "054a46b20bbe2b17"
            },
            "repair": {
              "attempted": true,
              "flip_count": 9,
              "repair_success": false,
              "final_syndrome_weight": 24,
              "trace": [
                {
                  "flip_index": 46,
                  "llr_abs": 0.652631,
                  "gain": 7,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 47,
                  "llr_abs": 0.838993,
                  "gain": 3,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 165,
                  "llr_abs": 0.394664,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.447295,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 141,
                  "llr_abs": 0.580772,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 146,
                  "llr_abs": 0.690814,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 139,
                  "llr_abs": 0.830568,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 107,
                  "llr_abs": 1.052726,
                  "gain": 1,
                  "syndrome_weight_after": 24
                }
              ],
              "repaired_message91_sha256_16": "8e3b236f4e98152d"
            }
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "inverted_bits",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "0100100101111111111110101101111111111111111111111111011011011111001001011011101101111100101",
              "parity83_observed": "01111101110101111111110101111111111111111110101111101110111101010110111101011101010",
              "parity83_expected": "00011011011001001100100110101001001111000100001011000000101111100001110000101110101",
              "syndrome83": "01100110101100110011010011010110110000111010100100101110010010110111001101110011111",
              "syndrome_weight": 46,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "086185897eaaa973",
              "codeword174_sha256_16": "803233917e711d93"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 24,
              "trace": [
                {
                  "flip_index": 46,
                  "llr_abs": 0.652631,
                  "gain": 13,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 65,
                  "llr_abs": 1.11363,
                  "gain": 3,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.447295,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 139,
                  "llr_abs": 0.830568,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 107,
                  "llr_abs": 1.052726,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 24
                }
              ],
              "repaired_message91_sha256_16": "3ea5a73cab31524f"
            }
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "reverse_inverted_codeword",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "0100100101111111111110101101111111111111111111111111011011011111001001011011101101111100101",
              "parity83_observed": "01111101110101111111110101111111111111111110101111101110111101010110111101011101010",
              "parity83_expected": "00011011011001001100100110101001001111000100001011000000101111100001110000101110101",
              "syndrome83": "01100110101100110011010011010110110000111010100100101110010010110111001101110011111",
              "syndrome_weight": 46,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "086185897eaaa973",
              "codeword174_sha256_16": "803233917e711d93"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 24,
              "trace": [
                {
                  "flip_index": 46,
                  "llr_abs": 0.652631,
                  "gain": 13,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 65,
                  "llr_abs": 1.11363,
                  "gain": 3,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.447295,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 139,
                  "llr_abs": 0.830568,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 107,
                  "llr_abs": 1.052726,
                  "gain": 1,
                  "syndrome_weight_after": 26
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 25
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 24
                }
              ],
              "repaired_message91_sha256_16": "3ea5a73cab31524f"
            }
          },
          {
            "variant": "raw_msb_symbol_order",
            "transform": "reverse_inverted_codeword",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "0101011101011110110101011110111011111010111111111111111111010111111111010111011111010100111",
              "parity83_observed": "11011011101101001001111101101101111111111111111111111111011010111111111111010010010",
              "parity83_expected": "11001101000100100100111011100101101011101001000110101000111001101110111100100110111",
              "syndrome83": "00010110101001101101000110001000010100010110111001010111100011010001000011110100101",
              "syndrome_weight": 38,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "962a747fc020f616",
              "codeword174_sha256_16": "acf36ad6bb9a74a2"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 8,
                  "llr_abs": 0.394664,
                  "gain": 3,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 24,
                  "llr_abs": 0.203427,
                  "gain": 3,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 163,
                  "llr_abs": 0.061966,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 152,
                  "llr_abs": 0.383479,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.699307,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 126,
                  "llr_abs": 0.838993,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "847658d5e222e04b"
            }
          },
          {
            "variant": "reverse_full_bitstream",
            "transform": "inverted_bits",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "0101011101011110110101011110111011111010111111111111111111010111111111010111011111010100111",
              "parity83_observed": "11011011101101001001111101101101111111111111111111111111011010111111111111010010010",
              "parity83_expected": "11001101000100100100111011100101101011101001000110101000111001101110111100100110111",
              "syndrome83": "00010110101001101101000110001000010100010110111001010111100011010001000011110100101",
              "syndrome_weight": 38,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "962a747fc020f616",
              "codeword174_sha256_16": "acf36ad6bb9a74a2"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 8,
                  "llr_abs": 0.394664,
                  "gain": 3,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 24,
                  "llr_abs": 0.203427,
                  "gain": 3,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 163,
                  "llr_abs": 0.061966,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 152,
                  "llr_abs": 0.383479,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.699307,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 126,
                  "llr_abs": 0.838993,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "847658d5e222e04b"
            }
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "reverse_codeword",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "1010101000100000011010100000010100000100010000000000000000100010000000100010100000101010010",
              "parity83_observed": "00001001010010011011000010010010000000000000000000000000001101000000000000101101101",
              "parity83_expected": "00010100010100010111101000101110101100110001011010101101000111011010011101000101010",
              "syndrome83": "00011101000110001100101010111100101100110001011010101101001010011010011101101000111",
              "syndrome_weight": 42,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "108d67968226618d",
              "codeword174_sha256_16": "e0aaca7eeb47fb42"
            },
            "repair": {
              "attempted": true,
              "flip_count": 10,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 41,
                  "llr_abs": 1.184399,
                  "gain": 7,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 96,
                  "llr_abs": 0.100571,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 170,
                  "llr_abs": 0.360653,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 150,
                  "llr_abs": 0.368908,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 152,
                  "llr_abs": 0.383479,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 127,
                  "llr_abs": 0.652631,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.699307,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 162,
                  "llr_abs": 1.164758,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "c56bffb67c82f3ae"
            }
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "as_exported",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "1010101000100000011010100000010100000100010000000000000000100010000000100010100000101010010",
              "parity83_observed": "00001001010010011011000010010010000000000000000000000000001101000000000000101101101",
              "parity83_expected": "00010100010100010111101000101110101100110001011010101101000111011010011101000101010",
              "syndrome83": "00011101000110001100101010111100101100110001011010101101001010011010011101101000111",
              "syndrome_weight": 42,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "108d67968226618d",
              "codeword174_sha256_16": "e0aaca7eeb47fb42"
            },
            "repair": {
              "attempted": true,
              "flip_count": 10,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 41,
                  "llr_abs": 1.184399,
                  "gain": 7,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 96,
                  "llr_abs": 0.100571,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 170,
                  "llr_abs": 0.360653,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 150,
                  "llr_abs": 0.368908,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 152,
                  "llr_abs": 0.383479,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 127,
                  "llr_abs": 0.652631,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.699307,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 162,
                  "llr_abs": 1.164758,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "c56bffb67c82f3ae"
            }
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "as_exported",
            "hard_weight_174": 81,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "0011010110110101001111001100110100001010101111101001110101001110111001011100001111111010001",
              "parity83_observed": "10100110001000001001101000111010110110000010011101000010100101000100000000001001010",
              "parity83_expected": "10010101010110100111111001110110111101111111000011100111001101110011000010010111010",
              "syndrome83": "00110011011110101110010001001100001011111101011110100101101000110111000010011110000",
              "syndrome_weight": 43,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "a7a485e3eb4e4d1f",
              "codeword174_sha256_16": "8760e03bd72092c3"
            },
            "repair": {
              "attempted": true,
              "flip_count": 5,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 77,
                  "llr_abs": 0.100571,
                  "gain": 13,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 155,
                  "llr_abs": 0.525517,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "65bdfe8aac0da563"
            }
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "reverse_inverted_codeword",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "0101010111011111100101011111101011111011101111111111111111011101111111011101011111010101101",
              "parity83_observed": "11110110101101100100111101101101111111111111111111111111110010111111111111010010010",
              "parity83_expected": "00010000011010000111011101000000111001000011001111011001000101110001001110000110100",
              "syndrome83": "11100110110111100011100000101101000110111100110000100110110111001110110001010100110",
              "syndrome_weight": 44,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "3ebff23a7a34d22c",
              "codeword174_sha256_16": "7b4ef0e51dd6fda1"
            },
            "repair": {
              "attempted": true,
              "flip_count": 6,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 36,
                  "llr_abs": 0.246935,
                  "gain": 13,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 151,
                  "llr_abs": 0.04658,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 126,
                  "llr_abs": 0.838993,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "66772c5492e1b0c6"
            }
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "inverted_bits",
            "hard_weight_174": 132,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "0101010111011111100101011111101011111011101111111111111111011101111111011101011111010101101",
              "parity83_observed": "11110110101101100100111101101101111111111111111111111111110010111111111111010010010",
              "parity83_expected": "00010000011010000111011101000000111001000011001111011001000101110001001110000110100",
              "syndrome83": "11100110110111100011100000101101000110111100110000100110110111001110110001010100110",
              "syndrome_weight": 44,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "3ebff23a7a34d22c",
              "codeword174_sha256_16": "7b4ef0e51dd6fda1"
            },
            "repair": {
              "attempted": true,
              "flip_count": 6,
              "repair_success": false,
              "final_syndrome_weight": 26,
              "trace": [
                {
                  "flip_index": 36,
                  "llr_abs": 0.246935,
                  "gain": 13,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 151,
                  "llr_abs": 0.04658,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 106,
                  "llr_abs": 0.643602,
                  "gain": 1,
                  "syndrome_weight_after": 28
                },
                {
                  "flip_index": 126,
                  "llr_abs": 0.838993,
                  "gain": 1,
                  "syndrome_weight_after": 27
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 26
                }
              ],
              "repaired_message91_sha256_16": "66772c5492e1b0c6"
            }
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "reverse_inverted_codeword",
            "hard_weight_174": 93,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "1010110111111111101110101101011110100011011111001001010001110100110111110111001101001110100",
              "parity83_observed": "00000111100010110001000110101000110100000101010111101001100110000110101001001010011",
              "parity83_expected": "01001111101000111001101111100110001110101011010101110111001011011110011010001001100",
              "syndrome83": "01001000001010001000101001001110111010101110000010011110101101011000110011000011111",
              "syndrome_weight": 39,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "166a79d9abfb4e53",
              "codeword174_sha256_16": "c0f0181e32499067"
            },
            "repair": {
              "attempted": true,
              "flip_count": 7,
              "repair_success": false,
              "final_syndrome_weight": 28,
              "trace": [
                {
                  "flip_index": 8,
                  "llr_abs": 0.394664,
                  "gain": 5,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 151,
                  "llr_abs": 0.04658,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 165,
                  "llr_abs": 0.217716,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 126,
                  "llr_abs": 0.838993,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 108,
                  "llr_abs": 1.11363,
                  "gain": 1,
                  "syndrome_weight_after": 28
                }
              ],
              "repaired_message91_sha256_16": "3ac3a1896f063d5c"
            }
          },
          {
            "variant": "lsb_within_each_tone",
            "transform": "as_exported",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "1011011010000000000001011000000000000000000000000000100100100001101100100101001000001001010",
              "parity83_observed": "10000010100010000000100010000000000000000100010000010100000010101100000010001010101",
              "parity83_expected": "01010001110011110101001000111000111101000010011111000011011000000110101111000110000",
              "syndrome83": "11010011010001110101101010111000111101000110001111010111011010101010101101001100101",
              "syndrome_weight": 46,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "955c77d80df1fcb9",
              "codeword174_sha256_16": "c9eebc015cbfc7d5"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 28,
              "trace": [
                {
                  "flip_index": 6,
                  "llr_abs": 0.029594,
                  "gain": 11,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 137,
                  "llr_abs": 0.246935,
                  "gain": 1,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 143,
                  "llr_abs": 0.288153,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 153,
                  "llr_abs": 0.45403,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 142,
                  "llr_abs": 0.496341,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 28
                }
              ],
              "repaired_message91_sha256_16": "74cab80ed66254c9"
            }
          },
          {
            "variant": "reverse_symbol_order",
            "transform": "reverse_codeword",
            "hard_weight_174": 42,
            "llr_avg_abs": 2.3472972758620694,
            "syndrome": {
              "bits_len": 174,
              "message91": "1011011010000000000001011000000000000000000000000000100100100001101100100101001000001001010",
              "parity83_observed": "10000010100010000000100010000000000000000100010000010100000010101100000010001010101",
              "parity83_expected": "01010001110011110101001000111000111101000010011111000011011000000110101111000110000",
              "syndrome83": "11010011010001110101101010111000111101000110001111010111011010101010101101001100101",
              "syndrome_weight": 46,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "955c77d80df1fcb9",
              "codeword174_sha256_16": "c9eebc015cbfc7d5"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 28,
              "trace": [
                {
                  "flip_index": 6,
                  "llr_abs": 0.029594,
                  "gain": 11,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 137,
                  "llr_abs": 0.246935,
                  "gain": 1,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 143,
                  "llr_abs": 0.288153,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 153,
                  "llr_abs": 0.45403,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 142,
                  "llr_abs": 0.496341,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 148,
                  "llr_abs": 0.629658,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 134,
                  "llr_abs": 1.080448,
                  "gain": 1,
                  "syndrome_weight_after": 29
                },
                {
                  "flip_index": 132,
                  "llr_abs": 1.184399,
                  "gain": 1,
                  "syndrome_weight_after": 28
                }
              ],
              "repaired_message91_sha256_16": "74cab80ed66254c9"
            }
          },
          {
            "variant": "lab_mask_xor_preview",
            "transform": "reverse_codeword",
            "hard_weight_174": 81,
            "llr_avg_abs": 2.3472972758620685,
            "syndrome": {
              "bits_len": 174,
              "message91": "0101001000000000010001010010100001011100100000110110101110001011001000001000110010110001011",
              "parity83_observed": "11111000011101001110111001010111001011111010101000010110011001111001010110110101100",
              "parity83_expected": "01001011100110101001011010001000011011011001000000000011001001110101001001001010010",
              "syndrome83": "10110011111011100111100011011111010000100011101000010101010000001100011111111111110",
              "syndrome_weight": 47,
              "valid_codeword_hard_decision": false,
              "message91_sha256_16": "3767412c437ee071",
              "codeword174_sha256_16": "2dbdc32b125cc762"
            },
            "repair": {
              "attempted": true,
              "flip_count": 8,
              "repair_success": false,
              "final_syndrome_weight": 29,
              "trace": [
                {
                  "flip_index": 20,
                  "llr_abs": 0.45403,
                  "gain": 11,
                  "syndrome_weight_after": 36
                },
                {
                  "flip_index": 167,
                  "llr_abs": 0.029594,
                  "gain": 1,
                  "syndrome_weight_after": 35
                },
                {
                  "flip_index": 96,
                  "llr_abs": 0.100571,
                  "gain": 1,
                  "syndrome_weight_after": 34
                },
                {
                  "flip_index": 150,
                  "llr_abs": 0.368908,
                  "gain": 1,
                  "syndrome_weight_after": 33
                },
                {
                  "flip_index": 152,
                  "llr_abs": 0.383479,
                  "gain": 1,
                  "syndrome_weight_after": 32
                },
                {
                  "flip_index": 127,
                  "llr_abs": 0.652631,
                  "gain": 1,
                  "syndrome_weight_after": 31
                },
                {
                  "flip_index": 166,
                  "llr_abs": 0.699307,
                  "gain": 1,
                  "syndrome_weight_after": 30
                },
                {
                  "flip_index": 125,
                  "llr_abs": 0.96535,
                  "gain": 1,
                  "syndrome_weight_after": 29
                }
              ],
              "repaired_message91_sha256_16": "d1606d6c8a9256ef"
            }
          }
        ],
        "decodes": [],
        "outputs": {
          "ldpc_matrix_probe_json": "/decoders/js8_decoder/runtime/ldpc_matrix_probe/step19_ldpc_matrix_probe.json"
        },
        "warnings": [
          "Step 32 uses the real public FT8/JS8-style (174,91) generator matrix for a hard-decision syndrome probe.",
          "This is not yet a complete soft LDPC belief-propagation decoder and does not unpack JS8 messages.",
          "If best_matrix_probe reaches syndrome_weight 0, the next step can feed message91 into CRC/message unpack. Otherwise Step 32 should add real soft LDPC iterations."
        ],
        "next_action": "Upload logs. Next step: soft LDPC belief-propagation/min-sum decoder using this matrix contract, then JS8 message unpacking."
      }
    },
    "candidate_export": {
      "name": "20260526T114834Z_real_run_candidate_export_output.json",
      "path": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_candidate_export_output.json",
      "url": "/logs/20260526T114834Z_real_run_candidate_export_output.json",
      "stat": {
        "exists": true,
        "is_file": true,
        "is_dir": false,
        "size": 23818,
        "mtime_utc": "2026-05-26T11:57:58Z"
      },
      "json_preview": {
        "ok": true,
        "mode": "JS8",
        "tool": "webftr-js8-fec-candidate-export",
        "tool_version": "step32-anchored-candidate-fast-export-guard",
        "input_wav": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
        "rx_only": true,
        "safety": {
          "tx": false,
          "ptt": false,
          "tune": false,
          "send": false,
          "js8call_runtime_control": false
        },
        "implementation_stage": "step32_profile_anchor_candidate_export_no_message_unpack",
        "selected_profile": {},
        "profile_selection_source": "profile_scan_json_prefer_js8",
        "profile_scan_json": "/decoders/js8_decoder/logs/20260526T114834Z_real_run_profile_scan_output.json",
        "prefer_js8_realistic_profile": true,
        "nsps_used": 6192,
        "nsps_is_js8_realistic": true,
        "wav": {
          "path": "/decoders/js8_decoder/runtime/quick_prefilter_windows/js8_quick_selected_window.wav",
          "channels": 1,
          "sample_rate": 12000,
          "sample_width_bytes": 2,
          "frames": 720000,
          "duration_seconds": 60.0,
          "rms_dbfs": -9.13,
          "peak_dbfs": -0.72,
          "clipped": false
        },
        "sync_candidate": {
          "start_sample": 0,
          "start_seconds": 0.0,
          "base_freq_hz": 1025.0,
          "tone_spacing_hz": 1.937984,
          "nsps": 6192,
          "candidate_score": 7.04,
          "costas_hits": 1,
          "avg_margin_db": -1.68
        },
        "frame_candidate": {
          "input_symbol_count": 96,
          "excluded_costas_symbol_count": 0,
          "detected_costas_blocks": [],
          "data_symbol_count_available": 96,
          "data_symbol_count_used": 58,
          "expected_data_symbols_candidate": 58,
          "costas_policy": "js8_leading_only"
        },
        "fec_input_summary": {
          "soft_bit_count": 174,
          "missing_soft_bits": 0,
          "complete_ldpc_input_candidate": true,
          "llr_convention": "positive=bit0_more_likely, negative=bit1_more_likely, MSB-first candidate"
        },
        "anchor_context": null,
        "variant_count": 5,
        "selected_variant": {
          "name": "raw_msb_symbol_order",
          "rank_score": 127.389188,
          "complete_174bit_candidate": true,
          "hard_bits_sha256_16": "aa237514554a5da8",
          "hard_weight_174": 42,
          "llr_stats": {
            "count": 174,
            "avg_abs": 2.347297,
            "min_abs": 0.029594,
            "max_abs": 4.31172,
            "positive": 133,
            "negative": 41,
            "zero": 0
          }
        },
        "variants": [
          {
            "name": "raw_msb_symbol_order",
            "description": "Current Step7/8 FEC bridge: Costas-stripped symbols, MSB-first tone bits.",
            "bit_count": 174,
            "llr_count": 174,
            "complete_174bit_candidate": true,
            "hard_bits_174": "101101101000000000000101001000000000000000000000000010010010000011011010010001001000001101010000010001010000000001010000000000000000001010000010001000010101001000010100010101",
            "hard_bits_sha256_16": "aa237514554a5da8",
            "hard_weight_174": 42,
            "llr_full_174": [
              -1.396628,
              1.410553,
              -2.41321,
              -0.360653,
              1.362318,
              -3.052981,
              -0.029594,
              0.699307,
              -0.217716,
              1.30745,
              -0.061966,
              1.164758,
              3.555709,
              2.938852,
              3.676605,
              2.884682,
              2.169718,
              1.312319,
              2.283163,
              2.880758,
              2.448313,
              -0.383479,
              0.04658,
              -0.368908,
              3.097415,
              3.195326,
              -2.619625,
              3.944404,
              2.428853,
              1.446456,
              4.173817,
              4.159912,
              4.127261,
              4.160047,
              4.153065,
              3.986903,
              4.176704,
              4.162562,
              4.136461,
              4.026736,
              3.95259,
              3.894067,
              4.012831,
              3.816259,
              2.145986,
              1.320374,
              0.652631,
              0.838993,
              0.96535,
              1.902541,
              1.691451,
              3.479368,
              -1.703122,
              1.877442,
              3.440581,
              -3.839483,
              3.713552,
              2.169,
              -2.181074,
              2.160328,
              2.914693,
              2.990564,
              2.994918,
              2.238077,
              -1.58826,
              -1.11363,
              1.381106,
              0.643602,
              -1.648215,
              3.364301,
              -1.870267,
              2.626728,
              2.293834,
              -1.862337,
              1.965975,
              2.136822,
              1.554042,
              0.100571,
              3.213602,
              2.416474,
              -0.186626,
              3.458546,
              2.392061,
              2.783177,
              2.316949,
              2.706516,
              -2.207322,
              -0.574722,
              0.592245,
              -1.25453,
              2.428594,
              -1.278227,
              2.793268,
              3.045272,
              3.275052,
              2.650291,
              3.485834,
              -3.180713,
              3.409464,
              2.527218,
              1.355412,
              -1.267725,
              3.00931,
              -1.456676,
              3.880352,
              3.725581,
              3.779058,
              1.052726,
              4.111317,
              2.97036,
              1.679701,
              2.0033,
              2.039419,
              -2.230305,
              2.732389,
              -2.818549,
              2.288786,
              4.168607,
              4.170407,
              4.143849,
              4.165879,
              4.170141,
              4.151294,
              4.169206,
              4.144955,
              4.092016,
              4.16402,
              4.131948,
              4.129186,
              4.154576,
              4.102966,
              3.591843,
              1.184399,
              1.450243,
              -1.080448,
              2.754003,
              -0.198239,
              0.246935,
              4.31172,
              0.830568,
              2.49241,
              0.580772,
              -0.496341,
              0.288153,
              2.838707,
              2.861479,
              -0.690814,
              2.311878,
              0.629658,
              0.203427,
              1.973168,
              -1.975915,
              1.968594,
              -0.45403,
              1.876816,
              -0.525517,
              3.52717,
              2.919398,
              -1.370062,
              3.788859,
              3.429702,
              2.657553,
              1.866078,
              -1.685404,
              1.70544,
              -0.394664,
              0.513912,
              0.447295,
              3.452478,
              -1.809619,
              1.607118,
              -1.684481,
              2.049321,
              -1.601644
            ],
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "rank_score": 127.389188
          },
          {
            "name": "lsb_within_each_tone",
            "description": "Same symbols, but each 3-bit tone value reversed for bit-order comparison.",
            "bit_count": 174,
            "llr_count": 174,
            "complete_174bit_candidate": true,
            "hard_bits_174": "101101101000000000000101100000000000000000000000000010010010000110110010010100100000100101010000010100010000000100010000000000000000100010000010100000010101100000010001010101",
            "hard_bits_sha256_16": "c9eebc015cbfc7d5",
            "hard_weight_174": 42,
            "llr_full_174": [
              -1.396628,
              1.410553,
              -2.41321,
              -0.360653,
              1.362318,
              -3.052981,
              -0.029594,
              0.699307,
              -0.217716,
              1.30745,
              -0.061966,
              1.164758,
              3.555709,
              2.938852,
              3.676605,
              2.884682,
              2.169718,
              1.312319,
              2.283163,
              2.880758,
              2.448313,
              -0.383479,
              0.04658,
              -0.368908,
              3.097415,
              3.195326,
              -2.619625,
              3.944404,
              2.428853,
              1.446456,
              4.173817,
              4.159912,
              4.127261,
              4.160047,
              4.153065,
              3.986903,
              4.176704,
              4.162562,
              4.136461,
              4.026736,
              3.95259,
              3.894067,
              4.012831,
              3.816259,
              2.145986,
              1.320374,
              0.652631,
              0.838993,
              0.96535,
              1.902541,
              1.691451,
              3.479368,
              -1.703122,
              1.877442,
              3.440581,
              -3.839483,
              3.713552,
              2.169,
              -2.181074,
              2.160328,
              2.914693,
              2.990564,
              2.994918,
              2.238077,
              -1.58826,
              -1.11363,
              1.381106,
              0.643602,
              -1.648215,
              3.364301,
              -1.870267,
              2.626728,
              2.293834,
              -1.862337,
              1.965975,
              2.136822,
              1.554042,
              0.100571,
              3.213602,
              2.416474,
              -0.186626,
              3.458546,
              2.392061,
              2.783177,
              2.316949,
              2.706516,
              -2.207322,
              -0.574722,
              0.592245,
              -1.25453,
              2.428594,
              -1.278227,
              2.793268,
              3.045272,
              3.275052,
              2.650291,
              3.485834,
              -3.180713,
              3.409464,
              2.527218,
              1.355412,
              -1.267725,
              3.00931,
              -1.456676,
              3.880352,
              3.725581,
              3.779058,
              1.052726,
              4.111317,
              2.97036,
              1.679701,
              2.0033,
              2.039419,
              -2.230305,
              2.732389,
              -2.818549,
              2.288786,
              4.168607,
              4.170407,
              4.143849,
              4.165879,
              4.170141,
              4.151294,
              4.169206,
              4.144955,
              4.092016,
              4.16402,
              4.131948,
              4.129186,
              4.154576,
              4.102966,
              3.591843,
              1.184399,
              1.450243,
              -1.080448,
              2.754003,
              -0.198239,
              0.246935,
              4.31172,
              0.830568,
              2.49241,
              0.580772,
              -0.496341,
              0.288153,
              2.838707,
              2.861479,
              -0.690814,
              2.311878,
              0.629658,
              0.203427,
              1.973168,
              -1.975915,
              1.968594,
              -0.45403,
              1.876816,
              -0.525517,
              3.52717,
              2.919398,
              -1.370062,
              3.788859,
              3.429702,
              2.657553,
              1.866078,
              -1.685404,
              1.70544,
              -0.394664,
              0.513912,
              0.447295,
              3.452478,
              -1.809619,
              1.607118,
              -1.684481,
              2.049321,
              -1.601644
            ],
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "rank_score": 119.389188
          },
          {
            "name": "reverse_symbol_order",
            "description": "Same 3-bit symbols in reverse order; diagnostic only.",
            "bit_count": 174,
            "llr_count": 174,
            "complete_174bit_candidate": true,
            "hard_bits_174": "101010100010000001101010000001010000010001000000000000000010001000000010001010000010101001000001001010010011011000010010010000000000000000000000000001101000000000000101101101",
            "hard_bits_sha256_16": "e0aaca7eeb47fb42",
            "hard_weight_174": 42,
            "llr_full_174": [
              -1.601644,
              2.049321,
              -1.684481,
              1.607118,
              -1.809619,
              3.452478,
              0.447295,
              0.513912,
              -0.394664,
              1.70544,
              -1.685404,
              1.866078,
              2.657553,
              3.429702,
              3.788859,
              -1.370062,
              2.919398,
              3.52717,
              -0.525517,
              1.876816,
              -0.45403,
              1.968594,
              -1.975915,
              1.973168,
              0.203427,
              0.629658,
              2.311878,
              -0.690814,
              2.861479,
              2.838707,
              0.288153,
              -0.496341,
              0.580772,
              2.49241,
              0.830568,
              4.31172,
              0.246935,
              -0.198239,
              2.754003,
              -1.080448,
              1.450243,
              1.184399,
              3.591843,
              4.102966,
              4.154576,
              4.129186,
              4.131948,
              4.16402,
              4.092016,
              4.144955,
              4.169206,
              4.151294,
              4.170141,
              4.165879,
              4.143849,
              4.170407,
              4.168607,
              2.288786,
              -2.818549,
              2.732389,
              -2.230305,
              2.039419,
              2.0033,
              1.679701,
              2.97036,
              4.111317,
              1.052726,
              3.779058,
              3.725581,
              3.880352,
              -1.456676,
              3.00931,
              -1.267725,
              1.355412,
              2.527218,
              3.409464,
              -3.180713,
              3.485834,
              2.650291,
              3.275052,
              3.045272,
              2.793268,
              -1.278227,
              2.428594,
              -1.25453,
              0.592245,
              -0.574722,
              -2.207322,
              2.706516,
              2.316949,
              2.783177,
              2.392061,
              3.458546,
              -0.186626,
              2.416474,
              3.213602,
              0.100571,
              1.554042,
              2.136822,
              1.965975,
              -1.862337,
              2.293834,
              2.626728,
              -1.870267,
              3.364301,
              -1.648215,
              0.643602,
              1.381106,
              -1.11363,
              -1.58826,
              2.238077,
              2.994918,
              2.990564,
              2.914693,
              2.160328,
              -2.181074,
              2.169,
              3.713552,
              -3.839483,
              3.440581,
              1.877442,
              -1.703122,
              3.479368,
              1.691451,
              1.902541,
              0.96535,
              0.838993,
              0.652631,
              1.320374,
              2.145986,
              3.816259,
              4.012831,
              3.894067,
              3.95259,
              4.026736,
              4.136461,
              4.162562,
              4.176704,
              3.986903,
              4.153065,
              4.160047,
              4.127261,
              4.159912,
              4.173817,
              1.446456,
              2.428853,
              3.944404,
              -2.619625,
              3.195326,
              3.097415,
              -0.368908,
              0.04658,
              -0.383479,
              2.448313,
              2.880758,
              2.283163,
              1.312319,
              2.169718,
              2.884682,
              3.676605,
              2.938852,
              3.555709,
              1.164758,
              -0.061966,
              1.30745,
              -0.217716,
              0.699307,
              -0.029594,
              -3.052981,
              1.362318,
              -0.360653,
              -2.41321,
              1.410553,
              -1.396628
            ],
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "rank_score": 113.389188
          },
          {
            "name": "reverse_full_bitstream",
            "description": "Full hard-bit stream reversed; diagnostic only.",
            "bit_count": 174,
            "llr_count": 174,
            "complete_174bit_candidate": true,
            "hard_bits_174": "101010001010000100101010000100010000010100000000000000000010100000000010100010000010101100000100100010010110110000010010010000000000000000000000000100101000000000000101101101",
            "hard_bits_sha256_16": "586874e4d556ff00",
            "hard_weight_174": 42,
            "llr_full_174": [
              -1.601644,
              2.049321,
              -1.684481,
              1.607118,
              -1.809619,
              3.452478,
              0.447295,
              0.513912,
              -0.394664,
              1.70544,
              -1.685404,
              1.866078,
              2.657553,
              3.429702,
              3.788859,
              -1.370062,
              2.919398,
              3.52717,
              -0.525517,
              1.876816,
              -0.45403,
              1.968594,
              -1.975915,
              1.973168,
              0.203427,
              0.629658,
              2.311878,
              -0.690814,
              2.861479,
              2.838707,
              0.288153,
              -0.496341,
              0.580772,
              2.49241,
              0.830568,
              4.31172,
              0.246935,
              -0.198239,
              2.754003,
              -1.080448,
              1.450243,
              1.184399,
              3.591843,
              4.102966,
              4.154576,
              4.129186,
              4.131948,
              4.16402,
              4.092016,
              4.144955,
              4.169206,
              4.151294,
              4.170141,
              4.165879,
              4.143849,
              4.170407,
              4.168607,
              2.288786,
              -2.818549,
              2.732389,
              -2.230305,
              2.039419,
              2.0033,
              1.679701,
              2.97036,
              4.111317,
              1.052726,
              3.779058,
              3.725581,
              3.880352,
              -1.456676,
              3.00931,
              -1.267725,
              1.355412,
              2.527218,
              3.409464,
              -3.180713,
              3.485834,
              2.650291,
              3.275052,
              3.045272,
              2.793268,
              -1.278227,
              2.428594,
              -1.25453,
              0.592245,
              -0.574722,
              -2.207322,
              2.706516,
              2.316949,
              2.783177,
              2.392061,
              3.458546,
              -0.186626,
              2.416474,
              3.213602,
              0.100571,
              1.554042,
              2.136822,
              1.965975,
              -1.862337,
              2.293834,
              2.626728,
              -1.870267,
              3.364301,
              -1.648215,
              0.643602,
              1.381106,
              -1.11363,
              -1.58826,
              2.238077,
              2.994918,
              2.990564,
              2.914693,
              2.160328,
              -2.181074,
              2.169,
              3.713552,
              -3.839483,
              3.440581,
              1.877442,
              -1.703122,
              3.479368,
              1.691451,
              1.902541,
              0.96535,
              0.838993,
              0.652631,
              1.320374,
              2.145986,
              3.816259,
              4.012831,
              3.894067,
              3.95259,
              4.026736,
              4.136461,
              4.162562,
              4.176704,
              3.986903,
              4.153065,
              4.160047,
              4.127261,
              4.159912,
              4.173817,
              1.446456,
              2.428853,
              3.944404,
              -2.619625,
              3.195326,
              3.097415,
              -0.368908,
              0.04658,
              -0.383479,
              2.448313,
              2.880758,
              2.283163,
              1.312319,
              2.169718,
              2.884682,
              3.676605,
              2.938852,
              3.555709,
              1.164758,
              -0.061966,
              1.30745,
              -0.217716,
              0.699307,
              -0.029594,
              -3.052981,
              1.362318,
              -0.360653,
              -2.41321,
              1.410553,
              -1.396628
            ],
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "rank_score": 112.389188
          },
          {
            "name": "lab_mask_xor_preview",
            "description": "Deterministic lab-only XOR mask preview; not the real JS8 whitening polynomial.",
            "bit_count": 174,
            "llr_count": 174,
            "complete_174bit_candidate": true,
            "hard_bits_174": "001101011011010100111100110011010000101010111110100111010100111011100101110000111111101000110100110001000001001101000111010110110000010011101000010100101000100000000001001010",
            "hard_bits_sha256_16": "8760e03bd72092c3",
            "hard_weight_174": 81,
            "llr_full_174": [
              -1.396628,
              1.410553,
              -2.41321,
              -0.360653,
              1.362318,
              -3.052981,
              -0.029594,
              0.699307,
              -0.217716,
              1.30745,
              -0.061966,
              1.164758,
              3.555709,
              2.938852,
              3.676605,
              2.884682,
              2.169718,
              1.312319,
              2.283163,
              2.880758,
              2.448313,
              -0.383479,
              0.04658,
              -0.368908,
              3.097415,
              3.195326,
              -2.619625,
              3.944404,
              2.428853,
              1.446456,
              4.173817,
              4.159912,
              4.127261,
              4.160047,
              4.153065,
              3.986903,
              4.176704,
              4.162562,
              4.136461,
              4.026736,
              3.95259,
              3.894067,
              4.012831,
              3.816259,
              2.145986,
              1.320374,
              0.652631,
              0.838993,
              0.96535,
              1.902541,
              1.691451,
              3.479368,
              -1.703122,
              1.877442,
              3.440581,
              -3.839483,
              3.713552,
              2.169,
              -2.181074,
              2.160328,
              2.914693,
              2.990564,
              2.994918,
              2.238077,
              -1.58826,
              -1.11363,
              1.381106,
              0.643602,
              -1.648215,
              3.364301,
              -1.870267,
              2.626728,
              2.293834,
              -1.862337,
              1.965975,
              2.136822,
              1.554042,
              0.100571,
              3.213602,
              2.416474,
              -0.186626,
              3.458546,
              2.392061,
              2.783177,
              2.316949,
              2.706516,
              -2.207322,
              -0.574722,
              0.592245,
              -1.25453,
              2.428594,
              -1.278227,
              2.793268,
              3.045272,
              3.275052,
              2.650291,
              3.485834,
              -3.180713,
              3.409464,
              2.527218,
              1.355412,
              -1.267725,
              3.00931,
              -1.456676,
              3.880352,
              3.725581,
              3.779058,
              1.052726,
              4.111317,
              2.97036,
              1.679701,
              2.0033,
              2.039419,
              -2.230305,
              2.732389,
              -2.818549,
              2.288786,
              4.168607,
              4.170407,
              4.143849,
              4.165879,
              4.170141,
              4.151294,
              4.169206,
              4.144955,
              4.092016,
              4.16402,
              4.131948,
              4.129186,
              4.154576,
              4.102966,
              3.591843,
              1.184399,
              1.450243,
              -1.080448,
              2.754003,
              -0.198239,
              0.246935,
              4.31172,
              0.830568,
              2.49241,
              0.580772,
              -0.496341,
              0.288153,
              2.838707,
              2.861479,
              -0.690814,
              2.311878,
              0.629658,
              0.203427,
              1.973168,
              -1.975915,
              1.968594,
              -0.45403,
              1.876816,
              -0.525517,
              3.52717,
              2.919398,
              -1.370062,
              3.788859,
              3.429702,
              2.657553,
              1.866078,
              -1.685404,
              1.70544,
              -0.394664,
              0.513912,
              0.447295,
              3.452478,
              -1.809619,
              1.607118,
              -1.684481,
              2.049321,
              -1.601644
            ],
            "llr_stats": {
              "count": 174,
              "avg_abs": 2.347297,
              "min_abs": 0.029594,
              "max_abs": 4.31172,
              "positive": 133,
              "negative": 41,
              "zero": 0
            },
            "rank_score": 101.389188
          }
        ],
        "outputs": {
          "candidate_json": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.json",
          "selected_bits_file": "/decoders/js8_decoder/runtime/fec_candidates/js8_quick_selected_window_fec_candidate_step17.bits"
        },
        "decodes": [],
        "warnings": [
          "No JS8 text decode is expected in Step 32. Final real LDPC/FEC and Varicode/message unpack are not implemented yet.",
          "Costas7 scoring is a lab candidate extractor; real decoder validation requires actual JS8 WAV samples.",
          "No JS8 text decode is expected in Step 32. Final real LDPC/FEC and Varicode/message unpack are still not implemented.",
          "hard_bits_msb_candidate is a lab preview only; real JS8 requires deinterleaving, whitening and LDPC/FEC.",
          "Step 32 JS8 Costas guard uses leading-only Costas exclusion by default to preserve 58 data symbols / 174 soft bits on JS8Lab windows; full FT8 middle/trailing exclusion remains diagnostic-only.",
          "Step 32 prepares LDPC/FEC input candidates and an LDPC probe harness only; it does not yet run final real JS8 LDPC decode or unpack text.",
          "Step 32 does not decode JS8 text yet. It probes bit-order/interleaver/whitening candidates for future real LDPC/FEC integration.",
          "lab_mask_xor_preview is only a repeatable diagnostic mask, not a confirmed JS8 whitening implementation.",
          "Step 32 locks candidate export to JS8-realistic timing and reuses the selected profile sync anchor for FEC symbol extraction where available.",
          "It still does not perform real LDPC/FEC decode or message unpack.",
          "Next step can tune real JS8/FT8 LDPC matrix/deinterleaver/message unpack against this anchored candidate contract."
        ],
        "next_action": "Run collect-logs and upload the JS8Lab bundle. If selected_variant.complete_174bit_candidate is true, proceed to LDPC/deinterleaver/message-unpack tuning."
      }
    }
  },
  "bundles": [
    {
      "name": "js8_decoder_lab_real_run_20260526T114834Z.zip",
      "url": "/logs/js8_decoder_lab_real_run_20260526T114834Z.zip",
      "size": 108297,
      "mtime_utc": "2026-05-26T11:59:31Z"
    }
  ],
  "stable_latest_links": {
    "browser_report": "/logs/js8_browser_report_latest.json",
    "input_check": "/logs/js8_server_input_check_latest.json",
    "quick_window_scan": "/logs/js8_server_quick_window_scan_latest.json",
    "sync_probe": "/logs/js8_server_sync_probe_latest.json",
    "latest_log": "/logs/latest.log"
  },
  "recent_files": [
    {
      "name": "js8_browser_server.log",
      "size": 162870,
      "mtime_utc": "2026-05-26T14:16:52Z",
      "url": "/logs/js8_browser_server.log"
    },
    {
      "name": "js8_browser_report_latest.json",
      "size": 197296,
      "mtime_utc": "2026-05-26T14:16:52Z",
      "url": "/logs/js8_browser_report_latest.json"
    },
    {
      "name": "js8_start_diagnostics_latest.log",
      "size": 152878,
      "mtime_utc": "2026-05-26T11:59:32Z",
      "url": "/logs/js8_start_diagnostics_latest.log"
    },
    {
      "name": "20260526T114834Z_server-deep-run.log",
      "size": 152534,
      "mtime_utc": "2026-05-26T11:59:32Z",
      "url": "/logs/20260526T114834Z_server-deep-run.log"
    },
    {
      "name": "latest.log",
      "size": 152534,
      "mtime_utc": "2026-05-26T11:59:32Z",
      "url": "/logs/latest.log"
    },
    {
      "name": "20260526T114834Z_server-deep-run_manifest.json",
      "size": 1063,
      "mtime_utc": "2026-05-26T11:59:32Z",
      "url": "/logs/20260526T114834Z_server-deep-run_manifest.json"
    },
    {
      "name": "20260526T114834Z_real-run.log",
      "size": 151417,
      "mtime_utc": "2026-05-26T11:59:31Z",
      "url": "/logs/20260526T114834Z_real-run.log"
    },
    {
      "name": "20260526T114834Z_real-run_manifest.json",
      "size": 1942,
      "mtime_utc": "2026-05-26T11:59:31Z",
      "url": "/logs/20260526T114834Z_real-run_manifest.json"
    },
    {
      "name": "js8_decoder_lab_real_run_20260526T114834Z.zip",
      "size": 108297,
      "mtime_utc": "2026-05-26T11:59:31Z",
      "url": "/logs/js8_decoder_lab_real_run_20260526T114834Z.zip"
    },
    {
      "name": "20260526T114834Z_real_run_bundle_index.json",
      "size": 3848,
      "mtime_utc": "2026-05-26T11:59:31Z",
      "url": "/logs/20260526T114834Z_real_run_bundle_index.json"
    },
    {
      "name": "20260526T115812Z_ldpc-soft-decode.log",
      "size": 43210,
      "mtime_utc": "2026-05-26T11:59:31Z",
      "url": "/logs/20260526T115812Z_ldpc-soft-decode.log"
    },
    {
      "name": "20260526T115812Z_ldpc-soft-decode_manifest.json",
      "size": 929,
      "mtime_utc": "2026-05-26T11:59:30Z",
      "url": "/logs/20260526T115812Z_ldpc-soft-decode_manifest.json"
    },
    {
      "name": "20260526T115812Z_ldpc_soft_decode_output.json",
      "size": 42471,
      "mtime_utc": "2026-05-26T11:59:30Z",
      "url": "/logs/20260526T115812Z_ldpc_soft_decode_output.json"
    },
    {
      "name": "20260526T115812Z_ldpc_soft_decode_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:58:12Z",
      "url": "/logs/20260526T115812Z_ldpc_soft_decode_output.stderr.log"
    },
    {
      "name": "20260526T115758Z_ldpc-matrix-probe.log",
      "size": 50492,
      "mtime_utc": "2026-05-26T11:58:12Z",
      "url": "/logs/20260526T115758Z_ldpc-matrix-probe.log"
    },
    {
      "name": "20260526T115758Z_ldpc-matrix-probe_manifest.json",
      "size": 933,
      "mtime_utc": "2026-05-26T11:58:12Z",
      "url": "/logs/20260526T115758Z_ldpc-matrix-probe_manifest.json"
    },
    {
      "name": "20260526T115758Z_ldpc_matrix_probe_output.json",
      "size": 49747,
      "mtime_utc": "2026-05-26T11:58:11Z",
      "url": "/logs/20260526T115758Z_ldpc_matrix_probe_output.json"
    },
    {
      "name": "20260526T115758Z_ldpc_matrix_probe_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:57:58Z",
      "url": "/logs/20260526T115758Z_ldpc_matrix_probe_output.stderr.log"
    },
    {
      "name": "20260526T114834Z_real_run_candidate_export_output.json",
      "size": 23818,
      "mtime_utc": "2026-05-26T11:57:58Z",
      "url": "/logs/20260526T114834Z_real_run_candidate_export_output.json"
    },
    {
      "name": "20260526T114834Z_real_run_candidate_export_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:57:29Z",
      "url": "/logs/20260526T114834Z_real_run_candidate_export_output.stderr.log"
    },
    {
      "name": "20260526T115459Z_auto-ldpc-probe.log",
      "size": 15527,
      "mtime_utc": "2026-05-26T11:57:28Z",
      "url": "/logs/20260526T115459Z_auto-ldpc-probe.log"
    },
    {
      "name": "20260526T115459Z_auto-ldpc-probe_manifest.json",
      "size": 907,
      "mtime_utc": "2026-05-26T11:57:28Z",
      "url": "/logs/20260526T115459Z_auto-ldpc-probe_manifest.json"
    },
    {
      "name": "20260526T115459Z_auto_ldpc_probe_output.json",
      "size": 14794,
      "mtime_utc": "2026-05-26T11:57:28Z",
      "url": "/logs/20260526T115459Z_auto_ldpc_probe_output.json"
    },
    {
      "name": "20260526T115459Z_auto_ldpc_probe_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:54:59Z",
      "url": "/logs/20260526T115459Z_auto_ldpc_probe_output.stderr.log"
    },
    {
      "name": "20260526T115158Z_frame-recover.log",
      "size": 1592,
      "mtime_utc": "2026-05-26T11:54:59Z",
      "url": "/logs/20260526T115158Z_frame-recover.log"
    },
    {
      "name": "20260526T115158Z_frame-recover_manifest.json",
      "size": 685,
      "mtime_utc": "2026-05-26T11:54:58Z",
      "url": "/logs/20260526T115158Z_frame-recover_manifest.json"
    },
    {
      "name": "20260526T115158Z_frame_recover_output.json",
      "size": 852,
      "mtime_utc": "2026-05-26T11:54:58Z",
      "url": "/logs/20260526T115158Z_frame_recover_output.json"
    },
    {
      "name": "20260526T115158Z_frame_recover_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:51:58Z",
      "url": "/logs/20260526T115158Z_frame_recover_output.stderr.log"
    },
    {
      "name": "20260526T114834Z_real_run_profile_scan_output.json",
      "size": 859,
      "mtime_utc": "2026-05-26T11:51:58Z",
      "url": "/logs/20260526T114834Z_real_run_profile_scan_output.json"
    },
    {
      "name": "20260526T114834Z_real_run_profile_scan_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:49:58Z",
      "url": "/logs/20260526T114834Z_real_run_profile_scan_output.stderr.log"
    },
    {
      "name": "20260526T114834Z_real_run_dirty_window_scan_output.json",
      "size": 1223,
      "mtime_utc": "2026-05-26T11:49:58Z",
      "url": "/logs/20260526T114834Z_real_run_dirty_window_scan_output.json"
    },
    {
      "name": "20260526T114834Z_real_run_dirty_window_scan_output.stderr.log",
      "size": 168,
      "mtime_utc": "2026-05-26T11:48:58Z",
      "url": "/logs/20260526T114834Z_real_run_dirty_window_scan_output.stderr.log"
    },
    {
      "name": "20260526T114834Z_real_run_quick_prefilter_output.json",
      "size": 8817,
      "mtime_utc": "2026-05-26T11:48:57Z",
      "url": "/logs/20260526T114834Z_real_run_quick_prefilter_output.json"
    },
    {
      "name": "20260526T114834Z_real_run_quick_prefilter_output.stderr.log",
      "size": 168,
      "mtime_utc": "2026-05-26T11:48:36Z",
      "url": "/logs/20260526T114834Z_real_run_quick_prefilter_output.stderr.log"
    },
    {
      "name": "20260526T114835Z_input-check.log",
      "size": 1395,
      "mtime_utc": "2026-05-26T11:48:35Z",
      "url": "/logs/20260526T114835Z_input-check.log"
    },
    {
      "name": "20260526T114835Z_input-check_manifest.json",
      "size": 830,
      "mtime_utc": "2026-05-26T11:48:35Z",
      "url": "/logs/20260526T114835Z_input-check_manifest.json"
    },
    {
      "name": "20260526T114835Z_input_check_output.json",
      "size": 686,
      "mtime_utc": "2026-05-26T11:48:35Z",
      "url": "/logs/20260526T114835Z_input_check_output.json"
    },
    {
      "name": "20260526T114835Z_input_check_output.stderr.log",
      "size": 0,
      "mtime_utc": "2026-05-26T11:48:35Z",
      "url": "/logs/20260526T114835Z_input_check_output.stderr.log"
    },
    {
      "name": ".gitkeep",
      "size": 0,
      "mtime_utc": "2026-05-26T11:43:50Z",
      "url": "/logs/.gitkeep"
    }
  ],
  "browser_links": {
    "home": "/",
    "api_report": "/api/report",
    "logs": "/logs/"
  },
  "note": "Read-only browser report for JS8 Decoder Lab logs. It does not start TX/PTT/Tune/Send or control JS8Call runtime."
}