@openmouse/protocol 0.1.0

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 (547) hide show
  1. package/CONTRIBUTING.md +167 -0
  2. package/README.md +89 -0
  3. package/dist/asus/index.d.ts +52 -0
  4. package/dist/asus/index.d.ts.map +1 -0
  5. package/dist/asus/index.js +248 -0
  6. package/dist/asus/index.js.map +1 -0
  7. package/dist/atk/index.d.ts +200 -0
  8. package/dist/atk/index.d.ts.map +1 -0
  9. package/dist/atk/index.js +480 -0
  10. package/dist/atk/index.js.map +1 -0
  11. package/dist/bitmouse/index.d.ts +284 -0
  12. package/dist/bitmouse/index.d.ts.map +1 -0
  13. package/dist/bitmouse/index.js +396 -0
  14. package/dist/bitmouse/index.js.map +1 -0
  15. package/dist/compx/codec.d.ts +31 -0
  16. package/dist/compx/codec.d.ts.map +1 -0
  17. package/dist/compx/codec.js +50 -0
  18. package/dist/compx/codec.js.map +1 -0
  19. package/dist/corsair/index.d.ts +147 -0
  20. package/dist/corsair/index.d.ts.map +1 -0
  21. package/dist/corsair/index.js +223 -0
  22. package/dist/corsair/index.js.map +1 -0
  23. package/dist/dareu/index.d.ts +136 -0
  24. package/dist/dareu/index.d.ts.map +1 -0
  25. package/dist/dareu/index.js +344 -0
  26. package/dist/dareu/index.js.map +1 -0
  27. package/dist/drivers/asus/hid.d.ts +29 -0
  28. package/dist/drivers/asus/hid.d.ts.map +1 -0
  29. package/dist/drivers/asus/hid.js +419 -0
  30. package/dist/drivers/asus/hid.js.map +1 -0
  31. package/dist/drivers/atk/bitmouse-hid.d.ts +80 -0
  32. package/dist/drivers/atk/bitmouse-hid.d.ts.map +1 -0
  33. package/dist/drivers/atk/bitmouse-hid.js +501 -0
  34. package/dist/drivers/atk/bitmouse-hid.js.map +1 -0
  35. package/dist/drivers/atk/hid.d.ts +163 -0
  36. package/dist/drivers/atk/hid.d.ts.map +1 -0
  37. package/dist/drivers/atk/hid.js +1368 -0
  38. package/dist/drivers/atk/hid.js.map +1 -0
  39. package/dist/drivers/atk/products.d.ts +13 -0
  40. package/dist/drivers/atk/products.d.ts.map +1 -0
  41. package/dist/drivers/atk/products.js +13 -0
  42. package/dist/drivers/atk/products.js.map +1 -0
  43. package/dist/drivers/attackshark/dpi.d.ts +41 -0
  44. package/dist/drivers/attackshark/dpi.d.ts.map +1 -0
  45. package/dist/drivers/attackshark/dpi.js +215 -0
  46. package/dist/drivers/attackshark/dpi.js.map +1 -0
  47. package/dist/drivers/attackshark/hid.d.ts +124 -0
  48. package/dist/drivers/attackshark/hid.d.ts.map +1 -0
  49. package/dist/drivers/attackshark/hid.js +728 -0
  50. package/dist/drivers/attackshark/hid.js.map +1 -0
  51. package/dist/drivers/corsair/hid.d.ts +70 -0
  52. package/dist/drivers/corsair/hid.d.ts.map +1 -0
  53. package/dist/drivers/corsair/hid.js +414 -0
  54. package/dist/drivers/corsair/hid.js.map +1 -0
  55. package/dist/drivers/dareu/hid.d.ts +59 -0
  56. package/dist/drivers/dareu/hid.d.ts.map +1 -0
  57. package/dist/drivers/dareu/hid.js +478 -0
  58. package/dist/drivers/dareu/hid.js.map +1 -0
  59. package/dist/drivers/endgame/egg-op1-hid.d.ts +107 -0
  60. package/dist/drivers/endgame/egg-op1-hid.d.ts.map +1 -0
  61. package/dist/drivers/endgame/egg-op1-hid.js +605 -0
  62. package/dist/drivers/endgame/egg-op1-hid.js.map +1 -0
  63. package/dist/drivers/endgame/egg-we-control.d.ts +42 -0
  64. package/dist/drivers/endgame/egg-we-control.d.ts.map +1 -0
  65. package/dist/drivers/endgame/egg-we-control.js +87 -0
  66. package/dist/drivers/endgame/egg-we-control.js.map +1 -0
  67. package/dist/drivers/endgame/egg-we-hid.d.ts +58 -0
  68. package/dist/drivers/endgame/egg-we-hid.d.ts.map +1 -0
  69. package/dist/drivers/endgame/egg-we-hid.js +514 -0
  70. package/dist/drivers/endgame/egg-we-hid.js.map +1 -0
  71. package/dist/drivers/fantech/hid.d.ts +106 -0
  72. package/dist/drivers/fantech/hid.d.ts.map +1 -0
  73. package/dist/drivers/fantech/hid.js +295 -0
  74. package/dist/drivers/fantech/hid.js.map +1 -0
  75. package/dist/drivers/finalmouse/hid.d.ts +31 -0
  76. package/dist/drivers/finalmouse/hid.d.ts.map +1 -0
  77. package/dist/drivers/finalmouse/hid.js +181 -0
  78. package/dist/drivers/finalmouse/hid.js.map +1 -0
  79. package/dist/drivers/gearhub/hid.d.ts +191 -0
  80. package/dist/drivers/gearhub/hid.d.ts.map +1 -0
  81. package/dist/drivers/gearhub/hid.js +542 -0
  82. package/dist/drivers/gearhub/hid.js.map +1 -0
  83. package/dist/drivers/glorious/classic-hid.d.ts +62 -0
  84. package/dist/drivers/glorious/classic-hid.d.ts.map +1 -0
  85. package/dist/drivers/glorious/classic-hid.js +326 -0
  86. package/dist/drivers/glorious/classic-hid.js.map +1 -0
  87. package/dist/drivers/glorious/hid.d.ts +39 -0
  88. package/dist/drivers/glorious/hid.d.ts.map +1 -0
  89. package/dist/drivers/glorious/hid.js +203 -0
  90. package/dist/drivers/glorious/hid.js.map +1 -0
  91. package/dist/drivers/gwolves/hid.d.ts +27 -0
  92. package/dist/drivers/gwolves/hid.d.ts.map +1 -0
  93. package/dist/drivers/gwolves/hid.js +225 -0
  94. package/dist/drivers/gwolves/hid.js.map +1 -0
  95. package/dist/drivers/gwolves/products.d.ts +17 -0
  96. package/dist/drivers/gwolves/products.d.ts.map +1 -0
  97. package/dist/drivers/gwolves/products.js +58 -0
  98. package/dist/drivers/gwolves/products.js.map +1 -0
  99. package/dist/drivers/hyperx/hid.d.ts +59 -0
  100. package/dist/drivers/hyperx/hid.d.ts.map +1 -0
  101. package/dist/drivers/hyperx/hid.js +229 -0
  102. package/dist/drivers/hyperx/hid.js.map +1 -0
  103. package/dist/drivers/incott/hid.d.ts +513 -0
  104. package/dist/drivers/incott/hid.d.ts.map +1 -0
  105. package/dist/drivers/incott/hid.js +1173 -0
  106. package/dist/drivers/incott/hid.js.map +1 -0
  107. package/dist/drivers/index.d.ts +5 -0
  108. package/dist/drivers/index.d.ts.map +1 -0
  109. package/dist/drivers/index.js +5 -0
  110. package/dist/drivers/index.js.map +1 -0
  111. package/dist/drivers/keychron/m6-hid.d.ts +81 -0
  112. package/dist/drivers/keychron/m6-hid.d.ts.map +1 -0
  113. package/dist/drivers/keychron/m6-hid.js +486 -0
  114. package/dist/drivers/keychron/m6-hid.js.map +1 -0
  115. package/dist/drivers/keychron/nape-hid.d.ts +60 -0
  116. package/dist/drivers/keychron/nape-hid.d.ts.map +1 -0
  117. package/dist/drivers/keychron/nape-hid.js +432 -0
  118. package/dist/drivers/keychron/nape-hid.js.map +1 -0
  119. package/dist/drivers/ksnake/hid.d.ts +74 -0
  120. package/dist/drivers/ksnake/hid.d.ts.map +1 -0
  121. package/dist/drivers/ksnake/hid.js +368 -0
  122. package/dist/drivers/ksnake/hid.js.map +1 -0
  123. package/dist/drivers/lamzu/hid.d.ts +58 -0
  124. package/dist/drivers/lamzu/hid.d.ts.map +1 -0
  125. package/dist/drivers/lamzu/hid.js +414 -0
  126. package/dist/drivers/lamzu/hid.js.map +1 -0
  127. package/dist/drivers/lamzu-atlantis/hid.d.ts +148 -0
  128. package/dist/drivers/lamzu-atlantis/hid.d.ts.map +1 -0
  129. package/dist/drivers/lamzu-atlantis/hid.js +587 -0
  130. package/dist/drivers/lamzu-atlantis/hid.js.map +1 -0
  131. package/dist/drivers/logitech/bolt.d.ts +41 -0
  132. package/dist/drivers/logitech/bolt.d.ts.map +1 -0
  133. package/dist/drivers/logitech/bolt.js +105 -0
  134. package/dist/drivers/logitech/bolt.js.map +1 -0
  135. package/dist/drivers/logitech/hidpp.d.ts +525 -0
  136. package/dist/drivers/logitech/hidpp.d.ts.map +1 -0
  137. package/dist/drivers/logitech/hidpp.js +2774 -0
  138. package/dist/drivers/logitech/hidpp.js.map +1 -0
  139. package/dist/drivers/logitech/mode-status.d.ts +53 -0
  140. package/dist/drivers/logitech/mode-status.d.ts.map +1 -0
  141. package/dist/drivers/logitech/mode-status.js +52 -0
  142. package/dist/drivers/logitech/mode-status.js.map +1 -0
  143. package/dist/drivers/logitech/onboard-profiles.d.ts +298 -0
  144. package/dist/drivers/logitech/onboard-profiles.d.ts.map +1 -0
  145. package/dist/drivers/logitech/onboard-profiles.js +965 -0
  146. package/dist/drivers/logitech/onboard-profiles.js.map +1 -0
  147. package/dist/drivers/logitech/rgb-effects.d.ts +20 -0
  148. package/dist/drivers/logitech/rgb-effects.d.ts.map +1 -0
  149. package/dist/drivers/logitech/rgb-effects.js +93 -0
  150. package/dist/drivers/logitech/rgb-effects.js.map +1 -0
  151. package/dist/drivers/mchose/a5-gen1-hid.d.ts +36 -0
  152. package/dist/drivers/mchose/a5-gen1-hid.d.ts.map +1 -0
  153. package/dist/drivers/mchose/a5-gen1-hid.js +219 -0
  154. package/dist/drivers/mchose/a5-gen1-hid.js.map +1 -0
  155. package/dist/drivers/mchose/dock-hid.d.ts +26 -0
  156. package/dist/drivers/mchose/dock-hid.d.ts.map +1 -0
  157. package/dist/drivers/mchose/dock-hid.js +176 -0
  158. package/dist/drivers/mchose/dock-hid.js.map +1 -0
  159. package/dist/drivers/mchose/hid.d.ts +118 -0
  160. package/dist/drivers/mchose/hid.d.ts.map +1 -0
  161. package/dist/drivers/mchose/hid.js +550 -0
  162. package/dist/drivers/mchose/hid.js.map +1 -0
  163. package/dist/drivers/mchose/v3-hid.d.ts +109 -0
  164. package/dist/drivers/mchose/v3-hid.d.ts.map +1 -0
  165. package/dist/drivers/mchose/v3-hid.js +572 -0
  166. package/dist/drivers/mchose/v3-hid.js.map +1 -0
  167. package/dist/drivers/microsoft/hid.d.ts +25 -0
  168. package/dist/drivers/microsoft/hid.d.ts.map +1 -0
  169. package/dist/drivers/microsoft/hid.js +247 -0
  170. package/dist/drivers/microsoft/hid.js.map +1 -0
  171. package/dist/drivers/moddo/hid.d.ts +31 -0
  172. package/dist/drivers/moddo/hid.d.ts.map +1 -0
  173. package/dist/drivers/moddo/hid.js +154 -0
  174. package/dist/drivers/moddo/hid.js.map +1 -0
  175. package/dist/drivers/mouse-types.d.ts +388 -0
  176. package/dist/drivers/mouse-types.d.ts.map +1 -0
  177. package/dist/drivers/mouse-types.js +2 -0
  178. package/dist/drivers/mouse-types.js.map +1 -0
  179. package/dist/drivers/ninjutso/hid.d.ts +62 -0
  180. package/dist/drivers/ninjutso/hid.d.ts.map +1 -0
  181. package/dist/drivers/ninjutso/hid.js +680 -0
  182. package/dist/drivers/ninjutso/hid.js.map +1 -0
  183. package/dist/drivers/orbital/hid.d.ts +24 -0
  184. package/dist/drivers/orbital/hid.d.ts.map +1 -0
  185. package/dist/drivers/orbital/hid.js +85 -0
  186. package/dist/drivers/orbital/hid.js.map +1 -0
  187. package/dist/drivers/orbital/host-protocol.d.ts +59 -0
  188. package/dist/drivers/orbital/host-protocol.d.ts.map +1 -0
  189. package/dist/drivers/orbital/host-protocol.js +884 -0
  190. package/dist/drivers/orbital/host-protocol.js.map +1 -0
  191. package/dist/drivers/pulsar/pulsar-hid.d.ts +63 -0
  192. package/dist/drivers/pulsar/pulsar-hid.d.ts.map +1 -0
  193. package/dist/drivers/pulsar/pulsar-hid.js +381 -0
  194. package/dist/drivers/pulsar/pulsar-hid.js.map +1 -0
  195. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts +46 -0
  196. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts.map +1 -0
  197. package/dist/drivers/pulsar/pulsar-pro-hid.js +343 -0
  198. package/dist/drivers/pulsar/pulsar-pro-hid.js.map +1 -0
  199. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts +40 -0
  200. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts.map +1 -0
  201. package/dist/drivers/pulsar/pulsar-xs1-hid.js +251 -0
  202. package/dist/drivers/pulsar/pulsar-xs1-hid.js.map +1 -0
  203. package/dist/drivers/rawm/hid.d.ts +29 -0
  204. package/dist/drivers/rawm/hid.d.ts.map +1 -0
  205. package/dist/drivers/rawm/hid.js +210 -0
  206. package/dist/drivers/rawm/hid.js.map +1 -0
  207. package/dist/drivers/razer/cobra-hid.d.ts +63 -0
  208. package/dist/drivers/razer/cobra-hid.d.ts.map +1 -0
  209. package/dist/drivers/razer/cobra-hid.js +282 -0
  210. package/dist/drivers/razer/cobra-hid.js.map +1 -0
  211. package/dist/drivers/razer/hid-open.d.ts +13 -0
  212. package/dist/drivers/razer/hid-open.d.ts.map +1 -0
  213. package/dist/drivers/razer/hid-open.js +29 -0
  214. package/dist/drivers/razer/hid-open.js.map +1 -0
  215. package/dist/drivers/razer/hid.d.ts +231 -0
  216. package/dist/drivers/razer/hid.d.ts.map +1 -0
  217. package/dist/drivers/razer/hid.js +772 -0
  218. package/dist/drivers/razer/hid.js.map +1 -0
  219. package/dist/drivers/razer/viper-hid.d.ts +33 -0
  220. package/dist/drivers/razer/viper-hid.d.ts.map +1 -0
  221. package/dist/drivers/razer/viper-hid.js +177 -0
  222. package/dist/drivers/razer/viper-hid.js.map +1 -0
  223. package/dist/drivers/razer/viper-mini-hid.d.ts +58 -0
  224. package/dist/drivers/razer/viper-mini-hid.d.ts.map +1 -0
  225. package/dist/drivers/razer/viper-mini-hid.js +273 -0
  226. package/dist/drivers/razer/viper-mini-hid.js.map +1 -0
  227. package/dist/drivers/razer/viper-v4-pro-hid.d.ts +26 -0
  228. package/dist/drivers/razer/viper-v4-pro-hid.d.ts.map +1 -0
  229. package/dist/drivers/razer/viper-v4-pro-hid.js +154 -0
  230. package/dist/drivers/razer/viper-v4-pro-hid.js.map +1 -0
  231. package/dist/drivers/registry.d.ts +70 -0
  232. package/dist/drivers/registry.d.ts.map +1 -0
  233. package/dist/drivers/registry.js +146 -0
  234. package/dist/drivers/registry.js.map +1 -0
  235. package/dist/drivers/steelseries/aerox3-hid.d.ts +53 -0
  236. package/dist/drivers/steelseries/aerox3-hid.d.ts.map +1 -0
  237. package/dist/drivers/steelseries/aerox3-hid.js +172 -0
  238. package/dist/drivers/steelseries/aerox3-hid.js.map +1 -0
  239. package/dist/drivers/steelseries/aerox5-hid.d.ts +54 -0
  240. package/dist/drivers/steelseries/aerox5-hid.d.ts.map +1 -0
  241. package/dist/drivers/steelseries/aerox5-hid.js +173 -0
  242. package/dist/drivers/steelseries/aerox5-hid.js.map +1 -0
  243. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts +69 -0
  244. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts.map +1 -0
  245. package/dist/drivers/steelseries/aerox5-wireless-hid.js +234 -0
  246. package/dist/drivers/steelseries/aerox5-wireless-hid.js.map +1 -0
  247. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts +70 -0
  248. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts.map +1 -0
  249. package/dist/drivers/steelseries/aerox9-wireless-hid.js +227 -0
  250. package/dist/drivers/steelseries/aerox9-wireless-hid.js.map +1 -0
  251. package/dist/drivers/steelseries/hid.d.ts +48 -0
  252. package/dist/drivers/steelseries/hid.d.ts.map +1 -0
  253. package/dist/drivers/steelseries/hid.js +157 -0
  254. package/dist/drivers/steelseries/hid.js.map +1 -0
  255. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts +62 -0
  256. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts.map +1 -0
  257. package/dist/drivers/steelseries/prime-mini-wireless-hid.js +215 -0
  258. package/dist/drivers/steelseries/prime-mini-wireless-hid.js.map +1 -0
  259. package/dist/drivers/steelseries/prime-plus-hid.d.ts +51 -0
  260. package/dist/drivers/steelseries/prime-plus-hid.d.ts.map +1 -0
  261. package/dist/drivers/steelseries/prime-plus-hid.js +150 -0
  262. package/dist/drivers/steelseries/prime-plus-hid.js.map +1 -0
  263. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts +61 -0
  264. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts.map +1 -0
  265. package/dist/drivers/steelseries/rival3-wireless-hid.js +185 -0
  266. package/dist/drivers/steelseries/rival3-wireless-hid.js.map +1 -0
  267. package/dist/drivers/steelseries/rival310-hid.d.ts +59 -0
  268. package/dist/drivers/steelseries/rival310-hid.d.ts.map +1 -0
  269. package/dist/drivers/steelseries/rival310-hid.js +182 -0
  270. package/dist/drivers/steelseries/rival310-hid.js.map +1 -0
  271. package/dist/drivers/steelseries/rival650-hid.d.ts +68 -0
  272. package/dist/drivers/steelseries/rival650-hid.d.ts.map +1 -0
  273. package/dist/drivers/steelseries/rival650-hid.js +209 -0
  274. package/dist/drivers/steelseries/rival650-hid.js.map +1 -0
  275. package/dist/drivers/steelseries/sensei-ten-hid.d.ts +62 -0
  276. package/dist/drivers/steelseries/sensei-ten-hid.d.ts.map +1 -0
  277. package/dist/drivers/steelseries/sensei-ten-hid.js +186 -0
  278. package/dist/drivers/steelseries/sensei-ten-hid.js.map +1 -0
  279. package/dist/drivers/teevolution/hid.d.ts +82 -0
  280. package/dist/drivers/teevolution/hid.d.ts.map +1 -0
  281. package/dist/drivers/teevolution/hid.js +607 -0
  282. package/dist/drivers/teevolution/hid.js.map +1 -0
  283. package/dist/drivers/vendors.d.ts +254 -0
  284. package/dist/drivers/vendors.d.ts.map +1 -0
  285. package/dist/drivers/vendors.js +587 -0
  286. package/dist/drivers/vendors.js.map +1 -0
  287. package/dist/drivers/vgn/hid.d.ts +33 -0
  288. package/dist/drivers/vgn/hid.d.ts.map +1 -0
  289. package/dist/drivers/vgn/hid.js +213 -0
  290. package/dist/drivers/vgn/hid.js.map +1 -0
  291. package/dist/drivers/wallhack/keyboard-hid.d.ts +28 -0
  292. package/dist/drivers/wallhack/keyboard-hid.d.ts.map +1 -0
  293. package/dist/drivers/wallhack/keyboard-hid.js +80 -0
  294. package/dist/drivers/wallhack/keyboard-hid.js.map +1 -0
  295. package/dist/drivers/wallhack/mouse-hid.d.ts +45 -0
  296. package/dist/drivers/wallhack/mouse-hid.d.ts.map +1 -0
  297. package/dist/drivers/wallhack/mouse-hid.js +288 -0
  298. package/dist/drivers/wallhack/mouse-hid.js.map +1 -0
  299. package/dist/drivers/webhid.d.ts +59 -0
  300. package/dist/drivers/webhid.d.ts.map +1 -0
  301. package/dist/drivers/webhid.js +2 -0
  302. package/dist/drivers/webhid.js.map +1 -0
  303. package/dist/drivers/wlmouse/hid.d.ts +81 -0
  304. package/dist/drivers/wlmouse/hid.d.ts.map +1 -0
  305. package/dist/drivers/wlmouse/hid.js +576 -0
  306. package/dist/drivers/wlmouse/hid.js.map +1 -0
  307. package/dist/drivers/wooting/hid.d.ts +86 -0
  308. package/dist/drivers/wooting/hid.d.ts.map +1 -0
  309. package/dist/drivers/wooting/hid.js +320 -0
  310. package/dist/drivers/wooting/hid.js.map +1 -0
  311. package/dist/drivers/zaunkoenig/hid.d.ts +31 -0
  312. package/dist/drivers/zaunkoenig/hid.d.ts.map +1 -0
  313. package/dist/drivers/zaunkoenig/hid.js +162 -0
  314. package/dist/drivers/zaunkoenig/hid.js.map +1 -0
  315. package/dist/endgame-gear/op1.d.ts +165 -0
  316. package/dist/endgame-gear/op1.d.ts.map +1 -0
  317. package/dist/endgame-gear/op1.js +384 -0
  318. package/dist/endgame-gear/op1.js.map +1 -0
  319. package/dist/endgame-gear/wireless.d.ts +93 -0
  320. package/dist/endgame-gear/wireless.d.ts.map +1 -0
  321. package/dist/endgame-gear/wireless.js +242 -0
  322. package/dist/endgame-gear/wireless.js.map +1 -0
  323. package/dist/fantech/index.d.ts +9 -0
  324. package/dist/fantech/index.d.ts.map +1 -0
  325. package/dist/fantech/index.js +11 -0
  326. package/dist/fantech/index.js.map +1 -0
  327. package/dist/finalmouse/index.d.ts +41 -0
  328. package/dist/finalmouse/index.d.ts.map +1 -0
  329. package/dist/finalmouse/index.js +106 -0
  330. package/dist/finalmouse/index.js.map +1 -0
  331. package/dist/gearhub/index.d.ts +210 -0
  332. package/dist/gearhub/index.d.ts.map +1 -0
  333. package/dist/gearhub/index.js +282 -0
  334. package/dist/gearhub/index.js.map +1 -0
  335. package/dist/glorious/index.d.ts +89 -0
  336. package/dist/glorious/index.d.ts.map +1 -0
  337. package/dist/glorious/index.js +236 -0
  338. package/dist/glorious/index.js.map +1 -0
  339. package/dist/glorious-classic/index.d.ts +103 -0
  340. package/dist/glorious-classic/index.d.ts.map +1 -0
  341. package/dist/glorious-classic/index.js +304 -0
  342. package/dist/glorious-classic/index.js.map +1 -0
  343. package/dist/gwolves/index.d.ts +82 -0
  344. package/dist/gwolves/index.d.ts.map +1 -0
  345. package/dist/gwolves/index.js +197 -0
  346. package/dist/gwolves/index.js.map +1 -0
  347. package/dist/hyperx/index.d.ts +181 -0
  348. package/dist/hyperx/index.d.ts.map +1 -0
  349. package/dist/hyperx/index.js +303 -0
  350. package/dist/hyperx/index.js.map +1 -0
  351. package/dist/incott/index.d.ts +1067 -0
  352. package/dist/incott/index.d.ts.map +1 -0
  353. package/dist/incott/index.js +1482 -0
  354. package/dist/incott/index.js.map +1 -0
  355. package/dist/index.d.ts +30 -0
  356. package/dist/index.d.ts.map +1 -0
  357. package/dist/index.js +30 -0
  358. package/dist/index.js.map +1 -0
  359. package/dist/keychron/index.d.ts +194 -0
  360. package/dist/keychron/index.d.ts.map +1 -0
  361. package/dist/keychron/index.js +341 -0
  362. package/dist/keychron/index.js.map +1 -0
  363. package/dist/ksnake/index.d.ts +157 -0
  364. package/dist/ksnake/index.d.ts.map +1 -0
  365. package/dist/ksnake/index.js +314 -0
  366. package/dist/ksnake/index.js.map +1 -0
  367. package/dist/lamzu/atlantis.d.ts +237 -0
  368. package/dist/lamzu/atlantis.d.ts.map +1 -0
  369. package/dist/lamzu/atlantis.js +263 -0
  370. package/dist/lamzu/atlantis.js.map +1 -0
  371. package/dist/lamzu/index.d.ts +60 -0
  372. package/dist/lamzu/index.d.ts.map +1 -0
  373. package/dist/lamzu/index.js +86 -0
  374. package/dist/lamzu/index.js.map +1 -0
  375. package/dist/logitech/controls.d.ts +138 -0
  376. package/dist/logitech/controls.d.ts.map +1 -0
  377. package/dist/logitech/controls.js +184 -0
  378. package/dist/logitech/controls.js.map +1 -0
  379. package/dist/logitech/friendly-name.d.ts +50 -0
  380. package/dist/logitech/friendly-name.d.ts.map +1 -0
  381. package/dist/logitech/friendly-name.js +74 -0
  382. package/dist/logitech/friendly-name.js.map +1 -0
  383. package/dist/logitech/haptics.d.ts +97 -0
  384. package/dist/logitech/haptics.d.ts.map +1 -0
  385. package/dist/logitech/haptics.js +116 -0
  386. package/dist/logitech/haptics.js.map +1 -0
  387. package/dist/logitech/hosts.d.ts +55 -0
  388. package/dist/logitech/hosts.d.ts.map +1 -0
  389. package/dist/logitech/hosts.js +80 -0
  390. package/dist/logitech/hosts.js.map +1 -0
  391. package/dist/logitech/index.d.ts +127 -0
  392. package/dist/logitech/index.d.ts.map +1 -0
  393. package/dist/logitech/index.js +233 -0
  394. package/dist/logitech/index.js.map +1 -0
  395. package/dist/logitech/wheel.d.ts +117 -0
  396. package/dist/logitech/wheel.d.ts.map +1 -0
  397. package/dist/logitech/wheel.js +133 -0
  398. package/dist/logitech/wheel.js.map +1 -0
  399. package/dist/mchose/a5-gen1.d.ts +38 -0
  400. package/dist/mchose/a5-gen1.d.ts.map +1 -0
  401. package/dist/mchose/a5-gen1.js +60 -0
  402. package/dist/mchose/a5-gen1.js.map +1 -0
  403. package/dist/mchose/buttons.d.ts +66 -0
  404. package/dist/mchose/buttons.d.ts.map +1 -0
  405. package/dist/mchose/buttons.js +184 -0
  406. package/dist/mchose/buttons.js.map +1 -0
  407. package/dist/mchose/dock.d.ts +77 -0
  408. package/dist/mchose/dock.d.ts.map +1 -0
  409. package/dist/mchose/dock.js +133 -0
  410. package/dist/mchose/dock.js.map +1 -0
  411. package/dist/mchose/index.d.ts +299 -0
  412. package/dist/mchose/index.d.ts.map +1 -0
  413. package/dist/mchose/index.js +429 -0
  414. package/dist/mchose/index.js.map +1 -0
  415. package/dist/mchose/v3-buttons.d.ts +64 -0
  416. package/dist/mchose/v3-buttons.d.ts.map +1 -0
  417. package/dist/mchose/v3-buttons.js +258 -0
  418. package/dist/mchose/v3-buttons.js.map +1 -0
  419. package/dist/mchose/v3.d.ts +380 -0
  420. package/dist/mchose/v3.d.ts.map +1 -0
  421. package/dist/mchose/v3.js +608 -0
  422. package/dist/mchose/v3.js.map +1 -0
  423. package/dist/microsoft/index.d.ts +19 -0
  424. package/dist/microsoft/index.d.ts.map +1 -0
  425. package/dist/microsoft/index.js +22 -0
  426. package/dist/microsoft/index.js.map +1 -0
  427. package/dist/moddo/index.d.ts +72 -0
  428. package/dist/moddo/index.d.ts.map +1 -0
  429. package/dist/moddo/index.js +147 -0
  430. package/dist/moddo/index.js.map +1 -0
  431. package/dist/ninjutso/index.d.ts +74 -0
  432. package/dist/ninjutso/index.d.ts.map +1 -0
  433. package/dist/ninjutso/index.js +133 -0
  434. package/dist/ninjutso/index.js.map +1 -0
  435. package/dist/orbital/index.d.ts +14 -0
  436. package/dist/orbital/index.d.ts.map +1 -0
  437. package/dist/orbital/index.js +19 -0
  438. package/dist/orbital/index.js.map +1 -0
  439. package/dist/pulsar/index.d.ts +81 -0
  440. package/dist/pulsar/index.d.ts.map +1 -0
  441. package/dist/pulsar/index.js +185 -0
  442. package/dist/pulsar/index.js.map +1 -0
  443. package/dist/rawm/index.d.ts +55 -0
  444. package/dist/rawm/index.d.ts.map +1 -0
  445. package/dist/rawm/index.js +229 -0
  446. package/dist/rawm/index.js.map +1 -0
  447. package/dist/razer/codec.d.ts +504 -0
  448. package/dist/razer/codec.d.ts.map +1 -0
  449. package/dist/razer/codec.js +648 -0
  450. package/dist/razer/codec.js.map +1 -0
  451. package/dist/razer/devices.d.ts +156 -0
  452. package/dist/razer/devices.d.ts.map +1 -0
  453. package/dist/razer/devices.js +540 -0
  454. package/dist/razer/devices.js.map +1 -0
  455. package/dist/razer/index.d.ts +2 -0
  456. package/dist/razer/index.d.ts.map +1 -0
  457. package/dist/razer/index.js +2 -0
  458. package/dist/razer/index.js.map +1 -0
  459. package/dist/razer/v4.d.ts +19 -0
  460. package/dist/razer/v4.d.ts.map +1 -0
  461. package/dist/razer/v4.js +51 -0
  462. package/dist/razer/v4.js.map +1 -0
  463. package/dist/steelseries/aerox3.d.ts +236 -0
  464. package/dist/steelseries/aerox3.d.ts.map +1 -0
  465. package/dist/steelseries/aerox3.js +311 -0
  466. package/dist/steelseries/aerox3.js.map +1 -0
  467. package/dist/steelseries/aerox5-wireless.d.ts +300 -0
  468. package/dist/steelseries/aerox5-wireless.d.ts.map +1 -0
  469. package/dist/steelseries/aerox5-wireless.js +389 -0
  470. package/dist/steelseries/aerox5-wireless.js.map +1 -0
  471. package/dist/steelseries/aerox5.d.ts +228 -0
  472. package/dist/steelseries/aerox5.d.ts.map +1 -0
  473. package/dist/steelseries/aerox5.js +294 -0
  474. package/dist/steelseries/aerox5.js.map +1 -0
  475. package/dist/steelseries/aerox9-wireless.d.ts +213 -0
  476. package/dist/steelseries/aerox9-wireless.d.ts.map +1 -0
  477. package/dist/steelseries/aerox9-wireless.js +305 -0
  478. package/dist/steelseries/aerox9-wireless.js.map +1 -0
  479. package/dist/steelseries/devices.d.ts +82 -0
  480. package/dist/steelseries/devices.d.ts.map +1 -0
  481. package/dist/steelseries/devices.js +310 -0
  482. package/dist/steelseries/devices.js.map +1 -0
  483. package/dist/steelseries/index.d.ts +13 -0
  484. package/dist/steelseries/index.d.ts.map +1 -0
  485. package/dist/steelseries/index.js +13 -0
  486. package/dist/steelseries/index.js.map +1 -0
  487. package/dist/steelseries/prime-mini-wireless.d.ts +253 -0
  488. package/dist/steelseries/prime-mini-wireless.d.ts.map +1 -0
  489. package/dist/steelseries/prime-mini-wireless.js +351 -0
  490. package/dist/steelseries/prime-mini-wireless.js.map +1 -0
  491. package/dist/steelseries/prime-plus.d.ts +179 -0
  492. package/dist/steelseries/prime-plus.d.ts.map +1 -0
  493. package/dist/steelseries/prime-plus.js +275 -0
  494. package/dist/steelseries/prime-plus.js.map +1 -0
  495. package/dist/steelseries/rival3-wireless.d.ts +222 -0
  496. package/dist/steelseries/rival3-wireless.d.ts.map +1 -0
  497. package/dist/steelseries/rival3-wireless.js +308 -0
  498. package/dist/steelseries/rival3-wireless.js.map +1 -0
  499. package/dist/steelseries/rival3.d.ts +99 -0
  500. package/dist/steelseries/rival3.d.ts.map +1 -0
  501. package/dist/steelseries/rival3.js +147 -0
  502. package/dist/steelseries/rival3.js.map +1 -0
  503. package/dist/steelseries/rival310.d.ts +230 -0
  504. package/dist/steelseries/rival310.d.ts.map +1 -0
  505. package/dist/steelseries/rival310.js +322 -0
  506. package/dist/steelseries/rival310.js.map +1 -0
  507. package/dist/steelseries/rival650.d.ts +215 -0
  508. package/dist/steelseries/rival650.d.ts.map +1 -0
  509. package/dist/steelseries/rival650.js +284 -0
  510. package/dist/steelseries/rival650.js.map +1 -0
  511. package/dist/steelseries/sensei-ten.d.ts +283 -0
  512. package/dist/steelseries/sensei-ten.d.ts.map +1 -0
  513. package/dist/steelseries/sensei-ten.js +389 -0
  514. package/dist/steelseries/sensei-ten.js.map +1 -0
  515. package/dist/teevolution/index.d.ts +211 -0
  516. package/dist/teevolution/index.d.ts.map +1 -0
  517. package/dist/teevolution/index.js +458 -0
  518. package/dist/teevolution/index.js.map +1 -0
  519. package/dist/valkyrie/index.d.ts +19 -0
  520. package/dist/valkyrie/index.d.ts.map +1 -0
  521. package/dist/valkyrie/index.js +43 -0
  522. package/dist/valkyrie/index.js.map +1 -0
  523. package/dist/valkyrie/settings.d.ts +28 -0
  524. package/dist/valkyrie/settings.d.ts.map +1 -0
  525. package/dist/valkyrie/settings.js +84 -0
  526. package/dist/valkyrie/settings.js.map +1 -0
  527. package/dist/vgn/index.d.ts +59 -0
  528. package/dist/vgn/index.d.ts.map +1 -0
  529. package/dist/vgn/index.js +165 -0
  530. package/dist/vgn/index.js.map +1 -0
  531. package/dist/wallhack/index.d.ts +165 -0
  532. package/dist/wallhack/index.d.ts.map +1 -0
  533. package/dist/wallhack/index.js +226 -0
  534. package/dist/wallhack/index.js.map +1 -0
  535. package/dist/wlmouse/index.d.ts +4 -0
  536. package/dist/wlmouse/index.d.ts.map +1 -0
  537. package/dist/wlmouse/index.js +7 -0
  538. package/dist/wlmouse/index.js.map +1 -0
  539. package/dist/wooting/index.d.ts +225 -0
  540. package/dist/wooting/index.d.ts.map +1 -0
  541. package/dist/wooting/index.js +296 -0
  542. package/dist/wooting/index.js.map +1 -0
  543. package/dist/zaunkoenig/index.d.ts +49 -0
  544. package/dist/zaunkoenig/index.d.ts.map +1 -0
  545. package/dist/zaunkoenig/index.js +127 -0
  546. package/dist/zaunkoenig/index.js.map +1 -0
  547. package/package.json +193 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/drivers/attackshark/hid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { MouseStatus } from "../mouse-types.ts";
2
+ import { type CorsairLiftName } from "@openmouse/protocol/corsair";
3
+ export declare class CorsairHidClient {
4
+ readonly canDisableSleep = false;
5
+ readonly device: HIDDevice;
6
+ private queue;
7
+ constructor(device: HIDDevice);
8
+ /**
9
+ * Corsair VID, a catalogued product id, and the usage-4 config collection
10
+ * with a feature report on id 0. MI_00 exposes an 0xffc2 collection too
11
+ * (usage 3, input report 14 only) that must not be claimed.
12
+ */
13
+ static isSupported(device: HIDDevice): boolean;
14
+ get pollIntervalMs(): number;
15
+ getDpiOptions(): number[];
16
+ getSupportedPollingRates(): number[];
17
+ open(): Promise<void>;
18
+ close(): Promise<void>;
19
+ startNotifications(_onChange?: () => void): Promise<boolean>;
20
+ readStatus(): Promise<MouseStatus>;
21
+ /** Rewrites the value of whichever slot is currently selected (Sniper included). */
22
+ setDpi(dpi: number, dpiY?: number): Promise<number>;
23
+ /** `stage` indexes the numbered stages (slots d1+), 0-based, like `dpiStages`. */
24
+ setDpiStageValue(stage: number, dpi: number): Promise<number>;
25
+ setDpiStageColor(stage: number, color: string): Promise<string>;
26
+ /**
27
+ * Enables slots d1..d`count` and disables the rest. The mask is written
28
+ * first: the mouse ignores a stage write to a slot that is not enabled
29
+ * (verified on fw 3.41 — the read-back stays zero). Newly enabled slots that
30
+ * hold 0 DPI are then seeded from the last previously enabled stage, since an
31
+ * enabled 0-DPI stage would freeze the cursor. The Sniper bit is preserved.
32
+ */
33
+ setDpiStageCount(count: number): Promise<number>;
34
+ setActiveDpiStage(stage: number): Promise<number>;
35
+ setLiftOffDistance(value: CorsairLiftName): Promise<CorsairLiftName>;
36
+ setAngleSnapping(enabled: boolean): Promise<boolean>;
37
+ private readStatusDirect;
38
+ /** Mask → current stage → each enabled stage. Any failure aborts the whole DPI read. */
39
+ private readDpi;
40
+ /** Resolves a 0-based numbered-stage index to its slot and current contents. */
41
+ private numberedSlot;
42
+ /**
43
+ * Writes one slot and reads it back. RGB must always be sent — a stage write
44
+ * without it clears the stage colour — so the current colour is read first
45
+ * when the caller has not supplied one.
46
+ */
47
+ private writeSlot;
48
+ private selectSlot;
49
+ private assertDpi;
50
+ /**
51
+ * One GET exchange: send, wait, receive, and require the echo. Chrome hands
52
+ * back the feature buffer without a report-id prefix for id 0; a 65-byte
53
+ * reply with a leading zero is tolerated by stripping it.
54
+ */
55
+ private request;
56
+ /** A SET (or the first half of a GET): send, then leave the device its settle time. */
57
+ private send;
58
+ /** Wraps a transfer so a refused report reads as a fix, not a bare Chrome error. */
59
+ private transfer;
60
+ private run;
61
+ }
62
+ /**
63
+ * Chrome reports a refused feature-report transfer as a `NotAllowedError`
64
+ * whose message is only "Failed to write the feature report." Verified on
65
+ * hardware: that is what MI_00's usage-3 collection answers (it has no feature
66
+ * report), while the usage-4 interface keeps working with iCUE running. So the
67
+ * likely fix is picking the other interface; closing iCUE is the fallback.
68
+ */
69
+ export declare function corsairTransferError(error: unknown): Error;
70
+ //# sourceMappingURL=hid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/corsair/hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAUL,KAAK,eAAe,EAWrB,MAAM,6BAA6B,CAAC;AAiDrC,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,eAAe,SAAS;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAuC;gBAExC,MAAM,EAAE,SAAS;IAI7B;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAK9C,IAAI,cAAc,IAAI,MAAM,CAAmB;IAE/C,aAAa,IAAI,MAAM,EAAE;IAOzB,wBAAwB,IAAI,MAAM,EAAE;IAE9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAE5D,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAYxC,oFAAoF;IAC9E,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9D,kFAAkF;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAepE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAc5C,gBAAgB;IAiE9B,wFAAwF;YAC1E,OAAO;IAWrB,gFAAgF;YAClE,YAAY;IAa1B;;;;OAIG;YACW,SAAS;YAaT,UAAU;IAOxB,OAAO,CAAC,SAAS;IAWjB;;;;OAIG;YACW,OAAO;IAYrB,uFAAuF;YACzE,IAAI;IAKlB,oFAAoF;YACtE,QAAQ;YAQR,GAAG;CAKlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAU1D"}
@@ -0,0 +1,414 @@
1
+ import { CORSAIR_CONFIG_USAGE, CORSAIR_LIFT_LEVELS, CORSAIR_PRODUCTS, CORSAIR_REPORT_ID, CORSAIR_SNIPER_STAGE, CORSAIR_USAGE_PAGE, CORSAIR_VENDOR_ID, corsairDecode, corsairDevice, corsairEnabledStages, corsairEncode, corsairFormatVersion, corsairIsEcho, corsairLiftName, corsairParseRgbHex, corsairRgbHex, } from "@openmouse/protocol/corsair";
2
+ /**
3
+ * Corsair NIGHTSWORD RGB — WebHID client (phase 2: live reads and writes).
4
+ *
5
+ * Talks to the config interface (usage page 0xffc2, usage 4) through 64-byte
6
+ * feature reports on report id 0. Every GET is send → short wait → receive,
7
+ * and the reply must echo the request's first four bytes; a stale buffer from
8
+ * the previous GET fails that check and the request is retried. A SET gets no
9
+ * reply at all, so every setter confirms with the matching GET. All traffic
10
+ * goes through one queue because the device has a single reply buffer.
11
+ *
12
+ * Slot d0 is iCUE's held-button Sniper stage and is left alone; the stage
13
+ * editor works on slots d1–d5, numbered the way iCUE numbers them. Every
14
+ * write addresses the live profile (byte 3 = 0), which the mouse forgets on
15
+ * a power cycle — the onboard profile needs Corsair's file-based format and is
16
+ * out of scope.
17
+ *
18
+ * Reads past identity are best-effort: if the DPI fields cannot be read the
19
+ * status still identifies the mouse with `ui.settingsReady = false`.
20
+ *
21
+ * iCUE's service keeps this interface open too. Reads and writes have been
22
+ * observed to coexist with it (shared mode, iCUE actively re-applying its
23
+ * profile). If Chrome ever refuses a transfer with a bare `NotAllowedError`,
24
+ * that is mapped to guidance; the more common cause of that error is being
25
+ * granted MI_00's usage-3 collection, which `isSupported()` now rejects.
26
+ */
27
+ const PRODUCT_IDS = new Set(CORSAIR_PRODUCTS.keys());
28
+ /** Gap between sendFeatureReport and receiveFeatureReport; ~20 ms was reliable on fw 3.41. */
29
+ const REPLY_DELAY_MS = 20;
30
+ const REQUEST_ATTEMPTS = 3;
31
+ const SUPPORTED_POLLING_RATES = [1000, 500, 250, 125];
32
+ const LIFT_NAMES = ["Low", "Medium", "High"];
33
+ /**
34
+ * The sensor accepts any integer DPI, but the shared picker and stage editor
35
+ * work from an explicit option list, and 18,000 entries is too many for a
36
+ * dropdown. 50-DPI steps cover every preset iCUE ships with.
37
+ */
38
+ const DPI_MIN = 100;
39
+ const DPI_OPTION_STEP = 50;
40
+ export class CorsairHidClient {
41
+ canDisableSleep = false;
42
+ device;
43
+ queue = Promise.resolve();
44
+ constructor(device) {
45
+ this.device = device;
46
+ }
47
+ /**
48
+ * Corsair VID, a catalogued product id, and the usage-4 config collection
49
+ * with a feature report on id 0. MI_00 exposes an 0xffc2 collection too
50
+ * (usage 3, input report 14 only) that must not be claimed.
51
+ */
52
+ static isSupported(device) {
53
+ if (device.vendorId !== CORSAIR_VENDOR_ID || !PRODUCT_IDS.has(device.productId))
54
+ return false;
55
+ return hasConfigCollection(device.collections);
56
+ }
57
+ get pollIntervalMs() { return 30_000; }
58
+ getDpiOptions() {
59
+ const { dpiMax } = corsairDevice(this.device.productId);
60
+ const options = [];
61
+ for (let dpi = DPI_MIN; dpi <= dpiMax; dpi += DPI_OPTION_STEP)
62
+ options.push(dpi);
63
+ return options;
64
+ }
65
+ getSupportedPollingRates() { return [...SUPPORTED_POLLING_RATES]; }
66
+ async open() {
67
+ if (!this.device.opened)
68
+ await this.device.open();
69
+ }
70
+ async close() {
71
+ if (this.device.opened)
72
+ await this.device.close();
73
+ }
74
+ async startNotifications(_onChange) { return false; }
75
+ async readStatus() {
76
+ return await this.run(async () => {
77
+ await this.open();
78
+ return await this.readStatusDirect();
79
+ });
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Setters. Each one reads what it needs, writes the live profile, and
83
+ // confirms with the matching GET because a SET never answers.
84
+ // ---------------------------------------------------------------------------
85
+ /** Rewrites the value of whichever slot is currently selected (Sniper included). */
86
+ async setDpi(dpi, dpiY = dpi) {
87
+ this.assertDpi(dpi);
88
+ this.assertDpi(dpiY);
89
+ return await this.run(async () => {
90
+ await this.open();
91
+ const current = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
92
+ const confirmed = await this.writeSlot(current.stage, dpi, dpiY);
93
+ return confirmed.x;
94
+ });
95
+ }
96
+ /** `stage` indexes the numbered stages (slots d1+), 0-based, like `dpiStages`. */
97
+ async setDpiStageValue(stage, dpi) {
98
+ this.assertDpi(dpi);
99
+ return await this.run(async () => {
100
+ await this.open();
101
+ const { slot, entry } = await this.numberedSlot(stage);
102
+ // A Y that already differs is a separate-axis setting the shared editor
103
+ // cannot show; changing X must not silently flatten it.
104
+ const y = entry.y === entry.x ? dpi : entry.y;
105
+ return (await this.writeSlot(slot, dpi, y, entry.rgb)).x;
106
+ });
107
+ }
108
+ async setDpiStageColor(stage, color) {
109
+ const rgb = corsairParseRgbHex(color);
110
+ return await this.run(async () => {
111
+ await this.open();
112
+ const { slot, entry } = await this.numberedSlot(stage);
113
+ const confirmed = await this.writeSlot(slot, entry.x, entry.y, rgb);
114
+ return corsairRgbHex(confirmed.rgb);
115
+ });
116
+ }
117
+ /**
118
+ * Enables slots d1..d`count` and disables the rest. The mask is written
119
+ * first: the mouse ignores a stage write to a slot that is not enabled
120
+ * (verified on fw 3.41 — the read-back stays zero). Newly enabled slots that
121
+ * hold 0 DPI are then seeded from the last previously enabled stage, since an
122
+ * enabled 0-DPI stage would freeze the cursor. The Sniper bit is preserved.
123
+ */
124
+ async setDpiStageCount(count) {
125
+ const { stages } = corsairDevice(this.device.productId);
126
+ const maxNumbered = stages - 1;
127
+ if (!Number.isInteger(count) || count < 1 || count > maxNumbered) {
128
+ throw new Error(`This mouse holds between 1 and ${maxNumbered} DPI stages.`);
129
+ }
130
+ return await this.run(async () => {
131
+ await this.open();
132
+ const state = await this.readDpi();
133
+ const numbered = numberedSlots(state.mask, stages);
134
+ const template = numbered.length > 0 ? state.stages.get(numbered[numbered.length - 1]) : undefined;
135
+ const sniperBit = state.mask & (1 << CORSAIR_SNIPER_STAGE);
136
+ const wanted = sniperBit | (((1 << count) - 1) << 1);
137
+ await this.send(corsairEncode.setDpiMask(wanted));
138
+ const confirmed = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
139
+ const enabled = numberedSlots(confirmed, stages).length;
140
+ if (enabled !== count)
141
+ throw new Error(`The mouse kept ${enabled} DPI stages instead of ${count}.`);
142
+ for (let slot = 1; slot <= count; slot += 1) {
143
+ if (numbered.includes(slot))
144
+ continue;
145
+ const existing = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
146
+ if (existing.x > 0 && existing.y > 0)
147
+ continue;
148
+ const seed = template ?? { x: 800, y: 800, rgb: [0x00, 0xbf, 0xff] };
149
+ await this.writeSlot(slot, seed.x, seed.y, seed.rgb);
150
+ }
151
+ // Keep the selection inside the enabled range.
152
+ if (state.current.stage > count)
153
+ await this.selectSlot(count);
154
+ return enabled;
155
+ });
156
+ }
157
+ async setActiveDpiStage(stage) {
158
+ return await this.run(async () => {
159
+ await this.open();
160
+ const state = await this.readDpi();
161
+ const numbered = numberedSlots(state.mask, corsairDevice(this.device.productId).stages);
162
+ const slot = numbered[stage];
163
+ if (slot === undefined)
164
+ throw new Error(`This mouse does not have a DPI stage ${stage + 1}.`);
165
+ const confirmed = await this.selectSlot(slot);
166
+ return numbered.indexOf(confirmed);
167
+ });
168
+ }
169
+ async setLiftOffDistance(value) {
170
+ const raw = CORSAIR_LIFT_LEVELS[value];
171
+ if (raw === undefined)
172
+ throw new Error("Lift-off distance must be Low, Medium, or High.");
173
+ return await this.run(async () => {
174
+ await this.open();
175
+ await this.send(corsairEncode.setLift(raw));
176
+ const confirmed = corsairDecode.lift(await this.request(corsairEncode.lift()));
177
+ const name = corsairLiftName(confirmed);
178
+ if (confirmed !== raw || name === null) {
179
+ throw new Error(`The mouse kept lift-off height ${confirmed} instead of ${raw}.`);
180
+ }
181
+ return name;
182
+ });
183
+ }
184
+ async setAngleSnapping(enabled) {
185
+ return await this.run(async () => {
186
+ await this.open();
187
+ await this.send(corsairEncode.setSnap(enabled));
188
+ const confirmed = corsairDecode.snap(await this.request(corsairEncode.snap()));
189
+ if (confirmed !== enabled)
190
+ throw new Error(`The mouse kept angle snapping ${confirmed ? "on" : "off"}.`);
191
+ return confirmed;
192
+ });
193
+ }
194
+ // ---------------------------------------------------------------------------
195
+ // Reads
196
+ // ---------------------------------------------------------------------------
197
+ async readStatusDirect() {
198
+ const definition = corsairDevice(this.device.productId);
199
+ const ident = corsairDecode.ident(await this.request(corsairEncode.ident()));
200
+ const dpi = await this.readDpi().catch(() => null);
201
+ const lift = dpi ? await this.request(corsairEncode.lift()).then(corsairDecode.lift, () => null) : null;
202
+ const snap = dpi ? await this.request(corsairEncode.snap()).then(corsairDecode.snap, () => null) : null;
203
+ const enabled = dpi ? corsairEnabledStages(dpi.mask, definition.stages) : [];
204
+ // Slot 0 is the held-button Sniper stage; the numbered stages iCUE shows are slots 1+.
205
+ const numbered = enabled.filter((slot) => slot !== CORSAIR_SNIPER_STAGE);
206
+ const stageList = numbered.map((slot) => dpi.stages.get(slot)).filter((stage) => !!stage);
207
+ const activeIndex = dpi ? numbered.indexOf(dpi.current.stage) : -1;
208
+ const displayName = `Corsair ${definition.name}`;
209
+ return {
210
+ brand: "Corsair",
211
+ name: definition.name,
212
+ batteryPercent: null,
213
+ batteryState: "Unknown",
214
+ dpi: dpi?.current.x ?? 0,
215
+ dpiY: dpi?.current.y ?? 0,
216
+ supportsSeparateDpiAxes: true,
217
+ pollingRateHz: ident.pollingRateHz,
218
+ supportedPollingRates: [...SUPPORTED_POLLING_RATES],
219
+ activeProfile: null,
220
+ connectionType: "Wired",
221
+ connectionDetail: "USB",
222
+ dpiStages: stageList.map((stage) => stage.x),
223
+ dpiStageColors: stageList.map((stage) => corsairRgbHex(stage.rgb)),
224
+ activeDpiStage: activeIndex >= 0 ? activeIndex : undefined,
225
+ liftOffDistance: lift === null ? null : corsairLiftName(lift),
226
+ supportedLiftOffDistances: [...LIFT_NAMES],
227
+ angleSnapping: snap,
228
+ motionSync: null,
229
+ rippleControl: null,
230
+ firmware: firmwareLines(ident, dpi, enabled, lift),
231
+ ui: {
232
+ family: "corsair",
233
+ settingsReady: dpi !== null,
234
+ valuesVerified: dpi !== null,
235
+ pollingReadOnly: true,
236
+ hideUnsupportedPollingRates: true,
237
+ hideMotionSync: true,
238
+ hideRippleControl: true,
239
+ hideSleepCard: true,
240
+ hideSignalCard: true,
241
+ showAdvancedSection: true,
242
+ pollingNote: "Changing the polling rate makes the mouse re-enumerate; use iCUE for that until reconnect handling lands.",
243
+ statusNote: dpi
244
+ ? "Changes apply to the live profile and are lost when the mouse loses power; the Sniper stage is left untouched."
245
+ : "Identified the mouse but its DPI settings could not be read. Unplug and reconnect the mouse, then add it again.",
246
+ defaultDisplayName: displayName,
247
+ dpiStageEditor: dpi
248
+ ? {
249
+ maxStages: definition.stages - 1,
250
+ countEditable: true,
251
+ minDpi: DPI_MIN,
252
+ maxDpi: definition.dpiMax,
253
+ stepDpi: DPI_OPTION_STEP,
254
+ }
255
+ : undefined,
256
+ },
257
+ };
258
+ }
259
+ /** Mask → current stage → each enabled stage. Any failure aborts the whole DPI read. */
260
+ async readDpi() {
261
+ const definition = corsairDevice(this.device.productId);
262
+ const mask = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
263
+ const current = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
264
+ const stages = new Map();
265
+ for (const stage of corsairEnabledStages(mask, definition.stages)) {
266
+ stages.set(stage, corsairDecode.stage(await this.request(corsairEncode.stage(stage))));
267
+ }
268
+ return { mask, current, stages };
269
+ }
270
+ /** Resolves a 0-based numbered-stage index to its slot and current contents. */
271
+ async numberedSlot(stage) {
272
+ const mask = corsairDecode.dpiMask(await this.request(corsairEncode.dpiMask()));
273
+ const numbered = numberedSlots(mask, corsairDevice(this.device.productId).stages);
274
+ const slot = numbered[stage];
275
+ if (slot === undefined)
276
+ throw new Error(`This mouse does not have a DPI stage ${stage + 1}.`);
277
+ const entry = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
278
+ return { slot, entry };
279
+ }
280
+ // ---------------------------------------------------------------------------
281
+ // Writes
282
+ // ---------------------------------------------------------------------------
283
+ /**
284
+ * Writes one slot and reads it back. RGB must always be sent — a stage write
285
+ * without it clears the stage colour — so the current colour is read first
286
+ * when the caller has not supplied one.
287
+ */
288
+ async writeSlot(slot, x, y, rgb) {
289
+ const color = rgb ?? corsairDecode.stage(await this.request(corsairEncode.stage(slot))).rgb;
290
+ await this.send(corsairEncode.setStageDpi(slot, x, y, color));
291
+ const confirmed = corsairDecode.stage(await this.request(corsairEncode.stage(slot)));
292
+ if (confirmed.x !== x || confirmed.y !== y) {
293
+ throw new Error(`The mouse kept ${confirmed.x.toLocaleString()} DPI on stage ${slot} instead of ${x.toLocaleString()}.`);
294
+ }
295
+ if (confirmed.rgb.some((channel, index) => channel !== color[index])) {
296
+ throw new Error(`The mouse kept colour ${corsairRgbHex(confirmed.rgb)} on stage ${slot} instead of ${corsairRgbHex(color)}.`);
297
+ }
298
+ return confirmed;
299
+ }
300
+ async selectSlot(slot) {
301
+ await this.send(corsairEncode.setStage(slot));
302
+ const confirmed = corsairDecode.dpiStage(await this.request(corsairEncode.dpiStage()));
303
+ if (confirmed.stage !== slot)
304
+ throw new Error(`The mouse stayed on DPI slot ${confirmed.stage} instead of ${slot}.`);
305
+ return confirmed.stage;
306
+ }
307
+ assertDpi(dpi) {
308
+ const { dpiMax } = corsairDevice(this.device.productId);
309
+ if (!Number.isInteger(dpi) || dpi < DPI_MIN || dpi > dpiMax) {
310
+ throw new Error(`Corsair DPI must be ${DPI_MIN}–${dpiMax.toLocaleString()}.`);
311
+ }
312
+ }
313
+ // ---------------------------------------------------------------------------
314
+ // Transport
315
+ // ---------------------------------------------------------------------------
316
+ /**
317
+ * One GET exchange: send, wait, receive, and require the echo. Chrome hands
318
+ * back the feature buffer without a report-id prefix for id 0; a 65-byte
319
+ * reply with a leading zero is tolerated by stripping it.
320
+ */
321
+ async request(packet) {
322
+ for (let attempt = 0; attempt < REQUEST_ATTEMPTS; attempt += 1) {
323
+ await this.send(packet);
324
+ const view = await this.transfer(() => this.device.receiveFeatureReport(CORSAIR_REPORT_ID));
325
+ const reply = stripReportId(new Uint8Array(view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength)), packet);
326
+ if (corsairIsEcho(packet, reply))
327
+ return reply;
328
+ }
329
+ throw new Error(`The Corsair mouse did not answer command 0x${packet[1].toString(16).padStart(2, "0")}/0x${packet[2].toString(16).padStart(2, "0")}.`);
330
+ }
331
+ /** A SET (or the first half of a GET): send, then leave the device its settle time. */
332
+ async send(packet) {
333
+ await this.transfer(() => this.device.sendFeatureReport(CORSAIR_REPORT_ID, buffer(packet)));
334
+ await delay(REPLY_DELAY_MS);
335
+ }
336
+ /** Wraps a transfer so a refused report reads as a fix, not a bare Chrome error. */
337
+ async transfer(operation) {
338
+ try {
339
+ return await operation();
340
+ }
341
+ catch (error) {
342
+ throw corsairTransferError(error);
343
+ }
344
+ }
345
+ async run(operation) {
346
+ const result = this.queue.then(operation, operation);
347
+ this.queue = result.then(() => undefined, () => undefined);
348
+ return await result;
349
+ }
350
+ }
351
+ /**
352
+ * Chrome reports a refused feature-report transfer as a `NotAllowedError`
353
+ * whose message is only "Failed to write the feature report." Verified on
354
+ * hardware: that is what MI_00's usage-3 collection answers (it has no feature
355
+ * report), while the usage-4 interface keeps working with iCUE running. So the
356
+ * likely fix is picking the other interface; closing iCUE is the fallback.
357
+ */
358
+ export function corsairTransferError(error) {
359
+ const name = error instanceof Error ? error.name : "";
360
+ const detail = error instanceof Error ? error.message : String(error);
361
+ if (name !== "NotAllowedError")
362
+ return error instanceof Error ? error : new Error(detail);
363
+ return new Error("Chrome refused the Corsair mouse's feature report. Remove the device and add it again, choosing the "
364
+ + "entry that lists usage 4 (the config interface). If that entry was already selected, close iCUE "
365
+ + "and stop the \"Corsair Service\" Windows service, then reconnect. "
366
+ + `(${detail})`);
367
+ }
368
+ /** Enabled slots other than the Sniper slot, in slot order. */
369
+ function numberedSlots(mask, stages) {
370
+ return corsairEnabledStages(mask, stages).filter((slot) => slot !== CORSAIR_SNIPER_STAGE);
371
+ }
372
+ function firmwareLines(ident, dpi, enabled, lift) {
373
+ const lines = [
374
+ `Firmware ${corsairFormatVersion(ident.firmware)}`,
375
+ `Bootloader ${corsairFormatVersion(ident.bootloader)}`,
376
+ ];
377
+ if (dpi) {
378
+ const describe = (slot) => {
379
+ const stage = dpi.stages.get(slot);
380
+ if (!stage)
381
+ return "?";
382
+ const value = stage.x === stage.y ? `${stage.x}` : `${stage.x}×${stage.y}`;
383
+ return `${value} ${corsairRgbHex(stage.rgb)}`;
384
+ };
385
+ const sniper = enabled.includes(CORSAIR_SNIPER_STAGE) ? [`Sniper ${describe(CORSAIR_SNIPER_STAGE)}`] : [];
386
+ const stages = enabled
387
+ .filter((slot) => slot !== CORSAIR_SNIPER_STAGE)
388
+ .map((slot) => `${slot}: ${describe(slot)}`);
389
+ lines.push(...sniper);
390
+ if (stages.length > 0)
391
+ lines.push(`DPI stages ${stages.join(", ")}`);
392
+ }
393
+ if (lift !== null)
394
+ lines.push(`Lift-off height ${lift}`);
395
+ return lines;
396
+ }
397
+ function hasConfigCollection(items) {
398
+ return items.some((collection) => (collection.usagePage === CORSAIR_USAGE_PAGE
399
+ && collection.usage === CORSAIR_CONFIG_USAGE
400
+ && collection.featureReports.some((report) => report.reportId === CORSAIR_REPORT_ID))
401
+ || hasConfigCollection(collection.children));
402
+ }
403
+ function stripReportId(reply, request) {
404
+ if (reply.length === 65 && reply[0] === CORSAIR_REPORT_ID && reply[1] === request[0])
405
+ return reply.subarray(1);
406
+ return reply;
407
+ }
408
+ function buffer(payload) {
409
+ return new Uint8Array(payload).buffer;
410
+ }
411
+ function delay(ms) {
412
+ return new Promise((resolve) => setTimeout(resolve, ms));
413
+ }
414
+ //# sourceMappingURL=hid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/drivers/corsair/hid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { MouseStatus } from "../mouse-types.ts";
2
+ /**
3
+ * Dareu's Jm channel uses report 8 directly through both the wired mouse and
4
+ * the TM265 2.4 GHz receiver. Writes are exactly the vendor panel's bounded
5
+ * memory records and are followed by a fresh read before being reported done.
6
+ */
7
+ export declare class DareuHidClient {
8
+ readonly device: HIDDevice;
9
+ private waiter;
10
+ private queue;
11
+ private readonly onInputReport;
12
+ constructor(device: HIDDevice);
13
+ static isSupported(device: HIDDevice): boolean;
14
+ isWirelessPath(): boolean;
15
+ getSleepOptions(): number[];
16
+ getDpiOptions(): number[];
17
+ open(): Promise<void>;
18
+ close(): Promise<void>;
19
+ readStatus(): Promise<MouseStatus>;
20
+ setPollingRate(rate: number): Promise<number>;
21
+ setDpi(dpi: number, dpiY?: number): Promise<number>;
22
+ setDpiAxes(x: number, y: number): Promise<{
23
+ x: number;
24
+ y: number;
25
+ }>;
26
+ setDpiStageValue(stage: number, dpi: number): Promise<number>;
27
+ setDpiStageCount(count: number): Promise<number>;
28
+ setActiveDpiStage(stage: number): Promise<number>;
29
+ setProfile(profile: number): Promise<void>;
30
+ setDpiLighting(mode: number, brightness: number, speed: number): Promise<void>;
31
+ setDpiLedSleepTimeout(seconds: number): Promise<number>;
32
+ setSleepTimeout(seconds: number): Promise<number>;
33
+ setButtonMapping(button: string, action: string): Promise<void>;
34
+ private readBattery;
35
+ private readActiveProfile;
36
+ private readMouseFirmware;
37
+ private readReceiverFirmware;
38
+ private readDpiConfig;
39
+ private readPollingRate;
40
+ private readDpiLighting;
41
+ private readDpiLedSleepTimeout;
42
+ private readSleepTimeout;
43
+ private readButtons;
44
+ private writeDpiStage;
45
+ private ensureActive;
46
+ private readBuffer;
47
+ private writeBuffer;
48
+ private exchange;
49
+ private serialized;
50
+ private failWaiter;
51
+ private assertStage;
52
+ private transport;
53
+ private range;
54
+ private formatFirmware;
55
+ private batteryState;
56
+ private static flattenCollections;
57
+ private static reportLength;
58
+ }
59
+ //# sourceMappingURL=hid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.d.ts","sourceRoot":"","sources":["../../../src/drivers/dareu/hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA4DrD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,MAAM,CAKE;IAChB,OAAO,CAAC,KAAK,CAAoC;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAQ5B;gBAEU,MAAM,EAAE,SAAS;IAI7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAa9C,cAAc,IAAI,OAAO;IAIzB,eAAe,IAAI,MAAM,EAAE;IAI3B,aAAa,IAAI,MAAM,EAAE;IAMnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA0ElC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa7C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9E,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBjD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAcvD,WAAW;YAMX,iBAAiB;YAMjB,iBAAiB;YAMjB,oBAAoB;YAMpB,aAAa;YAqBb,eAAe;YAQf,eAAe;YAMf,sBAAsB;YAQtB,gBAAgB;YAahB,WAAW;YAYX,aAAa;YASb,YAAY;YAKZ,UAAU;YAYV,WAAW;YAQX,QAAQ;IAkBtB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAC,YAAY;CAG5B"}