trcc-linux 9.8.7__tar.gz → 9.8.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/PKG-INFO +8 -7
  2. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/README.md +7 -6
  3. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/pyproject.toml +1 -1
  4. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/__version__.py +1 -1
  5. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/led.py +27 -11
  6. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/diagnostics/debug_report.py +53 -3
  7. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/diagnostics/health.py +58 -3
  8. trcc_linux-9.8.9/src/trcc/adapters/diagnostics/install.py +206 -0
  9. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/bsd.py +12 -5
  10. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/linux.py +12 -14
  11. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/macos.py +12 -5
  12. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/windows.py +12 -5
  13. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/app.py +41 -0
  14. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/device.py +21 -10
  15. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/system.py +6 -3
  16. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/theme.py +51 -22
  17. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/geometry.py +17 -13
  18. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/led_models.py +12 -0
  19. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/led_protocol.py +62 -0
  20. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/models.py +1 -0
  21. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/ports.py +12 -0
  22. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/protocol.py +10 -4
  23. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/results.py +11 -1
  24. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/led_segment.py +87 -0
  25. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/_shared.py +3 -1
  26. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/schemas.py +2 -0
  27. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/lcd_handler.py +49 -2
  28. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/splash.py +10 -26
  29. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/trcc_app.py +17 -65
  30. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_about.py +10 -20
  31. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_led_control.py +3 -1
  32. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_screen_led.py +31 -0
  33. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/led_display.py +2 -0
  34. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/theme_directories.py +27 -0
  35. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qapp.py +50 -1
  36. trcc_linux-9.8.9/src/trcc/ui/qt_tray.py +144 -0
  37. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/app.py +66 -6
  38. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/assets.py +23 -2
  39. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/device_picker.py +20 -1
  40. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +40 -6
  41. trcc_linux-9.8.9/src/trcc/ui/qtgui/panels/device_panel.py +197 -0
  42. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/local_theme_browser.py +13 -2
  43. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/mask_browser.py +12 -2
  44. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_backend_finish.py +47 -5
  45. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_diagnose_parse_report.py +44 -0
  46. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_display_rotation.py +94 -18
  47. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_geometry.py +13 -11
  48. trcc_linux-9.8.9/tests/test_install_info.py +295 -0
  49. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_pm_registry.py +113 -0
  50. trcc_linux-9.8.9/tests/test_led_segment.py +119 -0
  51. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_widescreen_rotation.py +17 -3
  52. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_theme_directories.py +58 -0
  53. trcc_linux-9.8.7/src/trcc/ui/qtgui/panels/device_panel.py +0 -90
  54. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/.gitignore +0 -0
  55. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/LICENSE +0 -0
  56. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/__init__.py +0 -0
  57. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/__main__.py +0 -0
  58. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/_boot.py +0 -0
  59. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/_entry.py +0 -0
  60. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/__init__.py +0 -0
  61. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/__init__.py +0 -0
  62. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/_pyusb_find.py +0 -0
  63. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/ali_lcd.py +0 -0
  64. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/bulk_lcd.py +0 -0
  65. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/hid_lcd.py +0 -0
  66. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/ly_lcd.py +0 -0
  67. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/scsi_lcd.py +0 -0
  68. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/transport.py +0 -0
  69. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  70. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  71. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/diagnostics/adapter.py +0 -0
  72. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/diagnostics/doctor.py +0 -0
  73. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/infra/__init__.py +0 -0
  74. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/infra/logging.py +0 -0
  75. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/infra/network.py +0 -0
  76. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/infra/send_scheduler.py +0 -0
  77. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
  78. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/render/__init__.py +0 -0
  79. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/render/qt.py +0 -0
  80. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/repo/__init__.py +0 -0
  81. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/repo/data_install.py +0 -0
  82. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/repo/github_releases.py +0 -0
  83. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/repo/http.py +0 -0
  84. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/screencast/__init__.py +0 -0
  85. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/screencast/qt.py +0 -0
  86. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/__init__.py +0 -0
  87. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_hwinfo.py +0 -0
  88. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_lhm.py +0 -0
  89. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  90. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  91. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  92. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_smc.py +0 -0
  93. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  94. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
  95. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/aggregator.py +0 -0
  96. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/bsd.py +0 -0
  97. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/chain.py +0 -0
  98. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  99. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/hwmon.py +0 -0
  100. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/macos.py +0 -0
  101. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/nvml.py +0 -0
  102. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  103. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/sensors/windows.py +0 -0
  104. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/__init__.py +0 -0
  105. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_autostart.py +0 -0
  106. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_devd.py +0 -0
  107. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_elevate.py +0 -0
  108. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_hotplug.py +0 -0
  109. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_imc_timings.py +0 -0
  110. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_macos_setup.py +0 -0
  111. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_selinux.py +0 -0
  112. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_udev.py +0 -0
  113. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  114. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/_winusb.py +0 -0
  115. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/system/spd.py +0 -0
  116. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/theme/__init__.py +0 -0
  117. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/adapters/theme/cloud.py +0 -0
  118. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  119. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  120. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  121. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  122. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/fonts/README.md +0 -0
  123. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/app.ico +0 -0
  124. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc.png +0 -0
  125. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  126. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  127. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  128. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  129. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  130. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  131. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  132. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/trcc-imc +0 -0
  133. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/trcc-linux.desktop +0 -0
  134. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  135. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/__init__.py +0 -0
  136. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/_colors.py +0 -0
  137. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/_safe.py +0 -0
  138. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/_version.py +0 -0
  139. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/__init__.py +0 -0
  140. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/_base.py +0 -0
  141. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/_helpers.py +0 -0
  142. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/commands/led.py +0 -0
  143. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/device_recovery.py +0 -0
  144. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/diagnostics.py +0 -0
  145. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/errors.py +0 -0
  146. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/events.py +0 -0
  147. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/i18n.py +0 -0
  148. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/registry.py +0 -0
  149. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/core/variants.py +0 -0
  150. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/daemon.py +0 -0
  151. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/data/trcc_usb.te +0 -0
  152. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ipc.py +0 -0
  153. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/proxy.py +0 -0
  154. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/__init__.py +0 -0
  155. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/_ansi.py +0 -0
  156. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/_clock.py +0 -0
  157. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/_dc.py +0 -0
  158. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/audio.py +0 -0
  159. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/cloud_theme.py +0 -0
  160. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/data_install.py +0 -0
  161. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/device_sender.py +0 -0
  162. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/display.py +0 -0
  163. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/first_run.py +0 -0
  164. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/led_animation_loop.py +0 -0
  165. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/led_effects.py +0 -0
  166. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/media.py +0 -0
  167. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/metrics_loop.py +0 -0
  168. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/metrics_personalize.py +0 -0
  169. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/migration.py +0 -0
  170. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/overlay.py +0 -0
  171. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/quickstart.py +0 -0
  172. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/settings.py +0 -0
  173. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/slideshow.py +0 -0
  174. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/theme.py +0 -0
  175. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/video_cache.py +0 -0
  176. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/services/video_export.py +0 -0
  177. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/__init__.py +0 -0
  178. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/_errors.py +0 -0
  179. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/__init__.py +0 -0
  180. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/config.py +0 -0
  181. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/devices.py +0 -0
  182. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/display.py +0 -0
  183. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/led.py +0 -0
  184. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/main.py +0 -0
  185. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/system.py +0 -0
  186. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/theme.py +0 -0
  187. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/api/trcc.py +0 -0
  188. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/__init__.py +0 -0
  189. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/_ctx.py +0 -0
  190. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/config.py +0 -0
  191. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/device.py +0 -0
  192. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/display.py +0 -0
  193. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/led.py +0 -0
  194. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/main.py +0 -0
  195. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/shell.py +0 -0
  196. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/system.py +0 -0
  197. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/cli/theme.py +0 -0
  198. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/__init__.py +0 -0
  199. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/_ui_state.py +0 -0
  200. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/240240.gif +0 -0
  201. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/240320.gif +0 -0
  202. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/320240.gif +0 -0
  203. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/320320.gif +0 -0
  204. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  205. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  206. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  207. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  208. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  209. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  210. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  211. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  212. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  213. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  214. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  215. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  216. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  217. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  218. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  219. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  220. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  221. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  222. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  223. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  224. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  225. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  226. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  227. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  228. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  229. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  230. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  231. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  232. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  233. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  234. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  235. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  236. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  237. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  238. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  239. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  240. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  241. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  242. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  243. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  244. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  245. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  246. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  247. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  248. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  249. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  250. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  251. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  252. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  253. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  254. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  255. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  256. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  257. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  258. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  259. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  260. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  261. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  262. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  263. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  264. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  265. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  266. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  267. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  268. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  269. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  270. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  271. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  272. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  273. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  274. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  275. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  276. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  277. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  278. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  279. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  280. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  281. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  282. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  283. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  284. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  285. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  286. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  287. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  288. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  289. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  290. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  291. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  292. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  293. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  294. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  295. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  296. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  297. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  298. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  299. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  300. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  301. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  302. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  303. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  304. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  305. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  306. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  307. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  308. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  309. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  310. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  311. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  312. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  313. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  314. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  315. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  316. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  317. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  318. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  319. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  320. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  321. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  322. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  323. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  324. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  325. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  326. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  327. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  328. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  329. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  330. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  331. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  332. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  333. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  334. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  335. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  336. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  337. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  338. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  339. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  340. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  341. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  342. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  343. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  344. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  345. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  346. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  347. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  348. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  349. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  350. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  351. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  352. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  353. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  354. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  355. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  356. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  357. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  358. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  359. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  360. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  361. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  362. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  363. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  364. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  365. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  366. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  367. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  368. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  369. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  370. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  371. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  372. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  373. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  374. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  375. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  376. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  377. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  378. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  379. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  380. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  381. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  382. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  383. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/about_update.png +0 -0
  384. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  385. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  386. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  387. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  388. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  389. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  390. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_export.png +0 -0
  391. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  392. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_help.png +0 -0
  393. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_import.png +0 -0
  394. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  395. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_power.png +0 -0
  396. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  397. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_save.png +0 -0
  398. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  399. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  400. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  401. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  402. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  403. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  404. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  405. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  406. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  407. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  408. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  409. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  410. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  411. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  412. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  413. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  414. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  415. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  416. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  417. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  418. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  419. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  420. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  421. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  422. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  423. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  424. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  425. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  426. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  427. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  428. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  429. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  430. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  431. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  432. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  433. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  434. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  435. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  436. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  437. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  438. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  439. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  440. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  441. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  442. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  443. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  444. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  445. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  446. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  447. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  448. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  449. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  450. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  451. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  452. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  453. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  454. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  455. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  456. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  457. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  458. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  459. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  460. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  461. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  462. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  463. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  464. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  465. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  466. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  467. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  468. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  469. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  470. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  471. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  472. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  473. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  474. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  475. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  476. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  477. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  478. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  479. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  480. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  481. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  482. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  483. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  484. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  485. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  486. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  487. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  488. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  489. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  490. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  491. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  492. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  493. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  494. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  495. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  496. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  497. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  498. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  499. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  500. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  501. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  502. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  503. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  504. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  505. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  506. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  507. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  508. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  509. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  510. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  511. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  512. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  513. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  514. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  515. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  516. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  517. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  518. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_external.png +0 -0
  519. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  520. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  521. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  522. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  523. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  524. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  525. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  526. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  527. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  528. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  529. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  530. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  531. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  532. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  533. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  534. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  535. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  536. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  537. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  538. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  539. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  540. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  541. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  542. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  543. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  544. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  545. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  546. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  547. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  548. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  549. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  550. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  551. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  552. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  553. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  554. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  555. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  556. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  557. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  558. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  559. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  560. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  561. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  562. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_power.png +0 -0
  563. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  564. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  565. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  566. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  567. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  568. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  569. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  570. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  571. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  572. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  573. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  574. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  575. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  576. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  577. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  578. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  579. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  580. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  581. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  582. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  583. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  584. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  585. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  586. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  587. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  588. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  589. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  590. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  591. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  592. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  593. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  594. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  595. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  596. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  597. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  598. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  599. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  600. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  601. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  602. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  603. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  604. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  605. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  606. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  607. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  608. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  609. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  610. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  611. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  612. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  613. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  614. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  615. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  616. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  617. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  618. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  619. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  620. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  621. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  622. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  623. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  624. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  625. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  626. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  627. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  628. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  629. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  630. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  631. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  632. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  633. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  634. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  635. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  636. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  637. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  638. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  639. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  640. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  641. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  642. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  643. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  644. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  645. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  646. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  647. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  648. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  649. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  650. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  651. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  652. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  653. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  654. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  655. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  656. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  657. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  658. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  659. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  660. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  661. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  662. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  663. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  664. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  665. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  666. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  667. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  668. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  669. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  670. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  671. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  672. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  673. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  674. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  675. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  676. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  677. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  678. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  679. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  680. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  681. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  682. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  683. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  684. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  685. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  686. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  687. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  688. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  689. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  690. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  691. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  692. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  693. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  694. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  695. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  696. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  697. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  698. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  699. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  700. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  701. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  702. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  703. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  704. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  705. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  706. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  707. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  708. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  709. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  710. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  711. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  712. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  713. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  714. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  715. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  716. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  717. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  718. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  719. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  720. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  721. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  722. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  723. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  724. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  725. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  726. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  727. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  728. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  729. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  730. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  731. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  732. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  733. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  734. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  735. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  736. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  737. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  738. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  739. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  740. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  741. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  742. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  743. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  744. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  745. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  746. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  747. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  748. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  749. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  750. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  751. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  752. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  753. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  754. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  755. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  756. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  757. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  758. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  759. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  760. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  761. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  762. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  763. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  764. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  765. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  766. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  767. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  768. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  769. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  770. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  771. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  772. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  773. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  774. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  775. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  776. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  777. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  778. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  779. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  780. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  781. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  782. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  783. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  784. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  785. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  786. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  787. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  788. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  789. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  790. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  791. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  792. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  793. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  794. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  795. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  796. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  797. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  798. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  799. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  800. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  801. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  802. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  803. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  804. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  805. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  806. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  807. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  808. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  809. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  810. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  811. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  812. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  813. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  814. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  815. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  816. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  817. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  818. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  819. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  820. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  821. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  822. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  823. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  824. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  825. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  826. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  827. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  828. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  829. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  830. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  831. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  832. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  833. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  834. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  835. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  836. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  837. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  838. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  839. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  840. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/assets.py +0 -0
  841. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/base.py +0 -0
  842. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/base_handler.py +0 -0
  843. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/bus_bridge.py +0 -0
  844. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  845. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/constants.py +0 -0
  846. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  847. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/eyedropper.py +0 -0
  848. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/led_handler.py +0 -0
  849. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/overlay_element.py +0 -0
  850. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/overlay_grid.py +0 -0
  851. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/pipewire_capture.py +0 -0
  852. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/screen_capture.py +0 -0
  853. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  854. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  855. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_device.py +0 -0
  856. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  857. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_info_module.py +0 -0
  858. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_preview.py +0 -0
  859. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  860. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_system_info.py +0 -0
  861. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_theme_local.py +0 -0
  862. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  863. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  864. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  865. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  866. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/__init__.py +0 -0
  867. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/device_presentation.py +0 -0
  868. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/lcd_panel.py +0 -0
  869. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
  870. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
  871. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/led_panel.py +0 -0
  872. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/led_zone_model.py +0 -0
  873. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/overlay_model.py +0 -0
  874. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
  875. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/preview_geometry.py +0 -0
  876. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/sensor_display.py +0 -0
  877. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/presentation/slideshow_model.py +0 -0
  878. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/__init__.py +0 -0
  879. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/base.py +0 -0
  880. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/bus_bridge.py +0 -0
  881. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  882. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/eyedropper.py +0 -0
  883. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/image_crop.py +0 -0
  884. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  885. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  886. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  887. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/display_panel.py +0 -0
  888. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  889. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  890. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
  891. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  892. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  893. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  894. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  895. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
  896. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/overlay_editor.py +0 -0
  897. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  898. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/screencast_panel.py +0 -0
  899. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  900. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  901. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  902. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  903. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/screen_overlay.py +0 -0
  904. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  905. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/splash.py +0 -0
  906. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/src/trcc/ui/qtgui/video_crop.py +0 -0
  907. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/__init__.py +0 -0
  908. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/infra/__init__.py +0 -0
  909. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/infra/test_sysinfo_config_fan_map.py +0 -0
  910. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_elevate.py +0 -0
  911. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_imc_timings.py +0 -0
  912. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_linux_imc.py +0 -0
  913. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_spd.py +0 -0
  914. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_windows_mem_disk.py +0 -0
  915. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_windows_permissions.py +0 -0
  916. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
  917. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/conftest.py +0 -0
  918. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/mock_platform.py +0 -0
  919. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ali_lcd.py +0 -0
  920. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_api_routes.py +0 -0
  921. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_app_senders.py +0 -0
  922. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_architecture_boundaries.py +0 -0
  923. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_autostart.py +0 -0
  924. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_autostart_macos.py +0 -0
  925. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_autostart_windows.py +0 -0
  926. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_boot_animation_command.py +0 -0
  927. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_boot_animation_device.py +0 -0
  928. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_bulk_lcd_geometry.py +0 -0
  929. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_cli_commands.py +0 -0
  930. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_clock.py +0 -0
  931. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_cloud_themes.py +0 -0
  932. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_commands.py +0 -0
  933. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_connect_failure_hints.py +0 -0
  934. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_connection_issues.py +0 -0
  935. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_control_center.py +0 -0
  936. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_daemon.py +0 -0
  937. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_data_install.py +0 -0
  938. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_dc_codec.py +0 -0
  939. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_dc_reader.py +0 -0
  940. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_device_catalog_smoke.py +0 -0
  941. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_device_recovery.py +0 -0
  942. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_device_sender.py +0 -0
  943. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_device_surface_matrix.py +0 -0
  944. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_diagnostics.py +0 -0
  945. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_display_tweaks.py +0 -0
  946. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_first_run_and_migration.py +0 -0
  947. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gpu_extras_install.py +0 -0
  948. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gpu_preference.py +0 -0
  949. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gui_empty_state.py +0 -0
  950. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gui_entry_exit.py +0 -0
  951. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gui_panels.py +0 -0
  952. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_gui_raise_existing.py +0 -0
  953. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_hid_lcd_geometry.py +0 -0
  954. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_hotplug.py +0 -0
  955. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_hotplug_bsd.py +0 -0
  956. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_hotplug_polling.py +0 -0
  957. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_hotplug_windows.py +0 -0
  958. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_i18n.py +0 -0
  959. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_integration_pipeline.py +0 -0
  960. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ipc_server.py +0 -0
  961. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ipc_windows_fallback.py +0 -0
  962. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ipc_wire.py +0 -0
  963. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_lcd_panel_model.py +0 -0
  964. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_animation_loop.py +0 -0
  965. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_assets.py +0 -0
  966. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_display_model.py +0 -0
  967. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_effects.py +0 -0
  968. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_handler_requires_app.py +0 -0
  969. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_panel_model.py +0 -0
  970. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_remap.py +0 -0
  971. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_send.py +0 -0
  972. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_led_settings_commands.py +0 -0
  973. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_library_migration.py +0 -0
  974. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ly_lcd_geometry.py +0 -0
  975. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_manpages.py +0 -0
  976. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_mask_commands.py +0 -0
  977. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_mask_rendering.py +0 -0
  978. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_metrics_personalize.py +0 -0
  979. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_mock_reply_override.py +0 -0
  980. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_models.py +0 -0
  981. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_orientation_cloud_background.py +0 -0
  982. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_orientation_reload.py +0 -0
  983. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_clock.py +0 -0
  984. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_element_id.py +0 -0
  985. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_grid_adapter.py +0 -0
  986. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_metric_unit.py +0 -0
  987. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_resolve.py +0 -0
  988. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_overlay_show_unit.py +0 -0
  989. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_packaging_entrypoints.py +0 -0
  990. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_platform_hw_probes.py +0 -0
  991. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_pyusb_find_seam.py +0 -0
  992. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_quickstart.py +0 -0
  993. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_render_led.py +0 -0
  994. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_restore_device_state.py +0 -0
  995. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_run_setup_order.py +0 -0
  996. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_scsi_lcd_geometry.py +0 -0
  997. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_selinux_install.py +0 -0
  998. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_send_color.py +0 -0
  999. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensor_chain.py +0 -0
  1000. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors.py +0 -0
  1001. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors_bsd.py +0 -0
  1002. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors_lhm_subprocess.py +0 -0
  1003. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors_macos.py +0 -0
  1004. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors_nvml.py +0 -0
  1005. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_sensors_windows.py +0 -0
  1006. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_settings_migration.py +0 -0
  1007. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_shell.py +0 -0
  1008. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_system_commands.py +0 -0
  1009. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_system_resume.py +0 -0
  1010. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_theme_persistence.py +0 -0
  1011. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_theme_service.py +0 -0
  1012. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_transports.py +0 -0
  1013. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_udev.py +0 -0
  1014. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ui_parity.py +0 -0
  1015. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_ui_surfaces_smoke.py +0 -0
  1016. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_variant_presentation_audit.py +0 -0
  1017. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_video_cache.py +0 -0
  1018. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_video_playback.py +0 -0
  1019. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_wire_rotation.py +0 -0
  1020. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/test_wmi_gpu_fallback.py +0 -0
  1021. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_device_presentation.py +0 -0
  1022. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
  1023. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_led_metrics_format.py +0 -0
  1024. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_led_zone_model.py +0 -0
  1025. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_overlay_model.py +0 -0
  1026. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
  1027. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_preview_geometry.py +0 -0
  1028. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_sensor_display.py +0 -0
  1029. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_slideshow_model.py +0 -0
  1030. {trcc_linux-9.8.7 → trcc_linux-9.8.9}/tests/ui/presentation/test_theme_local_binding.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trcc-linux
3
- Version: 9.8.7
3
+ Version: 9.8.9
4
4
  Summary: Linux implementation of Thermalright LCD Control Center
5
5
  Project-URL: Homepage, https://github.com/Lexonight1/thermalright-trcc-linux
6
6
  Project-URL: Documentation, https://github.com/Lexonight1/thermalright-trcc-linux#readme
@@ -126,7 +126,7 @@ Description-Content-Type: text/markdown
126
126
 
127
127
  Native Linux port of the Thermalright LCD Control Center (Windows TRCC 2.1.2). Control and customize the LCD displays and LED segment displays on Thermalright CPU coolers, AIO pump heads, and fan hubs — entirely from Linux.
128
128
 
129
- > **This project wouldn't exist without our testers.** I only own one device. Every supported device in this list works because someone plugged it in, ran `trcc report`, and told me what broke. 32 testers helped us go from "SCSI only" to full C# feature parity with 6 USB protocols, 16 FBL resolutions, and 12 LED styles. Open source at its best — see [Contributors](#contributors) below.
129
+ > **This project wouldn't exist without our testers.** I only own one device. Every supported device in this list works because someone plugged it in, ran `trcc report`, and told me what broke. 32 testers helped us go from "SCSI only" to full C# feature parity with 6 USB protocols, 16 FBL resolutions, and 13 LED styles. Open source at its best — see [Contributors](#contributors) below.
130
130
 
131
131
  > Unofficial community project, not affiliated with Thermalright. Built with [Claude](https://claude.ai) (AI) for protocol reverse engineering and code generation, guided by human architecture decisions and logical assessment.
132
132
 
@@ -306,7 +306,7 @@ Set the angle to **90°** (or 270°) in the GUI, then open **Cloud Themes** —
306
306
  | **Media** | Video/GIF playback on LCD, video trimmer, image cropper, screen cast (X11 + Wayland), mic audio visualization |
307
307
  | **Overlay Editor** | Text, sensors, date/time overlays — font picker, dynamic scaling, color picker |
308
308
  | **Hardware Sensors** | 77+ sensors — CPU/GPU temp, fan speed, power, usage — customizable dashboard |
309
- | **LED Control** | 12 LED styles, zone carousel, breathing/rainbow/static/wave modes, per-zone color |
309
+ | **LED Control** | 13 LED styles, zone carousel, breathing/rainbow/static/wave modes, per-zone color |
310
310
  | **Display** | 16 resolutions (240x240 to 1920x462), 0/90/180/270 rotation, 3 brightness levels |
311
311
  | **Multi-device** | Per-device config, auto-detect, multi-device with device selection |
312
312
  | **Security** | udev rules, polkit policy, SELinux support, no root required after setup |
@@ -364,7 +364,7 @@ Run `lsusb` to find your USB ID (`xxxx:xxxx` after `ID`), then match it below.
364
364
  **HID LED devices** — RGB LED control:
365
365
  | USB ID | Devices |
366
366
  |--------|---------|
367
- | `0416:8001` | AX120 DIGITAL, PA120 DIGITAL, Peerless Assassin 120 DIGITAL ARGB White, Assassin X 120R Digital ARGB, Phantom Spirit 120 Digital EVO, HR10 2280 PRO Digital, and others (model auto-detected via handshake) |
367
+ | `0416:8001` | AX120 DIGITAL, PA120 DIGITAL, Peerless Assassin 120 DIGITAL ARGB White, Assassin X 120R Digital ARGB, Phantom Spirit 120 Digital EVO, HR10 2280 PRO Digital, Magic Qube, and others (model auto-detected via handshake) |
368
368
 
369
369
  > See the [full device list with protocol details](doc/REFERENCE_DEVICES.md) and the [Device Testing Guide](doc/GUIDE_DEVICE_TESTING.md) if you have an untested device.
370
370
 
@@ -409,20 +409,21 @@ If a probe goes `BAD`, that's the bug — fix in `src/`, re-run, see `PASS`. Eve
409
409
  | HID Type 3 | pyusb interrupt | TARAN ARMS |
410
410
  | Bulk | pyusb bulk | GrandVision 360, Mjolnir Vision 360, Wonder Vision Pro 360, Frozen Warframe Pro |
411
411
  | LY | pyusb bulk (chunked) | Trofeo Vision 9.16 LCD |
412
- | LED | pyusb HID | All LED segment display devices (12 styles) |
412
+ | LED | pyusb HID | All LED segment display devices (13 styles) |
413
413
 
414
414
  ## Code Contributors
415
415
 
416
416
  These folks didn't just report a problem — they opened the editor and sent a fix. On a solo project, a merged pull request is about the most generous thing you can do, and every one of these shipped to every user:
417
417
 
418
+ - **[@jphilipb](https://github.com/jphilipb)** — [#215](https://github.com/Lexonight1/thermalright-trcc-linux/pull/215): reverse-engineered and hardware-validated the Thermalright Magic Qube (65-LED segment display) — a device that doesn't even exist in the Windows app — and wired up full support from scratch.
418
419
  - **[@Hythera](https://github.com/Hythera)** — [#209](https://github.com/Lexonight1/thermalright-trcc-linux/pull/209): had the flake read its version straight from `pyproject.toml`, killing an entire place I used to have to bump by hand every release.
419
420
  - **[@elsiedotcafe](https://github.com/elsiedotcafe)** — [#123](https://github.com/Lexonight1/thermalright-trcc-linux/pull/123): pinned the PySide6 package to a stable source so the build stops breaking.
420
421
 
421
- Thank you both — genuinely. PRs are always welcome, and you'll land right here.
422
+ Thank you all — genuinely. PRs are always welcome, and you'll land right here.
422
423
 
423
424
  ## Contributors
424
425
 
425
- A huge thank you to every single person who filed an issue, pasted a `trcc report`, or just said "it doesn't work." You are the reason this project supports 6 USB protocols, 16 resolutions, and 12 LED styles from a single developer with one device. Every bug report, every test on hardware I don't own, every "hey this is broken" — that's open source at its best. You're not wasting your time. You're building something together.
426
+ A huge thank you to every single person who filed an issue, pasted a `trcc report`, or just said "it doesn't work." You are the reason this project supports 6 USB protocols, 16 resolutions, and 13 LED styles from a single developer with one device. Every bug report, every test on hardware I don't own, every "hey this is broken" — that's open source at its best. You're not wasting your time. You're building something together.
426
427
 
427
428
  Special thanks to everyone who has contributed invaluable reports to this project:
428
429
 
@@ -53,7 +53,7 @@
53
53
 
54
54
  Native Linux port of the Thermalright LCD Control Center (Windows TRCC 2.1.2). Control and customize the LCD displays and LED segment displays on Thermalright CPU coolers, AIO pump heads, and fan hubs — entirely from Linux.
55
55
 
56
- > **This project wouldn't exist without our testers.** I only own one device. Every supported device in this list works because someone plugged it in, ran `trcc report`, and told me what broke. 32 testers helped us go from "SCSI only" to full C# feature parity with 6 USB protocols, 16 FBL resolutions, and 12 LED styles. Open source at its best — see [Contributors](#contributors) below.
56
+ > **This project wouldn't exist without our testers.** I only own one device. Every supported device in this list works because someone plugged it in, ran `trcc report`, and told me what broke. 32 testers helped us go from "SCSI only" to full C# feature parity with 6 USB protocols, 16 FBL resolutions, and 13 LED styles. Open source at its best — see [Contributors](#contributors) below.
57
57
 
58
58
  > Unofficial community project, not affiliated with Thermalright. Built with [Claude](https://claude.ai) (AI) for protocol reverse engineering and code generation, guided by human architecture decisions and logical assessment.
59
59
 
@@ -233,7 +233,7 @@ Set the angle to **90°** (or 270°) in the GUI, then open **Cloud Themes** —
233
233
  | **Media** | Video/GIF playback on LCD, video trimmer, image cropper, screen cast (X11 + Wayland), mic audio visualization |
234
234
  | **Overlay Editor** | Text, sensors, date/time overlays — font picker, dynamic scaling, color picker |
235
235
  | **Hardware Sensors** | 77+ sensors — CPU/GPU temp, fan speed, power, usage — customizable dashboard |
236
- | **LED Control** | 12 LED styles, zone carousel, breathing/rainbow/static/wave modes, per-zone color |
236
+ | **LED Control** | 13 LED styles, zone carousel, breathing/rainbow/static/wave modes, per-zone color |
237
237
  | **Display** | 16 resolutions (240x240 to 1920x462), 0/90/180/270 rotation, 3 brightness levels |
238
238
  | **Multi-device** | Per-device config, auto-detect, multi-device with device selection |
239
239
  | **Security** | udev rules, polkit policy, SELinux support, no root required after setup |
@@ -291,7 +291,7 @@ Run `lsusb` to find your USB ID (`xxxx:xxxx` after `ID`), then match it below.
291
291
  **HID LED devices** — RGB LED control:
292
292
  | USB ID | Devices |
293
293
  |--------|---------|
294
- | `0416:8001` | AX120 DIGITAL, PA120 DIGITAL, Peerless Assassin 120 DIGITAL ARGB White, Assassin X 120R Digital ARGB, Phantom Spirit 120 Digital EVO, HR10 2280 PRO Digital, and others (model auto-detected via handshake) |
294
+ | `0416:8001` | AX120 DIGITAL, PA120 DIGITAL, Peerless Assassin 120 DIGITAL ARGB White, Assassin X 120R Digital ARGB, Phantom Spirit 120 Digital EVO, HR10 2280 PRO Digital, Magic Qube, and others (model auto-detected via handshake) |
295
295
 
296
296
  > See the [full device list with protocol details](doc/REFERENCE_DEVICES.md) and the [Device Testing Guide](doc/GUIDE_DEVICE_TESTING.md) if you have an untested device.
297
297
 
@@ -336,20 +336,21 @@ If a probe goes `BAD`, that's the bug — fix in `src/`, re-run, see `PASS`. Eve
336
336
  | HID Type 3 | pyusb interrupt | TARAN ARMS |
337
337
  | Bulk | pyusb bulk | GrandVision 360, Mjolnir Vision 360, Wonder Vision Pro 360, Frozen Warframe Pro |
338
338
  | LY | pyusb bulk (chunked) | Trofeo Vision 9.16 LCD |
339
- | LED | pyusb HID | All LED segment display devices (12 styles) |
339
+ | LED | pyusb HID | All LED segment display devices (13 styles) |
340
340
 
341
341
  ## Code Contributors
342
342
 
343
343
  These folks didn't just report a problem — they opened the editor and sent a fix. On a solo project, a merged pull request is about the most generous thing you can do, and every one of these shipped to every user:
344
344
 
345
+ - **[@jphilipb](https://github.com/jphilipb)** — [#215](https://github.com/Lexonight1/thermalright-trcc-linux/pull/215): reverse-engineered and hardware-validated the Thermalright Magic Qube (65-LED segment display) — a device that doesn't even exist in the Windows app — and wired up full support from scratch.
345
346
  - **[@Hythera](https://github.com/Hythera)** — [#209](https://github.com/Lexonight1/thermalright-trcc-linux/pull/209): had the flake read its version straight from `pyproject.toml`, killing an entire place I used to have to bump by hand every release.
346
347
  - **[@elsiedotcafe](https://github.com/elsiedotcafe)** — [#123](https://github.com/Lexonight1/thermalright-trcc-linux/pull/123): pinned the PySide6 package to a stable source so the build stops breaking.
347
348
 
348
- Thank you both — genuinely. PRs are always welcome, and you'll land right here.
349
+ Thank you all — genuinely. PRs are always welcome, and you'll land right here.
349
350
 
350
351
  ## Contributors
351
352
 
352
- A huge thank you to every single person who filed an issue, pasted a `trcc report`, or just said "it doesn't work." You are the reason this project supports 6 USB protocols, 16 resolutions, and 12 LED styles from a single developer with one device. Every bug report, every test on hardware I don't own, every "hey this is broken" — that's open source at its best. You're not wasting your time. You're building something together.
353
+ A huge thank you to every single person who filed an issue, pasted a `trcc report`, or just said "it doesn't work." You are the reason this project supports 6 USB protocols, 16 resolutions, and 13 LED styles from a single developer with one device. Every bug report, every test on hardware I don't own, every "hey this is broken" — that's open source at its best. You're not wasting your time. You're building something together.
353
354
 
354
355
  Special thanks to everyone who has contributed invaluable reports to this project:
355
356
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.8.7"
7
+ version = "9.8.9"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.8.7"
3
+ __version__ = "9.8.9"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -26,7 +26,13 @@ from ...core.errors import (
26
26
  UnsupportedOperationError,
27
27
  )
28
28
  from ...core.led_models import LedPayload
29
- from ...core.led_protocol import remap_led_colors, resolve_pm
29
+ from ...core.led_protocol import (
30
+ is_fingerprint_header,
31
+ remap_led_colors,
32
+ resolve_handshake,
33
+ resolve_model_name,
34
+ resolve_pm,
35
+ )
30
36
  from ...core.models import HandshakeResult, LedHandshakeResult, ProductInfo, Wire
31
37
  from ...core.ports import BulkTransport, Device
32
38
  from . import DeviceFactory
@@ -206,11 +212,15 @@ class Led(Device[BulkTransport]):
206
212
  time.sleep(_HANDSHAKE_RETRY_DELAY_S)
207
213
  continue
208
214
 
209
- # Windows DeviceDataReceived1 doesn't validate magic/cmd —
210
- # we warn on mismatch but accept.
211
- if resp[0:4] != _MAGIC:
212
- log.warning("Led handshake: unexpected magic %s", resp[0:4].hex())
213
- if len(resp) > 12 and resp[12] != 1:
215
+ # Windows DeviceDataReceived1 doesn't validate magic/cmd — we
216
+ # accept regardless. A recognised fingerprint header (e.g. the
217
+ # Magic Qube's DC DD AA 01) is expected, so only warn on a truly
218
+ # unknown magic / cmd byte.
219
+ header = bytes(resp[0:4])
220
+ recognised = is_fingerprint_header(header)
221
+ if header != _MAGIC and not recognised:
222
+ log.warning("Led handshake: unexpected magic %s", header.hex())
223
+ if len(resp) > 12 and resp[12] != 1 and not recognised:
214
224
  log.warning("Led handshake: unexpected cmd byte %d", resp[12])
215
225
 
216
226
  # PM and SUB extraction — matches Windows UCDevice.cs offsets:
@@ -218,10 +228,13 @@ class Led(Device[BulkTransport]):
218
228
  self._pm = resp[5]
219
229
  self._sub = resp[4]
220
230
 
221
- # PM byte → device style + readable model name. Falls back to
222
- # the registry's ``led_style`` / ``product`` when the firmware
223
- # reports a PM not in PmRegistry (e.g. a new SKU).
224
- entry = resolve_pm(self._pm, self._sub)
231
+ # Handshake → device style + readable model name. The header
232
+ # fingerprint wins first (some SKUs reuse a PM byte but ship a
233
+ # distinct handshake header e.g. the Magic Qube shares PM=208
234
+ # with CZ1 but answers with DC DD AA 01), then the PM registry.
235
+ # Falls back to the registry's ``led_style`` / ``product`` when
236
+ # the firmware reports a PM not in PmRegistry (e.g. a new SKU).
237
+ entry = resolve_handshake(header, self._pm, self._sub)
225
238
  if entry is not None:
226
239
  style = entry.style
227
240
  model_name = entry.model_name
@@ -278,7 +291,10 @@ class Led(Device[BulkTransport]):
278
291
  cached = _probe_cache_load(self.info.vid, self.info.pid)
279
292
  if cached is not None:
280
293
  cpm, csub, cname = cached
281
- entry = resolve_pm(cpm, csub)
294
+ # A fingerprint device (e.g. Magic Qube) shares its PM byte with
295
+ # another product, so recover it by cached model name first — the
296
+ # cache doesn't persist the handshake header — then by PM byte.
297
+ entry = resolve_model_name(cname) or resolve_pm(cpm, csub)
282
298
  log.warning(
283
299
  "Led handshake: live failed after %d retries — using "
284
300
  "disk cache (PM=%d SUB=%d model=%s, last_err=%s)",
@@ -35,6 +35,7 @@ from ...core.registry import find_product
35
35
  from ..device import DeviceFactory
36
36
  from ..infra.logging import tail_log
37
37
  from .health import HealthReport, run_health_checks
38
+ from .install import InstallInfo, collect_install_info
38
39
 
39
40
  log = logging.getLogger(__name__)
40
41
 
@@ -50,6 +51,7 @@ class DebugReport:
50
51
  timestamp: str
51
52
  platform_info: dict[str, str]
52
53
  paths: dict[str, str]
54
+ install: InstallInfo | None = None
53
55
  devices: list[dict[str, str]] = field(default_factory=list)
54
56
  devices_error: str = ""
55
57
  sensors: list[dict[str, str]] = field(default_factory=list)
@@ -66,6 +68,9 @@ class DebugReport:
66
68
  log.info("render_text: called")
67
69
  sections: list[str] = []
68
70
  sections.append(_header(self.timestamp))
71
+ # Install first: every other section is worthless if this is not the
72
+ # trcc the reporter thinks they are running.
73
+ sections.append(_render_install(self.install))
69
74
  sections.append(_render_kv("Platform", self.platform_info))
70
75
  sections.append(_render_kv("Paths", self.paths))
71
76
  sections.append(_render_devices(self.devices, self.devices_error))
@@ -96,6 +101,15 @@ def build_debug_report(
96
101
  log_tail_lines)
97
102
  timestamp = datetime.now(tz=timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
98
103
 
104
+ # Best-effort like every other collector: a report from a broken install is
105
+ # exactly when this matters, so it must degrade to "(unavailable)" rather
106
+ # than abort the report that would have explained the breakage.
107
+ try:
108
+ install = collect_install_info()
109
+ except Exception as e:
110
+ log.exception("build_debug_report: install info failed: %s", e)
111
+ install = None
112
+
99
113
  info = _collect_platform_info(platform)
100
114
  path_table = _collect_paths(platform)
101
115
  devices, devices_err = _collect_devices(platform)
@@ -113,6 +127,7 @@ def build_debug_report(
113
127
  timestamp=timestamp,
114
128
  platform_info=info,
115
129
  paths=path_table,
130
+ install=install,
116
131
  devices=devices,
117
132
  devices_error=devices_err,
118
133
  sensors=sensors,
@@ -141,11 +156,10 @@ def write_debug_report(report: DebugReport, output_path: Path) -> Path:
141
156
 
142
157
  def _collect_platform_info(platform: Platform) -> dict[str, str]:
143
158
  log.debug("_collect_platform_info: called")
159
+ # Version / path / installer live in the Install section, which owns the
160
+ # "which trcc is this?" question in one place — see _render_install.
144
161
  return {
145
162
  "distro": platform.distro_name(),
146
- "install_method": platform.install_method(),
147
- "python": f"{sys.version_info.major}.{sys.version_info.minor}."
148
- f"{sys.version_info.micro}",
149
163
  "python_impl": py_platform.python_implementation(),
150
164
  "machine": py_platform.machine(),
151
165
  "system": py_platform.system(),
@@ -375,6 +389,42 @@ def _render_kv(title: str, table: dict[str, str]) -> str:
375
389
  return f"## {title}\n{body}" if body else f"## {title}\n (empty)"
376
390
 
377
391
 
392
+ def _render_install(info: InstallInfo | None) -> str:
393
+ """Which trcc is running — and loud warnings when it isn't the expected one.
394
+
395
+ The warnings are spelled out in full because the reporter reading them is
396
+ the person who has to act, and neither of the two failures is guessable
397
+ from the outside: a stale cache and a duplicate binary both present as
398
+ "I upgraded and nothing changed".
399
+ """
400
+ if info is None:
401
+ return "## Install\n (unavailable)"
402
+ rows = {
403
+ "version": info.version,
404
+ "installed_by": info.installer,
405
+ "module_path": str(info.module_path or "unknown"),
406
+ "interpreter": info.interpreter,
407
+ "python": info.python,
408
+ }
409
+ lines = [f" {k:18} {v}" for k, v in rows.items()]
410
+ for exe in info.executables:
411
+ lines.append(f" {'on PATH':18} {exe.path} -> {exe.interpreter}")
412
+ if info.bytecode_stale:
413
+ lines.append("")
414
+ lines.append(f" !! STALE BYTECODE — running {info.version} but the source "
415
+ f"says {info.source_version}.")
416
+ lines.append(" !! Python is serving a cached .pyc that no longer matches "
417
+ "the code on disk.")
418
+ lines.append(" !! Fix: delete __pycache__ dirs, or reinstall.")
419
+ if info.duplicates:
420
+ lines.append("")
421
+ lines.append(f" !! {len(info.executables)} trcc found on PATH — an upgrade "
422
+ "may land on one")
423
+ lines.append(" !! while a different one keeps running. The first listed "
424
+ "above is what runs.")
425
+ return "## Install\n" + "\n".join(lines)
426
+
427
+
378
428
  def _render_devices(rows: list[dict[str, str]], error: str) -> str:
379
429
  if error:
380
430
  return f"## Devices\n Scan failed: {error}"
@@ -11,9 +11,9 @@ Severity ladder:
11
11
  * ``WARN`` — works on this machine but reporter should know.
12
12
  * ``FAIL`` — feature won't work until this is fixed.
13
13
 
14
- Adding a check: define a function returning ``HealthCheckResult`` and
15
- add it to ``ALL_CHECKS``. The doctor + report bundlers iterate that
16
- tuple, so registration = inclusion.
14
+ Adding a check: define a function returning ``HealthCheckResult`` and add
15
+ it to the list in ``run_health_checks``. The doctor + report bundlers both
16
+ go through that function, so registration = inclusion.
17
17
  """
18
18
  from __future__ import annotations
19
19
 
@@ -26,6 +26,7 @@ from pathlib import Path
26
26
  from ...core.diagnostics import HealthCheckResult, HealthReport, Severity
27
27
  from ...core.ports import Paths, Platform
28
28
  from ..sensors.nvml import NVML_RELOAD_HINT, nvml_init_state
29
+ from .install import collect_install_info
29
30
 
30
31
  log = logging.getLogger(__name__)
31
32
 
@@ -48,6 +49,57 @@ __all__ = [
48
49
  # =========================================================================
49
50
 
50
51
 
52
+ def check_install_integrity() -> HealthCheckResult:
53
+ """Is the running trcc the one the user thinks they installed?
54
+
55
+ Two failures both present to the user as "I upgraded and nothing
56
+ changed", and neither is visible from the outside:
57
+
58
+ * stale bytecode — Python serves a cached .pyc whose recorded mtime+size
59
+ still match a since-edited source (FAIL: every other diagnostic, and
60
+ the version itself, is then untrustworthy);
61
+ * duplicate binaries on PATH — the upgrade landed on one, the other keeps
62
+ running (WARN: legitimate for venv/pipx users, so not fatal).
63
+ """
64
+ log.info("check_install_integrity: called")
65
+ try:
66
+ info = collect_install_info()
67
+ except Exception as e:
68
+ log.exception("check_install_integrity: collection failed: %s", e)
69
+ return HealthCheckResult(
70
+ name="install-integrity", severity="WARN",
71
+ message=f"Could not inspect the install: {e}",
72
+ )
73
+ if info.bytecode_stale:
74
+ return HealthCheckResult(
75
+ name="install-integrity", severity="FAIL",
76
+ message=(
77
+ f"Stale bytecode — running {info.version} but "
78
+ f"{info.module_path} says {info.source_version}"
79
+ ),
80
+ fix_hint=(
81
+ "Python is serving a cached .pyc that no longer matches the "
82
+ "source. Delete the __pycache__ directories under "
83
+ f"{info.module_path}, or reinstall trcc-linux."
84
+ ),
85
+ )
86
+ if info.duplicates:
87
+ found = ", ".join(str(e.path) for e in info.executables)
88
+ return HealthCheckResult(
89
+ name="install-integrity", severity="WARN",
90
+ message=f"{len(info.executables)} trcc on PATH: {found}",
91
+ fix_hint=(
92
+ f"'{info.executables[0].path}' is the one that runs. An "
93
+ "upgrade applied to the other will appear to do nothing. "
94
+ "Remove whichever you don't want."
95
+ ),
96
+ )
97
+ return HealthCheckResult(
98
+ name="install-integrity", severity="OK",
99
+ message=f"{info.version} via {info.installer} ({info.interpreter})",
100
+ )
101
+
102
+
51
103
  def check_python_version(platform: Platform) -> HealthCheckResult:
52
104
  """Python ≥ 3.11 is the project minimum (match-statement + slots)."""
53
105
  log.info("check_python_version: called")
@@ -301,6 +353,9 @@ def run_health_checks(platform: Platform) -> HealthReport:
301
353
  log.info("run_health_checks: starting")
302
354
  paths = platform.paths()
303
355
  checks: list[HealthCheckResult] = [
356
+ # First: if this isn't the trcc they think it is, nothing below means
357
+ # anything.
358
+ check_install_integrity(),
304
359
  check_python_version(platform),
305
360
  check_log_writable(paths),
306
361
  check_config_writable(paths),
@@ -0,0 +1,206 @@
1
+ """Install integrity — which trcc is actually running, and is it the one
2
+ the user thinks?
3
+
4
+ Every field here exists because a real issue was unanswerable without it:
5
+
6
+ * **version / source_version / bytecode_stale** — a stale ``.pyc`` served
7
+ ``9.9.9`` from a file that read ``9.8.8``. Python's timestamp check
8
+ compares source mtime+size against the values baked into the ``.pyc``;
9
+ a rewrite that preserves both (same-length version strings do) leaves
10
+ the cache authoritative and wrong, silently, forever.
11
+ * **executables / duplicates** — ``shutil.which`` returns the FIRST match.
12
+ Two ``trcc`` on PATH pointing at two interpreters is the commonest cause
13
+ of "I upgraded and nothing changed" (#175: six weeks on v9.7.0 while
14
+ installing 9.8.3 repeatedly; #220: three releases behind on "latest").
15
+ * **installer** — the ``INSTALLER`` file pip writes is the only honest
16
+ answer. The old per-OS heuristics guessed from PATH and were wrong for
17
+ rpm / deb / venv / source checkouts alike.
18
+
19
+ Deliberately dependency-free (stdlib only) and side-effect-free: it is the
20
+ first thing a broken install runs, so it must not need a working App.
21
+ """
22
+ from __future__ import annotations
23
+
24
+ import logging
25
+ import os
26
+ import re
27
+ import sys
28
+ from dataclasses import dataclass
29
+ from pathlib import Path
30
+
31
+ log = logging.getLogger(__name__)
32
+
33
+ # `__version__ = "9.8.8"` — matched against the SOURCE text, never exec'd.
34
+ _VERSION_RE = re.compile(r"""^__version__\s*=\s*['"]([^'"]+)['"]""", re.MULTILINE)
35
+
36
+ _UNKNOWN = "unknown"
37
+
38
+
39
+ @dataclass(frozen=True, slots=True)
40
+ class Executable:
41
+ """One ``trcc`` found on PATH, and the interpreter it runs under."""
42
+
43
+ path: Path
44
+ interpreter: str = _UNKNOWN
45
+
46
+
47
+ @dataclass(frozen=True, slots=True)
48
+ class InstallInfo:
49
+ """Everything needed to answer "which trcc is this?"."""
50
+
51
+ version: str
52
+ source_version: str
53
+ module_path: Path | None
54
+ interpreter: str
55
+ python: str
56
+ installer: str
57
+ executables: tuple[Executable, ...] = ()
58
+
59
+ @property
60
+ def bytecode_stale(self) -> bool:
61
+ """Imported version disagrees with its own source file.
62
+
63
+ Means Python is serving a cached ``.pyc`` that no longer matches
64
+ the code on disk — so every claim about "what version is this" is
65
+ untrustworthy until the cache is cleared.
66
+ """
67
+ return (
68
+ self.source_version != _UNKNOWN
69
+ and self.version != self.source_version
70
+ )
71
+
72
+ @property
73
+ def duplicates(self) -> bool:
74
+ """More than one ``trcc`` on PATH — an upgrade can land on either."""
75
+ return len(self.executables) > 1
76
+
77
+ @property
78
+ def healthy(self) -> bool:
79
+ return not self.bytecode_stale and not self.duplicates
80
+
81
+
82
+ def _read_source_version(module_path: Path | None) -> str:
83
+ """Parse ``__version__`` out of the package's own ``__version__.py``.
84
+
85
+ Text-parsed rather than imported: importing would hit the very bytecode
86
+ cache we are trying to check, and would always agree with itself.
87
+ """
88
+ if module_path is None:
89
+ return _UNKNOWN
90
+ source = module_path / "__version__.py"
91
+ try:
92
+ text = source.read_text(encoding="utf-8")
93
+ except OSError as e:
94
+ log.debug("_read_source_version: cannot read %s: %s", source, e)
95
+ return _UNKNOWN
96
+ m = _VERSION_RE.search(text)
97
+ if m is None:
98
+ log.warning("_read_source_version: no __version__ assignment in %s", source)
99
+ return _UNKNOWN
100
+ log.debug("_read_source_version: %s → %s", source, m.group(1))
101
+ return m.group(1)
102
+
103
+
104
+ def _shebang_interpreter(path: Path) -> str:
105
+ """The interpreter a console script runs under, from its shebang."""
106
+ try:
107
+ with path.open("rb") as fh:
108
+ first = fh.readline(256)
109
+ except OSError as e:
110
+ log.debug("_shebang_interpreter: cannot read %s: %s", path, e)
111
+ return _UNKNOWN
112
+ if not first.startswith(b"#!"):
113
+ return _UNKNOWN
114
+ return first[2:].decode("utf-8", "replace").strip()
115
+
116
+
117
+ def _find_executables(name: str = "trcc") -> tuple[Executable, ...]:
118
+ """Every ``name`` on PATH — not just the first.
119
+
120
+ ``shutil.which`` stops at the first hit, which is precisely what hides a
121
+ duplicate install from the person trying to debug one.
122
+ """
123
+ exts = [""]
124
+ if os.name == "nt":
125
+ exts = [e.lower() for e in os.environ.get("PATHEXT", ".EXE").split(os.pathsep)]
126
+ found: list[Executable] = []
127
+ seen: set[Path] = set()
128
+ for entry in os.environ.get("PATH", "").split(os.pathsep):
129
+ if not entry:
130
+ continue
131
+ for ext in exts:
132
+ candidate = Path(entry) / f"{name}{ext}"
133
+ try:
134
+ resolved = candidate.resolve()
135
+ usable = candidate.is_file() and os.access(candidate, os.X_OK)
136
+ except OSError:
137
+ continue
138
+ if not usable or resolved in seen:
139
+ continue
140
+ seen.add(resolved)
141
+ found.append(Executable(candidate, _shebang_interpreter(candidate)))
142
+ log.debug("_find_executables: %d %r on PATH", len(found), name)
143
+ return tuple(found)
144
+
145
+
146
+ def detect_installer() -> str:
147
+ """How this package got here — ``INSTALLER`` metadata over guesswork.
148
+
149
+ Supersedes the per-OS "is trcc on PATH? then pip" heuristics, which
150
+ answered "pip" for rpm, deb, venv and source checkouts alike.
151
+ """
152
+ if getattr(sys, "frozen", False):
153
+ return "pyinstaller"
154
+ if "pipx" in sys.prefix:
155
+ return "pipx"
156
+ try:
157
+ from importlib.metadata import PackageNotFoundError, distribution
158
+ try:
159
+ installer = (distribution("trcc-linux").read_text("INSTALLER") or "").strip()
160
+ except PackageNotFoundError:
161
+ log.debug("detect_installer: trcc-linux has no distribution metadata")
162
+ return "source"
163
+ except (OSError, ImportError) as e:
164
+ log.debug("detect_installer: metadata unavailable: %s", e)
165
+ return _UNKNOWN
166
+ if installer:
167
+ log.debug("detect_installer: INSTALLER=%s", installer)
168
+ return installer
169
+ # Installed as a distribution but nobody claimed it — a distro package
170
+ # manager (rpm/deb/pacman) drops the dist-info without an INSTALLER file.
171
+ return "package"
172
+
173
+
174
+ def collect_install_info() -> InstallInfo:
175
+ """Gather the running install's identity. Never raises."""
176
+ log.info("collect_install_info: called")
177
+ import trcc
178
+
179
+ module_file = getattr(trcc, "__file__", None)
180
+ module_path = Path(module_file).parent if module_file else None
181
+ info = InstallInfo(
182
+ version=trcc.__version__,
183
+ source_version=_read_source_version(module_path),
184
+ module_path=module_path,
185
+ interpreter=sys.executable,
186
+ python=f"{sys.version_info.major}.{sys.version_info.minor}."
187
+ f"{sys.version_info.micro}",
188
+ installer=detect_installer(),
189
+ executables=_find_executables(),
190
+ )
191
+ if info.bytecode_stale:
192
+ log.warning(
193
+ "collect_install_info: STALE BYTECODE — imported %s but %s says %s; "
194
+ "clear __pycache__",
195
+ info.version, module_path, info.source_version,
196
+ )
197
+ if info.duplicates:
198
+ log.warning(
199
+ "collect_install_info: %d trcc on PATH (%s) — an upgrade may land "
200
+ "on one and leave the other running",
201
+ len(info.executables),
202
+ ", ".join(str(e.path) for e in info.executables),
203
+ )
204
+ log.info("collect_install_info: %s via %s (%s)",
205
+ info.version, info.installer, info.interpreter)
206
+ return info
@@ -179,11 +179,18 @@ class BSDPlatform(Platform):
179
179
  return "FreeBSD" if "freebsd" in sys.platform else "BSD"
180
180
 
181
181
  def install_method(self) -> str:
182
- log.info("install_method: called")
183
- import sys
184
- if getattr(sys, "frozen", False):
185
- return "pyinstaller"
186
- return "source"
182
+ """How this package got here — delegated to the one honest detector.
183
+
184
+ Was a per-OS guess: this returned "source" for every pip install
185
+ (and Linux returned "pip" whenever `trcc` was merely on PATH, so
186
+ rpm/deb/venv/source checkouts all reported "pip"). The reading of
187
+ `INSTALLER` metadata is OS-agnostic, so there is nothing per-OS to
188
+ implement — see adapters/diagnostics/install.detect_installer.
189
+ """
190
+ from ..diagnostics.install import detect_installer
191
+ method = detect_installer()
192
+ log.info("install_method: %s", method)
193
+ return method
187
194
 
188
195
  # ── Per-OS diagnostic hints (pkg) ─────────────────────────────────
189
196