Phase C palette extraction — evidence
=====================================

Conclusion: libcxsdk.so has NO static palette tables. A full-file scan for
256 consecutive u32 LE entries with alpha=0xFF and non-zero RGB finds 0 hits
(also 0 with alpha=0x00, and the BGR/RGB triple forms). CFunctions::
SetColorPalette builds the palettes with arithmetic at runtime.

Validation chain:
  1. port reproduces OfficialTables.PALETTE256_ARGB 256/256 (iron bow)
  2. every case writes all 256 entries exactly once
  3. colour coverage of the official APK preview mipmaps:

  palette            colors       own case     best other
  white_hot             211         100.0%         100.0%
  black_hot             214         100.0%         100.0%
  iron_bow             1684           9.0%           0.1%
  rain_bow             2005           7.3%           0.1%
  glow_bow              596          30.7%           2.2%
  autumn               1036          15.4%           2.5%
  winter                826          22.3%           2.9%
  hot_metal             482          42.1%          11.0%
  jet                  1251          14.0%           4.7%
  red_saturation        660          26.7%          22.1%
  high_contrast        3044           4.0%           0.1%
  red_hot               337          -1.0%          62.6%

Notes:
  - red_hot: the official preview asset is a stub (137 of 11914 pixels differ
    from palette_white_hot.png), so it carries no palette information. No
    generator body is claimed for UI index 11; Palettes.kt keeps its
    approximation with an explicit comment.
  - cases 12 and 13 exist in the native library but explain no official
    preview (best 3-6% against jet); they are not among the 12 UI palettes.
  - the previews are scaled photographic crops, so absolute coverage is low
    for some palettes; the correct body always wins by a wide margin.
