hana-music-api 1.0.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 (709) hide show
  1. package/README.md +109 -0
  2. package/dist/api/activate_init_profile.d.ts +2 -0
  3. package/dist/api/activate_init_profile.js +2 -0
  4. package/dist/api/aidj_content_rcmd.d.ts +2 -0
  5. package/dist/api/aidj_content_rcmd.js +2 -0
  6. package/dist/api/album.d.ts +2 -0
  7. package/dist/api/album.js +2 -0
  8. package/dist/api/album_detail.d.ts +2 -0
  9. package/dist/api/album_detail.js +2 -0
  10. package/dist/api/album_detail_dynamic.d.ts +2 -0
  11. package/dist/api/album_detail_dynamic.js +2 -0
  12. package/dist/api/album_list.d.ts +2 -0
  13. package/dist/api/album_list.js +2 -0
  14. package/dist/api/album_list_style.d.ts +2 -0
  15. package/dist/api/album_list_style.js +2 -0
  16. package/dist/api/album_new.d.ts +2 -0
  17. package/dist/api/album_new.js +2 -0
  18. package/dist/api/album_newest.d.ts +2 -0
  19. package/dist/api/album_newest.js +2 -0
  20. package/dist/api/album_privilege.d.ts +2 -0
  21. package/dist/api/album_privilege.js +2 -0
  22. package/dist/api/album_songsaleboard.d.ts +2 -0
  23. package/dist/api/album_songsaleboard.js +2 -0
  24. package/dist/api/album_sub.d.ts +2 -0
  25. package/dist/api/album_sub.js +2 -0
  26. package/dist/api/album_sublist.d.ts +2 -0
  27. package/dist/api/album_sublist.js +2 -0
  28. package/dist/api/artist_album.d.ts +2 -0
  29. package/dist/api/artist_album.js +2 -0
  30. package/dist/api/artist_desc.d.ts +2 -0
  31. package/dist/api/artist_desc.js +2 -0
  32. package/dist/api/artist_detail.d.ts +2 -0
  33. package/dist/api/artist_detail.js +2 -0
  34. package/dist/api/artist_detail_dynamic.d.ts +2 -0
  35. package/dist/api/artist_detail_dynamic.js +2 -0
  36. package/dist/api/artist_fans.d.ts +2 -0
  37. package/dist/api/artist_fans.js +2 -0
  38. package/dist/api/artist_follow_count.d.ts +2 -0
  39. package/dist/api/artist_follow_count.js +2 -0
  40. package/dist/api/artist_list.d.ts +2 -0
  41. package/dist/api/artist_list.js +2 -0
  42. package/dist/api/artist_mv.d.ts +2 -0
  43. package/dist/api/artist_mv.js +2 -0
  44. package/dist/api/artist_new_mv.d.ts +2 -0
  45. package/dist/api/artist_new_mv.js +2 -0
  46. package/dist/api/artist_new_song.d.ts +2 -0
  47. package/dist/api/artist_new_song.js +2 -0
  48. package/dist/api/artist_songs.d.ts +2 -0
  49. package/dist/api/artist_songs.js +2 -0
  50. package/dist/api/artist_sub.d.ts +2 -0
  51. package/dist/api/artist_sub.js +2 -0
  52. package/dist/api/artist_sublist.d.ts +2 -0
  53. package/dist/api/artist_sublist.js +2 -0
  54. package/dist/api/artist_top_song.d.ts +2 -0
  55. package/dist/api/artist_top_song.js +2 -0
  56. package/dist/api/artist_video.d.ts +2 -0
  57. package/dist/api/artist_video.js +2 -0
  58. package/dist/api/artists.d.ts +2 -0
  59. package/dist/api/artists.js +2 -0
  60. package/dist/api/audio_match.d.ts +2 -0
  61. package/dist/api/audio_match.js +2 -0
  62. package/dist/api/avatar_upload.d.ts +2 -0
  63. package/dist/api/avatar_upload.js +2 -0
  64. package/dist/api/banner.d.ts +2 -0
  65. package/dist/api/banner.js +2 -0
  66. package/dist/api/batch.d.ts +2 -0
  67. package/dist/api/batch.js +2 -0
  68. package/dist/api/broadcast_category_region_get.d.ts +2 -0
  69. package/dist/api/broadcast_category_region_get.js +2 -0
  70. package/dist/api/broadcast_channel_collect_list.d.ts +2 -0
  71. package/dist/api/broadcast_channel_collect_list.js +2 -0
  72. package/dist/api/broadcast_channel_currentinfo.d.ts +2 -0
  73. package/dist/api/broadcast_channel_currentinfo.js +2 -0
  74. package/dist/api/broadcast_channel_list.d.ts +2 -0
  75. package/dist/api/broadcast_channel_list.js +2 -0
  76. package/dist/api/broadcast_sub.d.ts +2 -0
  77. package/dist/api/broadcast_sub.js +2 -0
  78. package/dist/api/calendar.d.ts +2 -0
  79. package/dist/api/calendar.js +2 -0
  80. package/dist/api/captcha_sent.d.ts +2 -0
  81. package/dist/api/captcha_sent.js +2 -0
  82. package/dist/api/captcha_verify.d.ts +2 -0
  83. package/dist/api/captcha_verify.js +2 -0
  84. package/dist/api/cellphone_existence_check.d.ts +2 -0
  85. package/dist/api/cellphone_existence_check.js +2 -0
  86. package/dist/api/check_music.d.ts +2 -0
  87. package/dist/api/check_music.js +2 -0
  88. package/dist/api/cloud.d.ts +2 -0
  89. package/dist/api/cloud.js +2 -0
  90. package/dist/api/cloud_import.d.ts +2 -0
  91. package/dist/api/cloud_import.js +2 -0
  92. package/dist/api/cloud_match.d.ts +2 -0
  93. package/dist/api/cloud_match.js +2 -0
  94. package/dist/api/cloudsearch.d.ts +2 -0
  95. package/dist/api/cloudsearch.js +2 -0
  96. package/dist/api/comment.d.ts +2 -0
  97. package/dist/api/comment.js +2 -0
  98. package/dist/api/comment_album.d.ts +2 -0
  99. package/dist/api/comment_album.js +2 -0
  100. package/dist/api/comment_dj.d.ts +2 -0
  101. package/dist/api/comment_dj.js +2 -0
  102. package/dist/api/comment_event.d.ts +2 -0
  103. package/dist/api/comment_event.js +2 -0
  104. package/dist/api/comment_floor.d.ts +2 -0
  105. package/dist/api/comment_floor.js +2 -0
  106. package/dist/api/comment_hot.d.ts +2 -0
  107. package/dist/api/comment_hot.js +2 -0
  108. package/dist/api/comment_hug_list.d.ts +2 -0
  109. package/dist/api/comment_hug_list.js +2 -0
  110. package/dist/api/comment_like.d.ts +2 -0
  111. package/dist/api/comment_like.js +2 -0
  112. package/dist/api/comment_music.d.ts +2 -0
  113. package/dist/api/comment_music.js +2 -0
  114. package/dist/api/comment_mv.d.ts +2 -0
  115. package/dist/api/comment_mv.js +2 -0
  116. package/dist/api/comment_new.d.ts +2 -0
  117. package/dist/api/comment_new.js +2 -0
  118. package/dist/api/comment_playlist.d.ts +2 -0
  119. package/dist/api/comment_playlist.js +2 -0
  120. package/dist/api/comment_video.d.ts +2 -0
  121. package/dist/api/comment_video.js +2 -0
  122. package/dist/api/countries_code_list.d.ts +2 -0
  123. package/dist/api/countries_code_list.js +2 -0
  124. package/dist/api/daily_signin.d.ts +2 -0
  125. package/dist/api/daily_signin.js +2 -0
  126. package/dist/api/digitalAlbum_detail.d.ts +2 -0
  127. package/dist/api/digitalAlbum_detail.js +2 -0
  128. package/dist/api/digitalAlbum_ordering.d.ts +2 -0
  129. package/dist/api/digitalAlbum_ordering.js +2 -0
  130. package/dist/api/digitalAlbum_purchased.d.ts +2 -0
  131. package/dist/api/digitalAlbum_purchased.js +2 -0
  132. package/dist/api/digitalAlbum_sales.d.ts +2 -0
  133. package/dist/api/digitalAlbum_sales.js +2 -0
  134. package/dist/api/djRadio_top.d.ts +2 -0
  135. package/dist/api/djRadio_top.js +2 -0
  136. package/dist/api/dj_banner.d.ts +2 -0
  137. package/dist/api/dj_banner.js +2 -0
  138. package/dist/api/dj_category_excludehot.d.ts +2 -0
  139. package/dist/api/dj_category_excludehot.js +2 -0
  140. package/dist/api/dj_category_recommend.d.ts +2 -0
  141. package/dist/api/dj_category_recommend.js +2 -0
  142. package/dist/api/dj_catelist.d.ts +2 -0
  143. package/dist/api/dj_catelist.js +2 -0
  144. package/dist/api/dj_detail.d.ts +2 -0
  145. package/dist/api/dj_detail.js +2 -0
  146. package/dist/api/dj_difm_all_style_channel.d.ts +2 -0
  147. package/dist/api/dj_difm_all_style_channel.js +2 -0
  148. package/dist/api/dj_difm_channel_subscribe.d.ts +2 -0
  149. package/dist/api/dj_difm_channel_subscribe.js +2 -0
  150. package/dist/api/dj_difm_channel_unsubscribe.d.ts +2 -0
  151. package/dist/api/dj_difm_channel_unsubscribe.js +2 -0
  152. package/dist/api/dj_difm_playing_tracks_list.d.ts +2 -0
  153. package/dist/api/dj_difm_playing_tracks_list.js +2 -0
  154. package/dist/api/dj_difm_subscribe_channels_get.d.ts +2 -0
  155. package/dist/api/dj_difm_subscribe_channels_get.js +2 -0
  156. package/dist/api/dj_hot.d.ts +2 -0
  157. package/dist/api/dj_hot.js +2 -0
  158. package/dist/api/dj_paygift.d.ts +2 -0
  159. package/dist/api/dj_paygift.js +2 -0
  160. package/dist/api/dj_personalize_recommend.d.ts +2 -0
  161. package/dist/api/dj_personalize_recommend.js +2 -0
  162. package/dist/api/dj_program.d.ts +2 -0
  163. package/dist/api/dj_program.js +2 -0
  164. package/dist/api/dj_program_detail.d.ts +2 -0
  165. package/dist/api/dj_program_detail.js +2 -0
  166. package/dist/api/dj_program_toplist.d.ts +2 -0
  167. package/dist/api/dj_program_toplist.js +2 -0
  168. package/dist/api/dj_program_toplist_hours.d.ts +2 -0
  169. package/dist/api/dj_program_toplist_hours.js +2 -0
  170. package/dist/api/dj_radio_hot.d.ts +2 -0
  171. package/dist/api/dj_radio_hot.js +2 -0
  172. package/dist/api/dj_recommend.d.ts +2 -0
  173. package/dist/api/dj_recommend.js +2 -0
  174. package/dist/api/dj_recommend_type.d.ts +2 -0
  175. package/dist/api/dj_recommend_type.js +2 -0
  176. package/dist/api/dj_sub.d.ts +2 -0
  177. package/dist/api/dj_sub.js +2 -0
  178. package/dist/api/dj_sublist.d.ts +2 -0
  179. package/dist/api/dj_sublist.js +2 -0
  180. package/dist/api/dj_subscriber.d.ts +2 -0
  181. package/dist/api/dj_subscriber.js +2 -0
  182. package/dist/api/dj_today_perfered.d.ts +2 -0
  183. package/dist/api/dj_today_perfered.js +2 -0
  184. package/dist/api/dj_toplist.d.ts +2 -0
  185. package/dist/api/dj_toplist.js +2 -0
  186. package/dist/api/dj_toplist_hours.d.ts +2 -0
  187. package/dist/api/dj_toplist_hours.js +2 -0
  188. package/dist/api/dj_toplist_newcomer.d.ts +2 -0
  189. package/dist/api/dj_toplist_newcomer.js +2 -0
  190. package/dist/api/dj_toplist_pay.d.ts +2 -0
  191. package/dist/api/dj_toplist_pay.js +2 -0
  192. package/dist/api/dj_toplist_popular.d.ts +2 -0
  193. package/dist/api/dj_toplist_popular.js +2 -0
  194. package/dist/api/event.d.ts +2 -0
  195. package/dist/api/event.js +2 -0
  196. package/dist/api/event_del.d.ts +2 -0
  197. package/dist/api/event_del.js +2 -0
  198. package/dist/api/event_forward.d.ts +2 -0
  199. package/dist/api/event_forward.js +2 -0
  200. package/dist/api/fm_trash.d.ts +2 -0
  201. package/dist/api/fm_trash.js +2 -0
  202. package/dist/api/follow.d.ts +2 -0
  203. package/dist/api/follow.js +2 -0
  204. package/dist/api/get_userids.d.ts +2 -0
  205. package/dist/api/get_userids.js +2 -0
  206. package/dist/api/history_recommend_songs.d.ts +2 -0
  207. package/dist/api/history_recommend_songs.js +2 -0
  208. package/dist/api/history_recommend_songs_detail.d.ts +2 -0
  209. package/dist/api/history_recommend_songs_detail.js +2 -0
  210. package/dist/api/homepage_block_page.d.ts +2 -0
  211. package/dist/api/homepage_block_page.js +2 -0
  212. package/dist/api/homepage_dragon_ball.d.ts +2 -0
  213. package/dist/api/homepage_dragon_ball.js +2 -0
  214. package/dist/api/hot_topic.d.ts +2 -0
  215. package/dist/api/hot_topic.js +2 -0
  216. package/dist/api/hug_comment.d.ts +2 -0
  217. package/dist/api/hug_comment.js +2 -0
  218. package/dist/api/inner_version.d.ts +2 -0
  219. package/dist/api/inner_version.js +2 -0
  220. package/dist/api/like.d.ts +2 -0
  221. package/dist/api/like.js +2 -0
  222. package/dist/api/likelist.d.ts +2 -0
  223. package/dist/api/likelist.js +2 -0
  224. package/dist/api/listen_data_realtime_report.d.ts +2 -0
  225. package/dist/api/listen_data_realtime_report.js +2 -0
  226. package/dist/api/listen_data_report.d.ts +2 -0
  227. package/dist/api/listen_data_report.js +2 -0
  228. package/dist/api/listen_data_today_song.d.ts +2 -0
  229. package/dist/api/listen_data_today_song.js +2 -0
  230. package/dist/api/listen_data_total.d.ts +2 -0
  231. package/dist/api/listen_data_total.js +2 -0
  232. package/dist/api/listen_data_year_report.d.ts +2 -0
  233. package/dist/api/listen_data_year_report.js +2 -0
  234. package/dist/api/listentogether_accept.d.ts +2 -0
  235. package/dist/api/listentogether_accept.js +2 -0
  236. package/dist/api/listentogether_end.d.ts +2 -0
  237. package/dist/api/listentogether_end.js +2 -0
  238. package/dist/api/listentogether_heatbeat.d.ts +2 -0
  239. package/dist/api/listentogether_heatbeat.js +2 -0
  240. package/dist/api/listentogether_play_command.d.ts +2 -0
  241. package/dist/api/listentogether_play_command.js +2 -0
  242. package/dist/api/listentogether_room_check.d.ts +2 -0
  243. package/dist/api/listentogether_room_check.js +2 -0
  244. package/dist/api/listentogether_room_create.d.ts +2 -0
  245. package/dist/api/listentogether_room_create.js +2 -0
  246. package/dist/api/listentogether_status.d.ts +2 -0
  247. package/dist/api/listentogether_status.js +2 -0
  248. package/dist/api/listentogether_sync_list_command.d.ts +2 -0
  249. package/dist/api/listentogether_sync_list_command.js +2 -0
  250. package/dist/api/listentogether_sync_playlist_get.d.ts +2 -0
  251. package/dist/api/listentogether_sync_playlist_get.js +2 -0
  252. package/dist/api/login.d.ts +2 -0
  253. package/dist/api/login.js +2 -0
  254. package/dist/api/login_cellphone.d.ts +2 -0
  255. package/dist/api/login_cellphone.js +2 -0
  256. package/dist/api/login_qr_check.d.ts +2 -0
  257. package/dist/api/login_qr_check.js +2 -0
  258. package/dist/api/login_qr_create.d.ts +2 -0
  259. package/dist/api/login_qr_create.js +2 -0
  260. package/dist/api/login_qr_key.d.ts +2 -0
  261. package/dist/api/login_qr_key.js +2 -0
  262. package/dist/api/login_refresh.d.ts +2 -0
  263. package/dist/api/login_refresh.js +2 -0
  264. package/dist/api/login_status.d.ts +2 -0
  265. package/dist/api/login_status.js +2 -0
  266. package/dist/api/logout.d.ts +2 -0
  267. package/dist/api/logout.js +2 -0
  268. package/dist/api/lyric.d.ts +2 -0
  269. package/dist/api/lyric.js +2 -0
  270. package/dist/api/lyric_new.d.ts +2 -0
  271. package/dist/api/lyric_new.js +2 -0
  272. package/dist/api/mlog_music_rcmd.d.ts +2 -0
  273. package/dist/api/mlog_music_rcmd.js +2 -0
  274. package/dist/api/mlog_to_video.d.ts +2 -0
  275. package/dist/api/mlog_to_video.js +2 -0
  276. package/dist/api/mlog_url.d.ts +2 -0
  277. package/dist/api/mlog_url.js +2 -0
  278. package/dist/api/msg_comments.d.ts +2 -0
  279. package/dist/api/msg_comments.js +2 -0
  280. package/dist/api/msg_forwards.d.ts +2 -0
  281. package/dist/api/msg_forwards.js +2 -0
  282. package/dist/api/msg_notices.d.ts +2 -0
  283. package/dist/api/msg_notices.js +2 -0
  284. package/dist/api/msg_private.d.ts +2 -0
  285. package/dist/api/msg_private.js +2 -0
  286. package/dist/api/msg_private_history.d.ts +2 -0
  287. package/dist/api/msg_private_history.js +2 -0
  288. package/dist/api/msg_recentcontact.d.ts +2 -0
  289. package/dist/api/msg_recentcontact.js +2 -0
  290. package/dist/api/music_first_listen_info.d.ts +2 -0
  291. package/dist/api/music_first_listen_info.js +2 -0
  292. package/dist/api/musician_cloudbean.d.ts +2 -0
  293. package/dist/api/musician_cloudbean.js +2 -0
  294. package/dist/api/musician_cloudbean_obtain.d.ts +2 -0
  295. package/dist/api/musician_cloudbean_obtain.js +2 -0
  296. package/dist/api/musician_data_overview.d.ts +2 -0
  297. package/dist/api/musician_data_overview.js +2 -0
  298. package/dist/api/musician_play_trend.d.ts +2 -0
  299. package/dist/api/musician_play_trend.js +2 -0
  300. package/dist/api/musician_sign.d.ts +2 -0
  301. package/dist/api/musician_sign.js +2 -0
  302. package/dist/api/musician_tasks.d.ts +2 -0
  303. package/dist/api/musician_tasks.js +2 -0
  304. package/dist/api/musician_tasks_new.d.ts +2 -0
  305. package/dist/api/musician_tasks_new.js +2 -0
  306. package/dist/api/mv_all.d.ts +2 -0
  307. package/dist/api/mv_all.js +2 -0
  308. package/dist/api/mv_detail.d.ts +2 -0
  309. package/dist/api/mv_detail.js +2 -0
  310. package/dist/api/mv_detail_info.d.ts +2 -0
  311. package/dist/api/mv_detail_info.js +2 -0
  312. package/dist/api/mv_exclusive_rcmd.d.ts +2 -0
  313. package/dist/api/mv_exclusive_rcmd.js +2 -0
  314. package/dist/api/mv_first.d.ts +2 -0
  315. package/dist/api/mv_first.js +2 -0
  316. package/dist/api/mv_sub.d.ts +2 -0
  317. package/dist/api/mv_sub.js +2 -0
  318. package/dist/api/mv_sublist.d.ts +2 -0
  319. package/dist/api/mv_sublist.js +2 -0
  320. package/dist/api/mv_url.d.ts +2 -0
  321. package/dist/api/mv_url.js +2 -0
  322. package/dist/api/nickname_check.d.ts +2 -0
  323. package/dist/api/nickname_check.js +2 -0
  324. package/dist/api/personal_fm.d.ts +2 -0
  325. package/dist/api/personal_fm.js +2 -0
  326. package/dist/api/personal_fm_mode.d.ts +2 -0
  327. package/dist/api/personal_fm_mode.js +2 -0
  328. package/dist/api/personalized.d.ts +2 -0
  329. package/dist/api/personalized.js +2 -0
  330. package/dist/api/personalized_djprogram.d.ts +2 -0
  331. package/dist/api/personalized_djprogram.js +2 -0
  332. package/dist/api/personalized_mv.d.ts +2 -0
  333. package/dist/api/personalized_mv.js +2 -0
  334. package/dist/api/personalized_newsong.d.ts +2 -0
  335. package/dist/api/personalized_newsong.js +2 -0
  336. package/dist/api/personalized_privatecontent.d.ts +2 -0
  337. package/dist/api/personalized_privatecontent.js +2 -0
  338. package/dist/api/personalized_privatecontent_list.d.ts +2 -0
  339. package/dist/api/personalized_privatecontent_list.js +2 -0
  340. package/dist/api/pl_count.d.ts +2 -0
  341. package/dist/api/pl_count.js +2 -0
  342. package/dist/api/playlist_catlist.d.ts +2 -0
  343. package/dist/api/playlist_catlist.js +2 -0
  344. package/dist/api/playlist_cover_update.d.ts +2 -0
  345. package/dist/api/playlist_cover_update.js +2 -0
  346. package/dist/api/playlist_create.d.ts +2 -0
  347. package/dist/api/playlist_create.js +2 -0
  348. package/dist/api/playlist_delete.d.ts +2 -0
  349. package/dist/api/playlist_delete.js +2 -0
  350. package/dist/api/playlist_desc_update.d.ts +2 -0
  351. package/dist/api/playlist_desc_update.js +2 -0
  352. package/dist/api/playlist_detail.d.ts +2 -0
  353. package/dist/api/playlist_detail.js +2 -0
  354. package/dist/api/playlist_detail_dynamic.d.ts +2 -0
  355. package/dist/api/playlist_detail_dynamic.js +2 -0
  356. package/dist/api/playlist_detail_rcmd_get.d.ts +2 -0
  357. package/dist/api/playlist_detail_rcmd_get.js +2 -0
  358. package/dist/api/playlist_highquality_tags.d.ts +2 -0
  359. package/dist/api/playlist_highquality_tags.js +2 -0
  360. package/dist/api/playlist_hot.d.ts +2 -0
  361. package/dist/api/playlist_hot.js +2 -0
  362. package/dist/api/playlist_import_name_task_create.d.ts +2 -0
  363. package/dist/api/playlist_import_name_task_create.js +2 -0
  364. package/dist/api/playlist_import_task_status.d.ts +2 -0
  365. package/dist/api/playlist_import_task_status.js +2 -0
  366. package/dist/api/playlist_mylike.d.ts +2 -0
  367. package/dist/api/playlist_mylike.js +2 -0
  368. package/dist/api/playlist_name_update.d.ts +2 -0
  369. package/dist/api/playlist_name_update.js +2 -0
  370. package/dist/api/playlist_order_update.d.ts +2 -0
  371. package/dist/api/playlist_order_update.js +2 -0
  372. package/dist/api/playlist_privacy.d.ts +2 -0
  373. package/dist/api/playlist_privacy.js +2 -0
  374. package/dist/api/playlist_subscribe.d.ts +2 -0
  375. package/dist/api/playlist_subscribe.js +2 -0
  376. package/dist/api/playlist_subscribers.d.ts +2 -0
  377. package/dist/api/playlist_subscribers.js +2 -0
  378. package/dist/api/playlist_tags_update.d.ts +2 -0
  379. package/dist/api/playlist_tags_update.js +2 -0
  380. package/dist/api/playlist_track_add.d.ts +2 -0
  381. package/dist/api/playlist_track_add.js +2 -0
  382. package/dist/api/playlist_track_all.d.ts +2 -0
  383. package/dist/api/playlist_track_all.js +2 -0
  384. package/dist/api/playlist_track_delete.d.ts +2 -0
  385. package/dist/api/playlist_track_delete.js +2 -0
  386. package/dist/api/playlist_tracks.d.ts +2 -0
  387. package/dist/api/playlist_tracks.js +2 -0
  388. package/dist/api/playlist_update.d.ts +2 -0
  389. package/dist/api/playlist_update.js +2 -0
  390. package/dist/api/playlist_update_playcount.d.ts +2 -0
  391. package/dist/api/playlist_update_playcount.js +2 -0
  392. package/dist/api/playlist_video_recent.d.ts +2 -0
  393. package/dist/api/playlist_video_recent.js +2 -0
  394. package/dist/api/playmode_intelligence_list.d.ts +2 -0
  395. package/dist/api/playmode_intelligence_list.js +2 -0
  396. package/dist/api/program_recommend.d.ts +2 -0
  397. package/dist/api/program_recommend.js +2 -0
  398. package/dist/api/rebind.d.ts +2 -0
  399. package/dist/api/rebind.js +2 -0
  400. package/dist/api/recent_listen_list.d.ts +2 -0
  401. package/dist/api/recent_listen_list.js +2 -0
  402. package/dist/api/recommend_resource.d.ts +2 -0
  403. package/dist/api/recommend_resource.js +2 -0
  404. package/dist/api/recommend_songs.d.ts +2 -0
  405. package/dist/api/recommend_songs.js +2 -0
  406. package/dist/api/recommend_songs_dislike.d.ts +2 -0
  407. package/dist/api/recommend_songs_dislike.js +2 -0
  408. package/dist/api/record_recent_album.d.ts +2 -0
  409. package/dist/api/record_recent_album.js +2 -0
  410. package/dist/api/record_recent_dj.d.ts +2 -0
  411. package/dist/api/record_recent_dj.js +2 -0
  412. package/dist/api/record_recent_playlist.d.ts +2 -0
  413. package/dist/api/record_recent_playlist.js +2 -0
  414. package/dist/api/record_recent_song.d.ts +2 -0
  415. package/dist/api/record_recent_song.js +2 -0
  416. package/dist/api/record_recent_video.d.ts +2 -0
  417. package/dist/api/record_recent_video.js +2 -0
  418. package/dist/api/record_recent_voice.d.ts +2 -0
  419. package/dist/api/record_recent_voice.js +2 -0
  420. package/dist/api/register_anonimous.d.ts +2 -0
  421. package/dist/api/register_anonimous.js +2 -0
  422. package/dist/api/register_cellphone.d.ts +2 -0
  423. package/dist/api/register_cellphone.js +2 -0
  424. package/dist/api/related_allvideo.d.ts +2 -0
  425. package/dist/api/related_allvideo.js +2 -0
  426. package/dist/api/related_playlist.d.ts +2 -0
  427. package/dist/api/related_playlist.js +2 -0
  428. package/dist/api/resource_like.d.ts +2 -0
  429. package/dist/api/resource_like.js +2 -0
  430. package/dist/api/scrobble.d.ts +2 -0
  431. package/dist/api/scrobble.js +2 -0
  432. package/dist/api/search.d.ts +2 -0
  433. package/dist/api/search.js +2 -0
  434. package/dist/api/search_default.d.ts +2 -0
  435. package/dist/api/search_default.js +2 -0
  436. package/dist/api/search_hot.d.ts +2 -0
  437. package/dist/api/search_hot.js +2 -0
  438. package/dist/api/search_hot_detail.d.ts +2 -0
  439. package/dist/api/search_hot_detail.js +2 -0
  440. package/dist/api/search_match.d.ts +2 -0
  441. package/dist/api/search_match.js +2 -0
  442. package/dist/api/search_multimatch.d.ts +2 -0
  443. package/dist/api/search_multimatch.js +2 -0
  444. package/dist/api/search_suggest.d.ts +2 -0
  445. package/dist/api/search_suggest.js +2 -0
  446. package/dist/api/send_album.d.ts +2 -0
  447. package/dist/api/send_album.js +2 -0
  448. package/dist/api/send_playlist.d.ts +2 -0
  449. package/dist/api/send_playlist.js +2 -0
  450. package/dist/api/send_song.d.ts +2 -0
  451. package/dist/api/send_song.js +2 -0
  452. package/dist/api/send_text.d.ts +2 -0
  453. package/dist/api/send_text.js +2 -0
  454. package/dist/api/setting.d.ts +2 -0
  455. package/dist/api/setting.js +2 -0
  456. package/dist/api/share_resource.d.ts +2 -0
  457. package/dist/api/share_resource.js +2 -0
  458. package/dist/api/sheet_list.d.ts +2 -0
  459. package/dist/api/sheet_list.js +2 -0
  460. package/dist/api/sheet_preview.d.ts +2 -0
  461. package/dist/api/sheet_preview.js +2 -0
  462. package/dist/api/sign_happy_info.d.ts +2 -0
  463. package/dist/api/sign_happy_info.js +2 -0
  464. package/dist/api/signin_progress.d.ts +2 -0
  465. package/dist/api/signin_progress.js +2 -0
  466. package/dist/api/simi_artist.d.ts +2 -0
  467. package/dist/api/simi_artist.js +2 -0
  468. package/dist/api/simi_mv.d.ts +2 -0
  469. package/dist/api/simi_mv.js +2 -0
  470. package/dist/api/simi_playlist.d.ts +2 -0
  471. package/dist/api/simi_playlist.js +2 -0
  472. package/dist/api/simi_song.d.ts +2 -0
  473. package/dist/api/simi_song.js +2 -0
  474. package/dist/api/simi_user.d.ts +2 -0
  475. package/dist/api/simi_user.js +2 -0
  476. package/dist/api/song_chorus.d.ts +2 -0
  477. package/dist/api/song_chorus.js +2 -0
  478. package/dist/api/song_detail.d.ts +2 -0
  479. package/dist/api/song_detail.js +2 -0
  480. package/dist/api/song_downlist.d.ts +2 -0
  481. package/dist/api/song_downlist.js +2 -0
  482. package/dist/api/song_download_url.d.ts +2 -0
  483. package/dist/api/song_download_url.js +2 -0
  484. package/dist/api/song_download_url_v1.d.ts +2 -0
  485. package/dist/api/song_download_url_v1.js +2 -0
  486. package/dist/api/song_dynamic_cover.d.ts +2 -0
  487. package/dist/api/song_dynamic_cover.js +2 -0
  488. package/dist/api/song_like_check.d.ts +2 -0
  489. package/dist/api/song_like_check.js +2 -0
  490. package/dist/api/song_lyrics_mark.d.ts +2 -0
  491. package/dist/api/song_lyrics_mark.js +2 -0
  492. package/dist/api/song_lyrics_mark_add.d.ts +2 -0
  493. package/dist/api/song_lyrics_mark_add.js +2 -0
  494. package/dist/api/song_lyrics_mark_del.d.ts +2 -0
  495. package/dist/api/song_lyrics_mark_del.js +2 -0
  496. package/dist/api/song_lyrics_mark_user_page.d.ts +2 -0
  497. package/dist/api/song_lyrics_mark_user_page.js +2 -0
  498. package/dist/api/song_monthdownlist.d.ts +2 -0
  499. package/dist/api/song_monthdownlist.js +2 -0
  500. package/dist/api/song_music_detail.d.ts +2 -0
  501. package/dist/api/song_music_detail.js +2 -0
  502. package/dist/api/song_order_update.d.ts +2 -0
  503. package/dist/api/song_order_update.js +2 -0
  504. package/dist/api/song_purchased.d.ts +2 -0
  505. package/dist/api/song_purchased.js +2 -0
  506. package/dist/api/song_red_count.d.ts +2 -0
  507. package/dist/api/song_red_count.js +2 -0
  508. package/dist/api/song_singledownlist.d.ts +2 -0
  509. package/dist/api/song_singledownlist.js +2 -0
  510. package/dist/api/song_url.d.ts +2 -0
  511. package/dist/api/song_url.js +2 -0
  512. package/dist/api/song_url_v1.d.ts +2 -0
  513. package/dist/api/song_url_v1.js +2 -0
  514. package/dist/api/song_wiki_summary.d.ts +2 -0
  515. package/dist/api/song_wiki_summary.js +2 -0
  516. package/dist/api/starpick_comments_summary.d.ts +2 -0
  517. package/dist/api/starpick_comments_summary.js +2 -0
  518. package/dist/api/style_album.d.ts +2 -0
  519. package/dist/api/style_album.js +2 -0
  520. package/dist/api/style_artist.d.ts +2 -0
  521. package/dist/api/style_artist.js +2 -0
  522. package/dist/api/style_detail.d.ts +2 -0
  523. package/dist/api/style_detail.js +2 -0
  524. package/dist/api/style_list.d.ts +2 -0
  525. package/dist/api/style_list.js +2 -0
  526. package/dist/api/style_playlist.d.ts +2 -0
  527. package/dist/api/style_playlist.js +2 -0
  528. package/dist/api/style_preference.d.ts +2 -0
  529. package/dist/api/style_preference.js +2 -0
  530. package/dist/api/style_song.d.ts +2 -0
  531. package/dist/api/style_song.js +2 -0
  532. package/dist/api/summary_annual.d.ts +2 -0
  533. package/dist/api/summary_annual.js +2 -0
  534. package/dist/api/top_album.d.ts +2 -0
  535. package/dist/api/top_album.js +2 -0
  536. package/dist/api/top_artists.d.ts +2 -0
  537. package/dist/api/top_artists.js +2 -0
  538. package/dist/api/top_list.d.ts +2 -0
  539. package/dist/api/top_list.js +2 -0
  540. package/dist/api/top_mv.d.ts +2 -0
  541. package/dist/api/top_mv.js +2 -0
  542. package/dist/api/top_playlist.d.ts +2 -0
  543. package/dist/api/top_playlist.js +2 -0
  544. package/dist/api/top_playlist_highquality.d.ts +2 -0
  545. package/dist/api/top_playlist_highquality.js +2 -0
  546. package/dist/api/top_song.d.ts +2 -0
  547. package/dist/api/top_song.js +2 -0
  548. package/dist/api/topic_detail.d.ts +2 -0
  549. package/dist/api/topic_detail.js +2 -0
  550. package/dist/api/topic_detail_event_hot.d.ts +2 -0
  551. package/dist/api/topic_detail_event_hot.js +2 -0
  552. package/dist/api/topic_sublist.d.ts +2 -0
  553. package/dist/api/topic_sublist.js +2 -0
  554. package/dist/api/toplist.d.ts +2 -0
  555. package/dist/api/toplist.js +2 -0
  556. package/dist/api/toplist_artist.d.ts +2 -0
  557. package/dist/api/toplist_artist.js +2 -0
  558. package/dist/api/toplist_detail.d.ts +2 -0
  559. package/dist/api/toplist_detail.js +2 -0
  560. package/dist/api/ugc_album_get.d.ts +2 -0
  561. package/dist/api/ugc_album_get.js +2 -0
  562. package/dist/api/ugc_artist_get.d.ts +2 -0
  563. package/dist/api/ugc_artist_get.js +2 -0
  564. package/dist/api/ugc_artist_search.d.ts +2 -0
  565. package/dist/api/ugc_artist_search.js +2 -0
  566. package/dist/api/ugc_detail.d.ts +2 -0
  567. package/dist/api/ugc_detail.js +2 -0
  568. package/dist/api/ugc_mv_get.d.ts +2 -0
  569. package/dist/api/ugc_mv_get.js +2 -0
  570. package/dist/api/ugc_song_get.d.ts +2 -0
  571. package/dist/api/ugc_song_get.js +2 -0
  572. package/dist/api/ugc_user_devote.d.ts +2 -0
  573. package/dist/api/ugc_user_devote.js +2 -0
  574. package/dist/api/user_account.d.ts +2 -0
  575. package/dist/api/user_account.js +2 -0
  576. package/dist/api/user_audio.d.ts +2 -0
  577. package/dist/api/user_audio.js +2 -0
  578. package/dist/api/user_binding.d.ts +2 -0
  579. package/dist/api/user_binding.js +2 -0
  580. package/dist/api/user_cloud.d.ts +2 -0
  581. package/dist/api/user_cloud.js +2 -0
  582. package/dist/api/user_cloud_del.d.ts +2 -0
  583. package/dist/api/user_cloud_del.js +2 -0
  584. package/dist/api/user_cloud_detail.d.ts +2 -0
  585. package/dist/api/user_cloud_detail.js +2 -0
  586. package/dist/api/user_comment_history.d.ts +2 -0
  587. package/dist/api/user_comment_history.js +2 -0
  588. package/dist/api/user_detail.d.ts +2 -0
  589. package/dist/api/user_detail.js +2 -0
  590. package/dist/api/user_dj.d.ts +2 -0
  591. package/dist/api/user_dj.js +2 -0
  592. package/dist/api/user_event.d.ts +2 -0
  593. package/dist/api/user_event.js +2 -0
  594. package/dist/api/user_follow_mixed.d.ts +2 -0
  595. package/dist/api/user_follow_mixed.js +2 -0
  596. package/dist/api/user_followeds.d.ts +2 -0
  597. package/dist/api/user_followeds.js +2 -0
  598. package/dist/api/user_follows.d.ts +2 -0
  599. package/dist/api/user_follows.js +2 -0
  600. package/dist/api/user_level.d.ts +2 -0
  601. package/dist/api/user_level.js +2 -0
  602. package/dist/api/user_medal.d.ts +2 -0
  603. package/dist/api/user_medal.js +2 -0
  604. package/dist/api/user_mutualfollow_get.d.ts +2 -0
  605. package/dist/api/user_mutualfollow_get.js +2 -0
  606. package/dist/api/user_playlist.d.ts +2 -0
  607. package/dist/api/user_playlist.js +2 -0
  608. package/dist/api/user_playlist_collect.d.ts +2 -0
  609. package/dist/api/user_playlist_collect.js +2 -0
  610. package/dist/api/user_playlist_create.d.ts +2 -0
  611. package/dist/api/user_playlist_create.js +2 -0
  612. package/dist/api/user_record.d.ts +2 -0
  613. package/dist/api/user_record.js +2 -0
  614. package/dist/api/user_replacephone.d.ts +2 -0
  615. package/dist/api/user_replacephone.js +2 -0
  616. package/dist/api/user_social_status.d.ts +2 -0
  617. package/dist/api/user_social_status.js +2 -0
  618. package/dist/api/user_social_status_edit.d.ts +2 -0
  619. package/dist/api/user_social_status_edit.js +2 -0
  620. package/dist/api/user_social_status_rcmd.d.ts +2 -0
  621. package/dist/api/user_social_status_rcmd.js +2 -0
  622. package/dist/api/user_social_status_support.d.ts +2 -0
  623. package/dist/api/user_social_status_support.js +2 -0
  624. package/dist/api/user_subcount.d.ts +2 -0
  625. package/dist/api/user_subcount.js +2 -0
  626. package/dist/api/user_update.d.ts +2 -0
  627. package/dist/api/user_update.js +2 -0
  628. package/dist/api/verify_getQr.d.ts +2 -0
  629. package/dist/api/verify_getQr.js +2 -0
  630. package/dist/api/verify_qrcodestatus.d.ts +2 -0
  631. package/dist/api/verify_qrcodestatus.js +2 -0
  632. package/dist/api/video_category_list.d.ts +2 -0
  633. package/dist/api/video_category_list.js +2 -0
  634. package/dist/api/video_detail.d.ts +2 -0
  635. package/dist/api/video_detail.js +2 -0
  636. package/dist/api/video_detail_info.d.ts +2 -0
  637. package/dist/api/video_detail_info.js +2 -0
  638. package/dist/api/video_group.d.ts +2 -0
  639. package/dist/api/video_group.js +2 -0
  640. package/dist/api/video_group_list.d.ts +2 -0
  641. package/dist/api/video_group_list.js +2 -0
  642. package/dist/api/video_sub.d.ts +2 -0
  643. package/dist/api/video_sub.js +2 -0
  644. package/dist/api/video_timeline_all.d.ts +2 -0
  645. package/dist/api/video_timeline_all.js +2 -0
  646. package/dist/api/video_timeline_recommend.d.ts +2 -0
  647. package/dist/api/video_timeline_recommend.js +2 -0
  648. package/dist/api/video_url.d.ts +2 -0
  649. package/dist/api/video_url.js +2 -0
  650. package/dist/api/vip_growthpoint.d.ts +2 -0
  651. package/dist/api/vip_growthpoint.js +2 -0
  652. package/dist/api/vip_growthpoint_details.d.ts +2 -0
  653. package/dist/api/vip_growthpoint_details.js +2 -0
  654. package/dist/api/vip_growthpoint_get.d.ts +2 -0
  655. package/dist/api/vip_growthpoint_get.js +2 -0
  656. package/dist/api/vip_info.d.ts +2 -0
  657. package/dist/api/vip_info.js +2 -0
  658. package/dist/api/vip_info_v2.d.ts +2 -0
  659. package/dist/api/vip_info_v2.js +2 -0
  660. package/dist/api/vip_tasks.d.ts +2 -0
  661. package/dist/api/vip_tasks.js +2 -0
  662. package/dist/api/vip_timemachine.d.ts +2 -0
  663. package/dist/api/vip_timemachine.js +2 -0
  664. package/dist/api/voice_delete.d.ts +2 -0
  665. package/dist/api/voice_delete.js +2 -0
  666. package/dist/api/voice_detail.d.ts +2 -0
  667. package/dist/api/voice_detail.js +2 -0
  668. package/dist/api/voice_lyric.d.ts +2 -0
  669. package/dist/api/voice_lyric.js +2 -0
  670. package/dist/api/voice_upload.d.ts +2 -0
  671. package/dist/api/voice_upload.js +2 -0
  672. package/dist/api/voicelist_detail.d.ts +2 -0
  673. package/dist/api/voicelist_detail.js +2 -0
  674. package/dist/api/voicelist_list.d.ts +2 -0
  675. package/dist/api/voicelist_list.js +2 -0
  676. package/dist/api/voicelist_list_search.d.ts +2 -0
  677. package/dist/api/voicelist_list_search.js +2 -0
  678. package/dist/api/voicelist_search.d.ts +2 -0
  679. package/dist/api/voicelist_search.js +2 -0
  680. package/dist/api/voicelist_trans.d.ts +2 -0
  681. package/dist/api/voicelist_trans.js +2 -0
  682. package/dist/api/yunbei.d.ts +2 -0
  683. package/dist/api/yunbei.js +2 -0
  684. package/dist/api/yunbei_expense.d.ts +2 -0
  685. package/dist/api/yunbei_expense.js +2 -0
  686. package/dist/api/yunbei_info.d.ts +2 -0
  687. package/dist/api/yunbei_info.js +2 -0
  688. package/dist/api/yunbei_rcmd_song.d.ts +2 -0
  689. package/dist/api/yunbei_rcmd_song.js +2 -0
  690. package/dist/api/yunbei_rcmd_song_history.d.ts +2 -0
  691. package/dist/api/yunbei_rcmd_song_history.js +2 -0
  692. package/dist/api/yunbei_receipt.d.ts +2 -0
  693. package/dist/api/yunbei_receipt.js +2 -0
  694. package/dist/api/yunbei_sign.d.ts +2 -0
  695. package/dist/api/yunbei_sign.js +2 -0
  696. package/dist/api/yunbei_task_finish.d.ts +2 -0
  697. package/dist/api/yunbei_task_finish.js +2 -0
  698. package/dist/api/yunbei_tasks.d.ts +2 -0
  699. package/dist/api/yunbei_tasks.js +2 -0
  700. package/dist/api/yunbei_tasks_todo.d.ts +2 -0
  701. package/dist/api/yunbei_tasks_todo.js +2 -0
  702. package/dist/api/yunbei_today.d.ts +2 -0
  703. package/dist/api/yunbei_today.js +2 -0
  704. package/dist/client.generated.d.ts +6434 -0
  705. package/dist/client.generated.js +8416 -0
  706. package/dist/client.generated.js.map +1 -0
  707. package/dist/index.d.ts +28 -0
  708. package/dist/index.js +2 -0
  709. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.generated.js","names":["isRecordLike","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","isRecordLike","toBuffer","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","toBuffer","isRecordLike","legacyModule","uploadPlugin","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","legacyModule","activateInitProfileModule","aidjContentRcmdModule","albumModule","albumDetailModule","albumDetailDynamicModule","albumListModule","albumListStyleModule","albumNewModule","albumNewestModule","albumPrivilegeModule","albumSongsaleboardModule","albumSubModule","albumSublistModule","artistAlbumModule","artistDescModule","artistDetailModule","artistDetailDynamicModule","artistFansModule","artistFollowCountModule","artistListModule","artistMvModule","artistNewMvModule","artistNewSongModule","artistSongsModule","artistSubModule","artistSublistModule","artistTopSongModule","artistVideoModule","artistsModule","audioMatchModule","avatarUploadModule","bannerModule","batchModule","broadcastCategoryRegionGetModule","broadcastChannelCollectListModule","broadcastChannelCurrentinfoModule","broadcastChannelListModule","broadcastSubModule","calendarModule","captchaSentModule","captchaVerifyModule","cellphoneExistenceCheckModule","checkMusicModule","cloudModule","cloudImportModule","cloudMatchModule","cloudsearchModule","commentModule","commentAlbumModule","commentDjModule","commentEventModule","commentFloorModule","commentHotModule","commentHugListModule","commentLikeModule","commentMusicModule","commentMvModule","commentNewModule","commentPlaylistModule","commentVideoModule","countriesCodeListModule","dailySigninModule","digitalAlbumDetailModule","digitalAlbumOrderingModule","digitalAlbumPurchasedModule","digitalAlbumSalesModule","djBannerModule","djCategoryExcludehotModule","djCategoryRecommendModule","djCatelistModule","djDetailModule","djDifmAllStyleChannelModule","djDifmChannelSubscribeModule","djDifmChannelUnsubscribeModule","djDifmPlayingTracksListModule","djDifmSubscribeChannelsGetModule","djHotModule","djPaygiftModule","djPersonalizeRecommendModule","djProgramModule","djProgramDetailModule","djProgramToplistModule","djProgramToplistHoursModule","djRadioHotModule","djRecommendModule","djRecommendTypeModule","djSubModule","djSublistModule","djSubscriberModule","djTodayPerferedModule","djToplistModule","djToplistHoursModule","djToplistNewcomerModule","djToplistPayModule","djToplistPopularModule","djRadioTopModule","eventModule","eventDelModule","eventForwardModule","fmTrashModule","followModule","getUseridsModule","historyRecommendSongsModule","historyRecommendSongsDetailModule","homepageBlockPageModule","homepageDragonBallModule","hotTopicModule","hugCommentModule","innerVersionModule","likeModule","likelistModule","listenDataRealtimeReportModule","listenDataReportModule","listenDataTodaySongModule","listenDataTotalModule","listenDataYearReportModule","listentogetherAcceptModule","listentogetherEndModule","listentogetherHeatbeatModule","listentogetherPlayCommandModule","listentogetherRoomCheckModule","listentogetherRoomCreateModule","listentogetherStatusModule","listentogetherSyncListCommandModule","listentogetherSyncPlaylistGetModule","loginModule","loginCellphoneModule","loginQrCheckModule","loginQrCreateModule","loginQrKeyModule","loginRefreshModule","loginStatusModule","logoutModule","lyricModule","lyricNewModule","mlogMusicRcmdModule","mlogToVideoModule","mlogUrlModule","msgCommentsModule","msgForwardsModule","msgNoticesModule","msgPrivateModule","msgPrivateHistoryModule","msgRecentcontactModule","musicFirstListenInfoModule","musicianCloudbeanModule","musicianCloudbeanObtainModule","musicianDataOverviewModule","musicianPlayTrendModule","musicianSignModule","musicianTasksModule","musicianTasksNewModule","mvAllModule","mvDetailModule","mvDetailInfoModule","mvExclusiveRcmdModule","mvFirstModule","mvSubModule","mvSublistModule","mvUrlModule","nicknameCheckModule","personalFmModule","personalFmModeModule","personalizedModule","personalizedDjprogramModule","personalizedMvModule","personalizedNewsongModule","personalizedPrivatecontentModule","personalizedPrivatecontentListModule","plCountModule","playlistCatlistModule","playlistCoverUpdateModule","playlistCreateModule","playlistDeleteModule","playlistDescUpdateModule","playlistDetailModule","playlistDetailDynamicModule","playlistDetailRcmdGetModule","playlistHighqualityTagsModule","playlistHotModule","playlistImportNameTaskCreateModule","playlistImportTaskStatusModule","playlistMylikeModule","playlistNameUpdateModule","playlistOrderUpdateModule","playlistPrivacyModule","playlistSubscribeModule","playlistSubscribersModule","playlistTagsUpdateModule","playlistTrackAddModule","playlistTrackAllModule","playlistTrackDeleteModule","playlistTracksModule","playlistUpdateModule","playlistUpdatePlaycountModule","playlistVideoRecentModule","playmodeIntelligenceListModule","programRecommendModule","rebindModule","recentListenListModule","recommendResourceModule","recommendSongsModule","recommendSongsDislikeModule","recordRecentAlbumModule","recordRecentDjModule","recordRecentPlaylistModule","recordRecentSongModule","recordRecentVideoModule","recordRecentVoiceModule","registerAnonimousModule","registerCellphoneModule","relatedAllvideoModule","relatedPlaylistModule","resourceLikeModule","scrobbleModule","searchModule","searchDefaultModule","searchHotModule","searchHotDetailModule","searchMatchModule","searchMultimatchModule","searchSuggestModule","sendAlbumModule","sendPlaylistModule","sendSongModule","sendTextModule","settingModule","shareResourceModule","sheetListModule","sheetPreviewModule","signHappyInfoModule","signinProgressModule","simiArtistModule","simiMvModule","simiPlaylistModule","simiSongModule","simiUserModule","songChorusModule","songDetailModule","songDownlistModule","songDownloadUrlModule","songDownloadUrlV1Module","songDynamicCoverModule","songLikeCheckModule","songLyricsMarkModule","songLyricsMarkAddModule","songLyricsMarkDelModule","songLyricsMarkUserPageModule","songMonthdownlistModule","songMusicDetailModule","songOrderUpdateModule","songPurchasedModule","songRedCountModule","songSingledownlistModule","songUrlModule","songUrlV1Module","songWikiSummaryModule","starpickCommentsSummaryModule","styleAlbumModule","styleArtistModule","styleDetailModule","styleListModule","stylePlaylistModule","stylePreferenceModule","styleSongModule","summaryAnnualModule","topAlbumModule","topArtistsModule","topListModule","topMvModule","topPlaylistModule","topPlaylistHighqualityModule","topSongModule","topicDetailModule","topicDetailEventHotModule","topicSublistModule","toplistModule","toplistArtistModule","toplistDetailModule","ugcAlbumGetModule","ugcArtistGetModule","ugcArtistSearchModule","ugcDetailModule","ugcMvGetModule","ugcSongGetModule","ugcUserDevoteModule","userAccountModule","userAudioModule","userBindingModule","userCloudModule","userCloudDelModule","userCloudDetailModule","userCommentHistoryModule","userDetailModule","userDjModule","userEventModule","userFollowMixedModule","userFollowedsModule","userFollowsModule","userLevelModule","userMedalModule","userMutualfollowGetModule","userPlaylistModule","userPlaylistCollectModule","userPlaylistCreateModule","userRecordModule","userReplacephoneModule","userSocialStatusModule","userSocialStatusEditModule","userSocialStatusRcmdModule","userSocialStatusSupportModule","userSubcountModule","userUpdateModule","verifyGetQrModule","verifyQrcodestatusModule","videoCategoryListModule","videoDetailModule","videoDetailInfoModule","videoGroupModule","videoGroupListModule","videoSubModule","videoTimelineAllModule","videoTimelineRecommendModule","videoUrlModule","vipGrowthpointModule","vipGrowthpointDetailsModule","vipGrowthpointGetModule","vipInfoModule","vipInfoV2Module","vipTasksModule","vipTimemachineModule","voiceDeleteModule","voiceDetailModule","voiceLyricModule","voiceUploadModule","voicelistDetailModule","voicelistListModule","voicelistListSearchModule","voicelistSearchModule","voicelistTransModule","yunbeiModule","yunbeiExpenseModule","yunbeiInfoModule","yunbeiRcmdSongModule","yunbeiRcmdSongHistoryModule","yunbeiReceiptModule","yunbeiSignModule","yunbeiTaskFinishModule","yunbeiTasksModule","yunbeiTasksTodoModule","yunbeiTodayModule"],"sources":["../src/core/options.ts","../src/core/config.ts","../src/core/crypto.ts","../src/core/utils.ts","../src/core/runtime.ts","../src/core/request.ts","../src/modules/_migration.ts","../src/modules/activate_init_profile.ts","../src/modules/aidj_content_rcmd.ts","../src/modules/album.ts","../src/modules/album_detail.ts","../src/modules/album_detail_dynamic.ts","../src/modules/album_list.ts","../src/modules/album_list_style.ts","../src/modules/album_new.ts","../src/modules/album_newest.ts","../src/modules/album_privilege.ts","../src/modules/album_songsaleboard.ts","../src/modules/album_sub.ts","../src/modules/album_sublist.ts","../src/modules/artist_album.ts","../src/modules/artist_desc.ts","../src/modules/artist_detail.ts","../src/modules/artist_detail_dynamic.ts","../src/modules/artist_fans.ts","../src/modules/artist_follow_count.ts","../src/modules/artist_list.ts","../src/modules/artist_mv.ts","../src/modules/artist_new_mv.ts","../src/modules/artist_new_song.ts","../src/modules/artist_songs.ts","../src/modules/artist_sub.ts","../src/modules/artist_sublist.ts","../src/modules/artist_top_song.ts","../src/modules/artist_video.ts","../src/modules/artists.ts","../src/modules/audio_match.ts","../src/plugins/upload.ts","../src/modules/avatar_upload.ts","../src/modules/banner.ts","../src/modules/batch.ts","../src/modules/broadcast_category_region_get.ts","../src/modules/broadcast_channel_collect_list.ts","../src/modules/broadcast_channel_currentinfo.ts","../src/modules/broadcast_channel_list.ts","../src/modules/broadcast_sub.ts","../src/modules/calendar.ts","../src/modules/captcha_sent.ts","../src/modules/captcha_verify.ts","../src/modules/cellphone_existence_check.ts","../src/modules/check_music.ts","../src/plugins/song-upload.ts","../src/modules/cloud.ts","../src/modules/cloud_import.ts","../src/modules/cloud_match.ts","../src/modules/cloudsearch.ts","../src/modules/_module-inputs.ts","../src/modules/comment.ts","../src/modules/comment_album.ts","../src/modules/comment_dj.ts","../src/modules/comment_event.ts","../src/modules/comment_floor.ts","../src/modules/comment_hot.ts","../src/modules/comment_hug_list.ts","../src/modules/comment_like.ts","../src/modules/comment_music.ts","../src/modules/comment_mv.ts","../src/modules/comment_new.ts","../src/modules/comment_playlist.ts","../src/modules/comment_video.ts","../src/modules/countries_code_list.ts","../src/modules/daily_signin.ts","../src/modules/digitalAlbum_detail.ts","../src/modules/digitalAlbum_ordering.ts","../src/modules/digitalAlbum_purchased.ts","../src/modules/digitalAlbum_sales.ts","../src/modules/dj_banner.ts","../src/modules/dj_category_excludehot.ts","../src/modules/dj_category_recommend.ts","../src/modules/dj_catelist.ts","../src/modules/dj_detail.ts","../src/modules/dj_difm_all_style_channel.ts","../src/modules/dj_difm_channel_subscribe.ts","../src/modules/dj_difm_channel_unsubscribe.ts","../src/modules/dj_difm_playing_tracks_list.ts","../src/modules/dj_difm_subscribe_channels_get.ts","../src/modules/dj_hot.ts","../src/modules/dj_paygift.ts","../src/modules/dj_personalize_recommend.ts","../src/modules/dj_program.ts","../src/modules/dj_program_detail.ts","../src/modules/dj_program_toplist.ts","../src/modules/dj_program_toplist_hours.ts","../src/modules/dj_radio_hot.ts","../src/modules/dj_recommend.ts","../src/modules/dj_recommend_type.ts","../src/modules/dj_sub.ts","../src/modules/dj_sublist.ts","../src/modules/dj_subscriber.ts","../src/modules/dj_today_perfered.ts","../src/modules/dj_toplist.ts","../src/modules/dj_toplist_hours.ts","../src/modules/dj_toplist_newcomer.ts","../src/modules/dj_toplist_pay.ts","../src/modules/dj_toplist_popular.ts","../src/modules/djRadio_top.ts","../src/modules/event.ts","../src/modules/event_del.ts","../src/modules/event_forward.ts","../src/modules/fm_trash.ts","../src/modules/follow.ts","../src/modules/get_userids.ts","../src/modules/history_recommend_songs.ts","../src/modules/history_recommend_songs_detail.ts","../src/modules/homepage_block_page.ts","../src/modules/homepage_dragon_ball.ts","../src/modules/hot_topic.ts","../src/modules/hug_comment.ts","../src/core/service-metadata.ts","../src/modules/inner_version.ts","../src/modules/like.ts","../src/modules/likelist.ts","../src/modules/listen_data_realtime_report.ts","../src/modules/listen_data_report.ts","../src/modules/listen_data_today_song.ts","../src/modules/listen_data_total.ts","../src/modules/listen_data_year_report.ts","../src/modules/listentogether_accept.ts","../src/modules/listentogether_end.ts","../src/modules/listentogether_heatbeat.ts","../src/modules/listentogether_play_command.ts","../src/modules/listentogether_room_check.ts","../src/modules/listentogether_room_create.ts","../src/modules/listentogether_status.ts","../src/modules/listentogether_sync_list_command.ts","../src/modules/listentogether_sync_playlist_get.ts","../src/modules/login.ts","../src/modules/login_cellphone.ts","../src/modules/login_qr_check.ts","../src/modules/login_qr_create.ts","../src/modules/login_qr_key.ts","../src/modules/login_refresh.ts","../src/modules/login_status.ts","../src/modules/logout.ts","../src/modules/lyric.ts","../src/modules/lyric_new.ts","../src/modules/mlog_music_rcmd.ts","../src/modules/mlog_to_video.ts","../src/modules/mlog_url.ts","../src/modules/msg_comments.ts","../src/modules/msg_forwards.ts","../src/modules/msg_notices.ts","../src/modules/msg_private.ts","../src/modules/msg_private_history.ts","../src/modules/msg_recentcontact.ts","../src/modules/music_first_listen_info.ts","../src/modules/musician_cloudbean.ts","../src/modules/musician_cloudbean_obtain.ts","../src/modules/musician_data_overview.ts","../src/modules/musician_play_trend.ts","../src/modules/musician_sign.ts","../src/modules/musician_tasks.ts","../src/modules/musician_tasks_new.ts","../src/modules/mv_all.ts","../src/modules/mv_detail.ts","../src/modules/mv_detail_info.ts","../src/modules/mv_exclusive_rcmd.ts","../src/modules/mv_first.ts","../src/modules/mv_sub.ts","../src/modules/mv_sublist.ts","../src/modules/mv_url.ts","../src/modules/nickname_check.ts","../src/modules/personal_fm.ts","../src/modules/personal_fm_mode.ts","../src/modules/personalized.ts","../src/modules/personalized_djprogram.ts","../src/modules/personalized_mv.ts","../src/modules/personalized_newsong.ts","../src/modules/personalized_privatecontent.ts","../src/modules/personalized_privatecontent_list.ts","../src/modules/pl_count.ts","../src/modules/playlist_catlist.ts","../src/modules/playlist_cover_update.ts","../src/modules/playlist_create.ts","../src/modules/playlist_delete.ts","../src/modules/playlist_desc_update.ts","../src/modules/playlist_detail.ts","../src/modules/playlist_detail_dynamic.ts","../src/modules/playlist_detail_rcmd_get.ts","../src/modules/playlist_highquality_tags.ts","../src/modules/playlist_hot.ts","../src/modules/playlist_import_name_task_create.ts","../src/modules/playlist_import_task_status.ts","../src/modules/playlist_mylike.ts","../src/modules/playlist_name_update.ts","../src/modules/playlist_order_update.ts","../src/modules/playlist_privacy.ts","../src/modules/playlist_subscribe.ts","../src/modules/playlist_subscribers.ts","../src/modules/playlist_tags_update.ts","../src/modules/playlist_track_add.ts","../src/modules/playlist_track_all.ts","../src/modules/playlist_track_delete.ts","../src/modules/playlist_tracks.ts","../src/modules/playlist_update.ts","../src/modules/playlist_update_playcount.ts","../src/modules/playlist_video_recent.ts","../src/modules/playmode_intelligence_list.ts","../src/modules/program_recommend.ts","../src/modules/rebind.ts","../src/modules/recent_listen_list.ts","../src/modules/recommend_resource.ts","../src/modules/recommend_songs.ts","../src/modules/recommend_songs_dislike.ts","../src/modules/record_recent_album.ts","../src/modules/record_recent_dj.ts","../src/modules/record_recent_playlist.ts","../src/modules/record_recent_song.ts","../src/modules/record_recent_video.ts","../src/modules/record_recent_voice.ts","../src/modules/register_anonimous.ts","../src/modules/register_cellphone.ts","../src/modules/related_allvideo.ts","../src/modules/related_playlist.ts","../src/modules/resource_like.ts","../src/modules/scrobble.ts","../src/modules/search.ts","../src/modules/search_default.ts","../src/modules/search_hot.ts","../src/modules/search_hot_detail.ts","../src/modules/search_match.ts","../src/modules/search_multimatch.ts","../src/modules/search_suggest.ts","../src/modules/send_album.ts","../src/modules/send_playlist.ts","../src/modules/send_song.ts","../src/modules/send_text.ts","../src/modules/setting.ts","../src/modules/share_resource.ts","../src/modules/sheet_list.ts","../src/modules/sheet_preview.ts","../src/modules/sign_happy_info.ts","../src/modules/signin_progress.ts","../src/modules/simi_artist.ts","../src/modules/simi_mv.ts","../src/modules/simi_playlist.ts","../src/modules/simi_song.ts","../src/modules/simi_user.ts","../src/modules/song_chorus.ts","../src/modules/song_detail.ts","../src/modules/song_downlist.ts","../src/modules/song_download_url.ts","../src/modules/song_download_url_v1.ts","../src/modules/song_dynamic_cover.ts","../src/modules/song_like_check.ts","../src/modules/song_lyrics_mark.ts","../src/modules/song_lyrics_mark_add.ts","../src/modules/song_lyrics_mark_del.ts","../src/modules/song_lyrics_mark_user_page.ts","../src/modules/song_monthdownlist.ts","../src/modules/song_music_detail.ts","../src/modules/song_order_update.ts","../src/modules/song_purchased.ts","../src/modules/song_red_count.ts","../src/modules/song_singledownlist.ts","../src/modules/song_url.ts","../src/modules/song_url_v1.ts","../src/modules/song_wiki_summary.ts","../src/modules/starpick_comments_summary.ts","../src/modules/style_album.ts","../src/modules/style_artist.ts","../src/modules/style_detail.ts","../src/modules/style_list.ts","../src/modules/style_playlist.ts","../src/modules/style_preference.ts","../src/modules/style_song.ts","../src/modules/summary_annual.ts","../src/modules/top_album.ts","../src/modules/top_artists.ts","../src/modules/top_list.ts","../src/modules/top_mv.ts","../src/modules/top_playlist.ts","../src/modules/top_playlist_highquality.ts","../src/modules/top_song.ts","../src/modules/topic_detail.ts","../src/modules/topic_detail_event_hot.ts","../src/modules/topic_sublist.ts","../src/modules/toplist.ts","../src/modules/toplist_artist.ts","../src/modules/toplist_detail.ts","../src/modules/ugc_album_get.ts","../src/modules/ugc_artist_get.ts","../src/modules/ugc_artist_search.ts","../src/modules/ugc_detail.ts","../src/modules/ugc_mv_get.ts","../src/modules/ugc_song_get.ts","../src/modules/ugc_user_devote.ts","../src/modules/user_account.ts","../src/modules/user_audio.ts","../src/modules/user_binding.ts","../src/modules/user_cloud.ts","../src/modules/user_cloud_del.ts","../src/modules/user_cloud_detail.ts","../src/modules/user_comment_history.ts","../src/modules/user_detail.ts","../src/modules/user_dj.ts","../src/modules/user_event.ts","../src/modules/user_follow_mixed.ts","../src/modules/user_followeds.ts","../src/modules/user_follows.ts","../src/modules/user_level.ts","../src/modules/user_medal.ts","../src/modules/user_mutualfollow_get.ts","../src/modules/user_playlist.ts","../src/modules/user_playlist_collect.ts","../src/modules/user_playlist_create.ts","../src/modules/user_record.ts","../src/modules/user_replacephone.ts","../src/modules/user_social_status.ts","../src/modules/user_social_status_edit.ts","../src/modules/user_social_status_rcmd.ts","../src/modules/user_social_status_support.ts","../src/modules/user_subcount.ts","../src/modules/user_update.ts","../src/modules/verify_getQr.ts","../src/modules/verify_qrcodestatus.ts","../src/modules/video_category_list.ts","../src/modules/video_detail.ts","../src/modules/video_detail_info.ts","../src/modules/video_group.ts","../src/modules/video_group_list.ts","../src/modules/video_sub.ts","../src/modules/video_timeline_all.ts","../src/modules/video_timeline_recommend.ts","../src/modules/video_url.ts","../src/modules/vip_growthpoint.ts","../src/modules/vip_growthpoint_details.ts","../src/modules/vip_growthpoint_get.ts","../src/modules/vip_info.ts","../src/modules/vip_info_v2.ts","../src/modules/vip_tasks.ts","../src/modules/vip_timemachine.ts","../src/modules/voice_delete.ts","../src/modules/voice_detail.ts","../src/modules/voice_lyric.ts","../src/modules/_voice-upload-xml.ts","../src/modules/voice_upload.ts","../src/modules/voicelist_detail.ts","../src/modules/voicelist_list.ts","../src/modules/voicelist_list_search.ts","../src/modules/voicelist_search.ts","../src/modules/voicelist_trans.ts","../src/modules/yunbei.ts","../src/modules/yunbei_expense.ts","../src/modules/yunbei_info.ts","../src/modules/yunbei_rcmd_song.ts","../src/modules/yunbei_rcmd_song_history.ts","../src/modules/yunbei_receipt.ts","../src/modules/yunbei_sign.ts","../src/modules/yunbei_task_finish.ts","../src/modules/yunbei_tasks.ts","../src/modules/yunbei_tasks_todo.ts","../src/modules/yunbei_today.ts","../src/sdk/generated/registry.generated.ts","../src/sdk/runtime.ts","../src/sdk/generated/client.generated.ts"],"sourcesContent":["import type {\n CookieRecord,\n CreateRequestOptions,\n ModuleQuery,\n RequestCrypto,\n} from '../types/index.ts'\n\ninterface OptionSource {\n readonly checkToken?: unknown\n readonly cookie?: CookieRecord | string\n readonly crypto?: unknown\n readonly domain?: unknown\n readonly e_r?: unknown\n readonly proxy?: unknown\n readonly realIP?: unknown\n readonly ua?: unknown\n}\n\n/**\n * 将模块层的 query 对象收敛成 request 层可消费的配置结构。\n * 这里尽量保持旧项目的字段语义,避免过早引入额外的标准化逻辑。\n */\nexport function createOption(\n query: ModuleQuery & OptionSource,\n crypto: RequestCrypto = '',\n): CreateRequestOptions {\n return {\n checkToken: query.checkToken ? toBooleanLike(query.checkToken) : false,\n cookie: query.cookie,\n crypto: toRequestCrypto(query.crypto) ?? crypto,\n domain: toOptionalString(query.domain) ?? '',\n e_r: query.e_r === undefined || query.e_r === null ? undefined : toBooleanLike(query.e_r),\n proxy: toOptionalString(query.proxy),\n realIP: toOptionalString(query.realIP),\n ua: toOptionalString(query.ua) ?? '',\n }\n}\n\nfunction toBooleanLike(value: unknown): boolean | number | string {\n if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n return value\n }\n\n return JSON.stringify(value)\n}\n\nfunction toOptionalString(value: unknown): string | undefined {\n if (value === undefined || value === null) {\n return undefined\n }\n\n if (typeof value === 'string') {\n return value\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value)\n }\n\n return JSON.stringify(value)\n}\n\nfunction toRequestCrypto(value: unknown): RequestCrypto | undefined {\n const normalized = toOptionalString(value)\n if (\n normalized === undefined ||\n normalized === '' ||\n normalized === 'api' ||\n normalized === 'eapi' ||\n normalized === 'linuxapi' ||\n normalized === 'weapi'\n ) {\n return normalized\n }\n\n return undefined\n}\n","export const RESOURCE_TYPE_MAP = {\n 0: 'R_SO_4_',\n 1: 'R_MV_5_',\n 2: 'A_PL_0_',\n 3: 'R_AL_3_',\n 4: 'A_DJ_1_',\n 5: 'R_VI_62_',\n 6: 'A_EV_2_',\n 7: 'A_DR_14_',\n} as const\n\nexport const APP_CONF = {\n apiDomain: 'https://interface.music.163.com',\n domain: 'https://music.163.com',\n encrypt: true,\n encryptResponse: false,\n clientSign:\n '18:C0:4D:B9:8F:FE@@@453832335F384641365F424635335F303030315F303031425F343434415F343643365F333638332@@@@@@6ff673ef74955b38bce2fa8562d95c976ed4758b1227c4e9ee345987cee17bc9',\n checkToken:\n '9ca17ae2e6ffcda170e2e6ee8af14fbabdb988f225b3868eb2c15a879b9a83d274a790ac8ff54a97b889d5d42af0feaec3b92af58cff99c470a7eafd88f75e839a9ea7c14e909da883e83fb692a3abdb6b92adee9e',\n} as const\n\nexport const OS_PROFILES = {\n android: {\n appver: '8.20.20.231215173437',\n channel: 'xiaomi',\n os: 'android',\n osver: '14',\n },\n iphone: {\n appver: '9.0.90',\n channel: 'distribution',\n os: 'iPhone OS',\n osver: '16.2',\n },\n linux: {\n appver: '1.2.1.0428',\n channel: 'netease',\n os: 'linux',\n osver: 'Deepin 20.9',\n },\n pc: {\n appver: '3.1.17.204416',\n channel: 'netease',\n os: 'pc',\n // 这里刻意保留旧桌面端伪装串,迁移阶段不能因为“看起来过时”就擅自改掉。\n osver: 'Microsoft-Windows-10-Professional-build-19045-64bit',\n },\n} as const\n\nexport const USER_AGENT_MAP = {\n api: {\n android:\n 'NeteaseMusic/9.1.65.240927161425(9001065);Dalvik/2.1.0 (Linux; U; Android 14; 23013RK75C Build/UKQ1.230804.001)',\n iphone: 'NeteaseMusic 9.0.90/5038 (iPhone; iOS 16.2; zh_CN)',\n pc: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/91.0.4472.164 NeteaseMusicDesktop/3.0.18.203152',\n },\n linuxapi: {\n linux:\n 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',\n },\n weapi: {\n pc: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0',\n },\n} as const\n\nexport const SPECIAL_STATUS_CODES = new Set([201, 302, 400, 502, 800, 801, 802, 803])\n","import {\n constants,\n createCipheriv,\n createDecipheriv,\n createHash,\n createPublicKey,\n publicEncrypt,\n} from 'node:crypto'\nimport { gunzipSync } from 'node:zlib'\n\nconst IV = '0102030405060708'\nconst PRESET_KEY = '0CoJUm6Qyw8W8jud'\nconst LINUXAPI_KEY = 'rFgB&h#%2?^eDg:Q'\nconst EAPI_KEY = 'e82ckenh8dichen8'\nconst BASE62 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'\nconst WEAPI_PUBLIC_KEY = `-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgtQn2JZ34ZC28NWYpAUd98iZ37BUrX/aKzmFbt7clFSs6sXqHauqKWqdtLkF2KexO40H1YTX8z2lSgBBOAxLsvaklV8k4cBFK9snQXE9/DDaFt6Rr7iVZMldczhC0JNgTz+SHXT6CBHuX3e9SdB1Ua44oncaTWz7OBGLbCiK45wIDAQAB\n-----END PUBLIC KEY-----`\nconst EAPI_DELIMITER = '-36cd479b6b5-'\nconst RSA_BLOCK_SIZE = 128\n\nexport type AesMode = 'cbc' | 'ecb'\nexport type CipherOutputFormat = 'base64' | 'hex'\n\nexport function aesEncrypt(\n text: string,\n mode: AesMode,\n key: string,\n // 旧调用点即使在 ECB 模式下也会继续传 iv,这里保留同样的函数签名,避免迁移期额外改调用方。\n iv: string,\n format: CipherOutputFormat = 'base64',\n): string {\n const algorithm = getAesAlgorithm(mode)\n const nodeCipher = createCipher(algorithm, key, mode === 'ecb' ? null : iv)\n const encrypted = Buffer.concat([nodeCipher.update(text, 'utf8'), nodeCipher.final()])\n\n return format === 'hex' ? encrypted.toString('hex').toUpperCase() : encrypted.toString('base64')\n}\n\nexport function aesDecrypt(\n ciphertext: string,\n mode: AesMode,\n key: string,\n iv: string,\n format: CipherOutputFormat = 'base64',\n): Buffer {\n const encryptedBuffer =\n format === 'hex' ? Buffer.from(ciphertext, 'hex') : Buffer.from(ciphertext, 'base64')\n const algorithm = getAesAlgorithm(mode)\n const decipher = createDecipher(algorithm, key, mode === 'ecb' ? null : iv)\n\n return Buffer.concat([decipher.update(encryptedBuffer), decipher.final()])\n}\n\nexport function rsaEncrypt(plaintext: string, publicKey = WEAPI_PUBLIC_KEY): string {\n const paddedBuffer = Buffer.alloc(RSA_BLOCK_SIZE)\n Buffer.from(plaintext, 'utf8').copy(paddedBuffer, RSA_BLOCK_SIZE - plaintext.length)\n\n return publicEncrypt(\n {\n key: createPublicKey(publicKey),\n padding: constants.RSA_NO_PADDING,\n },\n paddedBuffer,\n ).toString('hex')\n}\n\nexport function createWeapiSecretKey(): string {\n let secretKey = ''\n\n for (let index = 0; index < 16; index += 1) {\n const randomIndex = Math.round(Math.random() * 61)\n secretKey += BASE62[randomIndex] ?? BASE62[0]\n }\n\n return secretKey\n}\n\nexport function weapi(\n object: Record<string, unknown>,\n secretKey = createWeapiSecretKey(),\n): {\n readonly encSecKey: string\n readonly params: string\n} {\n const text = JSON.stringify(object)\n\n return {\n encSecKey: rsaEncrypt(secretKey.split('').toReversed().join('')),\n params: aesEncrypt(aesEncrypt(text, 'cbc', PRESET_KEY, IV), 'cbc', secretKey, IV),\n }\n}\n\nexport function linuxapi(object: Record<string, unknown>): {\n readonly eparams: string\n} {\n return {\n eparams: aesEncrypt(JSON.stringify(object), 'ecb', LINUXAPI_KEY, '', 'hex'),\n }\n}\n\nexport function eapi(\n url: string,\n object: Record<string, unknown> | string,\n): {\n readonly params: string\n} {\n const text = typeof object === 'string' ? object : JSON.stringify(object)\n const message = `nobody${url}use${text}md5forencrypt`\n const digest = createHash('md5').update(message).digest('hex')\n const data = `${url}${EAPI_DELIMITER}${text}${EAPI_DELIMITER}${digest}`\n\n return {\n params: aesEncrypt(data, 'ecb', EAPI_KEY, '', 'hex'),\n }\n}\n\nexport function eapiResDecrypt(\n encryptedParams: string,\n aeapi = false,\n): Record<string, unknown> | null {\n try {\n const decrypted = aesDecrypt(encryptedParams, 'ecb', EAPI_KEY, '', 'hex')\n if (aeapi) {\n return parseJsonRecord(gunzipSync(decrypted).toString('utf8'))\n }\n\n return parseJsonRecord(decrypted.toString('utf8'))\n } catch (error) {\n console.error('eapiResDecrypt error:', error)\n return null\n }\n}\n\nexport function eapiReqDecrypt(\n encryptedParams: string,\n): { readonly data: Record<string, unknown>; readonly url: string } | null {\n const decrypted = aesDecrypt(encryptedParams, 'ecb', EAPI_KEY, '', 'hex').toString('utf8')\n const match = decrypted.match(/(.*?)-36cd479b6b5-(.*?)-36cd479b6b5-(.*)/)\n\n if (!match) {\n return null\n }\n\n const url = match[1] ?? ''\n const data = match[2]\n if (data === undefined) {\n return null\n }\n\n return {\n data: parseJsonRecord(data),\n url,\n }\n}\n\nexport function decrypt(cipher: string): string {\n return aesDecrypt(cipher, 'ecb', EAPI_KEY, '', 'hex').toString('utf8')\n}\n\nfunction getAesAlgorithm(mode: AesMode): 'aes-128-cbc' | 'aes-128-ecb' {\n return mode === 'cbc' ? 'aes-128-cbc' : 'aes-128-ecb'\n}\n\nfunction createCipher(algorithm: 'aes-128-cbc' | 'aes-128-ecb', key: string, iv: string | null) {\n const created = createCipheriv(\n algorithm,\n Buffer.from(key, 'utf8'),\n iv === null ? null : Buffer.from(iv, 'utf8'),\n )\n created.setAutoPadding(true)\n return created\n}\n\nfunction createDecipher(algorithm: 'aes-128-cbc' | 'aes-128-ecb', key: string, iv: string | null) {\n const created = createDecipheriv(\n algorithm,\n Buffer.from(key, 'utf8'),\n iv === null ? null : Buffer.from(iv, 'utf8'),\n )\n created.setAutoPadding(true)\n return created\n}\n\nfunction parseJsonRecord(text: string): Record<string, unknown> {\n const parsed: unknown = JSON.parse(text)\n\n if (isJsonRecord(parsed)) {\n return parsed\n }\n\n throw new TypeError('Expected JSON object payload')\n}\n\nfunction isJsonRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","import { randomBytes } from 'node:crypto'\n\nimport type { BooleanLike, CookieRecord, CookieValue } from '../types/index.ts'\n\nconst CHINA_IP_PREFIXES = [\n '116.25',\n '116.76',\n '116.77',\n '116.78',\n '116.79',\n '116.80',\n '116.81',\n '116.82',\n '116.83',\n '116.84',\n '116.85',\n '116.86',\n '116.87',\n '116.88',\n '116.89',\n '116.90',\n '116.91',\n '116.92',\n '116.93',\n '116.94',\n] as const\n\nconst DEVICE_ID_CHARS = '0123456789ABCDEF'\n\nexport function toBoolean(value: BooleanLike | undefined): '' | boolean {\n if (typeof value === 'boolean') {\n return value\n }\n\n if (value === '') {\n return value\n }\n\n return value === 'true' || value === 1 || value === '1'\n}\n\n// 将 cookie 字符串转换为 JSON 对象\n// 单个 cookie 的格式为 \"key=value\",多个 cookie 之间用 \";\" 分隔\nexport function cookieToJson(cookie: string | undefined): CookieRecord {\n if (!cookie) {\n return {}\n }\n\n const result: CookieRecord = {}\n\n for (const part of cookie.split(';')) {\n const equalsIndex = part.indexOf('=')\n\n if (equalsIndex < 1 || equalsIndex >= part.length - 1) {\n continue\n }\n\n const key = part.slice(0, equalsIndex).trim()\n const value = part.slice(equalsIndex + 1).trim()\n result[key] = value\n }\n\n return result\n}\n\nexport function cookieObjToString(cookie: CookieRecord): string {\n return Object.entries(cookie)\n .filter((entry): entry is [string, CookieValue] => entry[1] !== undefined)\n .map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`\n })\n .join('; ')\n}\n\nexport function getRandom(length: number): number {\n const randomValue = Math.random()\n const floorValue = Math.floor(randomValue * 9 + 1)\n const powerValue = 10 ** (length - 1)\n\n return Math.floor((randomValue + floorValue) * powerValue)\n}\n\nexport function generateRandomChineseIP(): string {\n const prefix = CHINA_IP_PREFIXES[Math.floor(Math.random() * CHINA_IP_PREFIXES.length)]\n\n return `${prefix}.${generateIPSegment()}.${generateIPSegment()}`\n}\n\nexport function generateChainId(cookie: CookieRecord | string | undefined): string {\n const version = 'v1'\n const randomNumber = Math.floor(Math.random() * 1e6)\n const deviceId = getCookieValue(cookie, 'sDeviceId') || `unknown-${randomNumber}`\n const platform = 'web'\n const action = 'login'\n const timestamp = Date.now()\n\n return `${version}_${deviceId}_${platform}_${action}_${timestamp}`\n}\n\nexport function generateDeviceId(): string {\n const characters: string[] = []\n\n for (let index = 0; index < 52; index += 1) {\n const randomIndex = Math.floor(Math.random() * DEVICE_ID_CHARS.length)\n const character = DEVICE_ID_CHARS[randomIndex]\n characters.push(character === undefined ? '0' : character)\n }\n\n return characters.join('')\n}\n\nexport function createRandomHex(byteLength: number): string {\n return randomBytes(byteLength).toString('hex')\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction generateIPSegment(): number {\n return Math.floor(Math.random() * 255) + 1\n}\n\nfunction getCookieValue(cookie: CookieRecord | string | undefined, name: string): string {\n if (!cookie) {\n return ''\n }\n\n if (isRecord(cookie)) {\n const value = cookie[name]\n return value === undefined ? '' : String(value)\n }\n\n const parts = `; ${cookie}`.split(`; ${name}=`)\n if (parts.length !== 2) {\n return ''\n }\n\n return parts[1]?.split(';')[0] ?? ''\n}\n","import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'\nimport { tmpdir } from 'node:os'\nimport { dirname, resolve } from 'node:path'\n\nimport type { RuntimeState } from '../types/index.ts'\n\nimport { generateDeviceId, generateRandomChineseIP } from './utils.ts'\n\nexport const DEFAULT_ANONYMOUS_TOKEN_PATH = resolve(tmpdir(), 'anonymous_token')\n\nlet runtimeState: RuntimeState = {\n anonymousToken: readAnonymousToken(DEFAULT_ANONYMOUS_TOKEN_PATH),\n cnIp: generateRandomChineseIP(),\n deviceId: generateDeviceId(),\n}\n\nexport function getRuntimeState(overrides: Partial<RuntimeState> = {}): RuntimeState {\n return {\n ...runtimeState,\n ...overrides,\n }\n}\n\nexport function setRuntimeState(nextState: Partial<RuntimeState>): RuntimeState {\n runtimeState = {\n ...runtimeState,\n ...nextState,\n }\n\n return runtimeState\n}\n\nexport function readAnonymousToken(filePath = DEFAULT_ANONYMOUS_TOKEN_PATH): string {\n try {\n return readFileSync(filePath, 'utf8').trim()\n } catch {\n return ''\n }\n}\n\nexport function writeAnonymousToken(token: string, filePath = DEFAULT_ANONYMOUS_TOKEN_PATH): void {\n mkdirSync(dirname(filePath), {\n recursive: true,\n })\n writeFileSync(filePath, token, 'utf8')\n setRuntimeState({\n anonymousToken: token,\n })\n}\n","import type {\n CookieRecord,\n CreateRequestOptions,\n FetchLike,\n NcmApiResponse,\n RequestCrypto,\n RuntimeState,\n} from '../types/index.ts'\nimport type { DynamicJsonRecord, UpstreamBody } from '../types/upstream.ts'\n\nimport { APP_CONF, OS_PROFILES, SPECIAL_STATUS_CODES, USER_AGENT_MAP } from './config.ts'\nimport { eapi, eapiResDecrypt, linuxapi, weapi } from './crypto.ts'\nimport { getRuntimeState } from './runtime.ts'\nimport { cookieObjToString, cookieToJson, createRandomHex, isRecord, toBoolean } from './utils.ts'\n\ntype RequestPayload = Record<string, unknown>\ntype BunFetchInit = RequestInit & {\n proxy?: string\n}\ntype UserAgentCrypto = 'api' | 'linuxapi' | 'weapi'\ntype OsProfileKey = keyof typeof OS_PROFILES\n\nconst WNMCID = createWnmcid()\n\nexport async function createRequest(\n uri: string,\n data: RequestPayload,\n options: CreateRequestOptions = {},\n): Promise<NcmApiResponse> {\n const headers: Record<string, string> = {\n ...options.headers,\n }\n const ip = options.realIP ?? options.ip ?? ''\n\n if (ip) {\n headers['X-Forwarded-For'] = ip\n headers['X-Real-IP'] = ip\n }\n\n const fetcher: FetchLike = options.fetcher ?? fetch\n const state = getRuntimeState(options.state)\n const cookieInput =\n typeof options.cookie === 'string' ? cookieToJson(options.cookie) : { ...options.cookie }\n const cookie = processCookieObject(cookieInput, uri, state)\n headers.Cookie = cookieObjToString(cookie)\n\n const csrfToken = String(cookie['__csrf'] ?? '')\n const crypto = resolveCrypto(options.crypto)\n const payload = {\n ...data,\n }\n\n let url = ''\n let requestBody: Record<string, string>\n\n switch (crypto) {\n case 'weapi': {\n headers.Referer = options.domain || APP_CONF.domain\n headers['User-Agent'] = options.ua || chooseUserAgent('weapi', 'pc')\n payload.csrf_token = csrfToken\n requestBody = weapi(payload)\n url = `${options.domain || APP_CONF.domain}/weapi/${uri.slice(5)}`\n break\n }\n\n case 'linuxapi': {\n headers['User-Agent'] = options.ua || chooseUserAgent('linuxapi', 'linux')\n requestBody = linuxapi({\n method: 'POST',\n params: payload,\n url: `${options.domain || APP_CONF.domain}${uri}`,\n })\n url = `${options.domain || APP_CONF.domain}/api/linux/forward`\n break\n }\n\n case 'eapi':\n case 'api': {\n const header = createEapiHeader(cookie, csrfToken, options)\n headers.Cookie = createHeaderCookie(header)\n headers['User-Agent'] = options.ua || chooseUserAgent('api', 'iphone')\n\n if (crypto === 'eapi') {\n payload.header = header\n payload.e_r = toBoolean(\n options.e_r !== undefined\n ? options.e_r\n : (readBooleanLike(payload.e_r) ?? APP_CONF.encryptResponse),\n )\n requestBody = eapi(uri, payload)\n url = `${options.domain || APP_CONF.apiDomain}/eapi/${uri.slice(5)}`\n } else {\n requestBody = stringifyPayload(payload)\n url = `${options.domain || APP_CONF.apiDomain}${uri}`\n }\n break\n }\n\n default: {\n throw {\n body: {\n code: 500,\n msg: `Unknown crypto mode: ${crypto}`,\n },\n cookie: [],\n status: 500,\n } satisfies NcmApiResponse\n }\n }\n\n try {\n const response = await fetcher(url, createFetchInit(headers, requestBody, options.proxy))\n const answer: NcmApiResponse = {\n body: {},\n cookie: getSetCookies(response.headers).map(stripCookieDomain),\n status: 500,\n }\n\n if (crypto === 'eapi' && payload.e_r) {\n const encryptedBody = Buffer.from(await response.arrayBuffer())\n .toString('hex')\n .toUpperCase()\n answer.body = normalizeUpstreamBody(\n eapiResDecrypt(encryptedBody, headers['x-aeapi'] === 'true'),\n )\n } else {\n answer.body = normalizeUpstreamBody(await parseResponseBody(response))\n }\n\n const bodyRecord = isRecord(answer.body) ? (answer.body as Record<string, unknown>) : undefined\n\n if (bodyRecord?.code !== undefined) {\n bodyRecord.code = Number(bodyRecord.code)\n answer.status = Number(bodyRecord.code)\n } else {\n answer.status = response.status\n }\n\n if (bodyRecord && SPECIAL_STATUS_CODES.has(Number(bodyRecord.code))) {\n answer.status = 200\n }\n\n answer.status = answer.status > 100 && answer.status < 600 ? answer.status : 400\n\n if (answer.status === 200) {\n return answer\n }\n\n console.error('[ERR]', answer)\n throw answer\n } catch (error) {\n if (isNcmApiResponse(error)) {\n throw error\n }\n\n const message = error instanceof Error ? error.message : String(error)\n const answer: NcmApiResponse<DynamicJsonRecord> = {\n body: {\n code: 502,\n msg: message,\n },\n cookie: [],\n status: 502,\n }\n console.error('[ERR]', answer)\n throw answer\n }\n}\n\nfunction resolveCrypto(crypto: RequestCrypto | undefined): RequestCrypto {\n if (crypto) {\n return crypto\n }\n\n return APP_CONF.encrypt ? 'eapi' : 'api'\n}\n\nfunction chooseUserAgent(\n crypto: UserAgentCrypto,\n uaType: 'android' | 'iphone' | 'linux' | 'pc' = 'pc',\n): string {\n const config = USER_AGENT_MAP[crypto] as Partial<\n Record<'android' | 'iphone' | 'linux' | 'pc', string>\n >\n if (!config) {\n return ''\n }\n\n return config[uaType] ?? ''\n}\n\nfunction processCookieObject(cookie: CookieRecord, uri: string, state: RuntimeState): CookieRecord {\n const randomNuid = createRandomHex(32)\n const osKey = getOsProfileKey(cookie.os)\n const osProfile = OS_PROFILES[osKey]\n const processedCookie: CookieRecord = {\n ...cookie,\n __remember_me: 'true',\n _ntes_nnid: String(cookie['_ntes_nnid'] ?? `${randomNuid},${Date.now()}`),\n _ntes_nuid: String(cookie['_ntes_nuid'] ?? randomNuid),\n WEVNSM: String(cookie.WEVNSM ?? '1.0.0'),\n WNMCID: String(cookie.WNMCID ?? WNMCID),\n appver: String(cookie.appver ?? osProfile.appver),\n channel: String(cookie.channel ?? osProfile.channel),\n deviceId: String(cookie.deviceId ?? state.deviceId),\n ntes_kaola_ad: '1',\n os: String(cookie.os ?? osProfile.os),\n osver: String(cookie.osver ?? osProfile.osver),\n }\n\n if (!uri.includes('login')) {\n processedCookie.NMTID = createRandomHex(16)\n }\n\n if (!processedCookie.MUSIC_U) {\n processedCookie.MUSIC_A = String(processedCookie.MUSIC_A ?? state.anonymousToken)\n }\n\n return processedCookie\n}\n\nfunction createHeaderCookie(header: Record<string, string>): string {\n return Object.entries(header)\n .map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n })\n .join('; ')\n}\n\nfunction createEapiHeader(\n cookie: CookieRecord,\n csrfToken: string,\n options: CreateRequestOptions,\n): Record<string, string> {\n const header: Record<string, string> = {\n __csrf: csrfToken,\n appver: String(cookie.appver ?? ''),\n buildver: String(cookie.buildver ?? `${Date.now()}`.slice(0, 10)),\n channel: String(cookie.channel ?? ''),\n deviceId: String(cookie.deviceId ?? ''),\n mobilename: String(cookie.mobilename ?? ''),\n os: String(cookie.os ?? ''),\n osver: String(cookie.osver ?? ''),\n requestId: generateRequestId(),\n resolution: String(cookie.resolution ?? '1920x1080'),\n versioncode: String(cookie.versioncode ?? '140'),\n }\n\n if (options.checkToken) {\n header['X-antiCheatToken'] = APP_CONF.checkToken\n }\n\n if (cookie.MUSIC_A) {\n header.MUSIC_A = String(cookie.MUSIC_A)\n }\n\n if (cookie.MUSIC_U) {\n header.MUSIC_U = String(cookie.MUSIC_U)\n }\n\n return header\n}\n\nfunction generateRequestId(): string {\n return `${Date.now()}_${Math.floor(Math.random() * 1000)\n .toString()\n .padStart(4, '0')}`\n}\n\nfunction createFetchInit(\n headers: Record<string, string>,\n data: Record<string, string>,\n proxy: string | undefined,\n): BunFetchInit {\n const init: BunFetchInit = {\n body: new URLSearchParams(data).toString(),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...headers,\n },\n method: 'POST',\n }\n\n if (proxy) {\n if (proxy.includes('pac')) {\n throw new Error('PAC proxy is not supported by the current Bun fetch adapter')\n }\n\n init.proxy = proxy\n }\n\n return init\n}\n\nasync function parseResponseBody(response: Response): Promise<unknown> {\n const contentType = response.headers.get('content-type') ?? ''\n\n if (contentType.includes('application/json')) {\n return response.json()\n }\n\n const text = await response.text()\n\n try {\n return JSON.parse(text) as unknown\n } catch {\n return text\n }\n}\n\nfunction getSetCookies(headers: Headers): string[] {\n const headersWithSetCookie = headers as Headers & {\n getSetCookie?: () => string[]\n }\n\n if (typeof headersWithSetCookie.getSetCookie === 'function') {\n return headersWithSetCookie.getSetCookie()\n }\n\n const rawSetCookie = headers.get('set-cookie')\n if (!rawSetCookie) {\n return []\n }\n\n return splitSetCookieHeader(rawSetCookie)\n}\n\nfunction isNcmApiResponse(error: unknown): error is NcmApiResponse {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'body' in error &&\n 'cookie' in error &&\n 'status' in error\n )\n}\n\nfunction normalizeUpstreamBody(value: unknown): UpstreamBody {\n if (\n value === null ||\n typeof value === 'boolean' ||\n typeof value === 'number' ||\n typeof value === 'string'\n ) {\n return value\n }\n\n if (Array.isArray(value)) {\n return value as UpstreamBody\n }\n\n if (isRecord(value)) {\n return value as DynamicJsonRecord\n }\n\n return {}\n}\n\nfunction splitSetCookieHeader(headerValue: string): string[] {\n const result: string[] = []\n let current = ''\n let inExpires = false\n\n for (const character of headerValue) {\n if (character === ',') {\n if (inExpires) {\n current += character\n continue\n }\n\n result.push(current.trim())\n current = ''\n continue\n }\n\n current += character\n\n if (current.endsWith('Expires=')) {\n inExpires = true\n } else if (inExpires && character === ';') {\n inExpires = false\n }\n }\n\n if (current.trim()) {\n result.push(current.trim())\n }\n\n return result\n}\n\nfunction stripCookieDomain(cookie: string): string {\n return cookie.replace(/\\s*Domain=[^(;|$)]+;*/i, '')\n}\n\nfunction stringifyPayload(payload: RequestPayload): Record<string, string> {\n return Object.fromEntries(\n Object.entries(payload)\n .filter((entry) => entry[1] !== undefined)\n .map(([key, value]) => {\n if (typeof value === 'string') {\n return [key, value]\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return [key, String(value)]\n }\n\n return [key, JSON.stringify(value)]\n }),\n )\n}\n\nfunction createWnmcid(): string {\n let randomString = ''\n const characters = 'abcdefghijklmnopqrstuvwxyz'\n\n for (let index = 0; index < 6; index += 1) {\n const randomIndex = Math.floor(Math.random() * characters.length)\n randomString += characters[randomIndex] ?? characters[0]\n }\n\n return `${randomString}.${Date.now()}.01.0`\n}\n\nfunction readBooleanLike(value: unknown): boolean | number | string | undefined {\n if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n return value\n }\n\n return undefined\n}\n\nfunction getOsProfileKey(value: CookieRecord['os']): OsProfileKey {\n if (value === 'android' || value === 'iphone' || value === 'linux' || value === 'pc') {\n return value\n }\n\n return 'pc'\n}\n","import type { NcmApiResponse } from '../types/index.ts'\nimport type { UpstreamBody } from '../types/upstream.ts'\n\nfunction isRecordLike(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n\nfunction normalizeCookieList(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return []\n }\n\n return value.map((entry) => String(entry))\n}\n\nfunction normalizeStatusCode(value: unknown): number {\n const status = typeof value === 'number' ? value : Number(value)\n\n if (!Number.isFinite(status)) {\n return 200\n }\n\n return status >= 100 && status < 600 ? status : 200\n}\n\nfunction toResponseLike(value: unknown): NcmApiResponse | null {\n if (!isRecordLike(value) || !('status' in value) || !('body' in value)) {\n return null\n }\n\n return {\n body: normalizeBody(value.body),\n cookie: normalizeCookieList(value.cookie),\n status: normalizeStatusCode(value.status),\n }\n}\n\n/**\n * 将旧模块的多种返回形态收敛为新服务层稳定消费的 `NcmApiResponse`。\n */\nexport function normalizeLegacyModuleResponse(value: unknown): NcmApiResponse {\n const normalized = toResponseLike(value)\n if (normalized) {\n return normalized\n }\n\n return {\n body: normalizeBody(value),\n cookie: [],\n status: 200,\n }\n}\n\n/**\n * 旧模块有时会直接 `throw { status, body }`,这里补齐 `cookie`,避免被当成未知错误吞掉。\n */\nexport function normalizeLegacyModuleError(error: unknown): unknown {\n return toResponseLike(error) ?? error\n}\n\nfunction normalizeBody(value: unknown): UpstreamBody {\n if (\n value === null ||\n typeof value === 'boolean' ||\n typeof value === 'number' ||\n typeof value === 'string' ||\n Array.isArray(value)\n ) {\n return value\n }\n\n if (isRecordLike(value)) {\n return value\n }\n\n return {}\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n nickname: query.nickname,\n }\n return request(`/api/activate/initProfile`, data, createOption(query))\n}\n\n/**\n * 初始化名字\n */\nexport default async function migratedActivateInitProfile(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n// 私人 DJ\n// 实际请求参数如下, 部分内容省略, 敏感信息已进行混淆\n// 可按需修改此 API 的代码\n/* {\"extInfo\":\"{\\\"lastRequestTimestamp\\\":1692358373509,\\\"lbsInfoList\\\":[{\\\"lat\\\":40.23076381,\\\"lon\\\":129.07545186,\\\"time\\\":1692358543},{\\\"lat\\\":40.23076381,\\\"lon\\\":129.07545186,\\\"time\\\":1692055283}],\\\"listenedTs\\\":false,\\\"noAidjToAidj\\\":true}\",\"header\":\"{}\"} */\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const extInfo: Record<string, unknown> = {}\n if (query.latitude != undefined) {\n extInfo.lbsInfoList = [\n {\n lat: query.latitude,\n lon: query.longitude,\n time: Math.floor(Date.now() / 1000),\n },\n ]\n }\n extInfo.noAidjToAidj = false\n extInfo.lastRequestTimestamp = Date.now()\n extInfo.listenedTs = false\n const data = {\n extInfo: JSON.stringify(extInfo),\n }\n return request(`/api/aidj/content/rcmd/info`, data, createOption(query))\n}\n\nexport default async function migratedAidjContentRcmd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumQuery, request: ModuleRequest) => {\n return request(`/api/v1/album/${query.id}`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 专辑内容\n */\nexport default async function migratedAlbum(\n query: AlbumQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/vipmall/albumproduct/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑详情\n */\nexport default async function migratedAlbumDetail(\n query: AlbumQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/album/detail/dynamic`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 专辑动态信息\n */\nexport default async function migratedAlbumDetailDynamic(\n query: AlbumQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumListQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n area: query.area || 'ALL', //ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本\n type: query.type,\n }\n return request(`/api/vipmall/albumproduct/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑-新碟上架\n */\nexport default async function migratedAlbumList(\n query: AlbumListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumListStyleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumListStyleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 10,\n offset: query.offset || 0,\n total: true,\n area: query.area || 'Z_H', //Z_H:华语,E_A:欧美,KR:韩国,JP:日本\n }\n return request(`/api/vipmall/appalbum/album/style`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑-语种风格馆\n */\nexport default async function migratedAlbumListStyle(\n query: AlbumListStyleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumListQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n area: query.area || 'ALL', //ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本\n }\n return request(`/api/album/new`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 全部新碟\n */\nexport default async function migratedAlbumNew(\n query: AlbumListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumNewestQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumNewestQuery, request: ModuleRequest) => {\n return request(`/api/discovery/newAlbum`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 最新专辑\n */\nexport default async function migratedAlbumNewest(\n query: AlbumNewestQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/album/privilege`, data, createOption(query))\n}\n\n/**\n * 获取专辑歌曲的音质\n */\nexport default async function migratedAlbumPrivilege(\n query: AlbumQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumSongsaleboardQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumSongsaleboardQuery, request: ModuleRequest) => {\n let data: Record<string, unknown> = {\n albumType: query.albumType || 0, //0为数字专辑,1为数字单曲\n }\n const type = query.type || 'daily' // daily,week,year,total\n if (type === 'year') {\n data = {\n ...data,\n year: query.year,\n }\n }\n return request(`/api/feealbum/songsaleboard/${type}/type`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑&数字单曲-榜单\n */\nexport default async function migratedAlbumSongsaleboard(\n query: AlbumSongsaleboardQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumSubQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumSubQuery, request: ModuleRequest) => {\n const action = Number(query.t) === 1 ? 'sub' : 'unsub'\n const data = {\n id: query.id,\n }\n return request(`/api/album/${action}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏/取消收藏专辑\n */\nexport default async function migratedAlbumSub(\n query: AlbumSubQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AlbumSublistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: AlbumSublistQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 25,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/album/sublist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 已收藏专辑列表\n */\nexport default async function migratedAlbumSublist(\n query: AlbumSublistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistPagedQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistPagedQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/artist/albums/${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手专辑列表\n */\nexport default async function migratedArtistAlbum(\n query: ArtistPagedQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/artist/introduction`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手介绍\n */\nexport default async function migratedArtistDesc(\n query: ArtistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistQuery, request: ModuleRequest) => {\n return request(\n `/api/artist/head/info/get`,\n {\n id: query.id,\n },\n createOption(query),\n )\n}\n\nexport default async function migratedArtistDetail(\n query: ArtistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/artist/detail/dynamic`, data, createOption(query))\n}\n\n/**\n * 歌手动态信息\n */\nexport default async function migratedArtistDetailDynamic(\n query: ArtistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n }\n return request(`/api/artist/fans/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手粉丝\n */\nexport default async function migratedArtistFans(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/artist/follow/count/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手粉丝数量\n */\nexport default async function migratedArtistFollowCount(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n// 歌手分类\n/*\n type 取值\n 1:男歌手\n 2:女歌手\n 3:乐队\n\n area 取值\n -1:全部\n 7华语\n 96欧美\n 8:日本\n 16韩国\n 0:其他\n\n initial 取值 a-z/A-Z\n*/\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n initial: isNaN(query.initial)\n ? (query.initial || '').toUpperCase().charCodeAt() || undefined\n : query.initial,\n offset: query.offset || 0,\n limit: query.limit || 30,\n total: true,\n type: query.type || '1',\n area: query.area,\n }\n return request(`/api/v1/artist/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedArtistList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistPagedQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistPagedQuery, request: ModuleRequest) => {\n const data = {\n artistId: query.id,\n limit: query.limit,\n offset: query.offset,\n total: true,\n }\n return request(`/api/artist/mvs`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手相关MV\n */\nexport default async function migratedArtistMv(\n query: ArtistPagedQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n startTimestamp: query.before || Date.now(),\n }\n return request(`/api/sub/artist/new/works/mv/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedArtistNewMv(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n startTimestamp: query.before || Date.now(),\n }\n return request(`/api/sub/artist/new/works/song/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedArtistNewSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistSongsQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistSongsQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n private_cloud: 'true',\n work_type: 1,\n order: query.order || 'hot', //hot,time\n offset: query.offset || 0,\n limit: query.limit || 100,\n }\n return request(`/api/v1/artist/songs`, data, createOption(query))\n}\n\nexport default async function migratedArtistSongs(\n query: ArtistSongsQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistSubQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistSubQuery, request: ModuleRequest) => {\n const action = Number(query.t) === 1 ? 'sub' : 'unsub'\n const data = {\n artistId: query.id,\n artistIds: '[' + query.id + ']',\n }\n return request(`/api/artist/${action}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏与取消收藏歌手\n */\nexport default async function migratedArtistSub(\n query: ArtistSubQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistSublistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistSublistQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 25,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/artist/sublist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 关注歌手列表\n */\nexport default async function migratedArtistSublist(\n query: ArtistSublistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/artist/top/song`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手热门 50 首歌曲\n */\nexport default async function migratedArtistTopSong(\n query: ArtistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n artistId: query.id,\n page: JSON.stringify({\n size: query.size || 10,\n cursor: query.cursor || 0,\n }),\n tab: 0,\n order: query.order || 0,\n }\n return request(`/api/mlog/artist/video`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手相关视频\n */\nexport default async function migratedArtistVideo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { ArtistQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: ArtistQuery, request: ModuleRequest) => {\n return request(`/api/v1/artist/${query.id}`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手单曲\n */\nexport default async function migratedArtists(\n query: ArtistQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { AudioMatchQuery } from '../types/modules.ts'\n\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\ninterface AudioMatchResponseBody {\n code?: number\n data?: Record<string, unknown>\n message?: string\n}\n\nconst legacyModule = async (query: AudioMatchQuery, _request: ModuleRequest) => {\n const response = await fetch(\n `https://interface.music.163.com/api/music/audio/match?sessionId=0123456789abcdef&algorithmCode=shazam_v2&duration=${\n query.duration\n }&rawdata=${encodeURIComponent(query.audioFP)}&times=1&decrypt=1`,\n )\n const res = readAudioMatchResponse(await response.json())\n return {\n status: 200,\n body: {\n code: res.code ?? 200,\n data: res.data,\n message: res.message,\n },\n cookie: [],\n }\n}\n\nexport default async function migratedAudioMatch(\n query: AudioMatchQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n\nfunction readAudioMatchResponse(value: unknown): AudioMatchResponseBody {\n if (!isRecordLike(value)) {\n return {\n code: 200,\n }\n }\n\n const code = typeof value.code === 'number' ? value.code : 200\n const data = isRecordLike(value.data) ? value.data : undefined\n return {\n code,\n data,\n message: typeof value.message === 'string' ? value.message : undefined,\n }\n}\n\nfunction isRecordLike(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n","import type { ModuleRequest } from '../types/index.ts'\nimport type { UploadImageQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n\nexport default async function uploadPlugin(query: UploadImageQuery, request: ModuleRequest) {\n if (!query.imgFile) {\n throw new TypeError('imgFile is required for upload plugin')\n }\n const imageBuffer = toBuffer(query.imgFile.data)\n\n const data = {\n bucket: 'yyimgs',\n ext: 'jpg',\n filename: query.imgFile.name,\n local: false,\n nos_product: 0,\n return_body: `{\"code\":200,\"size\":\"$(ObjectSize)\"}`,\n type: 'other',\n }\n // 获取key和token\n const res = await request(`/api/nos/token/alloc`, data, createOption(query, 'weapi'))\n await fetch(\n `https://nosup-hz1.127.net/yyimgs/${String(res.body.result.objectKey)}?offset=0&complete=true&version=1.0`,\n {\n method: 'POST',\n headers: {\n 'x-nos-token': String(res.body.result.token),\n 'Content-Type': 'image/jpeg',\n },\n body: imageBuffer,\n },\n )\n\n return {\n url_pre: 'https://p1.music.126.net/' + String(res.body.result.objectKey),\n imgId: res.body.result.docId,\n }\n}\n\nfunction toBuffer(data: ArrayBuffer | Buffer | Uint8Array): Buffer {\n if (Buffer.isBuffer(data)) {\n return data\n }\n\n return data instanceof Uint8Array ? Buffer.from(data) : Buffer.from(new Uint8Array(data))\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport uploadPlugin from '../plugins/upload.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const uploadInfo = await uploadPlugin(query, request)\n const res = await request(\n `/api/user/avatar/upload/v1`,\n {\n imgid: uploadInfo.imgId,\n },\n createOption(query),\n )\n return {\n status: 200,\n body: {\n code: 200,\n data: {\n ...uploadInfo,\n ...res.body,\n },\n },\n }\n}\n\nexport default async function migratedAvatarUpload(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const clientTypeMap: Record<string, string> = {\n 0: 'pc',\n 1: 'android',\n 2: 'iphone',\n 3: 'ipad',\n }\n const type = clientTypeMap[String(query.type ?? 0)] || 'pc'\n return request(`/api/v2/banner/get`, { clientType: type }, createOption(query))\n}\n\n/**\n * 首页轮播图\n */\nexport default async function migratedBanner(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { BatchQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: BatchQuery, request: ModuleRequest) => {\n const data: Record<string, unknown> = {}\n Object.keys(query).forEach((i) => {\n if (i.startsWith('/api/')) {\n data[i] = query[i]\n }\n })\n return request(`/api/batch`, data, createOption(query))\n}\n\n/**\n * 批量请求接口\n */\nexport default async function migratedBatch(\n query: BatchQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/voice/broadcast/category/region/get`, data, createOption(query))\n}\n\n/**\n * 广播电台 - 分类/地区信息\n */\nexport default async function migratedBroadcastCategoryRegionGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n contentType: 'BROADCAST',\n limit: query.limit || '99999',\n timeReverseOrder: 'true',\n startDate: '4762584922000',\n }\n return request(`/api/content/channel/collect/list`, data, createOption(query))\n}\n\n/**\n * 广播电台 - 我的收藏\n */\nexport default async function migratedBroadcastChannelCollectList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n channelId: query.id,\n }\n return request(`/api/voice/broadcast/channel/currentinfo`, data, createOption(query))\n}\n\n/**\n * 广播电台 - 电台信息\n */\nexport default async function migratedBroadcastChannelCurrentinfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n categoryId: query.categoryId || '0',\n regionId: query.regionId || '0',\n limit: query.limit || '20',\n lastId: query.lastId || '0',\n score: query.score || '-1',\n }\n return request(`/api/voice/broadcast/channel/list`, data, createOption(query))\n}\n\n/**\n * 广播电台 - 全部电台\n */\nexport default async function migratedBroadcastChannelList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'false' : 'true'\n const data = {\n contentType: 'BROADCAST',\n contentId: query.id,\n cancelCollect: query.t,\n }\n return request(`/api/content/interact/collect`, data, createOption(query))\n}\n\n/**\n * 广播电台 - 收藏/取消收藏电台\n */\nexport default async function migratedBroadcastSub(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n startTime: query.startTime || Date.now(),\n endTime: query.endTime || Date.now(),\n }\n return request(`/api/mcalendar/detail`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedCalendar(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ctcode: query.ctcode || '86',\n secrete: 'music_middleuser_pclogin',\n cellphone: query.phone,\n }\n return request(`/api/sms/captcha/sent`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 发送验证码\n */\nexport default async function migratedCaptchaSent(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ctcode: query.ctcode || '86',\n cellphone: query.phone,\n captcha: query.captcha,\n }\n return request(`/api/sms/captcha/verify`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 校验验证码\n */\nexport default async function migratedCaptchaVerify(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cellphone: query.phone,\n countrycode: query.countrycode,\n }\n return request(`/api/cellphone/existence/check`, data, createOption(query))\n}\n\n/**\n * 检测手机号码是否已注册\n */\nexport default async function migratedCellphoneExistenceCheck(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CheckMusicQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\ninterface CheckMusicItem {\n code?: number\n}\n\ninterface CheckMusicResponseBody {\n code?: number\n data?: CheckMusicItem[]\n message?: string\n success?: boolean\n}\n\nconst legacyModule = (query: CheckMusicQuery, request: ModuleRequest) => {\n const data = {\n ids: '[' + parseInt(String(query.id ?? 0), 10) + ']',\n br: parseInt(String(query.br ?? 999000), 10),\n }\n return request<CheckMusicResponseBody>(\n `/api/song/enhance/player/url`,\n data,\n createOption(query, 'weapi'),\n ).then((response) => {\n let playable = false\n if (response.body.code === 200) {\n if (response.body.data?.[0]?.code === 200) {\n playable = true\n }\n }\n if (playable) {\n response.body = { code: 200, success: true, message: 'ok' }\n return response\n } else {\n response.body = { code: 200, success: false, message: '亲爱的,暂无版权' }\n return response\n }\n })\n}\n\n/**\n * 歌曲可用性\n */\nexport default async function migratedCheckMusic(\n query: CheckMusicQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest } from '../types/index.ts'\nimport type { UploadSongQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n\ninterface LbsResponse {\n upload?: string[]\n}\n\nexport default async function uploadSongPlugin(query: UploadSongQuery, request: ModuleRequest) {\n if (!query.songFile) {\n throw new TypeError('songFile is required for song upload plugin')\n }\n const songBuffer = toBuffer(query.songFile.data)\n\n let ext = 'mp3'\n if (query.songFile.name.includes('.')) {\n ext = query.songFile.name.split('.').pop() ?? ext\n }\n const filename = query.songFile.name\n .replace('.' + ext, '')\n .replace(/\\s/g, '')\n .replace(/\\./g, '_')\n const bucket = 'jd-musicrep-privatecloud-audio-public'\n // 获取key和token\n const tokenRes = await request(\n `/api/nos/token/alloc`,\n {\n bucket: bucket,\n ext: ext,\n filename: filename,\n local: false,\n nos_product: 3,\n type: 'audio',\n md5: query.songFile.md5,\n },\n createOption(query, 'weapi'),\n )\n\n // 上传\n const objectKey = tokenRes.body.result.objectKey.replace('/', '%2F')\n const lbs = readLbsResponse(\n await (await fetch(`https://wanproxy.127.net/lbs?version=1.0&bucketname=${bucket}`)).json(),\n )\n const uploadBase = lbs.upload?.[0]\n if (!uploadBase) {\n throw new TypeError('NOS LBS upload endpoint is missing')\n }\n\n const response = await fetch(\n `${uploadBase}/${bucket}/${objectKey}?offset=0&complete=true&version=1.0`,\n {\n method: 'POST',\n headers: {\n 'x-nos-token': String(tokenRes.body.result.token),\n 'Content-MD5': query.songFile.md5 ?? '',\n 'Content-Type': 'audio/mpeg',\n 'Content-Length': String(query.songFile.size),\n },\n body: songBuffer,\n },\n )\n if (!response.ok) {\n throw new Error(`song upload failed with status ${response.status}`)\n }\n return {\n ...tokenRes,\n }\n}\n\nfunction toBuffer(data: ArrayBuffer | Buffer | Uint8Array): Buffer {\n if (Buffer.isBuffer(data)) {\n return data\n }\n\n return data instanceof Uint8Array ? Buffer.from(data) : Buffer.from(new Uint8Array(data))\n}\n\nfunction readLbsResponse(value: unknown): LbsResponse {\n if (!isRecordLike(value) || !Array.isArray(value.upload)) {\n return {}\n }\n\n return {\n upload: value.upload.map((entry) => String(entry)),\n }\n}\n\nfunction isRecordLike(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n","import * as mm from 'music-metadata'\nimport { createHash } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CloudQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport uploadPlugin from '../plugins/song-upload.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: CloudQuery, request: ModuleRequest) => {\n if (!query.songFile) {\n throw {\n status: 500,\n body: {\n msg: '请上传音乐文件',\n code: 500,\n },\n cookie: [],\n }\n }\n\n const songFile = query.songFile\n const songBuffer = toBuffer(songFile.data)\n let ext = 'mp3'\n if (songFile.name.includes('.')) {\n ext = songFile.name.split('.').pop() ?? ext\n }\n songFile.name = Buffer.from(songFile.name, 'latin1').toString('utf-8')\n const filename = songFile.name\n .replace('.' + ext, '')\n .replace(/\\s/g, '')\n .replace(/\\./g, '_')\n const bitrate = 999000\n if (!songFile.md5) {\n // 命令行上传没有md5和size信息,需要填充\n songFile.md5 = createHash('md5').update(songBuffer).digest('hex')\n songFile.size = songBuffer.byteLength\n }\n const res = await request(\n `/api/cloud/upload/check`,\n {\n bitrate: String(bitrate),\n ext: '',\n length: songFile.size,\n md5: songFile.md5,\n songId: '0',\n version: 1,\n },\n createOption(query),\n )\n let artist = ''\n let album = ''\n let songName = ''\n try {\n const metadata = await mm.parseBuffer(songBuffer, songFile.mimetype)\n const info = metadata.common\n\n if (info.title) {\n songName = info.title\n }\n if (info.album) {\n album = info.album\n }\n if (info.artist) {\n artist = info.artist\n }\n } catch {}\n const tokenRes = await request(\n `/api/nos/token/alloc`,\n {\n bucket: '',\n ext: ext,\n filename: filename,\n local: false,\n nos_product: 3,\n type: 'audio',\n md5: songFile.md5,\n },\n createOption(query),\n )\n\n if (res.body.needUpload) {\n await uploadPlugin(query, request)\n }\n const res2 = await request(\n `/api/upload/cloud/info/v2`,\n {\n md5: songFile.md5,\n songid: res.body.songId,\n filename: songFile.name,\n song: songName || filename,\n album: album || '未知专辑',\n artist: artist || '未知艺术家',\n bitrate: String(bitrate),\n resourceId: tokenRes.body.result.resourceId,\n },\n createOption(query),\n )\n const res3 = await request(\n `/api/cloud/pub/v2`,\n {\n songid: res2.body.songId,\n },\n createOption(query),\n )\n return {\n status: 200,\n body: {\n ...res.body,\n ...res3.body,\n },\n cookie: res.cookie,\n }\n}\n\nexport default async function migratedCloud(\n query: CloudQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n\nfunction toBuffer(data: ArrayBuffer | Buffer | Uint8Array): Buffer {\n if (Buffer.isBuffer(data)) {\n return data\n }\n\n return data instanceof Uint8Array ? Buffer.from(data) : Buffer.from(new Uint8Array(data))\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CloudImportQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: CloudImportQuery, request: ModuleRequest) => {\n query.id = query.id || -2\n query.artist = query.artist || '未知'\n query.album = query.album || '未知'\n const checkData = {\n uploadType: 0,\n songs: JSON.stringify([\n {\n md5: query.md5,\n songId: query.id,\n bitrate: query.bitrate,\n fileSize: query.fileSize,\n },\n ]),\n }\n const res = await request(`/api/cloud/upload/check/v2`, checkData, createOption(query))\n //res.body.data[0].upload 0:文件可导入,1:文件已在云盘,2:不能导入\n //只能用song决定云盘文件名,且上传后的文件名后缀固定为mp3\n const importData = {\n uploadType: 0,\n songs: JSON.stringify([\n {\n songId: res.body.data[0].songId,\n bitrate: query.bitrate,\n song: query.song,\n artist: query.artist,\n album: query.album,\n fileName: query.song + '.' + query.fileType,\n },\n ]),\n }\n return request(`/api/cloud/user/song/import`, importData, createOption(query))\n}\n\n/**\n * 云盘导入歌曲\n */\nexport default async function migratedCloudImport(\n query: CloudImportQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n userId: query.uid,\n songId: query.sid,\n adjustSongId: query.asid,\n }\n return request(`/api/cloud/user/song/match`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedCloudMatch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n s: query.keywords,\n type: query.type || 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/cloudsearch/pc`, data, createOption(query))\n}\n\n/**\n * 搜索\n */\nexport default async function migratedCloudsearch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { RESOURCE_TYPE_MAP } from '../core/config.ts'\n\nconst RESOURCE_TYPE_LOOKUP: Record<string, string> = RESOURCE_TYPE_MAP\nconst DJ_TOPLIST_TYPE_LOOKUP: Record<string, 0 | 1> = {\n hot: 1,\n new: 0,\n}\n\nexport function resolveResourceType(value: unknown): string {\n const key = String(Number(value ?? 0))\n\n return RESOURCE_TYPE_LOOKUP[key] ?? RESOURCE_TYPE_LOOKUP['0'] ?? ''\n}\n\nexport function resolveDjToplistType(value: unknown): 0 | 1 {\n const key = value === 'hot' ? 'hot' : 'new'\n\n return DJ_TOPLIST_TYPE_LOOKUP[key] ?? 0\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: CommentQuery, request: ModuleRequest) => {\n const actionMap: Record<number, string> = {\n 1: 'add',\n 0: 'delete',\n 2: 'reply',\n }\n const action = actionMap[Number(query.t ?? 0)] ?? 'add'\n const resourceType = resolveResourceType(query.type)\n const data: Record<string, unknown> = {\n threadId: `${resourceType}${String(query.id)}`,\n }\n\n if (resourceType === 'A_EV_2_') {\n data.threadId = query.threadId\n }\n if (action === 'add') data.content = query.content\n else if (action === 'delete') data.commentId = query.commentId\n else if (action === 'reply') {\n data.commentId = query.commentId\n data.content = query.content\n }\n return request(`/api/resource/comments/${action}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 发送与删除评论\n */\nexport default async function migratedComment(\n query: CommentQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/R_AL_3_${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 专辑评论\n */\nexport default async function migratedCommentAlbum(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/A_DJ_1_${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台评论\n */\nexport default async function migratedCommentDj(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentEventQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentEventQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/${query.threadId}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 获取动态评论\n */\nexport default async function migratedCommentEvent(\n query: CommentEventQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentFloorQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: CommentFloorQuery, request: ModuleRequest) => {\n const resourceType = resolveResourceType(query.type)\n const data = {\n parentCommentId: query.parentCommentId,\n threadId: `${resourceType}${String(query.id)}`,\n time: query.time || -1,\n limit: query.limit || 20,\n }\n return request(`/api/resource/comment/floor/get`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedCommentFloor(\n query: CommentFloorQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentHotQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: CommentHotQuery, request: ModuleRequest) => {\n const resourceType = resolveResourceType(query.type)\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(\n `/api/v1/resource/hotcomments/${resourceType}${String(query.id)}`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 热门评论\n */\nexport default async function migratedCommentHot(\n query: CommentHotQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.type = resolveResourceType(query.type)\n const threadId = `${String(query.type ?? '')}${String(query.sid ?? '')}`\n const data = {\n targetUserId: query.uid,\n commentId: query.cid,\n cursor: query.cursor || '-1',\n threadId: threadId,\n pageNo: query.page || 1,\n idCursor: query.idCursor || -1,\n pageSize: query.pageSize || 100,\n }\n return request(`/api/v2/resource/comments/hug/list`, data, createOption(query))\n}\n\nexport default async function migratedCommentHugList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentLikeQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: CommentLikeQuery, request: ModuleRequest) => {\n const action = Number(query.t) === 1 ? 'like' : 'unlike'\n const resourceType = resolveResourceType(query.type)\n const data: Record<string, unknown> = {\n threadId: `${resourceType}${String(query.id)}`,\n commentId: query.cid,\n }\n if (resourceType === 'A_EV_2_') {\n data.threadId = query.threadId\n }\n return request(`/api/v1/comment/${action}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 点赞与取消点赞评论\n */\nexport default async function migratedCommentLike(\n query: CommentLikeQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/R_SO_4_${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌曲评论\n */\nexport default async function migratedCommentMusic(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/R_MV_5_${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * MV评论\n */\nexport default async function migratedCommentMv(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentNewQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: CommentNewQuery, request: ModuleRequest) => {\n const resourceType = resolveResourceType(query.type)\n const threadId = `${resourceType}${String(query.id)}`\n const pageSize = Number(query.pageSize ?? 20) || 20\n const pageNo = Number(query.pageNo ?? 1) || 1\n let sortType = Number(query.sortType) || 99\n if (sortType === 1) {\n sortType = 99\n }\n let cursor = ''\n switch (sortType) {\n case 99:\n cursor = String((pageNo - 1) * pageSize)\n break\n case 2:\n cursor = 'normalHot#' + String((pageNo - 1) * pageSize)\n break\n case 3:\n cursor = query.cursor || '0'\n break\n default:\n break\n }\n const data = {\n threadId: threadId,\n pageNo,\n showInner: query.showInner || true,\n pageSize,\n cursor: cursor,\n sortType: sortType, //99:按推荐排序,2:按热度排序,3:按时间排序\n }\n return request(`/api/v2/resource/comments`, data, createOption(query))\n}\n\n/**\n * 评论\n */\nexport default async function migratedCommentNew(\n query: CommentNewQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(`/api/v1/resource/comments/A_PL_0_${query.id}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌单评论\n */\nexport default async function migratedCommentPlaylist(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { CommentThreadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: CommentThreadQuery, request: ModuleRequest) => {\n const data = {\n rid: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n beforeTime: query.before || 0,\n }\n return request(\n `/api/v1/resource/comments/R_VI_62_${query.id}`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 视频评论\n */\nexport default async function migratedCommentVideo(\n query: CommentThreadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/lbs/countries/v1`, data, createOption(query))\n}\n\n/**\n * 国家编码列表\n */\nexport default async function migratedCountriesCodeList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n// 签到\n/*\n 0为安卓端签到 3点经验, 1为网页签到,2点经验\n 签到成功 {'android': {'point': 3, 'code': 200}, 'web': {'point': 2, 'code': 200}}\n 重复签到 {'android': {'code': -2, 'msg': '重复签到'}, 'web': {'code': -2, 'msg': '重复签到'}}\n 未登录 {'android': {'code': 301}, 'web': {'code': 301}}\n*/\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: query.type || 0,\n }\n return request(`/api/point/dailyTask`, data, createOption(query))\n}\n\nexport default async function migratedDailySignin(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/vipmall/albumproduct/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑详情\n */\nexport default async function migratedDigitalAlbumDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n business: 'Album',\n paymentMethod: query.payment,\n digitalResources: JSON.stringify([\n {\n business: 'Album',\n resourceID: query.id,\n quantity: query.quantity,\n },\n ]),\n from: 'web',\n }\n return request(`/api/ordering/web/digital`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 购买数字专辑\n */\nexport default async function migratedDigitalAlbumOrdering(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/digitalAlbum/purchased`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 我的数字专辑\n */\nexport default async function migratedDigitalAlbumPurchased(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n albumIds: query.ids,\n }\n return request(`/api/vipmall/albumproduct/album/query/sales`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 数字专辑销量\n */\nexport default async function migratedDigitalAlbumSales(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/djradio/banner/get`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 电台banner\n */\nexport default async function migratedDjBanner(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/djradio/category/excludehot`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 电台非热门类型\n */\nexport default async function migratedDjCategoryExcludehot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/djradio/home/category/recommend`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 电台推荐类型\n */\nexport default async function migratedDjCategoryRecommend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/djradio/category/get`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 电台分类列表\n */\nexport default async function migratedDjCatelist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.rid,\n }\n return request(`/api/djradio/v2/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台详情\n */\nexport default async function migratedDjDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n sources: query.sources || '[0]',\n }\n return request(`/api/dj/difm/all/style/channel/v2`, data, createOption(query))\n}\n\n/**\n * DIFM电台 - 分类\n */\nexport default async function migratedDjDifmAllStyleChannel(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/dj/difm/channel/subscribe`, data, createOption(query))\n}\n\n/**\n * DIFM电台 - 收藏频道\n */\nexport default async function migratedDjDifmChannelSubscribe(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/dj/difm/channel/unsubscribe`, data, createOption(query))\n}\n\n/**\n * DIFM电台 - 取消收藏频道\n */\nexport default async function migratedDjDifmChannelUnsubscribe(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 5,\n source: query.source || 0,\n channelId: query.channelId,\n }\n return request(`/api/dj/difm/playing/tracks/list`, data, createOption(query))\n}\n\n/**\n * DIFM电台 - 播放列表\n */\nexport default async function migratedDjDifmPlayingTracksList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n sources: query.sources || '[0]',\n }\n return request(`/api/dj/difm/subscribe/channels/get/v2`, data, createOption(query))\n}\n\n/**\n * DIFM电台 - 收藏列表\n */\nexport default async function migratedDjDifmSubscribeChannelsGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/djradio/hot/v1`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 热门电台\n */\nexport default async function migratedDjHot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n _nmclfl: 1,\n }\n return request(`/api/djradio/home/paygift/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 付费电台\n */\nexport default async function migratedDjPaygift(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/djradio/personalize/rcmd`,\n {\n limit: query.limit || 6,\n },\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 电台个性推荐\n */\nexport default async function migratedDjPersonalizeRecommend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { toBoolean } from '../core/utils.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n radioId: query.rid,\n limit: query.limit || 30,\n offset: query.offset || 0,\n asc: toBoolean(query.asc),\n }\n return request(`/api/dj/program/byradio`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台节目列表\n */\nexport default async function migratedDjProgram(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/dj/program/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台节目详情\n */\nexport default async function migratedDjProgramDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n offset: query.offset || 0,\n }\n return request(`/api/program/toplist/v1`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台节目榜\n */\nexport default async function migratedDjProgramToplist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n // 不支持 offset\n }\n return request(`/api/djprogram/toplist/hours`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台24小时节目榜\n */\nexport default async function migratedDjProgramToplistHours(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cateId: query.cateId,\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/djradio/hot`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 类别热门电台\n */\nexport default async function migratedDjRadioHot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/djradio/recommend/v1`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 精选电台\n */\nexport default async function migratedDjRecommend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\n// 精选电台分类\n/*\n 有声书 10001\n 知识技能 453050\n 商业财经 453051\n 人文历史 11\n 外语世界 13\n 亲子宝贝 14\n 创作|翻唱 2001\n 音乐故事 2\n 3D|电子 10002\n 相声曲艺 8\n 情感调频 3\n 美文读物 6\n 脱口秀 5\n 广播剧 7\n 二次元 3001\n 明星做主播 1\n 娱乐|影视 4\n 科技科学 453052\n 校园|教育 4001\n 旅途|城市 12\n*/\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cateId: query.type,\n }\n return request(`/api/djradio/recommend`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedDjRecommendType(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'sub' : 'unsub'\n const data = {\n id: query.rid,\n }\n return request(`/api/djradio/${query.t}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 订阅与取消电台\n */\nexport default async function migratedDjSub(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/djradio/get/subed`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 订阅电台列表\n */\nexport default async function migratedDjSublist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n time: query.time || '-1',\n id: query.id,\n limit: query.limit || '20',\n total: 'true',\n }\n return request(`/api/djradio/subscriber`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台详情\n */\nexport default async function migratedDjSubscriber(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n page: query.page || 0,\n }\n return request(`/api/djradio/home/today/perfered`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台今日优选\n */\nexport default async function migratedDjTodayPerfered(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveDjToplistType } from './_module-inputs.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n offset: query.offset || 0,\n type: resolveDjToplistType(query.type), //0为新晋,1为热门\n }\n return request(`/api/djradio/toplist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 新晋电台榜/热门电台榜\n */\nexport default async function migratedDjToplist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n // 不支持 offset\n }\n return request(`/api/dj/toplist/hours`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台24小时主播榜\n */\nexport default async function migratedDjToplistHours(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n offset: query.offset || 0,\n }\n return request(`/api/dj/toplist/newcomer`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台新人榜\n */\nexport default async function migratedDjToplistNewcomer(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n // 不支持 offset\n }\n return request(`/api/djradio/toplist/pay`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 付费精品\n */\nexport default async function migratedDjToplistPay(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n // 不支持 offset\n }\n return request(`/api/dj/toplist/popular`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 电台最热主播榜\n */\nexport default async function migratedDjToplistPopular(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n djRadioId: query.djRadioId || null, // 电台id\n sortIndex: query.sortIndex || 1, // 排序 1:播放数 2:点赞数 3:评论数 4:分享数 5:收藏数\n dataGapDays: query.dataGapDays || 7, // 天数 7:一周 30:一个月 90:三个月\n dataType: query.dataType || 3, // 未知\n }\n return request('/api/expert/worksdata/works/top/get', data, createOption(query))\n}\n\n/**\n * 电台排行榜获取\n */\nexport default async function migratedDjRadioTop(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n pagesize: query.pagesize || 20,\n lasttime: query.lasttime || -1,\n }\n return request(`/api/v1/event/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 获取动态列表\n */\nexport default async function migratedEvent(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.evId,\n }\n return request(`/api/event/delete`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 删除动态\n */\nexport default async function migratedEventDel(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n forwards: query.forwards,\n id: query.evId,\n eventUserId: query.uid,\n }\n return request(`/api/event/forward`, data, createOption(query))\n}\n\n/**\n * 转发动态\n */\nexport default async function migratedEventForward(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n alg: 'RT',\n time: query.time || 25,\n }\n return request(`/api/radio/trash/add`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 垃圾桶\n */\nexport default async function migratedFmTrash(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'follow' : 'delfollow'\n return request(`/api/user/${query.t}/${query.id}`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 关注与取消关注用户\n */\nexport default async function migratedFollow(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n nicknames: query.nicknames,\n }\n return request(`/api/user/getUserIds`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedGetUserids(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(\n `/api/discovery/recommend/songs/history/recent`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 历史每日推荐歌曲\n */\nexport default async function migratedHistoryRecommendSongs(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n date: query.date || '',\n }\n return request(\n `/api/discovery/recommend/songs/history/detail`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 历史每日推荐歌曲详情\n */\nexport default async function migratedHistoryRecommendSongsDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = { refresh: query.refresh || false, cursor: query.cursor }\n return request(`/api/homepage/block/page`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 首页-发现 block page\n * 这个接口为移动端接口,首页-发现页,数据结构可以参考 https://github.com/hcanyz/flutter-netease-music-api/blob/master/lib/src/api/uncategorized/bean.dart#L259 HomeBlockPageWrap\n * query.refresh 是否刷新数据\n */\nexport default async function migratedHomepageBlockPage(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n\n return request(`/api/homepage/dragon/ball/static`, data, createOption(query))\n}\n\n/**\n * 首页-发现 dragon ball\n * 这个接口为移动端接口,首页-发现页(每日推荐、歌单、排行榜 那些入口)\n * 数据结构可以参考 https://github.com/hcanyz/flutter-netease-music-api/blob/master/lib/src/api/uncategorized/bean.dart#L290 HomeDragonBallWrap\n * !需要登录或者游客登录,非登录返回 []\n */\nexport default async function migratedHomepageDragonBall(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n offset: query.offset || 0,\n }\n return request(`/api/act/hot`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 热门话题\n */\nexport default async function migratedHotTopic(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.type = resolveResourceType(query.type)\n const threadId = `${String(query.type ?? '')}${String(query.sid ?? '')}`\n const data = {\n targetUserId: query.uid,\n commentId: query.cid,\n threadId: threadId,\n }\n return request(`/api/v2/resource/comments/hug/listener`, data, createOption(query))\n}\n\nexport default async function migratedHugComment(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { readFileSync } from 'node:fs'\nimport { dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\ninterface ServicePackageMetadata {\n readonly version?: string\n}\n\nconst MODULE_DIRECTORY = dirname(fileURLToPath(import.meta.url))\n\nfunction resolvePackageJsonPath(): string {\n let currentDirectory = MODULE_DIRECTORY\n\n for (let index = 0; index < 4; index += 1) {\n const packageJsonPath = resolve(currentDirectory, 'package.json')\n\n try {\n const packageJson = JSON.parse(\n readFileSync(packageJsonPath, 'utf8'),\n ) as ServicePackageMetadata\n\n if (typeof packageJson.version === 'string' && packageJson.version.length > 0) {\n return packageJsonPath\n }\n } catch {\n // Continue climbing toward the package root.\n }\n\n currentDirectory = resolve(currentDirectory, '..')\n }\n\n throw new Error(`Unable to locate package.json from ${MODULE_DIRECTORY}`)\n}\n\nconst PACKAGE_JSON_PATH = resolvePackageJsonPath()\n\nfunction readServiceVersion(): string {\n const packageJson = JSON.parse(readFileSync(PACKAGE_JSON_PATH, 'utf8')) as ServicePackageMetadata\n\n if (typeof packageJson.version !== 'string' || packageJson.version.length === 0) {\n throw new TypeError(`Missing package version in ${PACKAGE_JSON_PATH}`)\n }\n\n return packageJson.version\n}\n\nexport const SERVICE_VERSION = readServiceVersion()\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { SERVICE_VERSION } from '../core/service-metadata.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (_query: LegacyModuleQuery, _request: ModuleRequest) => {\n return Promise.resolve({\n code: 200,\n status: 200,\n body: {\n code: 200,\n data: {\n version: SERVICE_VERSION,\n },\n },\n })\n}\n\nexport default async function migratedInnerVersion(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.like = String(query.like ?? '') !== 'false'\n const data = {\n alg: 'itembased',\n trackId: query.id,\n like: query.like,\n time: '3',\n }\n return request(`/api/radio/like`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 红心与取消红心歌曲\n */\nexport default async function migratedLike(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n uid: query.uid,\n }\n return request(`/api/song/like/get`, data, createOption(query))\n}\n\n/**\n * 喜欢的歌曲(无序)\n */\nexport default async function migratedLikelist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/content/activity/listen/data/realtime/report`,\n {\n type: query.type || 'week', //周 week 月 month\n },\n createOption(query),\n )\n}\n\n/**\n * 听歌足迹 - 本周/本月收听时长\n */\nexport default async function migratedListenDataRealtimeReport(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/content/activity/listen/data/report`,\n {\n type: query.type || 'week', //周 week 月 month 年 year\n endTime: query.endTime, // 不填就是本周/月的\n },\n createOption(query),\n )\n}\n\n/**\n * 听歌足迹 - 周/月/年收听报告\n */\nexport default async function migratedListenDataReport(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/content/activity/listen/data/today/song/play/rank`, {}, createOption(query))\n}\n\n/**\n * 听歌足迹 - 今日收听\n */\nexport default async function migratedListenDataTodaySong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/content/activity/listen/data/total`, {}, createOption(query))\n}\n\n/**\n * 听歌足迹 - 总收听时长\n */\nexport default async function migratedListenDataTotal(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/content/activity/listen/data/year/report`, {}, createOption(query))\n}\n\n/**\n * 听歌足迹 - 年度听歌足迹\n */\nexport default async function migratedListenDataYearReport(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n refer: 'inbox_invite',\n roomId: query.roomId,\n inviterId: query.inviterId,\n }\n return request(`/api/listen/together/play/invitation/accept`, data, createOption(query))\n}\n\nexport default async function migratedListentogetherAccept(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n }\n return request(`/api/listen/together/end/v2`, data, createOption(query))\n}\n\n/**\n * 一起听 结束房间\n */\nexport default async function migratedListentogetherEnd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n songId: query.songId,\n playStatus: query.playStatus,\n progress: query.progress,\n }\n return request(`/api/listen/together/heartbeat`, data, createOption(query))\n}\n\n/**\n * 一起听 发送心跳\n */\nexport default async function migratedListentogetherHeatbeat(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n commandInfo: JSON.stringify({\n commandType: query.commandType,\n progress: query.progress || 0,\n playStatus: query.playStatus,\n formerSongId: query.formerSongId,\n targetSongId: query.targetSongId,\n clientSeq: query.clientSeq,\n }),\n }\n return request(`/api/listen/together/play/command/report`, data, createOption(query))\n}\n\n/**\n * 一起听 发送播放状态\n */\nexport default async function migratedListentogetherPlayCommand(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n }\n return request(`/api/listen/together/room/check`, data, createOption(query))\n}\n\n/**\n * 一起听 房间情况\n */\nexport default async function migratedListentogetherRoomCheck(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n refer: 'songplay_more',\n }\n return request(`/api/listen/together/room/create`, data, createOption(query))\n}\n\n/**\n * 一起听创建房间\n */\nexport default async function migratedListentogetherRoomCreate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/listen/together/status/get`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 一起听状态\n */\nexport default async function migratedListentogetherStatus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n playlistParam: JSON.stringify({\n commandType: query.commandType,\n version: [\n {\n userId: query.userId,\n version: query.version,\n },\n ],\n anchorSongId: '',\n anchorPosition: -1,\n randomList: query.randomList.split(','),\n displayList: query.displayList.split(','),\n }),\n }\n return request(`/api/listen/together/sync/list/command/report`, data, createOption(query))\n}\n\n/**\n * 一起听 更新播放列表\n */\nexport default async function migratedListentogetherSyncListCommand(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n roomId: query.roomId,\n }\n return request(`/api/listen/together/sync/playlist/get`, data, createOption(query))\n}\n\n/**\n * 一起听 当前列表获取\n */\nexport default async function migratedListentogetherSyncPlaylistGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { createHash } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LoginQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LoginQuery, request: ModuleRequest) => {\n const data = {\n type: '0',\n https: 'true',\n username: query.email,\n password: query.md5_password || createHash('md5').update(String(query.password)).digest('hex'),\n rememberLogin: 'true',\n }\n let result = await request(`/api/w/login`, data, createOption(query))\n if (result.body.code === 502) {\n return {\n status: 200,\n body: {\n msg: '账号或密码错误',\n code: 502,\n message: '账号或密码错误',\n },\n }\n }\n if (result.body.code === 200) {\n result = {\n status: 200,\n body: {\n ...JSON.parse(JSON.stringify(result.body).replace(/avatarImgId_str/g, 'avatarImgIdStr')),\n cookie: result.cookie.join(';'),\n },\n cookie: result.cookie,\n }\n }\n return result\n}\n\n/**\n * 邮箱登录\n */\nexport default async function migratedLogin(\n query: LoginQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { createHash } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LoginCellphoneQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LoginCellphoneQuery, request: ModuleRequest) => {\n const data = {\n type: '1',\n https: 'true',\n phone: query.phone,\n countrycode: query.countrycode || '86',\n captcha: query.captcha,\n [query.captcha ? 'captcha' : 'password']: query.captcha\n ? query.captcha\n : query.md5_password || createHash('md5').update(String(query.password)).digest('hex'),\n remember: 'true',\n }\n let result = await request(`/api/w/login/cellphone`, data, createOption(query, 'weapi'))\n\n if (result.body.code === 200) {\n result = {\n status: 200,\n body: {\n ...JSON.parse(JSON.stringify(result.body).replace(/avatarImgId_str/g, 'avatarImgIdStr')),\n cookie: result.cookie.join(';'),\n },\n cookie: result.cookie,\n }\n }\n return result\n}\n\n/**\n * 手机登录\n */\nexport default async function migratedLoginCellphone(\n query: LoginCellphoneQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LoginQrCheckQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LoginQrCheckQuery, request: ModuleRequest) => {\n const data = {\n key: query.key,\n type: 3,\n }\n let result\n try {\n result = await request(`/api/login/qrcode/client/login`, data, createOption(query))\n result = {\n status: 200,\n body: {\n ...result.body,\n cookie: result.cookie.join(';'),\n },\n cookie: result.cookie,\n }\n return result\n } catch {\n return {\n status: 200,\n body: {},\n cookie: result?.cookie ?? [],\n }\n }\n}\n\nexport default async function migratedLoginQrCheck(\n query: LoginQrCheckQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import * as QRCode from 'qrcode'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LoginQrCreateQuery } from '../types/modules.ts'\n\nimport { generateChainId } from '../core/utils.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LoginQrCreateQuery) => {\n const platform = query.platform || 'pc'\n const cookie = query.cookie || ''\n\n let url = `https://music.163.com/login?codekey=${query.key}`\n\n if (platform === 'web') {\n const chainId = generateChainId(cookie)\n url += `&chainId=${chainId}`\n }\n\n return {\n status: 200,\n body: {\n code: 200,\n data: {\n qrurl: url,\n qrimg: query.qrimg ? await QRCode.toDataURL(url) : '',\n },\n },\n cookie: [],\n }\n}\n\nexport default async function migratedLoginQrCreate(\n query: LoginQrCreateQuery,\n _request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: 3,\n }\n const result = await request(`/api/login/qrcode/unikey`, data, createOption(query))\n return {\n status: 200,\n body: {\n data: result.body,\n code: 200,\n },\n cookie: result.cookie,\n }\n}\n\nexport default async function migratedLoginQrKey(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n let result = await request(`/api/login/token/refresh`, {}, createOption(query))\n if (result.body.code === 200) {\n result = {\n status: 200,\n body: {\n ...result.body,\n cookie: result.cookie.join(';'),\n },\n cookie: result.cookie,\n }\n }\n return result\n}\n\n/**\n * 登录刷新\n */\nexport default async function migratedLoginRefresh(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n let result = await request(`/api/w/nuser/account/get`, data, createOption(query, 'weapi'))\n if (result.body.code === 200) {\n result = {\n status: 200,\n body: {\n data: {\n ...result.body,\n },\n },\n cookie: result.cookie,\n }\n }\n return result\n}\n\nexport default async function migratedLoginStatus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/logout`, {}, createOption(query))\n}\n\n/**\n * 退出登录\n */\nexport default async function migratedLogout(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n tv: -1,\n lv: -1,\n rv: -1,\n kv: -1,\n _nmclfl: 1,\n }\n return request(`/api/song/lyric`, data, createOption(query))\n}\n\n/**\n * 歌词\n */\nexport default async function migratedLyric(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n cp: false,\n tv: 0,\n lv: 0,\n rv: 0,\n kv: 0,\n yv: 0,\n ytv: 0,\n yrv: 0,\n }\n return request(`/api/song/lyric/v1`, data, createOption(query))\n}\n\n/**\n * 新版歌词 - 包含逐字歌词\n */\nexport default async function migratedLyricNew(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.mvid || 0,\n type: 2,\n rcmdType: 20,\n limit: query.limit || 10,\n extInfo: JSON.stringify({ songId: query.songid }),\n }\n return request(`/api/mlog/rcmd/feed/list`, data, createOption(query))\n}\n\n/**\n * 歌曲相关视频\n */\nexport default async function migratedMlogMusicRcmd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n mlogId: query.id,\n }\n return request(`/api/mlog/video/convert/id`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 将mlog id转为video id\n */\nexport default async function migratedMlogToVideo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n resolution: query.res || 1080,\n type: 1,\n }\n return request(`/api/mlog/detail/v1`, data, createOption(query, 'weapi'))\n}\n\n/**\n * mlog链接\n */\nexport default async function migratedMlogUrl(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n beforeTime: query.before || '-1',\n limit: query.limit || 30,\n total: 'true',\n uid: query.uid,\n }\n\n return request(`/api/v1/user/comments/${query.uid}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 评论\n */\nexport default async function migratedMsgComments(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n limit: query.limit || 30,\n total: 'true',\n }\n return request(`/api/forwards/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * @我\n */\nexport default async function migratedMsgForwards(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n time: query.lasttime || -1,\n }\n return request(`/api/msg/notices`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 通知\n */\nexport default async function migratedMsgNotices(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n limit: query.limit || 30,\n total: 'true',\n }\n return request(`/api/msg/private/users`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 私信\n */\nexport default async function migratedMsgPrivate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n userId: query.uid,\n limit: query.limit || 30,\n time: query.before || 0,\n total: 'true',\n }\n return request(`/api/msg/private/history`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 私信内容\n */\nexport default async function migratedMsgPrivateHistory(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/msg/recentcontact/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 最近联系\n */\nexport default async function migratedMsgRecentcontact(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/content/activity/music/first/listen/info`, data, createOption(query))\n}\n\n/**\n * 回忆坐标\n */\nexport default async function migratedMusicFirstListenInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/cloudbean/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 账号云豆数\n */\nexport default async function migratedMusicianCloudbean(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n userMissionId: query.id,\n period: query.period,\n }\n return request(\n `/api/nmusician/workbench/mission/reward/obtain/new`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 领取云豆\n */\nexport default async function migratedMusicianCloudbeanObtain(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(\n `/api/creator/musician/statistic/data/overview/get`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 音乐人数据概况\n */\nexport default async function migratedMusicianDataOverview(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n startTime: query.startTime,\n endTime: query.endTime,\n }\n return request(\n `/api/creator/musician/play/count/statistic/data/trend/get`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 音乐人歌曲播放趋势\n */\nexport default async function migratedMusicianPlayTrend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/creator/user/access`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 音乐人签到\n */\nexport default async function migratedMusicianSign(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/nmusician/workbench/mission/cycle/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 获取音乐人任务\n */\nexport default async function migratedMusicianTasks(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/nmusician/workbench/mission/stage/list `, data, createOption(query, 'weapi'))\n}\n\n/**\n * 获取音乐人任务\n */\nexport default async function migratedMusicianTasksNew(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n tags: JSON.stringify({\n 地区: query.area || '全部',\n 类型: query.type || '全部',\n 排序: query.order || '上升最快',\n }),\n offset: query.offset || 0,\n total: 'true',\n limit: query.limit || 30,\n }\n return request(`/api/mv/all`, data, createOption(query))\n}\n\n/**\n * 全部MV\n */\nexport default async function migratedMvAll(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.mvid,\n }\n return request(`/api/v1/mv/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * MV详情\n */\nexport default async function migratedMvDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n threadid: `R_MV_5_${query.mvid}`,\n composeliked: true,\n }\n return request(`/api/comment/commentthread/info`, data, createOption(query, 'weapi'))\n}\n\n/**\n * MV 点赞转发评论数数据\n */\nexport default async function migratedMvDetailInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n limit: query.limit || 30,\n }\n return request(`/api/mv/exclusive/rcmd`, data, createOption(query))\n}\n\n/**\n * 网易出品\n */\nexport default async function migratedMvExclusiveRcmd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n // 'offset': query.offset || 0,\n area: query.area || '',\n limit: query.limit || 30,\n total: true,\n }\n return request(`/api/mv/first`, data, createOption(query))\n}\n\n/**\n * 最新MV\n */\nexport default async function migratedMvFirst(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'sub' : 'unsub'\n const data = {\n mvId: query.mvid,\n mvIds: '[\"' + query.mvid + '\"]',\n }\n return request(`/api/mv/${query.t}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏与取消收藏MV\n */\nexport default async function migratedMvSub(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 25,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/cloudvideo/allvideo/sublist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 已收藏MV列表\n */\nexport default async function migratedMvSublist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n r: query.r || 1080,\n }\n return request(`/api/song/enhance/play/mv/url`, data, createOption(query, 'weapi'))\n}\n\n/**\n * MV链接\n */\nexport default async function migratedMvUrl(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n nickname: query.nickname,\n }\n return request(`/api/nickname/duplicated`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedNicknameCheck(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/v1/radio/get`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 私人FM\n */\nexport default async function migratedPersonalFm(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n mode: query.mode,\n subMode: query.submode,\n limit: query.limit || 3,\n }\n return request(`/api/v1/radio/get`, data, createOption(query))\n}\n\n/**\n * 私人FM - 模式选择\n * aidj, DEFAULT, FAMILIAR, EXPLORE, SCENE_RCMD ( EXERCISE, FOCUS, NIGHT_EMO )\n * 来不及解释这几个了\n */\nexport default async function migratedPersonalFmMode(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n // offset: query.offset || 0,\n total: true,\n n: 1000,\n }\n return request(`/api/personalized/playlist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐歌单\n */\nexport default async function migratedPersonalized(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/personalized/djprogram`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐电台\n */\nexport default async function migratedPersonalizedDjprogram(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/personalized/mv`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐MV\n */\nexport default async function migratedPersonalizedMv(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: 'recommend',\n limit: query.limit || 10,\n areaId: query.areaId || 0,\n }\n return request(`/api/personalized/newsong`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐新歌\n */\nexport default async function migratedPersonalizedNewsong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/personalized/privatecontent`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 独家放送\n */\nexport default async function migratedPersonalizedPrivatecontent(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n total: 'true',\n limit: query.limit || 60,\n }\n return request(`/api/v2/privatecontent/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 独家放送列表\n */\nexport default async function migratedPersonalizedPrivatecontentList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/pl/count`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 私信和通知接口\n */\nexport default async function migratedPlCount(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/playlist/catalogue`, {}, createOption(query, 'eapi'))\n}\n\n/**\n * 全部歌单分类\n */\nexport default async function migratedPlaylistCatlist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport uploadPlugin from '../plugins/upload.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n if (!query.imgFile) {\n return {\n status: 400,\n body: {\n code: 400,\n msg: 'imgFile is required',\n },\n }\n }\n const uploadInfo = await uploadPlugin(query, request)\n const res = await request(\n `/api/playlist/cover/update`,\n {\n id: query.id,\n coverImgId: uploadInfo.imgId,\n },\n createOption(query, 'weapi'),\n )\n return {\n status: 200,\n body: {\n code: 200,\n data: {\n ...uploadInfo,\n ...res.body,\n },\n },\n }\n}\n\nexport default async function migratedPlaylistCoverUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n name: query.name,\n privacy: query.privacy || '0', // 0 普通歌单, 10 隐私歌单\n type: query.type || 'NORMAL', // 默认 NORMAL, VIDEO 视频歌单, SHARED 共享歌单\n }\n return request(`/api/playlist/create`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 创建歌单\n */\nexport default async function migratedPlaylistCreate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ids: '[' + query.id + ']',\n }\n return request(`/api/playlist/remove`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 删除歌单\n */\nexport default async function migratedPlaylistDelete(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n desc: query.desc,\n }\n return request(`/api/playlist/desc/update`, data, createOption(query))\n}\n\n/**\n * 更新歌单描述\n */\nexport default async function migratedPlaylistDescUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { PlaylistDetailQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: PlaylistDetailQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n n: 100000,\n s: query.s || 8,\n }\n return request(`/api/v6/playlist/detail`, data, createOption(query))\n}\n\n/**\n * 歌单详情\n */\nexport default async function migratedPlaylistDetail(\n query: PlaylistDetailQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n n: 100000,\n s: query.s || 8,\n }\n return request(`/api/playlist/detail/dynamic`, data, createOption(query))\n}\n\n/**\n * 歌单动态信息\n */\nexport default async function migratedPlaylistDetailDynamic(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n scene: 'playlist_head',\n playlistId: query.id,\n newStyle: 'true',\n }\n return request(`/api/playlist/detail/rcmd/get`, data, createOption(query))\n}\n\n/**\n * 相关歌单推荐\n */\nexport default async function migratedPlaylistDetailRcmdGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/playlist/highquality/tags`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 精品歌单 tags\n */\nexport default async function migratedPlaylistHighqualityTags(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/playlist/hottags`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 热门歌单分类\n */\nexport default async function migratedPlaylistHot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\ninterface PlaylistImportLocalEntry {\n album?: string\n artist?: string\n name?: string\n}\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n let data: Record<string, unknown> = {\n importStarPlaylist: query.importStarPlaylist || false, // 导入我喜欢的音乐\n }\n\n if (query.local) {\n // 元数据导入\n const local = readPlaylistImportLocalEntries(query.local)\n const multiSongs = JSON.stringify(\n local.map(function (e) {\n return {\n songName: e.name,\n artistName: e.artist,\n albumName: e.album,\n }\n }),\n )\n data = {\n ...data,\n multiSongs: multiSongs,\n }\n } else {\n const playlistName = query.playlistName || '导入音乐 '.concat(new Date().toLocaleString()) // 歌单名称\n let songs = ''\n if (query.text) {\n // 文字导入\n songs = JSON.stringify([\n {\n name: playlistName,\n type: '',\n url: encodeURI('rpc://playlist/import?text='.concat(query.text)),\n },\n ])\n }\n\n if (query.link) {\n // 链接导入\n const link = readPlaylistImportLinks(query.link)\n songs = JSON.stringify(\n link.map(function (e: string) {\n return { name: playlistName, type: '', url: encodeURI(e) }\n }),\n )\n }\n data = {\n ...data,\n playlistName: playlistName,\n createBusinessCode: undefined,\n extParam: undefined,\n taskIdForLog: '',\n songs: songs,\n }\n }\n return request(`/api/playlist/import/name/task/create`, data, createOption(query))\n}\n\n/**\n * 歌单导入 - 元数据/文字/链接导入\n */\nexport default async function migratedPlaylistImportNameTaskCreate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n\nfunction readPlaylistImportLocalEntries(value: unknown): PlaylistImportLocalEntry[] {\n const parsed = readJsonArray(value)\n\n return parsed\n .filter((entry): entry is Record<string, unknown> => isRecordLike(entry))\n .map((entry) => {\n return {\n album: typeof entry.album === 'string' ? entry.album : undefined,\n artist: typeof entry.artist === 'string' ? entry.artist : undefined,\n name: typeof entry.name === 'string' ? entry.name : undefined,\n }\n })\n}\n\nfunction readPlaylistImportLinks(value: unknown): string[] {\n return readJsonArray(value)\n .filter((entry): entry is string => typeof entry === 'string')\n .map((entry) => entry)\n}\n\nfunction readJsonArray(value: unknown): unknown[] {\n try {\n const parsed = JSON.parse(String(value))\n return Array.isArray(parsed) ? parsed : []\n } catch {\n return []\n }\n}\n\nfunction isRecordLike(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/playlist/import/task/status/v2`,\n {\n taskIds: JSON.stringify([query.id]),\n },\n createOption(query),\n )\n}\n\n/**\n * 歌单导入 - 任务状态\n */\nexport default async function migratedPlaylistImportTaskStatus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n time: query.time || '-1',\n limit: query.limit || '12',\n }\n return request(`/api/mlog/playlist/mylike/bytime/get`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedPlaylistMylike(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n name: query.name,\n }\n return request(`/api/playlist/update/name`, data, createOption(query))\n}\n\n/**\n * 更新歌单名\n */\nexport default async function migratedPlaylistNameUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ids: query.ids,\n }\n return request(`/api/playlist/order/update`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 编辑歌单顺序\n */\nexport default async function migratedPlaylistOrderUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n privacy: 0,\n }\n return request(`/api/playlist/update/privacy`, data, createOption(query))\n}\n\n/**\n * 公开隐私歌单\n */\nexport default async function migratedPlaylistPrivacy(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { APP_CONF } from '../core/config.ts'\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const shouldSubscribe = Number(query.t) === 1\n const path = shouldSubscribe ? 'subscribe' : 'unsubscribe'\n const data = {\n id: query.id,\n ...(shouldSubscribe ? { checkToken: query.checkToken || APP_CONF.checkToken } : {}),\n }\n query.checkToken = true // 强制开启checkToken\n return request(`/api/playlist/${path}`, data, createOption(query, 'eapi'))\n}\n\n/**\n * 收藏与取消收藏歌单\n */\nexport default async function migratedPlaylistSubscribe(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n limit: query.limit || 20,\n offset: query.offset || 0,\n }\n return request(`/api/playlist/subscribers`, data, createOption(query))\n}\n\n/**\n * 歌单收藏者\n */\nexport default async function migratedPlaylistSubscribers(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n tags: query.tags,\n }\n return request(`/api/playlist/tags/update`, data, createOption(query))\n}\n\n/**\n * 更新歌单标签\n */\nexport default async function migratedPlaylistTagsUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const ids = String(query.ids ?? '')\n const data = {\n id: query.pid,\n tracks: JSON.stringify(\n ids.split(',').map((item: string) => {\n return { type: 3, id: item }\n }),\n ),\n }\n\n return request(`/api/playlist/track/add`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedPlaylistTrackAdd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { PlaylistTrackAllQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\ninterface PlaylistTrackId {\n id: number | string\n}\n\ninterface PlaylistTrackAllBody {\n playlist?: {\n trackIds?: PlaylistTrackId[]\n }\n}\n\nconst legacyModule = (query: PlaylistTrackAllQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n n: 100000,\n s: query.s || 8,\n }\n //不放在data里面避免请求带上无用的数据\n const limit = parseInt(String(query.limit ?? 1000), 10) || 1000\n const offset = parseInt(String(query.offset ?? 0), 10) || 0\n\n return request<PlaylistTrackAllBody>(`/api/v6/playlist/detail`, data, createOption(query)).then(\n (res) => {\n const trackIds = res.body.playlist?.trackIds ?? []\n const idsData = {\n c:\n '[' +\n trackIds\n .slice(offset, offset + limit)\n .map((item) => '{\"id\":' + item.id + '}')\n .join(',') +\n ']',\n }\n\n return request(`/api/v3/song/detail`, idsData, createOption(query))\n },\n )\n}\n\n/**\n * 通过传过来的歌单id拿到所有歌曲数据\n * 支持传递参数limit来限制获取歌曲的数据数量 例如: /playlist/track/all?id=7044354223&limit=10\n */\nexport default async function migratedPlaylistTrackAll(\n query: PlaylistTrackAllQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const ids = String(query.ids ?? '')\n const data = {\n id: query.id,\n tracks: JSON.stringify(\n ids.split(',').map((item: string) => {\n return { type: 3, id: item }\n }),\n ),\n }\n\n return request(`/api/playlist/track/delete`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏单曲到歌单 从歌单删除歌曲\n */\nexport default async function migratedPlaylistTrackDelete(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n //\n const tracks = String(query.tracks ?? '').split(',')\n const data = {\n op: query.op, // del,add\n pid: query.pid, // 歌单id\n trackIds: JSON.stringify(tracks), // 歌曲id\n imme: 'true',\n }\n\n try {\n const res = await request(`/api/playlist/manipulate/tracks`, data, createOption(query))\n return {\n status: 200,\n body: {\n ...res,\n },\n }\n } catch (error) {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'body' in error &&\n typeof error.body === 'object' &&\n error.body !== null &&\n 'code' in error.body &&\n error.body.code === 512\n ) {\n return request(\n `/api/playlist/manipulate/tracks`,\n {\n op: query.op, // del,add\n pid: query.pid, // 歌单id\n trackIds: JSON.stringify([...tracks, ...tracks]),\n imme: 'true',\n },\n createOption(query),\n )\n } else {\n return {\n status: 200,\n body: readErrorBody(error),\n }\n }\n }\n}\n\n/**\n * 收藏单曲到歌单 从歌单删除歌曲\n */\nexport default async function migratedPlaylistTracks(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n\nfunction readErrorBody(error: unknown): Record<string, unknown> {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'body' in error &&\n typeof error.body === 'object' &&\n error.body !== null\n ) {\n return {\n ...error.body,\n }\n }\n\n return { code: 500, msg: String(error) }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.desc = query.desc || ''\n query.tags = query.tags || ''\n const data = {\n '/api/playlist/desc/update': `{\"id\":${query.id},\"desc\":\"${query.desc}\"}`,\n '/api/playlist/tags/update': `{\"id\":${query.id},\"tags\":\"${query.tags}\"}`,\n '/api/playlist/update/name': `{\"id\":${query.id},\"name\":\"${query.name}\"}`,\n }\n return request(`/api/batch`, data, createOption(query))\n}\n\n/**\n * 编辑歌单\n */\nexport default async function migratedPlaylistUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/playlist/update/playcount`, data, createOption(query))\n}\n\n/**\n * 歌单打卡\n */\nexport default async function migratedPlaylistUpdatePlaycount(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/playlist/video/recent`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedPlaylistVideoRecent(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n type: 'fromPlayOne',\n playlistId: query.pid,\n startMusicId: query.sid || query.id,\n count: query.count || 1,\n }\n return request(`/api/playmode/intelligence/list`, data, createOption(query))\n}\n\n/**\n * 智能播放\n */\nexport default async function migratedPlaymodeIntelligenceList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cateId: query.type,\n limit: query.limit || 10,\n offset: query.offset || 0,\n }\n return request(`/api/program/recommend/v1`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐节目\n */\nexport default async function migratedProgramRecommend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n captcha: query.captcha,\n phone: query.phone,\n oldcaptcha: query.oldcaptcha,\n ctcode: query.ctcode || '86',\n }\n return request(`/api/user/replaceCellphone`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 更换手机\n */\nexport default async function migratedRebind(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/pc/recent/listen/list`, data, createOption(query))\n}\n\n/**\n * 最近听歌列表\n */\nexport default async function migratedRecentListenList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/v1/discovery/recommend/resource`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 每日推荐歌单\n */\nexport default async function migratedRecommendResource(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/v3/discovery/recommend/songs`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 每日推荐歌曲\n */\nexport default async function migratedRecommendSongs(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n resId: query.id, // 日推歌曲id\n resType: 4,\n sceneType: 1,\n }\n return request(`/api/v2/discovery/recommend/dislike`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 每日推荐歌曲-不感兴趣\n */\nexport default async function migratedRecommendSongsDislike(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/album/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentAlbum(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/djradio/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentDj(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/playlist/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentPlaylist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/song/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/newvideo/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentVideo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 100,\n }\n return request(`/api/play-record/voice/list`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedRecordRecentVoice(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { createHash } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { RegisterAnonymousQuery } from '../types/modules.ts'\n\nimport { setRuntimeState } from '../core/runtime.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst ID_XOR_KEY_1 = '3go8&$8*3*3h0k(2)2'\n\nimport { createOption } from '../core/options.ts'\nimport { generateDeviceId } from '../core/utils.ts'\n\n// function getRandomFromList(list) {\n// return list[Math.floor(Math.random() * list.length)]\n// }\nfunction cloudmusic_dll_encode_id(some_id: string) {\n let xoredString = ''\n for (let i = 0; i < some_id.length; i++) {\n const charCode = some_id.charCodeAt(i) ^ ID_XOR_KEY_1.charCodeAt(i % ID_XOR_KEY_1.length)\n xoredString += String.fromCharCode(charCode)\n }\n return createHash('md5').update(xoredString, 'utf8').digest('base64')\n}\n\nconst legacyModule = async (query: RegisterAnonymousQuery, request: ModuleRequest) => {\n const deviceId = generateDeviceId()\n setRuntimeState({ deviceId })\n const encodedId = Buffer.from(\n `${deviceId} ${cloudmusic_dll_encode_id(deviceId)}`,\n 'utf8',\n ).toString('base64')\n const data = {\n username: encodedId,\n }\n let result = await request(`/api/register/anonimous`, data, createOption(query, 'weapi'))\n if (result.body.code === 200) {\n result = {\n status: 200,\n body: {\n ...result.body,\n cookie: result.cookie.join(';'),\n },\n cookie: result.cookie,\n }\n }\n return result\n}\n\nexport default async function migratedRegisterAnonimous(\n query: RegisterAnonymousQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import { createHash } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { RegisterCellphoneQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: RegisterCellphoneQuery, request: ModuleRequest) => {\n const data = {\n captcha: query.captcha,\n phone: query.phone,\n password: createHash('md5').update(query.password).digest('hex'),\n nickname: query.nickname,\n countrycode: query.countrycode || '86',\n force: 'false',\n }\n return request(`/api/w/register/cellphone`, data, createOption(query))\n}\n\n/**\n * 注册账号\n */\nexport default async function migratedRegisterCellphone(\n query: RegisterCellphoneQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n type: /^\\d+$/.test(query.id) ? 0 : 1,\n }\n return request(`/api/cloudvideo/v1/allvideo/rcmd`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相关视频\n */\nexport default async function migratedRelatedAllvideo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery) => {\n const response = await fetch(`https://music.163.com/playlist?id=${query.id}`)\n const html = await response.text()\n try {\n const pattern =\n /<div class=\"cver u-cover u-cover-3\">[\\s\\S]*?<img src=\"([^\"]+)\">[\\s\\S]*?<a class=\"sname f-fs1 s-fc0\" href=\"([^\"]+)\"[^>]*>([^<]+?)<\\/a>[\\s\\S]*?<a class=\"nm nm f-thide s-fc3\" href=\"([^\"]+)\"[^>]*>([^<]+?)<\\/a>/g\n let result: RegExpExecArray | null\n const playlists: Array<{\n coverImgUrl: string\n creator: { nickname: string; userId: string }\n id: string\n name: string\n }> = []\n while ((result = pattern.exec(html)) != null) {\n const [\n ,\n coverImgUrl = '',\n playlistHref = '',\n playlistName = '',\n userHref = '',\n nickname = '',\n ] = result\n playlists.push({\n creator: {\n userId: userHref.slice('/user/home?id='.length),\n nickname,\n },\n coverImgUrl: coverImgUrl.replace(/\\?param=50y50$/u, ''),\n name: playlistName,\n id: playlistHref.slice('/playlist?id='.length),\n })\n }\n return {\n status: 200,\n body: { code: 200, playlists },\n cookie: [],\n }\n } catch (err) {\n throw {\n status: 500,\n body: { code: 500, msg: err instanceof Error ? err.stack || err.message : String(err) },\n cookie: [],\n }\n }\n}\n\n/**\n * 相关歌单\n */\nexport default async function migratedRelatedPlaylist(\n query: LegacyModuleQuery,\n _request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { resolveResourceType } from './_module-inputs.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'like' : 'unlike'\n query.type = resolveResourceType(query.type)\n const data: Record<string, unknown> = {\n threadId: `${String(query.type ?? '')}${String(query.id ?? '')}`,\n }\n if (query.type === 'A_EV_2_') {\n data.threadId = query.threadId\n }\n return request(`/api/resource/${query.t}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 点赞与取消点赞资源\n */\nexport default async function migratedResourceLike(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n logs: JSON.stringify([\n {\n action: 'play',\n json: {\n download: 0,\n end: 'playend',\n id: query.id,\n sourceId: query.sourceid,\n time: query.time,\n type: 'song',\n wifi: 0,\n source: 'list',\n mainsite: 1,\n content: '',\n },\n },\n ]),\n }\n\n return request(`/api/feedback/weblog`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 听歌打卡\n */\nexport default async function migratedScrobble(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { SearchQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: SearchQuery, request: ModuleRequest) => {\n if (String(query.type ?? '') === '2000') {\n const data = {\n keyword: query.keywords,\n scene: 'normal',\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/search/voice/get`, data, createOption(query))\n }\n const data = {\n s: query.keywords,\n type: query.type || 1, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/search/get`, data, createOption(query))\n}\n\n/**\n * 搜索\n */\nexport default async function migratedSearch(\n query: SearchQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/search/defaultkeyword/get`, {}, createOption(query))\n}\n\n/**\n * 默认搜索关键词\n */\nexport default async function migratedSearchDefault(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: 1111,\n }\n return request(`/api/search/hot`, data, createOption(query))\n}\n\n/**\n * 热门搜索\n */\nexport default async function migratedSearchHot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/hotsearchlist/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 热搜列表\n */\nexport default async function migratedSearchHotDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const songs = [\n {\n title: query.title || '',\n album: query.album || '',\n artist: query.artist || '',\n duration: query.duration || 0,\n persistId: query.md5,\n },\n ]\n const data = {\n songs: JSON.stringify(songs),\n }\n return request(`/api/search/match/new`, data, createOption(query))\n}\n\n/**\n * 本地歌曲匹配音乐信息\n */\nexport default async function migratedSearchMatch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: query.type || 1,\n s: query.keywords || '',\n }\n return request(`/api/search/suggest/multimatch`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 多类型搜索\n */\nexport default async function migratedSearchMultimatch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n s: query.keywords || '',\n }\n const type = query.type === 'mobile' ? 'keyword' : 'web'\n return request(`/api/search/suggest/` + type, data, createOption(query, 'weapi'))\n}\n\n/**\n * 搜索建议\n */\nexport default async function migratedSearchSuggest(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n msg: query.msg || '',\n type: 'album',\n userIds: '[' + query.user_ids + ']',\n }\n return request(`/api/msg/private/send`, data, createOption(query))\n}\n\n/**\n * 私信专辑\n */\nexport default async function migratedSendAlbum(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.playlist,\n type: 'playlist',\n msg: query.msg,\n userIds: '[' + query.user_ids + ']',\n }\n return request(`/api/msg/private/send`, data, createOption(query))\n}\n\n/**\n * 私信歌单\n */\nexport default async function migratedSendPlaylist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n msg: query.msg || '',\n type: 'song',\n userIds: '[' + query.user_ids + ']',\n }\n return request(`/api/msg/private/send`, data, createOption(query))\n}\n\n/**\n * 私信歌曲\n */\nexport default async function migratedSendSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: 'text',\n msg: query.msg,\n userIds: '[' + query.user_ids + ']',\n }\n return request(`/api/msg/private/send`, data, createOption(query))\n}\n\n/**\n * 私信\n */\nexport default async function migratedSendText(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/user/setting`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 设置\n */\nexport default async function migratedSetting(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: query.type || 'song', // song,playlist,mv,djprogram,djradio,noresource\n msg: query.msg || '',\n id: query.id || '',\n }\n return request(`/api/share/friends/resource`, data, createOption(query))\n}\n\n/**\n * 分享歌曲到动态\n */\nexport default async function migratedShareResource(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n abTest: query.ab || 'b',\n }\n return request(`/api/music/sheet/list/v1`, data, createOption(query))\n}\n\n/**\n * 乐谱列表\n */\nexport default async function migratedSheetList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/music/sheet/preview/info`, data, createOption(query))\n}\n\n/**\n * 乐谱预览\n */\nexport default async function migratedSheetPreview(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/sign/happy/info`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedSignHappyInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n moduleId: query.moduleId || '1207signin-1207signin',\n }\n return request(`/api/act/modules/signin/v2/progress`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 签到进度\n */\nexport default async function migratedSigninProgress(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n artistid: query.id,\n }\n return request(`/api/discovery/simiArtist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相似歌手\n */\nexport default async function migratedSimiArtist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n mvid: query.mvid,\n }\n return request(`/api/discovery/simiMV`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相似MV\n */\nexport default async function migratedSimiMv(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songid: query.id,\n limit: query.limit || 50,\n offset: query.offset || 0,\n }\n return request(`/api/discovery/simiPlaylist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相似歌单\n */\nexport default async function migratedSimiPlaylist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songid: query.id,\n limit: query.limit || 50,\n offset: query.offset || 0,\n }\n return request(`/api/v1/discovery/simiSong`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相似歌曲\n */\nexport default async function migratedSimiSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songid: query.id,\n limit: query.limit || 50,\n offset: query.offset || 0,\n }\n return request(`/api/discovery/simiUser`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 相似用户\n */\nexport default async function migratedSimiUser(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/song/chorus`,\n {\n ids: JSON.stringify([query.id]),\n },\n createOption(query),\n )\n}\n\n/**\n * 副歌时间\n */\nexport default async function migratedSongChorus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n // 歌曲数量不要超过1000\n const ids = String(query.ids ?? '').split(/\\s*,\\s*/)\n const data = {\n c: '[' + ids.map((id: string) => '{\"id\":' + id + '}').join(',') + ']',\n }\n return request(`/api/v3/song/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌曲详情\n */\nexport default async function migratedSongDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '20',\n offset: query.offset || '0',\n total: 'true',\n }\n return request(`/api/member/song/downlist`, data, createOption(query))\n}\n\n/**\n * 会员下载歌曲记录\n */\nexport default async function migratedSongDownlist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n br: parseInt(query.br || 999000),\n }\n return request(`/api/song/enhance/download/url`, data, createOption(query))\n}\n\n/**\n * 获取客户端歌曲下载链接\n */\nexport default async function migratedSongDownloadUrl(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n immerseType: 'c51',\n level: query.level,\n }\n return request(`/api/song/enhance/download/url/v1`, data, createOption(query))\n}\n\n/**\n * 获取客户端歌曲下载链接 - v1\n * 此版本不再采用 br 作为音质区分的标准\n * 而是采用 standard, exhigh, lossless, hires, jyeffect(高清环绕声), sky(沉浸环绕声), jymaster(超清母带) 进行音质判断\n */\nexport default async function migratedSongDownloadUrlV1(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/songplay/dynamic-cover`, data, createOption(query))\n}\n\n/**\n * 歌曲动态封面\n */\nexport default async function migratedSongDynamicCover(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n trackIds: query.ids,\n }\n return request(`/api/song/like/check`, data, createOption(query))\n}\n\n/**\n * 歌曲是否喜爱\n */\nexport default async function migratedSongLikeCheck(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/song/play/lyrics/mark/song`, data, createOption(query))\n}\n\n/**\n * 歌词摘录 - 歌词摘录信息\n */\nexport default async function migratedSongLyricsMark(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n markId: query.markId || '',\n data: query.data || '[]',\n // \"[{\\\"translateType\\\":1,\\\"startTimeStamp\\\":800,\\\"translateLyricsText\\\":\\\"让我逃走吧、声音已经枯萎\\\",\\\"originalLyricsText\\\":\\\"逃がしてくれって声を枯らした\\\"},{\\\"translateType\\\":1,\\\"startTimeStamp\\\":4040,\\\"translateLyricsText\\\":\\\"我的愿望究竟会实现吗\\\",\\\"originalLyricsText\\\":\\\"あたしの願いなど叶うでしょうか\\\"}]\"\n }\n return request(`/api/song/play/lyrics/mark/add`, data, createOption(query))\n}\n\n/**\n * 歌词摘录 - 添加/修改摘录歌词\n */\nexport default async function migratedSongLyricsMarkAdd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n markIds: query.id,\n }\n return request(`/api/song/play/lyrics/mark/del`, data, createOption(query))\n}\n\n/**\n * 歌词摘录 - 删除摘录歌词\n */\nexport default async function migratedSongLyricsMarkDel(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 10,\n offset: query.offset || 0,\n }\n return request(`/api/song/play/lyrics/mark/user/page`, data, createOption(query))\n}\n\n/**\n * 歌词摘录 - 我的歌词本\n */\nexport default async function migratedSongLyricsMarkUserPage(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '20',\n offset: query.offset || '0',\n total: 'true',\n }\n return request(`/api/member/song/monthdownlist`, data, createOption(query))\n}\n\n/**\n * 会员本月下载歌曲记录\n */\nexport default async function migratedSongMonthdownlist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/song/music/detail/get`, data, createOption(query))\n}\n\n/**\n * 歌曲音质详情\n */\nexport default async function migratedSongMusicDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n pid: query.pid,\n trackIds: query.ids,\n op: 'update',\n }\n\n return request(`/api/playlist/manipulate/tracks`, data, createOption(query))\n}\n\n/**\n * 更新歌曲顺序\n */\nexport default async function migratedSongOrderUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n offset: query.offset || 0,\n }\n return request(`/api/single/mybought/song/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 已购单曲\n */\nexport default async function migratedSongPurchased(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/song/red/count`, data, createOption(query))\n}\n\n/**\n * 歌曲红心数量\n */\nexport default async function migratedSongRedCount(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '20',\n offset: query.offset || '0',\n total: 'true',\n }\n return request(`/api/member/song/singledownlist`, data, createOption(query))\n}\n\n/**\n * 已购买单曲\n */\nexport default async function migratedSongSingledownlist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { SongUrlQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\ninterface SongUrlItem {\n id: number | string\n url?: string\n}\n\ninterface SongUrlBody {\n data?: SongUrlItem[]\n}\n\nconst legacyModule = async (query: SongUrlQuery, request: ModuleRequest) => {\n const ids = String(query.id).split(',')\n const data = {\n ids: JSON.stringify(ids),\n br: parseInt(String(query.br ?? 999000), 10),\n }\n const res = await request<SongUrlBody>(`/api/song/enhance/player/url`, data, createOption(query))\n // 根据id排序\n const result = [...(res.body.data ?? [])]\n result.sort((a, b) => {\n return ids.indexOf(String(a.id)) - ids.indexOf(String(b.id))\n })\n return {\n status: 200,\n body: {\n code: 200,\n data: result,\n },\n }\n}\n\n/**\n * 歌曲链接\n */\nexport default async function migratedSongUrl(\n query: SongUrlQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { SongUrlV1Query } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: SongUrlV1Query, request: ModuleRequest) => {\n const data: Record<string, unknown> = {\n ids: '[' + query.id + ']',\n level: query.level,\n encodeType: 'flac',\n }\n if (data.level === 'sky') {\n data.immerseType = 'c51'\n }\n return request(`/api/song/enhance/player/url/v1`, data, createOption(query))\n}\n\n/**\n * 歌曲链接 - v1\n * 此版本不再采用 br 作为音质区分的标准\n * 而是采用 standard, exhigh, lossless, hires, jyeffect(高清环绕声), sky(沉浸环绕声), jymaster(超清母带) 进行音质判断\n */\nexport default async function migratedSongUrlV1(\n query: SongUrlV1Query,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/song/play/about/block/page`, data, createOption(query))\n}\n\n/**\n * 音乐百科基础信息\n */\nexport default async function migratedSongWikiSummary(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cursor: JSON.stringify({\n offset: 0,\n blockCodeOrderList: ['HOMEPAGE_BLOCK_NEW_HOT_COMMENT'],\n refresh: true,\n }),\n }\n return request(`/api/homepage/block/page`, data, createOption(query))\n}\n\n/**\n * 云村星评馆 - 简要评论列表\n */\nexport default async function migratedStarpickCommentsSummary(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cursor: query.cursor || 0,\n size: query.size || 20,\n tagId: query.tagId,\n sort: query.sort || 0,\n }\n return request(`/api/style-tag/home/album`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风-专辑\n */\nexport default async function migratedStyleAlbum(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cursor: query.cursor || 0,\n size: query.size || 20,\n tagId: query.tagId,\n sort: 0,\n }\n return request(`/api/style-tag/home/artist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风-歌手\n */\nexport default async function migratedStyleArtist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n tagId: query.tagId,\n }\n return request(`/api/style-tag/home/head`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风详情\n */\nexport default async function migratedStyleDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/tag/list/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风列表\n */\nexport default async function migratedStyleList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cursor: query.cursor || 0,\n size: query.size || 20,\n tagId: query.tagId,\n sort: 0,\n }\n return request(`/api/style-tag/home/playlist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风-歌单\n */\nexport default async function migratedStylePlaylist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/tag/my/preference/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风偏好\n */\nexport default async function migratedStylePreference(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cursor: query.cursor || 0,\n size: query.size || 20,\n tagId: query.tagId,\n sort: query.sort || 0,\n }\n return request(`/api/style-tag/home/song`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 曲风-歌曲\n */\nexport default async function migratedStyleSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n const key = ['2017', '2018', '2019'].includes(String(query.year)) ? 'userdata' : 'data'\n return request(`/api/activity/summary/annual/${query.year}/${key}`, data, createOption(query))\n}\n\n/**\n * 年度听歌报告2017-2024\n */\nexport default async function migratedSummaryAnnual(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const date = new Date()\n\n const data = {\n area: query.area || 'ALL', // //ALL:全部,ZH:华语,EA:欧美,KR:韩国,JP:日本\n limit: query.limit || 50,\n offset: query.offset || 0,\n type: query.type || 'new',\n year: query.year || date.getFullYear(),\n month: query.month || date.getMonth() + 1,\n total: false,\n rcmd: true,\n }\n return request(`/api/discovery/new/albums/area`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 新碟上架\n */\nexport default async function migratedTopAlbum(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 50,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/artist/top`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 热门歌手\n */\nexport default async function migratedTopArtists(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n if (query.idx) {\n return Promise.resolve({\n status: 500,\n body: {\n code: 500,\n msg: '不支持此方式调用,只支持id调用',\n },\n })\n }\n\n const data = {\n id: query.id,\n n: '500',\n s: '0',\n }\n return request(`/api/playlist/v4/detail`, data, createOption(query))\n}\n\n/**\n * 排行榜\n */\nexport default async function migratedTopList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n area: query.area || '',\n limit: query.limit || 30,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/mv/toplist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * MV排行榜\n */\nexport default async function migratedTopMv(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cat: query.cat || '全部', // 全部,华语,欧美,日语,韩语,粤语,小语种,流行,摇滚,民谣,电子,舞曲,说唱,轻音乐,爵士,乡村,R&B/Soul,古典,民族,英伦,金属,朋克,蓝调,雷鬼,世界音乐,拉丁,另类/独立,New Age,古风,后摇,Bossa Nova,清晨,夜晚,学习,工作,午休,下午茶,地铁,驾车,运动,旅行,散步,酒吧,怀旧,清新,浪漫,性感,伤感,治愈,放松,孤独,感动,兴奋,快乐,安静,思念,影视原声,ACG,儿童,校园,游戏,70后,80后,90后,网络歌曲,KTV,经典,翻唱,吉他,钢琴,器乐,榜单,00后\n order: query.order || 'hot', // hot,new\n limit: query.limit || 50,\n offset: query.offset || 0,\n total: true,\n }\n const res = await request(`/api/playlist/list`, data, createOption(query, 'weapi'))\n const result = JSON.stringify(res).replace(/avatarImgId_str/g, 'avatarImgIdStr')\n return JSON.parse(result)\n}\n\n/**\n * 分类歌单\n */\nexport default async function migratedTopPlaylist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n cat: query.cat || '全部', // 全部,华语,欧美,韩语,日语,粤语,小语种,运动,ACG,影视原声,流行,摇滚,后摇,古风,民谣,轻音乐,电子,器乐,说唱,古典,爵士\n limit: query.limit || 50,\n lasttime: query.before || 0, // 歌单updateTime\n total: true,\n }\n return request(`/api/playlist/highquality/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 精品歌单\n */\nexport default async function migratedTopPlaylistHighquality(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n areaId: query.type || 0, // 全部:0 华语:7 欧美:96 日本:8 韩国:16\n // limit: query.limit || 100,\n // offset: query.offset || 0,\n total: true,\n }\n return request(`/api/v1/discovery/new/songs`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 新歌速递\n */\nexport default async function migratedTopSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n actid: query.actid,\n }\n return request(`/api/act/detail`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedTopicDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n actid: query.actid,\n }\n return request(`/api/act/event/hot`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedTopicDetailEventHot(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 50,\n offset: query.offset || 0,\n total: true,\n }\n return request(`/api/topic/sublist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏的专栏\n */\nexport default async function migratedTopicSublist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/toplist`, {}, createOption(query))\n}\n\n/**\n * 所有榜单介绍\n */\nexport default async function migratedToplist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n type: query.type || 1,\n limit: 100,\n offset: 0,\n total: true,\n }\n return request(`/api/toplist/artist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 歌手榜\n */\nexport default async function migratedToplistArtist(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/toplist/detail`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 所有榜单内容摘要\n */\nexport default async function migratedToplistDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n albumId: query.id,\n }\n return request(`/api/rep/ugc/album/get`, data, createOption(query))\n}\n\n/**\n * 专辑简要百科信息\n */\nexport default async function migratedUgcAlbumGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n artistId: query.id,\n }\n return request(`/api/rep/ugc/artist/get`, data, createOption(query))\n}\n\n/**\n * 歌手简要百科信息\n */\nexport default async function migratedUgcArtistGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n keyword: query.keyword,\n limit: query.limit || 40,\n }\n return request(`/api/rep/ugc/artist/search`, data, createOption(query))\n}\n\n/**\n * 搜索歌手\n * 可传关键字或者歌手id\n */\nexport default async function migratedUgcArtistSearch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n auditStatus: query.auditStatus || '',\n //待审核:0 未采纳:-5 审核中:1 部分审核通过:4 审核通过:5\n //WAIT:0 REJECT:-5 AUDITING:1 PARTLY_APPROVED:4 PASS:5\n limit: query.limit || 10,\n offset: query.offset || 0,\n order: query.order || 'desc', //asc\n sortBy: query.sortBy || 'createTime',\n type: query.type || 1,\n //曲库纠错 ARTIST:1 ALBUM:2 SONG:3 MV:4 LYRIC:5 TLYRIC:6\n //曲库补充 ALBUM:101 MV:103\n }\n return request(`/api/rep/ugc/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 用户贡献内容\n */\nexport default async function migratedUgcDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n mvId: query.id,\n }\n return request(`/api/rep/ugc/mv/get`, data, createOption(query))\n}\n\n/**\n * mv简要百科信息\n */\nexport default async function migratedUgcMvGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n }\n return request(`/api/rep/ugc/song/get`, data, createOption(query))\n}\n\n/**\n * 歌曲简要百科信息\n */\nexport default async function migratedUgcSongGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/rep/ugc/user/devote`, data, createOption(query))\n}\n\n/**\n * 用户贡献条目、积分、云贝数量\n */\nexport default async function migratedUgcUserDevote(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserAccountQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserAccountQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/nuser/account/get`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedUserAccount(\n query: UserAccountQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserScopedQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserScopedQuery, request: ModuleRequest) => {\n const data = {\n userId: query.uid,\n }\n return request(`/api/djradio/get/byuser`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 用户创建的电台\n */\nexport default async function migratedUserAudio(\n query: UserScopedQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/v1/user/bindings/${query.uid}`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedUserBinding(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/v1/cloud/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 云盘数据\n */\nexport default async function migratedUserCloud(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songIds: [query.id],\n }\n return request(`/api/cloud/del`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 云盘歌曲删除\n */\nexport default async function migratedUserCloudDel(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const id = query.id.replace(/\\s/g, '').split(',')\n const data = {\n songIds: id,\n }\n return request(`/api/v1/cloud/get/byids`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 云盘数据详情\n */\nexport default async function migratedUserCloudDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n compose_reminder: 'true',\n compose_hot_comment: 'true',\n limit: query.limit || 10,\n user_id: query.uid,\n time: query.time || 0,\n }\n return request(`/api/comment/user/comment/history`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedUserCommentHistory(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserDetailQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: UserDetailQuery, request: ModuleRequest) => {\n const res = await request(`/api/v1/user/detail/${query.uid}`, {}, createOption(query, 'weapi'))\n const result = JSON.stringify(res).replace(/avatarImgId_str/g, 'avatarImgIdStr')\n return JSON.parse(result)\n}\n\n/**\n * 用户详情\n */\nexport default async function migratedUserDetail(\n query: UserDetailQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserScopedListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserScopedListQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 30,\n offset: query.offset || 0,\n }\n return request(`/api/dj/program/${query.uid}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 用户电台节目\n */\nexport default async function migratedUserDj(\n query: UserScopedListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserEventQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserEventQuery, request: ModuleRequest) => {\n const data = {\n getcounts: true,\n time: query.lasttime || -1,\n limit: query.limit || 30,\n total: false,\n }\n return request(`/api/event/get/${query.uid}`, data, createOption(query))\n}\n\n/**\n * 用户动态\n */\nexport default async function migratedUserEvent(\n query: UserEventQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserFollowMixedQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserFollowMixedQuery, request: ModuleRequest) => {\n const size = query.size || 30\n const cursor = query.cursor || 0\n const scene = query.scene || 0 // 0: 所有关注 1: 关注的歌手 2: 关注的用户\n const data = {\n authority: 'false',\n page: JSON.stringify({\n size: size,\n cursor: cursor,\n }),\n scene: scene,\n size: size,\n sortType: '0',\n }\n return request(`/api/user/follow/users/mixed/get/v2`, data, createOption(query))\n}\n\n/**\n * 当前账号关注的用户/歌手\n */\nexport default async function migratedUserFollowMixed(\n query: UserFollowMixedQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserScopedListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserScopedListQuery, request: ModuleRequest) => {\n const data = {\n userId: query.uid,\n time: '0',\n limit: query.limit || 30,\n offset: query.offset || 0,\n getcounts: 'true',\n }\n return request(`/api/user/getfolloweds/${query.uid}`, data, createOption(query))\n}\n\n/**\n * 关注TA的人(粉丝)\n */\nexport default async function migratedUserFolloweds(\n query: UserScopedListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserScopedListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserScopedListQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n limit: query.limit || 30,\n order: true,\n }\n return request(`/api/user/getfollows/${query.uid}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * TA关注的人(关注)\n */\nexport default async function migratedUserFollows(\n query: UserScopedListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserSummaryQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserSummaryQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/user/level`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 类别热门电台\n */\nexport default async function migratedUserLevel(\n query: UserSummaryQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/medal/user/page`,\n {\n uid: query.uid,\n },\n createOption(query),\n )\n}\n\n/**\n * 用户徽章\n */\nexport default async function migratedUserMedal(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n friendid: query.uid,\n }\n return request(`/api/user/mutualfollow/get`, data, createOption(query))\n}\n\n/**\n * 用户是否互相关注\n */\nexport default async function migratedUserMutualfollowGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserScopedListQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserScopedListQuery, request: ModuleRequest) => {\n const data = {\n uid: query.uid,\n limit: query.limit || 30,\n offset: query.offset || 0,\n includeVideo: true,\n }\n return request(`/api/user/playlist`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 用户歌单\n */\nexport default async function migratedUserPlaylist(\n query: UserScopedListQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '100',\n offset: query.offset || '0',\n userId: query.uid,\n isWebview: 'true',\n includeRedHeart: 'true',\n includeTop: 'true',\n }\n return request(`/api/user/playlist/collect`, data, createOption(query))\n}\n\n/**\n * 获取用户的收藏歌单列表\n */\nexport default async function migratedUserPlaylistCollect(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '100',\n offset: query.offset || '0',\n userId: query.uid,\n isWebview: 'true',\n includeRedHeart: 'true',\n includeTop: 'true',\n }\n return request(`/api/user/playlist/create`, data, createOption(query))\n}\n\n/**\n * 获取用户的创建歌单列表\n */\nexport default async function migratedUserPlaylistCreate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserRecordQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserRecordQuery, request: ModuleRequest) => {\n const data = {\n uid: query.uid,\n type: query.type || 0, // 1: 最近一周, 0: 所有时间\n }\n return request(`/api/v1/play/record`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 听歌排行\n */\nexport default async function migratedUserRecord(\n query: UserRecordQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n phone: query.phone,\n captcha: query.captcha,\n oldcaptcha: query.oldcaptcha,\n countrycode: query.countrycode || '86',\n }\n return request(`/api/user/replaceCellphone`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedUserReplacephone(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/social/user/status`,\n {\n visitorId: query.uid,\n },\n createOption(query),\n )\n}\n\n/**\n * 用户状态\n */\nexport default async function migratedUserSocialStatus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/social/user/status/edit`,\n {\n content: JSON.stringify({\n type: query.type,\n iconUrl: query.iconUrl,\n content: query.content,\n actionUrl: query.actionUrl,\n }),\n },\n createOption(query),\n )\n}\n\n/**\n * 用户状态 - 编辑\n */\nexport default async function migratedUserSocialStatusEdit(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/social/user/status/rcmd`, {}, createOption(query))\n}\n\n/**\n * 用户状态 - 相同状态的用户\n */\nexport default async function migratedUserSocialStatusRcmd(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(`/api/social/user/status/support`, {}, createOption(query))\n}\n\n/**\n * 用户状态 - 支持设置的状态\n */\nexport default async function migratedUserSocialStatusSupport(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { UserSummaryQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: UserSummaryQuery, request: ModuleRequest) => {\n return request(`/api/subcount`, {}, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏计数\n */\nexport default async function migratedUserSubcount(\n query: UserSummaryQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n // avatarImgId: '0',\n birthday: query.birthday,\n city: query.city,\n gender: query.gender,\n nickname: query.nickname,\n province: query.province,\n signature: query.signature,\n }\n return request(`/api/user/profile/update`, data, createOption(query))\n}\n\n/**\n * 编辑用户信息\n */\nexport default async function migratedUserUpdate(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import * as QRCode from 'qrcode'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { VerifyGetQrQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: VerifyGetQrQuery, request: ModuleRequest) => {\n const data = {\n verifyConfigId: query.vid,\n verifyType: query.type,\n token: query.token,\n params: JSON.stringify({\n event_id: query.evid,\n sign: query.sign,\n }),\n size: 150,\n }\n\n const res = await request(`/api/frontrisk/verify/getqrcode`, data, createOption(query, 'weapi'))\n const result = `https://st.music.163.com/encrypt-pages?qrCode=${\n res.body.data.qrCode\n }&verifyToken=${query.token}&verifyId=${query.vid}&verifyType=${\n query.type\n }&params=${JSON.stringify({\n event_id: query.evid,\n sign: query.sign,\n })}`\n return {\n status: 200,\n body: {\n code: 200,\n data: {\n qrCode: res.body.data.qrCode,\n qrurl: result,\n qrimg: await QRCode.toDataURL(result),\n },\n },\n }\n}\n\nexport default async function migratedVerifyGetQr(\n query: VerifyGetQrQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = async (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n qrCode: query.qr,\n }\n const res = await request(\n `/api/frontrisk/verify/qrcodestatus`,\n data,\n createOption(query, 'weapi'),\n )\n return res\n}\n\nexport default async function migratedVerifyQrcodestatus(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n total: 'true',\n limit: query.limit || 99,\n }\n return request(`/api/cloudvideo/category/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 视频分类列表\n */\nexport default async function migratedVideoCategoryList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/cloudvideo/v1/video/detail`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 视频详情\n */\nexport default async function migratedVideoDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n threadid: `R_VI_62_${query.vid}`,\n composeliked: true,\n }\n return request(`/api/comment/commentthread/info`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 视频点赞转发评论数数据\n */\nexport default async function migratedVideoDetailInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n groupId: query.id,\n offset: query.offset || 0,\n need_preview_url: 'true',\n total: true,\n }\n return request(\n `/api/videotimeline/videogroup/otherclient/get`,\n data,\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 视频标签/分类下的视频\n */\nexport default async function migratedVideoGroup(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/cloudvideo/group/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 视频标签列表\n */\nexport default async function migratedVideoGroupList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n query.t = Number(query.t) === 1 ? 'sub' : 'unsub'\n const data = {\n id: query.id,\n }\n return request(`/api/cloudvideo/video/${query.t}`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 收藏与取消收藏视频\n */\nexport default async function migratedVideoSub(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n groupId: 0,\n offset: query.offset || 0,\n need_preview_url: 'true',\n total: true,\n }\n // /api/videotimeline/otherclient/get\n return request(`/api/videotimeline/otherclient/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 全部视频列表\n */\nexport default async function migratedVideoTimelineAll(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n offset: query.offset || 0,\n filterLives: '[]',\n withProgramInfo: 'true',\n needUrl: '1',\n resolution: '480',\n }\n return request(`/api/videotimeline/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 推荐视频\n */\nexport default async function migratedVideoTimelineRecommend(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ids: '[\"' + query.id + '\"]',\n resolution: query.res || 1080,\n }\n return request(`/api/cloudvideo/playurl`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 视频链接\n */\nexport default async function migratedVideoUrl(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/vipnewcenter/app/level/growhpoint/basic`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 会员成长值\n */\nexport default async function migratedVipGrowthpoint(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 20,\n offset: query.offset || 0,\n }\n return request(`/api/vipnewcenter/app/level/growth/details`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 会员成长值领取记录\n */\nexport default async function migratedVipGrowthpointDetails(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n taskIds: query.ids,\n }\n return request(`/api/vipnewcenter/app/level/task/reward/get`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 领取会员成长值\n */\nexport default async function migratedVipGrowthpointGet(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/music-vip-membership/front/vip/info`,\n {\n userId: query.uid || '',\n },\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 获取 VIP 信息\n */\nexport default async function migratedVipInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n return request(\n `/api/music-vip-membership/client/vip/info`,\n {\n userId: query.uid || '',\n },\n createOption(query, 'weapi'),\n )\n}\n\n/**\n * 获取 VIP 信息\n */\nexport default async function migratedVipInfoV2(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/vipnewcenter/app/level/task/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 会员任务\n */\nexport default async function migratedVipTasks(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data: Record<string, unknown> = {}\n if (query.startTime && query.endTime) {\n data.startTime = query.startTime\n data.endTime = query.endTime\n data.type = 1\n data.limit = query.limit || 60\n }\n return request(`/api/vipmusic/newrecord/weekflow`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 黑胶时光机\n */\nexport default async function migratedVipTimemachine(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n ids: query.ids,\n }\n return request('/api/content/voice/delete', data, createOption(query))\n}\n\nexport default async function migratedVoiceDelete(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/voice/workbench/voice/detail`, data, createOption(query))\n}\n\nexport default async function migratedVoiceDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n programId: query.id,\n }\n return request(`/api/voice/lyric/get`, data, createOption(query))\n}\n\nexport default async function migratedVoiceLyric(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","const UPLOAD_ID_PATTERN = /<UploadId>([^<]+)<\\/UploadId>/iu\n\nexport function parseMultipartUploadId(xml: string): string {\n const match = xml.match(UPLOAD_ID_PATTERN)\n const uploadId = match?.[1]?.trim()\n\n if (!uploadId) {\n throw new TypeError('Missing UploadId in multipart upload response XML')\n }\n\n return uploadId\n}\n\nexport function createMultipartCompleteXml(etags: readonly string[]): string {\n const parts = etags\n .map((etag, index) => {\n return `<Part><PartNumber>${index + 1}</PartNumber><ETag>${etag}</ETag></Part>`\n })\n .join('')\n\n return `<CompleteMultipartUpload>${parts}</CompleteMultipartUpload>`\n}\n","import { randomUUID } from 'node:crypto'\n\nimport type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { VoiceUploadQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\nimport { createMultipartCompleteXml, parseMultipartUploadId } from './_voice-upload-xml.ts'\n\ninterface TokenAllocationBody {\n result: {\n docId: string\n objectKey: string\n token: string\n }\n}\n\ninterface VoiceUploadBody {\n data?: unknown\n}\n\nfunction createDupkey(): string {\n return randomUUID()\n}\n\nfunction isEnabledFlag(value: unknown): boolean {\n return Number(value) === 1\n}\n\nconst legacyModule = async (query: VoiceUploadQuery, request: ModuleRequest) => {\n if (!query.songFile) {\n throw {\n status: 500,\n body: {\n msg: '请上传音频文件',\n code: 500,\n },\n }\n }\n\n let ext = 'mp3'\n if (query.songFile.name.includes('flac')) {\n ext = 'flac'\n }\n const filename =\n query.songName ||\n query.songFile.name\n .replace('.' + ext, '')\n .replace(/\\s/g, '')\n .replace(/\\./g, '_')\n\n const tokenRes = await request<TokenAllocationBody>(\n `/api/nos/token/alloc`,\n {\n bucket: 'ymusic',\n ext: ext,\n filename: filename,\n local: false,\n nos_product: 0,\n type: 'other',\n },\n createOption(query, 'weapi'),\n )\n\n const objectKey = tokenRes.body.result.objectKey.replace('/', '%2F')\n const docId = tokenRes.body.result.docId\n const initResponse = await fetch(`https://ymusic.nos-hz.163yun.com/${objectKey}?uploads`, {\n method: 'POST',\n headers: {\n 'x-nos-token': tokenRes.body.result.token,\n 'X-Nos-Meta-Content-Type': 'audio/mpeg',\n },\n })\n const uploadId = parseMultipartUploadId(await initResponse.text())\n\n const fileSize = getBinarySize(query.songFile.data)\n const blockSize = 10 * 1024 * 1024 // 10MB\n let offset = 0\n let blockIndex = 1\n\n const etags: string[] = []\n\n while (offset < fileSize) {\n const chunk = sliceBinaryChunk(\n query.songFile.data,\n offset,\n Math.min(offset + blockSize, fileSize),\n )\n\n const partResponse = await fetch(\n `https://ymusic.nos-hz.163yun.com/${objectKey}?partNumber=${blockIndex}&uploadId=${uploadId}`,\n {\n method: 'PUT',\n headers: {\n 'x-nos-token': tokenRes.body.result.token,\n 'Content-Type': 'audio/mpeg',\n },\n body: chunk,\n },\n )\n const etag = partResponse.headers.get('etag') ?? ''\n etags.push(etag)\n offset += blockSize\n blockIndex++\n }\n\n // 文件处理\n await fetch(`https://ymusic.nos-hz.163yun.com/${objectKey}?uploadId=${uploadId}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain;charset=UTF-8',\n 'X-Nos-Meta-Content-Type': 'audio/mpeg',\n 'x-nos-token': tokenRes.body.result.token,\n },\n body: createMultipartCompleteXml(etags),\n })\n\n // preCheck\n await request(\n `/api/voice/workbench/voice/batch/upload/preCheck`,\n {\n dupkey: createDupkey(),\n voiceData: JSON.stringify([\n {\n name: filename,\n autoPublish: isEnabledFlag(query.autoPublish),\n autoPublishText: query.autoPublishText || '',\n description: query.description,\n voiceListId: query.voiceListId,\n coverImgId: query.coverImgId,\n dfsId: docId,\n categoryId: query.categoryId,\n secondCategoryId: query.secondCategoryId,\n composedSongs: query.composedSongs ? query.composedSongs.split(',') : [],\n privacy: isEnabledFlag(query.privacy),\n publishTime: query.publishTime || 0,\n orderNo: query.orderNo || 1,\n },\n ]),\n },\n {\n ...createOption(query),\n headers: {\n 'x-nos-token': tokenRes.body.result.token,\n },\n },\n )\n const result = await request<VoiceUploadBody>(\n `/api/voice/workbench/voice/batch/upload/v2`,\n {\n dupkey: createDupkey(),\n voiceData: JSON.stringify([\n {\n name: filename,\n autoPublish: isEnabledFlag(query.autoPublish),\n autoPublishText: query.autoPublishText || '',\n description: query.description,\n voiceListId: query.voiceListId,\n coverImgId: query.coverImgId,\n dfsId: docId,\n categoryId: query.categoryId,\n secondCategoryId: query.secondCategoryId,\n composedSongs: query.composedSongs ? query.composedSongs.split(',') : [],\n privacy: isEnabledFlag(query.privacy),\n publishTime: query.publishTime || 0,\n orderNo: query.orderNo || 1,\n },\n ]),\n },\n {\n ...createOption(query),\n headers: {\n 'x-nos-token': tokenRes.body.result.token,\n },\n },\n )\n return {\n status: 200,\n body: {\n code: 200,\n data: result.body.data,\n },\n }\n}\n\nexport default async function migratedVoiceUpload(\n query: VoiceUploadQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n\nfunction getBinarySize(data: ArrayBuffer | Buffer | Uint8Array): number {\n if (data instanceof ArrayBuffer) {\n return data.byteLength\n }\n\n return data.length\n}\n\nfunction sliceBinaryChunk(\n data: ArrayBuffer | Buffer | Uint8Array,\n start: number,\n end: number,\n): ArrayBuffer | Buffer | Uint8Array {\n if (data instanceof ArrayBuffer) {\n return data.slice(start, end)\n }\n\n return data.slice(start, end)\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n id: query.id,\n }\n return request(`/api/voice/workbench/voicelist/detail`, data, createOption(query))\n}\n\nexport default async function migratedVoicelistDetail(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '200',\n offset: query.offset || '0',\n voiceListId: query.voiceListId,\n }\n return request(`/api/voice/workbench/voices/by/voicelist`, data, createOption(query))\n}\n\nexport default async function migratedVoicelistList(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '200',\n offset: query.offset || '0',\n name: query.name || null,\n displayStatus: query.displayStatus || null,\n type: query.type || null,\n voiceFeeType: query.voiceFeeType || null,\n radioId: query.voiceListId,\n }\n return request('/api/voice/workbench/voice/list', data, createOption(query))\n}\n\n/**\n * 声音搜索\n */\nexport default async function migratedVoicelistListSearch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n fee: '-1',\n limit: query.limit || '200',\n offset: query.offset || '0',\n podcastName: query.podcastName || '',\n }\n return request(`/api/voice/workbench/voicelist/search`, data, createOption(query))\n}\n\nexport default async function migratedVoicelistSearch(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || '200', // 每页数量\n offset: query.offset || '0', // 偏移量\n radioId: query.radioId || null, // 电台id\n programId: query.programId || '0', // 节目id\n position: query.position || '1', // 排序编号\n }\n return request(`/api/voice/workbench/radio/program/trans`, data, createOption(query))\n}\n\nexport default async function migratedVoicelistTrans(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n // /api/point/today/get\n return request(`/api/point/signed/get`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbei(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 10,\n offset: query.offset || 0,\n }\n return request(`/api/point/expense`, data, createOption(query))\n}\n\nexport default async function migratedYunbeiExpense(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/v1/user/info`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiInfo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n songId: query.id,\n reason: query.reason || '好歌献给你',\n scene: '',\n fromUserId: -1,\n yunbeiNum: query.yunbeiNum || 10,\n }\n return request(`/api/yunbei/rcmd/song/submit`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 云贝推歌\n */\nexport default async function migratedYunbeiRcmdSong(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n page: JSON.stringify({\n size: query.size || 20,\n cursor: query.cursor || '',\n }),\n }\n return request(`/api/yunbei/rcmd/song/history/list`, data, createOption(query, 'weapi'))\n}\n\n/**\n * 云贝推歌历史记录\n */\nexport default async function migratedYunbeiRcmdSongHistory(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n limit: query.limit || 10,\n offset: query.offset || 0,\n }\n return request(`/api/point/receipt`, data, createOption(query))\n}\n\nexport default async function migratedYunbeiReceipt(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/pointmall/user/sign`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiSign(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {\n userTaskId: query.userTaskId,\n depositCode: query.depositCode || '0',\n }\n return request(`/api/usertool/task/point/receive`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiTaskFinish(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/usertool/task/list/all`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiTasks(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/usertool/task/todo/query`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiTasksTodo(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { ModuleRequest, NcmApiResponse } from '../types/index.ts'\nimport type { LegacyModuleQuery } from '../types/modules.ts'\n\nimport { createOption } from '../core/options.ts'\nimport { normalizeLegacyModuleError, normalizeLegacyModuleResponse } from './_migration.ts'\n\nconst legacyModule = (query: LegacyModuleQuery, request: ModuleRequest) => {\n const data = {}\n return request(`/api/point/today/get`, data, createOption(query, 'weapi'))\n}\n\nexport default async function migratedYunbeiToday(\n query: LegacyModuleQuery,\n request: ModuleRequest,\n): Promise<NcmApiResponse> {\n try {\n return normalizeLegacyModuleResponse(await legacyModule(query, request))\n } catch (error) {\n throw normalizeLegacyModuleError(error)\n }\n}\n","import type { SdkModuleRegistry } from '../../types/index.ts'\n\nimport activateInitProfileModule from '../../modules/activate_init_profile.ts'\nimport aidjContentRcmdModule from '../../modules/aidj_content_rcmd.ts'\nimport albumModule from '../../modules/album.ts'\nimport albumDetailModule from '../../modules/album_detail.ts'\nimport albumDetailDynamicModule from '../../modules/album_detail_dynamic.ts'\nimport albumListModule from '../../modules/album_list.ts'\nimport albumListStyleModule from '../../modules/album_list_style.ts'\nimport albumNewModule from '../../modules/album_new.ts'\nimport albumNewestModule from '../../modules/album_newest.ts'\nimport albumPrivilegeModule from '../../modules/album_privilege.ts'\nimport albumSongsaleboardModule from '../../modules/album_songsaleboard.ts'\nimport albumSubModule from '../../modules/album_sub.ts'\nimport albumSublistModule from '../../modules/album_sublist.ts'\nimport artistAlbumModule from '../../modules/artist_album.ts'\nimport artistDescModule from '../../modules/artist_desc.ts'\nimport artistDetailModule from '../../modules/artist_detail.ts'\nimport artistDetailDynamicModule from '../../modules/artist_detail_dynamic.ts'\nimport artistFansModule from '../../modules/artist_fans.ts'\nimport artistFollowCountModule from '../../modules/artist_follow_count.ts'\nimport artistListModule from '../../modules/artist_list.ts'\nimport artistMvModule from '../../modules/artist_mv.ts'\nimport artistNewMvModule from '../../modules/artist_new_mv.ts'\nimport artistNewSongModule from '../../modules/artist_new_song.ts'\nimport artistSongsModule from '../../modules/artist_songs.ts'\nimport artistSubModule from '../../modules/artist_sub.ts'\nimport artistSublistModule from '../../modules/artist_sublist.ts'\nimport artistTopSongModule from '../../modules/artist_top_song.ts'\nimport artistVideoModule from '../../modules/artist_video.ts'\nimport artistsModule from '../../modules/artists.ts'\nimport audioMatchModule from '../../modules/audio_match.ts'\nimport avatarUploadModule from '../../modules/avatar_upload.ts'\nimport bannerModule from '../../modules/banner.ts'\nimport batchModule from '../../modules/batch.ts'\nimport broadcastCategoryRegionGetModule from '../../modules/broadcast_category_region_get.ts'\nimport broadcastChannelCollectListModule from '../../modules/broadcast_channel_collect_list.ts'\nimport broadcastChannelCurrentinfoModule from '../../modules/broadcast_channel_currentinfo.ts'\nimport broadcastChannelListModule from '../../modules/broadcast_channel_list.ts'\nimport broadcastSubModule from '../../modules/broadcast_sub.ts'\nimport calendarModule from '../../modules/calendar.ts'\nimport captchaSentModule from '../../modules/captcha_sent.ts'\nimport captchaVerifyModule from '../../modules/captcha_verify.ts'\nimport cellphoneExistenceCheckModule from '../../modules/cellphone_existence_check.ts'\nimport checkMusicModule from '../../modules/check_music.ts'\nimport cloudModule from '../../modules/cloud.ts'\nimport cloudImportModule from '../../modules/cloud_import.ts'\nimport cloudMatchModule from '../../modules/cloud_match.ts'\nimport cloudsearchModule from '../../modules/cloudsearch.ts'\nimport commentModule from '../../modules/comment.ts'\nimport commentAlbumModule from '../../modules/comment_album.ts'\nimport commentDjModule from '../../modules/comment_dj.ts'\nimport commentEventModule from '../../modules/comment_event.ts'\nimport commentFloorModule from '../../modules/comment_floor.ts'\nimport commentHotModule from '../../modules/comment_hot.ts'\nimport commentHugListModule from '../../modules/comment_hug_list.ts'\nimport commentLikeModule from '../../modules/comment_like.ts'\nimport commentMusicModule from '../../modules/comment_music.ts'\nimport commentMvModule from '../../modules/comment_mv.ts'\nimport commentNewModule from '../../modules/comment_new.ts'\nimport commentPlaylistModule from '../../modules/comment_playlist.ts'\nimport commentVideoModule from '../../modules/comment_video.ts'\nimport countriesCodeListModule from '../../modules/countries_code_list.ts'\nimport dailySigninModule from '../../modules/daily_signin.ts'\nimport digitalAlbumDetailModule from '../../modules/digitalAlbum_detail.ts'\nimport digitalAlbumOrderingModule from '../../modules/digitalAlbum_ordering.ts'\nimport digitalAlbumPurchasedModule from '../../modules/digitalAlbum_purchased.ts'\nimport digitalAlbumSalesModule from '../../modules/digitalAlbum_sales.ts'\nimport djBannerModule from '../../modules/dj_banner.ts'\nimport djCategoryExcludehotModule from '../../modules/dj_category_excludehot.ts'\nimport djCategoryRecommendModule from '../../modules/dj_category_recommend.ts'\nimport djCatelistModule from '../../modules/dj_catelist.ts'\nimport djDetailModule from '../../modules/dj_detail.ts'\nimport djDifmAllStyleChannelModule from '../../modules/dj_difm_all_style_channel.ts'\nimport djDifmChannelSubscribeModule from '../../modules/dj_difm_channel_subscribe.ts'\nimport djDifmChannelUnsubscribeModule from '../../modules/dj_difm_channel_unsubscribe.ts'\nimport djDifmPlayingTracksListModule from '../../modules/dj_difm_playing_tracks_list.ts'\nimport djDifmSubscribeChannelsGetModule from '../../modules/dj_difm_subscribe_channels_get.ts'\nimport djHotModule from '../../modules/dj_hot.ts'\nimport djPaygiftModule from '../../modules/dj_paygift.ts'\nimport djPersonalizeRecommendModule from '../../modules/dj_personalize_recommend.ts'\nimport djProgramModule from '../../modules/dj_program.ts'\nimport djProgramDetailModule from '../../modules/dj_program_detail.ts'\nimport djProgramToplistModule from '../../modules/dj_program_toplist.ts'\nimport djProgramToplistHoursModule from '../../modules/dj_program_toplist_hours.ts'\nimport djRadioHotModule from '../../modules/dj_radio_hot.ts'\nimport djRecommendModule from '../../modules/dj_recommend.ts'\nimport djRecommendTypeModule from '../../modules/dj_recommend_type.ts'\nimport djSubModule from '../../modules/dj_sub.ts'\nimport djSublistModule from '../../modules/dj_sublist.ts'\nimport djSubscriberModule from '../../modules/dj_subscriber.ts'\nimport djTodayPerferedModule from '../../modules/dj_today_perfered.ts'\nimport djToplistModule from '../../modules/dj_toplist.ts'\nimport djToplistHoursModule from '../../modules/dj_toplist_hours.ts'\nimport djToplistNewcomerModule from '../../modules/dj_toplist_newcomer.ts'\nimport djToplistPayModule from '../../modules/dj_toplist_pay.ts'\nimport djToplistPopularModule from '../../modules/dj_toplist_popular.ts'\nimport djRadioTopModule from '../../modules/djRadio_top.ts'\nimport eventModule from '../../modules/event.ts'\nimport eventDelModule from '../../modules/event_del.ts'\nimport eventForwardModule from '../../modules/event_forward.ts'\nimport fmTrashModule from '../../modules/fm_trash.ts'\nimport followModule from '../../modules/follow.ts'\nimport getUseridsModule from '../../modules/get_userids.ts'\nimport historyRecommendSongsModule from '../../modules/history_recommend_songs.ts'\nimport historyRecommendSongsDetailModule from '../../modules/history_recommend_songs_detail.ts'\nimport homepageBlockPageModule from '../../modules/homepage_block_page.ts'\nimport homepageDragonBallModule from '../../modules/homepage_dragon_ball.ts'\nimport hotTopicModule from '../../modules/hot_topic.ts'\nimport hugCommentModule from '../../modules/hug_comment.ts'\nimport innerVersionModule from '../../modules/inner_version.ts'\nimport likeModule from '../../modules/like.ts'\nimport likelistModule from '../../modules/likelist.ts'\nimport listenDataRealtimeReportModule from '../../modules/listen_data_realtime_report.ts'\nimport listenDataReportModule from '../../modules/listen_data_report.ts'\nimport listenDataTodaySongModule from '../../modules/listen_data_today_song.ts'\nimport listenDataTotalModule from '../../modules/listen_data_total.ts'\nimport listenDataYearReportModule from '../../modules/listen_data_year_report.ts'\nimport listentogetherAcceptModule from '../../modules/listentogether_accept.ts'\nimport listentogetherEndModule from '../../modules/listentogether_end.ts'\nimport listentogetherHeatbeatModule from '../../modules/listentogether_heatbeat.ts'\nimport listentogetherPlayCommandModule from '../../modules/listentogether_play_command.ts'\nimport listentogetherRoomCheckModule from '../../modules/listentogether_room_check.ts'\nimport listentogetherRoomCreateModule from '../../modules/listentogether_room_create.ts'\nimport listentogetherStatusModule from '../../modules/listentogether_status.ts'\nimport listentogetherSyncListCommandModule from '../../modules/listentogether_sync_list_command.ts'\nimport listentogetherSyncPlaylistGetModule from '../../modules/listentogether_sync_playlist_get.ts'\nimport loginModule from '../../modules/login.ts'\nimport loginCellphoneModule from '../../modules/login_cellphone.ts'\nimport loginQrCheckModule from '../../modules/login_qr_check.ts'\nimport loginQrCreateModule from '../../modules/login_qr_create.ts'\nimport loginQrKeyModule from '../../modules/login_qr_key.ts'\nimport loginRefreshModule from '../../modules/login_refresh.ts'\nimport loginStatusModule from '../../modules/login_status.ts'\nimport logoutModule from '../../modules/logout.ts'\nimport lyricModule from '../../modules/lyric.ts'\nimport lyricNewModule from '../../modules/lyric_new.ts'\nimport mlogMusicRcmdModule from '../../modules/mlog_music_rcmd.ts'\nimport mlogToVideoModule from '../../modules/mlog_to_video.ts'\nimport mlogUrlModule from '../../modules/mlog_url.ts'\nimport msgCommentsModule from '../../modules/msg_comments.ts'\nimport msgForwardsModule from '../../modules/msg_forwards.ts'\nimport msgNoticesModule from '../../modules/msg_notices.ts'\nimport msgPrivateModule from '../../modules/msg_private.ts'\nimport msgPrivateHistoryModule from '../../modules/msg_private_history.ts'\nimport msgRecentcontactModule from '../../modules/msg_recentcontact.ts'\nimport musicFirstListenInfoModule from '../../modules/music_first_listen_info.ts'\nimport musicianCloudbeanModule from '../../modules/musician_cloudbean.ts'\nimport musicianCloudbeanObtainModule from '../../modules/musician_cloudbean_obtain.ts'\nimport musicianDataOverviewModule from '../../modules/musician_data_overview.ts'\nimport musicianPlayTrendModule from '../../modules/musician_play_trend.ts'\nimport musicianSignModule from '../../modules/musician_sign.ts'\nimport musicianTasksModule from '../../modules/musician_tasks.ts'\nimport musicianTasksNewModule from '../../modules/musician_tasks_new.ts'\nimport mvAllModule from '../../modules/mv_all.ts'\nimport mvDetailModule from '../../modules/mv_detail.ts'\nimport mvDetailInfoModule from '../../modules/mv_detail_info.ts'\nimport mvExclusiveRcmdModule from '../../modules/mv_exclusive_rcmd.ts'\nimport mvFirstModule from '../../modules/mv_first.ts'\nimport mvSubModule from '../../modules/mv_sub.ts'\nimport mvSublistModule from '../../modules/mv_sublist.ts'\nimport mvUrlModule from '../../modules/mv_url.ts'\nimport nicknameCheckModule from '../../modules/nickname_check.ts'\nimport personalFmModule from '../../modules/personal_fm.ts'\nimport personalFmModeModule from '../../modules/personal_fm_mode.ts'\nimport personalizedModule from '../../modules/personalized.ts'\nimport personalizedDjprogramModule from '../../modules/personalized_djprogram.ts'\nimport personalizedMvModule from '../../modules/personalized_mv.ts'\nimport personalizedNewsongModule from '../../modules/personalized_newsong.ts'\nimport personalizedPrivatecontentModule from '../../modules/personalized_privatecontent.ts'\nimport personalizedPrivatecontentListModule from '../../modules/personalized_privatecontent_list.ts'\nimport plCountModule from '../../modules/pl_count.ts'\nimport playlistCatlistModule from '../../modules/playlist_catlist.ts'\nimport playlistCoverUpdateModule from '../../modules/playlist_cover_update.ts'\nimport playlistCreateModule from '../../modules/playlist_create.ts'\nimport playlistDeleteModule from '../../modules/playlist_delete.ts'\nimport playlistDescUpdateModule from '../../modules/playlist_desc_update.ts'\nimport playlistDetailModule from '../../modules/playlist_detail.ts'\nimport playlistDetailDynamicModule from '../../modules/playlist_detail_dynamic.ts'\nimport playlistDetailRcmdGetModule from '../../modules/playlist_detail_rcmd_get.ts'\nimport playlistHighqualityTagsModule from '../../modules/playlist_highquality_tags.ts'\nimport playlistHotModule from '../../modules/playlist_hot.ts'\nimport playlistImportNameTaskCreateModule from '../../modules/playlist_import_name_task_create.ts'\nimport playlistImportTaskStatusModule from '../../modules/playlist_import_task_status.ts'\nimport playlistMylikeModule from '../../modules/playlist_mylike.ts'\nimport playlistNameUpdateModule from '../../modules/playlist_name_update.ts'\nimport playlistOrderUpdateModule from '../../modules/playlist_order_update.ts'\nimport playlistPrivacyModule from '../../modules/playlist_privacy.ts'\nimport playlistSubscribeModule from '../../modules/playlist_subscribe.ts'\nimport playlistSubscribersModule from '../../modules/playlist_subscribers.ts'\nimport playlistTagsUpdateModule from '../../modules/playlist_tags_update.ts'\nimport playlistTrackAddModule from '../../modules/playlist_track_add.ts'\nimport playlistTrackAllModule from '../../modules/playlist_track_all.ts'\nimport playlistTrackDeleteModule from '../../modules/playlist_track_delete.ts'\nimport playlistTracksModule from '../../modules/playlist_tracks.ts'\nimport playlistUpdateModule from '../../modules/playlist_update.ts'\nimport playlistUpdatePlaycountModule from '../../modules/playlist_update_playcount.ts'\nimport playlistVideoRecentModule from '../../modules/playlist_video_recent.ts'\nimport playmodeIntelligenceListModule from '../../modules/playmode_intelligence_list.ts'\nimport programRecommendModule from '../../modules/program_recommend.ts'\nimport rebindModule from '../../modules/rebind.ts'\nimport recentListenListModule from '../../modules/recent_listen_list.ts'\nimport recommendResourceModule from '../../modules/recommend_resource.ts'\nimport recommendSongsModule from '../../modules/recommend_songs.ts'\nimport recommendSongsDislikeModule from '../../modules/recommend_songs_dislike.ts'\nimport recordRecentAlbumModule from '../../modules/record_recent_album.ts'\nimport recordRecentDjModule from '../../modules/record_recent_dj.ts'\nimport recordRecentPlaylistModule from '../../modules/record_recent_playlist.ts'\nimport recordRecentSongModule from '../../modules/record_recent_song.ts'\nimport recordRecentVideoModule from '../../modules/record_recent_video.ts'\nimport recordRecentVoiceModule from '../../modules/record_recent_voice.ts'\nimport registerAnonimousModule from '../../modules/register_anonimous.ts'\nimport registerCellphoneModule from '../../modules/register_cellphone.ts'\nimport relatedAllvideoModule from '../../modules/related_allvideo.ts'\nimport relatedPlaylistModule from '../../modules/related_playlist.ts'\nimport resourceLikeModule from '../../modules/resource_like.ts'\nimport scrobbleModule from '../../modules/scrobble.ts'\nimport searchModule from '../../modules/search.ts'\nimport searchDefaultModule from '../../modules/search_default.ts'\nimport searchHotModule from '../../modules/search_hot.ts'\nimport searchHotDetailModule from '../../modules/search_hot_detail.ts'\nimport searchMatchModule from '../../modules/search_match.ts'\nimport searchMultimatchModule from '../../modules/search_multimatch.ts'\nimport searchSuggestModule from '../../modules/search_suggest.ts'\nimport sendAlbumModule from '../../modules/send_album.ts'\nimport sendPlaylistModule from '../../modules/send_playlist.ts'\nimport sendSongModule from '../../modules/send_song.ts'\nimport sendTextModule from '../../modules/send_text.ts'\nimport settingModule from '../../modules/setting.ts'\nimport shareResourceModule from '../../modules/share_resource.ts'\nimport sheetListModule from '../../modules/sheet_list.ts'\nimport sheetPreviewModule from '../../modules/sheet_preview.ts'\nimport signHappyInfoModule from '../../modules/sign_happy_info.ts'\nimport signinProgressModule from '../../modules/signin_progress.ts'\nimport simiArtistModule from '../../modules/simi_artist.ts'\nimport simiMvModule from '../../modules/simi_mv.ts'\nimport simiPlaylistModule from '../../modules/simi_playlist.ts'\nimport simiSongModule from '../../modules/simi_song.ts'\nimport simiUserModule from '../../modules/simi_user.ts'\nimport songChorusModule from '../../modules/song_chorus.ts'\nimport songDetailModule from '../../modules/song_detail.ts'\nimport songDownlistModule from '../../modules/song_downlist.ts'\nimport songDownloadUrlModule from '../../modules/song_download_url.ts'\nimport songDownloadUrlV1Module from '../../modules/song_download_url_v1.ts'\nimport songDynamicCoverModule from '../../modules/song_dynamic_cover.ts'\nimport songLikeCheckModule from '../../modules/song_like_check.ts'\nimport songLyricsMarkModule from '../../modules/song_lyrics_mark.ts'\nimport songLyricsMarkAddModule from '../../modules/song_lyrics_mark_add.ts'\nimport songLyricsMarkDelModule from '../../modules/song_lyrics_mark_del.ts'\nimport songLyricsMarkUserPageModule from '../../modules/song_lyrics_mark_user_page.ts'\nimport songMonthdownlistModule from '../../modules/song_monthdownlist.ts'\nimport songMusicDetailModule from '../../modules/song_music_detail.ts'\nimport songOrderUpdateModule from '../../modules/song_order_update.ts'\nimport songPurchasedModule from '../../modules/song_purchased.ts'\nimport songRedCountModule from '../../modules/song_red_count.ts'\nimport songSingledownlistModule from '../../modules/song_singledownlist.ts'\nimport songUrlModule from '../../modules/song_url.ts'\nimport songUrlV1Module from '../../modules/song_url_v1.ts'\nimport songWikiSummaryModule from '../../modules/song_wiki_summary.ts'\nimport starpickCommentsSummaryModule from '../../modules/starpick_comments_summary.ts'\nimport styleAlbumModule from '../../modules/style_album.ts'\nimport styleArtistModule from '../../modules/style_artist.ts'\nimport styleDetailModule from '../../modules/style_detail.ts'\nimport styleListModule from '../../modules/style_list.ts'\nimport stylePlaylistModule from '../../modules/style_playlist.ts'\nimport stylePreferenceModule from '../../modules/style_preference.ts'\nimport styleSongModule from '../../modules/style_song.ts'\nimport summaryAnnualModule from '../../modules/summary_annual.ts'\nimport topAlbumModule from '../../modules/top_album.ts'\nimport topArtistsModule from '../../modules/top_artists.ts'\nimport topListModule from '../../modules/top_list.ts'\nimport topMvModule from '../../modules/top_mv.ts'\nimport topPlaylistModule from '../../modules/top_playlist.ts'\nimport topPlaylistHighqualityModule from '../../modules/top_playlist_highquality.ts'\nimport topSongModule from '../../modules/top_song.ts'\nimport topicDetailModule from '../../modules/topic_detail.ts'\nimport topicDetailEventHotModule from '../../modules/topic_detail_event_hot.ts'\nimport topicSublistModule from '../../modules/topic_sublist.ts'\nimport toplistModule from '../../modules/toplist.ts'\nimport toplistArtistModule from '../../modules/toplist_artist.ts'\nimport toplistDetailModule from '../../modules/toplist_detail.ts'\nimport ugcAlbumGetModule from '../../modules/ugc_album_get.ts'\nimport ugcArtistGetModule from '../../modules/ugc_artist_get.ts'\nimport ugcArtistSearchModule from '../../modules/ugc_artist_search.ts'\nimport ugcDetailModule from '../../modules/ugc_detail.ts'\nimport ugcMvGetModule from '../../modules/ugc_mv_get.ts'\nimport ugcSongGetModule from '../../modules/ugc_song_get.ts'\nimport ugcUserDevoteModule from '../../modules/ugc_user_devote.ts'\nimport userAccountModule from '../../modules/user_account.ts'\nimport userAudioModule from '../../modules/user_audio.ts'\nimport userBindingModule from '../../modules/user_binding.ts'\nimport userCloudModule from '../../modules/user_cloud.ts'\nimport userCloudDelModule from '../../modules/user_cloud_del.ts'\nimport userCloudDetailModule from '../../modules/user_cloud_detail.ts'\nimport userCommentHistoryModule from '../../modules/user_comment_history.ts'\nimport userDetailModule from '../../modules/user_detail.ts'\nimport userDjModule from '../../modules/user_dj.ts'\nimport userEventModule from '../../modules/user_event.ts'\nimport userFollowMixedModule from '../../modules/user_follow_mixed.ts'\nimport userFollowedsModule from '../../modules/user_followeds.ts'\nimport userFollowsModule from '../../modules/user_follows.ts'\nimport userLevelModule from '../../modules/user_level.ts'\nimport userMedalModule from '../../modules/user_medal.ts'\nimport userMutualfollowGetModule from '../../modules/user_mutualfollow_get.ts'\nimport userPlaylistModule from '../../modules/user_playlist.ts'\nimport userPlaylistCollectModule from '../../modules/user_playlist_collect.ts'\nimport userPlaylistCreateModule from '../../modules/user_playlist_create.ts'\nimport userRecordModule from '../../modules/user_record.ts'\nimport userReplacephoneModule from '../../modules/user_replacephone.ts'\nimport userSocialStatusModule from '../../modules/user_social_status.ts'\nimport userSocialStatusEditModule from '../../modules/user_social_status_edit.ts'\nimport userSocialStatusRcmdModule from '../../modules/user_social_status_rcmd.ts'\nimport userSocialStatusSupportModule from '../../modules/user_social_status_support.ts'\nimport userSubcountModule from '../../modules/user_subcount.ts'\nimport userUpdateModule from '../../modules/user_update.ts'\nimport verifyGetQrModule from '../../modules/verify_getQr.ts'\nimport verifyQrcodestatusModule from '../../modules/verify_qrcodestatus.ts'\nimport videoCategoryListModule from '../../modules/video_category_list.ts'\nimport videoDetailModule from '../../modules/video_detail.ts'\nimport videoDetailInfoModule from '../../modules/video_detail_info.ts'\nimport videoGroupModule from '../../modules/video_group.ts'\nimport videoGroupListModule from '../../modules/video_group_list.ts'\nimport videoSubModule from '../../modules/video_sub.ts'\nimport videoTimelineAllModule from '../../modules/video_timeline_all.ts'\nimport videoTimelineRecommendModule from '../../modules/video_timeline_recommend.ts'\nimport videoUrlModule from '../../modules/video_url.ts'\nimport vipGrowthpointModule from '../../modules/vip_growthpoint.ts'\nimport vipGrowthpointDetailsModule from '../../modules/vip_growthpoint_details.ts'\nimport vipGrowthpointGetModule from '../../modules/vip_growthpoint_get.ts'\nimport vipInfoModule from '../../modules/vip_info.ts'\nimport vipInfoV2Module from '../../modules/vip_info_v2.ts'\nimport vipTasksModule from '../../modules/vip_tasks.ts'\nimport vipTimemachineModule from '../../modules/vip_timemachine.ts'\nimport voiceDeleteModule from '../../modules/voice_delete.ts'\nimport voiceDetailModule from '../../modules/voice_detail.ts'\nimport voiceLyricModule from '../../modules/voice_lyric.ts'\nimport voiceUploadModule from '../../modules/voice_upload.ts'\nimport voicelistDetailModule from '../../modules/voicelist_detail.ts'\nimport voicelistListModule from '../../modules/voicelist_list.ts'\nimport voicelistListSearchModule from '../../modules/voicelist_list_search.ts'\nimport voicelistSearchModule from '../../modules/voicelist_search.ts'\nimport voicelistTransModule from '../../modules/voicelist_trans.ts'\nimport yunbeiModule from '../../modules/yunbei.ts'\nimport yunbeiExpenseModule from '../../modules/yunbei_expense.ts'\nimport yunbeiInfoModule from '../../modules/yunbei_info.ts'\nimport yunbeiRcmdSongModule from '../../modules/yunbei_rcmd_song.ts'\nimport yunbeiRcmdSongHistoryModule from '../../modules/yunbei_rcmd_song_history.ts'\nimport yunbeiReceiptModule from '../../modules/yunbei_receipt.ts'\nimport yunbeiSignModule from '../../modules/yunbei_sign.ts'\nimport yunbeiTaskFinishModule from '../../modules/yunbei_task_finish.ts'\nimport yunbeiTasksModule from '../../modules/yunbei_tasks.ts'\nimport yunbeiTasksTodoModule from '../../modules/yunbei_tasks_todo.ts'\nimport yunbeiTodayModule from '../../modules/yunbei_today.ts'\n\nexport const sdkModuleRegistry = {\n activate_init_profile: activateInitProfileModule,\n aidj_content_rcmd: aidjContentRcmdModule,\n album: albumModule,\n album_detail: albumDetailModule,\n album_detail_dynamic: albumDetailDynamicModule,\n album_list: albumListModule,\n album_list_style: albumListStyleModule,\n album_new: albumNewModule,\n album_newest: albumNewestModule,\n album_privilege: albumPrivilegeModule,\n album_songsaleboard: albumSongsaleboardModule,\n album_sub: albumSubModule,\n album_sublist: albumSublistModule,\n artist_album: artistAlbumModule,\n artist_desc: artistDescModule,\n artist_detail: artistDetailModule,\n artist_detail_dynamic: artistDetailDynamicModule,\n artist_fans: artistFansModule,\n artist_follow_count: artistFollowCountModule,\n artist_list: artistListModule,\n artist_mv: artistMvModule,\n artist_new_mv: artistNewMvModule,\n artist_new_song: artistNewSongModule,\n artist_songs: artistSongsModule,\n artist_sub: artistSubModule,\n artist_sublist: artistSublistModule,\n artist_top_song: artistTopSongModule,\n artist_video: artistVideoModule,\n artists: artistsModule,\n audio_match: audioMatchModule,\n avatar_upload: avatarUploadModule,\n banner: bannerModule,\n batch: batchModule,\n broadcast_category_region_get: broadcastCategoryRegionGetModule,\n broadcast_channel_collect_list: broadcastChannelCollectListModule,\n broadcast_channel_currentinfo: broadcastChannelCurrentinfoModule,\n broadcast_channel_list: broadcastChannelListModule,\n broadcast_sub: broadcastSubModule,\n calendar: calendarModule,\n captcha_sent: captchaSentModule,\n captcha_verify: captchaVerifyModule,\n cellphone_existence_check: cellphoneExistenceCheckModule,\n check_music: checkMusicModule,\n cloud: cloudModule,\n cloud_import: cloudImportModule,\n cloud_match: cloudMatchModule,\n cloudsearch: cloudsearchModule,\n comment: commentModule,\n comment_album: commentAlbumModule,\n comment_dj: commentDjModule,\n comment_event: commentEventModule,\n comment_floor: commentFloorModule,\n comment_hot: commentHotModule,\n comment_hug_list: commentHugListModule,\n comment_like: commentLikeModule,\n comment_music: commentMusicModule,\n comment_mv: commentMvModule,\n comment_new: commentNewModule,\n comment_playlist: commentPlaylistModule,\n comment_video: commentVideoModule,\n countries_code_list: countriesCodeListModule,\n daily_signin: dailySigninModule,\n digitalAlbum_detail: digitalAlbumDetailModule,\n digitalAlbum_ordering: digitalAlbumOrderingModule,\n digitalAlbum_purchased: digitalAlbumPurchasedModule,\n digitalAlbum_sales: digitalAlbumSalesModule,\n dj_banner: djBannerModule,\n dj_category_excludehot: djCategoryExcludehotModule,\n dj_category_recommend: djCategoryRecommendModule,\n dj_catelist: djCatelistModule,\n dj_detail: djDetailModule,\n dj_difm_all_style_channel: djDifmAllStyleChannelModule,\n dj_difm_channel_subscribe: djDifmChannelSubscribeModule,\n dj_difm_channel_unsubscribe: djDifmChannelUnsubscribeModule,\n dj_difm_playing_tracks_list: djDifmPlayingTracksListModule,\n dj_difm_subscribe_channels_get: djDifmSubscribeChannelsGetModule,\n dj_hot: djHotModule,\n dj_paygift: djPaygiftModule,\n dj_personalize_recommend: djPersonalizeRecommendModule,\n dj_program: djProgramModule,\n dj_program_detail: djProgramDetailModule,\n dj_program_toplist: djProgramToplistModule,\n dj_program_toplist_hours: djProgramToplistHoursModule,\n dj_radio_hot: djRadioHotModule,\n dj_recommend: djRecommendModule,\n dj_recommend_type: djRecommendTypeModule,\n dj_sub: djSubModule,\n dj_sublist: djSublistModule,\n dj_subscriber: djSubscriberModule,\n dj_today_perfered: djTodayPerferedModule,\n dj_toplist: djToplistModule,\n dj_toplist_hours: djToplistHoursModule,\n dj_toplist_newcomer: djToplistNewcomerModule,\n dj_toplist_pay: djToplistPayModule,\n dj_toplist_popular: djToplistPopularModule,\n djRadio_top: djRadioTopModule,\n event: eventModule,\n event_del: eventDelModule,\n event_forward: eventForwardModule,\n fm_trash: fmTrashModule,\n follow: followModule,\n get_userids: getUseridsModule,\n history_recommend_songs: historyRecommendSongsModule,\n history_recommend_songs_detail: historyRecommendSongsDetailModule,\n homepage_block_page: homepageBlockPageModule,\n homepage_dragon_ball: homepageDragonBallModule,\n hot_topic: hotTopicModule,\n hug_comment: hugCommentModule,\n inner_version: innerVersionModule,\n like: likeModule,\n likelist: likelistModule,\n listen_data_realtime_report: listenDataRealtimeReportModule,\n listen_data_report: listenDataReportModule,\n listen_data_today_song: listenDataTodaySongModule,\n listen_data_total: listenDataTotalModule,\n listen_data_year_report: listenDataYearReportModule,\n listentogether_accept: listentogetherAcceptModule,\n listentogether_end: listentogetherEndModule,\n listentogether_heatbeat: listentogetherHeatbeatModule,\n listentogether_play_command: listentogetherPlayCommandModule,\n listentogether_room_check: listentogetherRoomCheckModule,\n listentogether_room_create: listentogetherRoomCreateModule,\n listentogether_status: listentogetherStatusModule,\n listentogether_sync_list_command: listentogetherSyncListCommandModule,\n listentogether_sync_playlist_get: listentogetherSyncPlaylistGetModule,\n login: loginModule,\n login_cellphone: loginCellphoneModule,\n login_qr_check: loginQrCheckModule,\n login_qr_create: loginQrCreateModule,\n login_qr_key: loginQrKeyModule,\n login_refresh: loginRefreshModule,\n login_status: loginStatusModule,\n logout: logoutModule,\n lyric: lyricModule,\n lyric_new: lyricNewModule,\n mlog_music_rcmd: mlogMusicRcmdModule,\n mlog_to_video: mlogToVideoModule,\n mlog_url: mlogUrlModule,\n msg_comments: msgCommentsModule,\n msg_forwards: msgForwardsModule,\n msg_notices: msgNoticesModule,\n msg_private: msgPrivateModule,\n msg_private_history: msgPrivateHistoryModule,\n msg_recentcontact: msgRecentcontactModule,\n music_first_listen_info: musicFirstListenInfoModule,\n musician_cloudbean: musicianCloudbeanModule,\n musician_cloudbean_obtain: musicianCloudbeanObtainModule,\n musician_data_overview: musicianDataOverviewModule,\n musician_play_trend: musicianPlayTrendModule,\n musician_sign: musicianSignModule,\n musician_tasks: musicianTasksModule,\n musician_tasks_new: musicianTasksNewModule,\n mv_all: mvAllModule,\n mv_detail: mvDetailModule,\n mv_detail_info: mvDetailInfoModule,\n mv_exclusive_rcmd: mvExclusiveRcmdModule,\n mv_first: mvFirstModule,\n mv_sub: mvSubModule,\n mv_sublist: mvSublistModule,\n mv_url: mvUrlModule,\n nickname_check: nicknameCheckModule,\n personal_fm: personalFmModule,\n personal_fm_mode: personalFmModeModule,\n personalized: personalizedModule,\n personalized_djprogram: personalizedDjprogramModule,\n personalized_mv: personalizedMvModule,\n personalized_newsong: personalizedNewsongModule,\n personalized_privatecontent: personalizedPrivatecontentModule,\n personalized_privatecontent_list: personalizedPrivatecontentListModule,\n pl_count: plCountModule,\n playlist_catlist: playlistCatlistModule,\n playlist_cover_update: playlistCoverUpdateModule,\n playlist_create: playlistCreateModule,\n playlist_delete: playlistDeleteModule,\n playlist_desc_update: playlistDescUpdateModule,\n playlist_detail: playlistDetailModule,\n playlist_detail_dynamic: playlistDetailDynamicModule,\n playlist_detail_rcmd_get: playlistDetailRcmdGetModule,\n playlist_highquality_tags: playlistHighqualityTagsModule,\n playlist_hot: playlistHotModule,\n playlist_import_name_task_create: playlistImportNameTaskCreateModule,\n playlist_import_task_status: playlistImportTaskStatusModule,\n playlist_mylike: playlistMylikeModule,\n playlist_name_update: playlistNameUpdateModule,\n playlist_order_update: playlistOrderUpdateModule,\n playlist_privacy: playlistPrivacyModule,\n playlist_subscribe: playlistSubscribeModule,\n playlist_subscribers: playlistSubscribersModule,\n playlist_tags_update: playlistTagsUpdateModule,\n playlist_track_add: playlistTrackAddModule,\n playlist_track_all: playlistTrackAllModule,\n playlist_track_delete: playlistTrackDeleteModule,\n playlist_tracks: playlistTracksModule,\n playlist_update: playlistUpdateModule,\n playlist_update_playcount: playlistUpdatePlaycountModule,\n playlist_video_recent: playlistVideoRecentModule,\n playmode_intelligence_list: playmodeIntelligenceListModule,\n program_recommend: programRecommendModule,\n rebind: rebindModule,\n recent_listen_list: recentListenListModule,\n recommend_resource: recommendResourceModule,\n recommend_songs: recommendSongsModule,\n recommend_songs_dislike: recommendSongsDislikeModule,\n record_recent_album: recordRecentAlbumModule,\n record_recent_dj: recordRecentDjModule,\n record_recent_playlist: recordRecentPlaylistModule,\n record_recent_song: recordRecentSongModule,\n record_recent_video: recordRecentVideoModule,\n record_recent_voice: recordRecentVoiceModule,\n register_anonimous: registerAnonimousModule,\n register_cellphone: registerCellphoneModule,\n related_allvideo: relatedAllvideoModule,\n related_playlist: relatedPlaylistModule,\n resource_like: resourceLikeModule,\n scrobble: scrobbleModule,\n search: searchModule,\n search_default: searchDefaultModule,\n search_hot: searchHotModule,\n search_hot_detail: searchHotDetailModule,\n search_match: searchMatchModule,\n search_multimatch: searchMultimatchModule,\n search_suggest: searchSuggestModule,\n send_album: sendAlbumModule,\n send_playlist: sendPlaylistModule,\n send_song: sendSongModule,\n send_text: sendTextModule,\n setting: settingModule,\n share_resource: shareResourceModule,\n sheet_list: sheetListModule,\n sheet_preview: sheetPreviewModule,\n sign_happy_info: signHappyInfoModule,\n signin_progress: signinProgressModule,\n simi_artist: simiArtistModule,\n simi_mv: simiMvModule,\n simi_playlist: simiPlaylistModule,\n simi_song: simiSongModule,\n simi_user: simiUserModule,\n song_chorus: songChorusModule,\n song_detail: songDetailModule,\n song_downlist: songDownlistModule,\n song_download_url: songDownloadUrlModule,\n song_download_url_v1: songDownloadUrlV1Module,\n song_dynamic_cover: songDynamicCoverModule,\n song_like_check: songLikeCheckModule,\n song_lyrics_mark: songLyricsMarkModule,\n song_lyrics_mark_add: songLyricsMarkAddModule,\n song_lyrics_mark_del: songLyricsMarkDelModule,\n song_lyrics_mark_user_page: songLyricsMarkUserPageModule,\n song_monthdownlist: songMonthdownlistModule,\n song_music_detail: songMusicDetailModule,\n song_order_update: songOrderUpdateModule,\n song_purchased: songPurchasedModule,\n song_red_count: songRedCountModule,\n song_singledownlist: songSingledownlistModule,\n song_url: songUrlModule,\n song_url_v1: songUrlV1Module,\n song_wiki_summary: songWikiSummaryModule,\n starpick_comments_summary: starpickCommentsSummaryModule,\n style_album: styleAlbumModule,\n style_artist: styleArtistModule,\n style_detail: styleDetailModule,\n style_list: styleListModule,\n style_playlist: stylePlaylistModule,\n style_preference: stylePreferenceModule,\n style_song: styleSongModule,\n summary_annual: summaryAnnualModule,\n top_album: topAlbumModule,\n top_artists: topArtistsModule,\n top_list: topListModule,\n top_mv: topMvModule,\n top_playlist: topPlaylistModule,\n top_playlist_highquality: topPlaylistHighqualityModule,\n top_song: topSongModule,\n topic_detail: topicDetailModule,\n topic_detail_event_hot: topicDetailEventHotModule,\n topic_sublist: topicSublistModule,\n toplist: toplistModule,\n toplist_artist: toplistArtistModule,\n toplist_detail: toplistDetailModule,\n ugc_album_get: ugcAlbumGetModule,\n ugc_artist_get: ugcArtistGetModule,\n ugc_artist_search: ugcArtistSearchModule,\n ugc_detail: ugcDetailModule,\n ugc_mv_get: ugcMvGetModule,\n ugc_song_get: ugcSongGetModule,\n ugc_user_devote: ugcUserDevoteModule,\n user_account: userAccountModule,\n user_audio: userAudioModule,\n user_binding: userBindingModule,\n user_cloud: userCloudModule,\n user_cloud_del: userCloudDelModule,\n user_cloud_detail: userCloudDetailModule,\n user_comment_history: userCommentHistoryModule,\n user_detail: userDetailModule,\n user_dj: userDjModule,\n user_event: userEventModule,\n user_follow_mixed: userFollowMixedModule,\n user_followeds: userFollowedsModule,\n user_follows: userFollowsModule,\n user_level: userLevelModule,\n user_medal: userMedalModule,\n user_mutualfollow_get: userMutualfollowGetModule,\n user_playlist: userPlaylistModule,\n user_playlist_collect: userPlaylistCollectModule,\n user_playlist_create: userPlaylistCreateModule,\n user_record: userRecordModule,\n user_replacephone: userReplacephoneModule,\n user_social_status: userSocialStatusModule,\n user_social_status_edit: userSocialStatusEditModule,\n user_social_status_rcmd: userSocialStatusRcmdModule,\n user_social_status_support: userSocialStatusSupportModule,\n user_subcount: userSubcountModule,\n user_update: userUpdateModule,\n verify_getQr: verifyGetQrModule,\n verify_qrcodestatus: verifyQrcodestatusModule,\n video_category_list: videoCategoryListModule,\n video_detail: videoDetailModule,\n video_detail_info: videoDetailInfoModule,\n video_group: videoGroupModule,\n video_group_list: videoGroupListModule,\n video_sub: videoSubModule,\n video_timeline_all: videoTimelineAllModule,\n video_timeline_recommend: videoTimelineRecommendModule,\n video_url: videoUrlModule,\n vip_growthpoint: vipGrowthpointModule,\n vip_growthpoint_details: vipGrowthpointDetailsModule,\n vip_growthpoint_get: vipGrowthpointGetModule,\n vip_info: vipInfoModule,\n vip_info_v2: vipInfoV2Module,\n vip_tasks: vipTasksModule,\n vip_timemachine: vipTimemachineModule,\n voice_delete: voiceDeleteModule,\n voice_detail: voiceDetailModule,\n voice_lyric: voiceLyricModule,\n voice_upload: voiceUploadModule,\n voicelist_detail: voicelistDetailModule,\n voicelist_list: voicelistListModule,\n voicelist_list_search: voicelistListSearchModule,\n voicelist_search: voicelistSearchModule,\n voicelist_trans: voicelistTransModule,\n yunbei: yunbeiModule,\n yunbei_expense: yunbeiExpenseModule,\n yunbei_info: yunbeiInfoModule,\n yunbei_rcmd_song: yunbeiRcmdSongModule,\n yunbei_rcmd_song_history: yunbeiRcmdSongHistoryModule,\n yunbei_receipt: yunbeiReceiptModule,\n yunbei_sign: yunbeiSignModule,\n yunbei_task_finish: yunbeiTaskFinishModule,\n yunbei_tasks: yunbeiTasksModule,\n yunbei_tasks_todo: yunbeiTasksTodoModule,\n yunbei_today: yunbeiTodayModule,\n} as const satisfies SdkModuleRegistry\n","import type {\n CreateHanaMusicApiConfig,\n LegacyCompatibleSdkModuleInvoker,\n ModuleCallConfig,\n ModuleIdentifier,\n ModuleQuery,\n ModuleQueryOf,\n ModuleRequest,\n ModuleResponseOf,\n SdkModuleImplementation,\n SdkModuleInvoker,\n SdkQueryOf,\n} from '../types/index.ts'\n\nimport { createRequest } from '../core/request.ts'\nimport { sdkModuleRegistry } from './generated/registry.generated.ts'\n\nfunction mergeQueryAndConfig(query: ModuleQuery, config: ModuleCallConfig = {}): ModuleQuery {\n return {\n ...config,\n ...query,\n }\n}\n\nexport async function invokeModule<K extends ModuleIdentifier>(\n identifier: K,\n query: SdkQueryOf<K>,\n config?: ModuleCallConfig,\n): Promise<ModuleResponseOf<K>> {\n const moduleImplementation = sdkModuleRegistry[identifier] as SdkModuleImplementation<K>\n return invokeStaticModule(identifier, moduleImplementation, query, config)\n}\n\nexport function createLegacyCompatibleModuleInvoker<K extends ModuleIdentifier>(\n identifier: K,\n moduleImplementation: SdkModuleImplementation<K>,\n): LegacyCompatibleSdkModuleInvoker<K> {\n return async (query = {} as ModuleQueryOf<K>) => {\n return moduleImplementation(query, createRequest as ModuleRequest)\n }\n}\n\nexport function createModuleInvoker<K extends ModuleIdentifier>(\n identifier: K,\n moduleImplementation: SdkModuleImplementation<K>,\n baseConfig: CreateHanaMusicApiConfig = {},\n): SdkModuleInvoker<K> {\n return (async (query?: SdkQueryOf<K>, config?: ModuleCallConfig) => {\n const resolvedQuery = (query ?? {}) as SdkQueryOf<K>\n\n return invokeStaticModule(identifier, moduleImplementation, resolvedQuery, {\n ...baseConfig,\n ...config,\n })\n }) as SdkModuleInvoker<K>\n}\n\nasync function invokeStaticModule<K extends ModuleIdentifier>(\n identifier: K,\n moduleImplementation: SdkModuleImplementation<K>,\n query: SdkQueryOf<K>,\n config?: ModuleCallConfig,\n): Promise<ModuleResponseOf<K>> {\n void identifier\n return moduleImplementation(\n mergeQueryAndConfig(query, config) as ModuleQueryOf<K>,\n createRequest as ModuleRequest,\n )\n}\n","import type { CreateHanaMusicApiConfig, SdkModuleInvoker } from '../../types/index.ts'\n\nimport { createModuleInvoker } from '../runtime.ts'\nimport { sdkModuleRegistry } from './registry.generated.ts'\n\nexport interface HanaMusicApiClient {\n activateInitProfile: SdkModuleInvoker<'activate_init_profile'>\n aidjContentRcmd: SdkModuleInvoker<'aidj_content_rcmd'>\n album: SdkModuleInvoker<'album'>\n albumDetail: SdkModuleInvoker<'album_detail'>\n albumDetailDynamic: SdkModuleInvoker<'album_detail_dynamic'>\n albumList: SdkModuleInvoker<'album_list'>\n albumListStyle: SdkModuleInvoker<'album_list_style'>\n albumNew: SdkModuleInvoker<'album_new'>\n albumNewest: SdkModuleInvoker<'album_newest'>\n albumPrivilege: SdkModuleInvoker<'album_privilege'>\n albumSongsaleboard: SdkModuleInvoker<'album_songsaleboard'>\n albumSub: SdkModuleInvoker<'album_sub'>\n albumSublist: SdkModuleInvoker<'album_sublist'>\n artistAlbum: SdkModuleInvoker<'artist_album'>\n artistDesc: SdkModuleInvoker<'artist_desc'>\n artistDetail: SdkModuleInvoker<'artist_detail'>\n artistDetailDynamic: SdkModuleInvoker<'artist_detail_dynamic'>\n artistFans: SdkModuleInvoker<'artist_fans'>\n artistFollowCount: SdkModuleInvoker<'artist_follow_count'>\n artistList: SdkModuleInvoker<'artist_list'>\n artistMv: SdkModuleInvoker<'artist_mv'>\n artistNewMv: SdkModuleInvoker<'artist_new_mv'>\n artistNewSong: SdkModuleInvoker<'artist_new_song'>\n artistSongs: SdkModuleInvoker<'artist_songs'>\n artistSub: SdkModuleInvoker<'artist_sub'>\n artistSublist: SdkModuleInvoker<'artist_sublist'>\n artistTopSong: SdkModuleInvoker<'artist_top_song'>\n artistVideo: SdkModuleInvoker<'artist_video'>\n artists: SdkModuleInvoker<'artists'>\n audioMatch: SdkModuleInvoker<'audio_match'>\n avatarUpload: SdkModuleInvoker<'avatar_upload'>\n banner: SdkModuleInvoker<'banner'>\n batch: SdkModuleInvoker<'batch'>\n broadcastCategoryRegionGet: SdkModuleInvoker<'broadcast_category_region_get'>\n broadcastChannelCollectList: SdkModuleInvoker<'broadcast_channel_collect_list'>\n broadcastChannelCurrentinfo: SdkModuleInvoker<'broadcast_channel_currentinfo'>\n broadcastChannelList: SdkModuleInvoker<'broadcast_channel_list'>\n broadcastSub: SdkModuleInvoker<'broadcast_sub'>\n calendar: SdkModuleInvoker<'calendar'>\n captchaSent: SdkModuleInvoker<'captcha_sent'>\n captchaVerify: SdkModuleInvoker<'captcha_verify'>\n cellphoneExistenceCheck: SdkModuleInvoker<'cellphone_existence_check'>\n checkMusic: SdkModuleInvoker<'check_music'>\n cloud: SdkModuleInvoker<'cloud'>\n cloudImport: SdkModuleInvoker<'cloud_import'>\n cloudMatch: SdkModuleInvoker<'cloud_match'>\n cloudsearch: SdkModuleInvoker<'cloudsearch'>\n comment: SdkModuleInvoker<'comment'>\n commentAlbum: SdkModuleInvoker<'comment_album'>\n commentDj: SdkModuleInvoker<'comment_dj'>\n commentEvent: SdkModuleInvoker<'comment_event'>\n commentFloor: SdkModuleInvoker<'comment_floor'>\n commentHot: SdkModuleInvoker<'comment_hot'>\n commentHugList: SdkModuleInvoker<'comment_hug_list'>\n commentLike: SdkModuleInvoker<'comment_like'>\n commentMusic: SdkModuleInvoker<'comment_music'>\n commentMv: SdkModuleInvoker<'comment_mv'>\n commentNew: SdkModuleInvoker<'comment_new'>\n commentPlaylist: SdkModuleInvoker<'comment_playlist'>\n commentVideo: SdkModuleInvoker<'comment_video'>\n countriesCodeList: SdkModuleInvoker<'countries_code_list'>\n dailySignin: SdkModuleInvoker<'daily_signin'>\n digitalAlbumDetail: SdkModuleInvoker<'digitalAlbum_detail'>\n digitalAlbumOrdering: SdkModuleInvoker<'digitalAlbum_ordering'>\n digitalAlbumPurchased: SdkModuleInvoker<'digitalAlbum_purchased'>\n digitalAlbumSales: SdkModuleInvoker<'digitalAlbum_sales'>\n djBanner: SdkModuleInvoker<'dj_banner'>\n djCategoryExcludehot: SdkModuleInvoker<'dj_category_excludehot'>\n djCategoryRecommend: SdkModuleInvoker<'dj_category_recommend'>\n djCatelist: SdkModuleInvoker<'dj_catelist'>\n djDetail: SdkModuleInvoker<'dj_detail'>\n djDifmAllStyleChannel: SdkModuleInvoker<'dj_difm_all_style_channel'>\n djDifmChannelSubscribe: SdkModuleInvoker<'dj_difm_channel_subscribe'>\n djDifmChannelUnsubscribe: SdkModuleInvoker<'dj_difm_channel_unsubscribe'>\n djDifmPlayingTracksList: SdkModuleInvoker<'dj_difm_playing_tracks_list'>\n djDifmSubscribeChannelsGet: SdkModuleInvoker<'dj_difm_subscribe_channels_get'>\n djHot: SdkModuleInvoker<'dj_hot'>\n djPaygift: SdkModuleInvoker<'dj_paygift'>\n djPersonalizeRecommend: SdkModuleInvoker<'dj_personalize_recommend'>\n djProgram: SdkModuleInvoker<'dj_program'>\n djProgramDetail: SdkModuleInvoker<'dj_program_detail'>\n djProgramToplist: SdkModuleInvoker<'dj_program_toplist'>\n djProgramToplistHours: SdkModuleInvoker<'dj_program_toplist_hours'>\n djRadioHot: SdkModuleInvoker<'dj_radio_hot'>\n djRecommend: SdkModuleInvoker<'dj_recommend'>\n djRecommendType: SdkModuleInvoker<'dj_recommend_type'>\n djSub: SdkModuleInvoker<'dj_sub'>\n djSublist: SdkModuleInvoker<'dj_sublist'>\n djSubscriber: SdkModuleInvoker<'dj_subscriber'>\n djTodayPerfered: SdkModuleInvoker<'dj_today_perfered'>\n djToplist: SdkModuleInvoker<'dj_toplist'>\n djToplistHours: SdkModuleInvoker<'dj_toplist_hours'>\n djToplistNewcomer: SdkModuleInvoker<'dj_toplist_newcomer'>\n djToplistPay: SdkModuleInvoker<'dj_toplist_pay'>\n djToplistPopular: SdkModuleInvoker<'dj_toplist_popular'>\n djRadioTop: SdkModuleInvoker<'djRadio_top'>\n event: SdkModuleInvoker<'event'>\n eventDel: SdkModuleInvoker<'event_del'>\n eventForward: SdkModuleInvoker<'event_forward'>\n fmTrash: SdkModuleInvoker<'fm_trash'>\n follow: SdkModuleInvoker<'follow'>\n getUserids: SdkModuleInvoker<'get_userids'>\n historyRecommendSongs: SdkModuleInvoker<'history_recommend_songs'>\n historyRecommendSongsDetail: SdkModuleInvoker<'history_recommend_songs_detail'>\n homepageBlockPage: SdkModuleInvoker<'homepage_block_page'>\n homepageDragonBall: SdkModuleInvoker<'homepage_dragon_ball'>\n hotTopic: SdkModuleInvoker<'hot_topic'>\n hugComment: SdkModuleInvoker<'hug_comment'>\n innerVersion: SdkModuleInvoker<'inner_version'>\n like: SdkModuleInvoker<'like'>\n likelist: SdkModuleInvoker<'likelist'>\n listenDataRealtimeReport: SdkModuleInvoker<'listen_data_realtime_report'>\n listenDataReport: SdkModuleInvoker<'listen_data_report'>\n listenDataTodaySong: SdkModuleInvoker<'listen_data_today_song'>\n listenDataTotal: SdkModuleInvoker<'listen_data_total'>\n listenDataYearReport: SdkModuleInvoker<'listen_data_year_report'>\n listentogetherAccept: SdkModuleInvoker<'listentogether_accept'>\n listentogetherEnd: SdkModuleInvoker<'listentogether_end'>\n listentogetherHeatbeat: SdkModuleInvoker<'listentogether_heatbeat'>\n listentogetherPlayCommand: SdkModuleInvoker<'listentogether_play_command'>\n listentogetherRoomCheck: SdkModuleInvoker<'listentogether_room_check'>\n listentogetherRoomCreate: SdkModuleInvoker<'listentogether_room_create'>\n listentogetherStatus: SdkModuleInvoker<'listentogether_status'>\n listentogetherSyncListCommand: SdkModuleInvoker<'listentogether_sync_list_command'>\n listentogetherSyncPlaylistGet: SdkModuleInvoker<'listentogether_sync_playlist_get'>\n login: SdkModuleInvoker<'login'>\n loginCellphone: SdkModuleInvoker<'login_cellphone'>\n loginQrCheck: SdkModuleInvoker<'login_qr_check'>\n loginQrCreate: SdkModuleInvoker<'login_qr_create'>\n loginQrKey: SdkModuleInvoker<'login_qr_key'>\n loginRefresh: SdkModuleInvoker<'login_refresh'>\n loginStatus: SdkModuleInvoker<'login_status'>\n logout: SdkModuleInvoker<'logout'>\n lyric: SdkModuleInvoker<'lyric'>\n lyricNew: SdkModuleInvoker<'lyric_new'>\n mlogMusicRcmd: SdkModuleInvoker<'mlog_music_rcmd'>\n mlogToVideo: SdkModuleInvoker<'mlog_to_video'>\n mlogUrl: SdkModuleInvoker<'mlog_url'>\n msgComments: SdkModuleInvoker<'msg_comments'>\n msgForwards: SdkModuleInvoker<'msg_forwards'>\n msgNotices: SdkModuleInvoker<'msg_notices'>\n msgPrivate: SdkModuleInvoker<'msg_private'>\n msgPrivateHistory: SdkModuleInvoker<'msg_private_history'>\n msgRecentcontact: SdkModuleInvoker<'msg_recentcontact'>\n musicFirstListenInfo: SdkModuleInvoker<'music_first_listen_info'>\n musicianCloudbean: SdkModuleInvoker<'musician_cloudbean'>\n musicianCloudbeanObtain: SdkModuleInvoker<'musician_cloudbean_obtain'>\n musicianDataOverview: SdkModuleInvoker<'musician_data_overview'>\n musicianPlayTrend: SdkModuleInvoker<'musician_play_trend'>\n musicianSign: SdkModuleInvoker<'musician_sign'>\n musicianTasks: SdkModuleInvoker<'musician_tasks'>\n musicianTasksNew: SdkModuleInvoker<'musician_tasks_new'>\n mvAll: SdkModuleInvoker<'mv_all'>\n mvDetail: SdkModuleInvoker<'mv_detail'>\n mvDetailInfo: SdkModuleInvoker<'mv_detail_info'>\n mvExclusiveRcmd: SdkModuleInvoker<'mv_exclusive_rcmd'>\n mvFirst: SdkModuleInvoker<'mv_first'>\n mvSub: SdkModuleInvoker<'mv_sub'>\n mvSublist: SdkModuleInvoker<'mv_sublist'>\n mvUrl: SdkModuleInvoker<'mv_url'>\n nicknameCheck: SdkModuleInvoker<'nickname_check'>\n personalFm: SdkModuleInvoker<'personal_fm'>\n personalFmMode: SdkModuleInvoker<'personal_fm_mode'>\n personalized: SdkModuleInvoker<'personalized'>\n personalizedDjprogram: SdkModuleInvoker<'personalized_djprogram'>\n personalizedMv: SdkModuleInvoker<'personalized_mv'>\n personalizedNewsong: SdkModuleInvoker<'personalized_newsong'>\n personalizedPrivatecontent: SdkModuleInvoker<'personalized_privatecontent'>\n personalizedPrivatecontentList: SdkModuleInvoker<'personalized_privatecontent_list'>\n plCount: SdkModuleInvoker<'pl_count'>\n playlistCatlist: SdkModuleInvoker<'playlist_catlist'>\n playlistCoverUpdate: SdkModuleInvoker<'playlist_cover_update'>\n playlistCreate: SdkModuleInvoker<'playlist_create'>\n playlistDelete: SdkModuleInvoker<'playlist_delete'>\n playlistDescUpdate: SdkModuleInvoker<'playlist_desc_update'>\n playlistDetail: SdkModuleInvoker<'playlist_detail'>\n playlistDetailDynamic: SdkModuleInvoker<'playlist_detail_dynamic'>\n playlistDetailRcmdGet: SdkModuleInvoker<'playlist_detail_rcmd_get'>\n playlistHighqualityTags: SdkModuleInvoker<'playlist_highquality_tags'>\n playlistHot: SdkModuleInvoker<'playlist_hot'>\n playlistImportNameTaskCreate: SdkModuleInvoker<'playlist_import_name_task_create'>\n playlistImportTaskStatus: SdkModuleInvoker<'playlist_import_task_status'>\n playlistMylike: SdkModuleInvoker<'playlist_mylike'>\n playlistNameUpdate: SdkModuleInvoker<'playlist_name_update'>\n playlistOrderUpdate: SdkModuleInvoker<'playlist_order_update'>\n playlistPrivacy: SdkModuleInvoker<'playlist_privacy'>\n playlistSubscribe: SdkModuleInvoker<'playlist_subscribe'>\n playlistSubscribers: SdkModuleInvoker<'playlist_subscribers'>\n playlistTagsUpdate: SdkModuleInvoker<'playlist_tags_update'>\n playlistTrackAdd: SdkModuleInvoker<'playlist_track_add'>\n playlistTrackAll: SdkModuleInvoker<'playlist_track_all'>\n playlistTrackDelete: SdkModuleInvoker<'playlist_track_delete'>\n playlistTracks: SdkModuleInvoker<'playlist_tracks'>\n playlistUpdate: SdkModuleInvoker<'playlist_update'>\n playlistUpdatePlaycount: SdkModuleInvoker<'playlist_update_playcount'>\n playlistVideoRecent: SdkModuleInvoker<'playlist_video_recent'>\n playmodeIntelligenceList: SdkModuleInvoker<'playmode_intelligence_list'>\n programRecommend: SdkModuleInvoker<'program_recommend'>\n rebind: SdkModuleInvoker<'rebind'>\n recentListenList: SdkModuleInvoker<'recent_listen_list'>\n recommendResource: SdkModuleInvoker<'recommend_resource'>\n recommendSongs: SdkModuleInvoker<'recommend_songs'>\n recommendSongsDislike: SdkModuleInvoker<'recommend_songs_dislike'>\n recordRecentAlbum: SdkModuleInvoker<'record_recent_album'>\n recordRecentDj: SdkModuleInvoker<'record_recent_dj'>\n recordRecentPlaylist: SdkModuleInvoker<'record_recent_playlist'>\n recordRecentSong: SdkModuleInvoker<'record_recent_song'>\n recordRecentVideo: SdkModuleInvoker<'record_recent_video'>\n recordRecentVoice: SdkModuleInvoker<'record_recent_voice'>\n registerAnonimous: SdkModuleInvoker<'register_anonimous'>\n registerCellphone: SdkModuleInvoker<'register_cellphone'>\n relatedAllvideo: SdkModuleInvoker<'related_allvideo'>\n relatedPlaylist: SdkModuleInvoker<'related_playlist'>\n resourceLike: SdkModuleInvoker<'resource_like'>\n scrobble: SdkModuleInvoker<'scrobble'>\n search: SdkModuleInvoker<'search'>\n searchDefault: SdkModuleInvoker<'search_default'>\n searchHot: SdkModuleInvoker<'search_hot'>\n searchHotDetail: SdkModuleInvoker<'search_hot_detail'>\n searchMatch: SdkModuleInvoker<'search_match'>\n searchMultimatch: SdkModuleInvoker<'search_multimatch'>\n searchSuggest: SdkModuleInvoker<'search_suggest'>\n sendAlbum: SdkModuleInvoker<'send_album'>\n sendPlaylist: SdkModuleInvoker<'send_playlist'>\n sendSong: SdkModuleInvoker<'send_song'>\n sendText: SdkModuleInvoker<'send_text'>\n setting: SdkModuleInvoker<'setting'>\n shareResource: SdkModuleInvoker<'share_resource'>\n sheetList: SdkModuleInvoker<'sheet_list'>\n sheetPreview: SdkModuleInvoker<'sheet_preview'>\n signHappyInfo: SdkModuleInvoker<'sign_happy_info'>\n signinProgress: SdkModuleInvoker<'signin_progress'>\n simiArtist: SdkModuleInvoker<'simi_artist'>\n simiMv: SdkModuleInvoker<'simi_mv'>\n simiPlaylist: SdkModuleInvoker<'simi_playlist'>\n simiSong: SdkModuleInvoker<'simi_song'>\n simiUser: SdkModuleInvoker<'simi_user'>\n songChorus: SdkModuleInvoker<'song_chorus'>\n songDetail: SdkModuleInvoker<'song_detail'>\n songDownlist: SdkModuleInvoker<'song_downlist'>\n songDownloadUrl: SdkModuleInvoker<'song_download_url'>\n songDownloadUrlV1: SdkModuleInvoker<'song_download_url_v1'>\n songDynamicCover: SdkModuleInvoker<'song_dynamic_cover'>\n songLikeCheck: SdkModuleInvoker<'song_like_check'>\n songLyricsMark: SdkModuleInvoker<'song_lyrics_mark'>\n songLyricsMarkAdd: SdkModuleInvoker<'song_lyrics_mark_add'>\n songLyricsMarkDel: SdkModuleInvoker<'song_lyrics_mark_del'>\n songLyricsMarkUserPage: SdkModuleInvoker<'song_lyrics_mark_user_page'>\n songMonthdownlist: SdkModuleInvoker<'song_monthdownlist'>\n songMusicDetail: SdkModuleInvoker<'song_music_detail'>\n songOrderUpdate: SdkModuleInvoker<'song_order_update'>\n songPurchased: SdkModuleInvoker<'song_purchased'>\n songRedCount: SdkModuleInvoker<'song_red_count'>\n songSingledownlist: SdkModuleInvoker<'song_singledownlist'>\n songUrl: SdkModuleInvoker<'song_url'>\n songUrlV1: SdkModuleInvoker<'song_url_v1'>\n songWikiSummary: SdkModuleInvoker<'song_wiki_summary'>\n starpickCommentsSummary: SdkModuleInvoker<'starpick_comments_summary'>\n styleAlbum: SdkModuleInvoker<'style_album'>\n styleArtist: SdkModuleInvoker<'style_artist'>\n styleDetail: SdkModuleInvoker<'style_detail'>\n styleList: SdkModuleInvoker<'style_list'>\n stylePlaylist: SdkModuleInvoker<'style_playlist'>\n stylePreference: SdkModuleInvoker<'style_preference'>\n styleSong: SdkModuleInvoker<'style_song'>\n summaryAnnual: SdkModuleInvoker<'summary_annual'>\n topAlbum: SdkModuleInvoker<'top_album'>\n topArtists: SdkModuleInvoker<'top_artists'>\n topList: SdkModuleInvoker<'top_list'>\n topMv: SdkModuleInvoker<'top_mv'>\n topPlaylist: SdkModuleInvoker<'top_playlist'>\n topPlaylistHighquality: SdkModuleInvoker<'top_playlist_highquality'>\n topSong: SdkModuleInvoker<'top_song'>\n topicDetail: SdkModuleInvoker<'topic_detail'>\n topicDetailEventHot: SdkModuleInvoker<'topic_detail_event_hot'>\n topicSublist: SdkModuleInvoker<'topic_sublist'>\n toplist: SdkModuleInvoker<'toplist'>\n toplistArtist: SdkModuleInvoker<'toplist_artist'>\n toplistDetail: SdkModuleInvoker<'toplist_detail'>\n ugcAlbumGet: SdkModuleInvoker<'ugc_album_get'>\n ugcArtistGet: SdkModuleInvoker<'ugc_artist_get'>\n ugcArtistSearch: SdkModuleInvoker<'ugc_artist_search'>\n ugcDetail: SdkModuleInvoker<'ugc_detail'>\n ugcMvGet: SdkModuleInvoker<'ugc_mv_get'>\n ugcSongGet: SdkModuleInvoker<'ugc_song_get'>\n ugcUserDevote: SdkModuleInvoker<'ugc_user_devote'>\n userAccount: SdkModuleInvoker<'user_account'>\n userAudio: SdkModuleInvoker<'user_audio'>\n userBinding: SdkModuleInvoker<'user_binding'>\n userCloud: SdkModuleInvoker<'user_cloud'>\n userCloudDel: SdkModuleInvoker<'user_cloud_del'>\n userCloudDetail: SdkModuleInvoker<'user_cloud_detail'>\n userCommentHistory: SdkModuleInvoker<'user_comment_history'>\n userDetail: SdkModuleInvoker<'user_detail'>\n userDj: SdkModuleInvoker<'user_dj'>\n userEvent: SdkModuleInvoker<'user_event'>\n userFollowMixed: SdkModuleInvoker<'user_follow_mixed'>\n userFolloweds: SdkModuleInvoker<'user_followeds'>\n userFollows: SdkModuleInvoker<'user_follows'>\n userLevel: SdkModuleInvoker<'user_level'>\n userMedal: SdkModuleInvoker<'user_medal'>\n userMutualfollowGet: SdkModuleInvoker<'user_mutualfollow_get'>\n userPlaylist: SdkModuleInvoker<'user_playlist'>\n userPlaylistCollect: SdkModuleInvoker<'user_playlist_collect'>\n userPlaylistCreate: SdkModuleInvoker<'user_playlist_create'>\n userRecord: SdkModuleInvoker<'user_record'>\n userReplacephone: SdkModuleInvoker<'user_replacephone'>\n userSocialStatus: SdkModuleInvoker<'user_social_status'>\n userSocialStatusEdit: SdkModuleInvoker<'user_social_status_edit'>\n userSocialStatusRcmd: SdkModuleInvoker<'user_social_status_rcmd'>\n userSocialStatusSupport: SdkModuleInvoker<'user_social_status_support'>\n userSubcount: SdkModuleInvoker<'user_subcount'>\n userUpdate: SdkModuleInvoker<'user_update'>\n verifyGetQr: SdkModuleInvoker<'verify_getQr'>\n verifyQrcodestatus: SdkModuleInvoker<'verify_qrcodestatus'>\n videoCategoryList: SdkModuleInvoker<'video_category_list'>\n videoDetail: SdkModuleInvoker<'video_detail'>\n videoDetailInfo: SdkModuleInvoker<'video_detail_info'>\n videoGroup: SdkModuleInvoker<'video_group'>\n videoGroupList: SdkModuleInvoker<'video_group_list'>\n videoSub: SdkModuleInvoker<'video_sub'>\n videoTimelineAll: SdkModuleInvoker<'video_timeline_all'>\n videoTimelineRecommend: SdkModuleInvoker<'video_timeline_recommend'>\n videoUrl: SdkModuleInvoker<'video_url'>\n vipGrowthpoint: SdkModuleInvoker<'vip_growthpoint'>\n vipGrowthpointDetails: SdkModuleInvoker<'vip_growthpoint_details'>\n vipGrowthpointGet: SdkModuleInvoker<'vip_growthpoint_get'>\n vipInfo: SdkModuleInvoker<'vip_info'>\n vipInfoV2: SdkModuleInvoker<'vip_info_v2'>\n vipTasks: SdkModuleInvoker<'vip_tasks'>\n vipTimemachine: SdkModuleInvoker<'vip_timemachine'>\n voiceDelete: SdkModuleInvoker<'voice_delete'>\n voiceDetail: SdkModuleInvoker<'voice_detail'>\n voiceLyric: SdkModuleInvoker<'voice_lyric'>\n voiceUpload: SdkModuleInvoker<'voice_upload'>\n voicelistDetail: SdkModuleInvoker<'voicelist_detail'>\n voicelistList: SdkModuleInvoker<'voicelist_list'>\n voicelistListSearch: SdkModuleInvoker<'voicelist_list_search'>\n voicelistSearch: SdkModuleInvoker<'voicelist_search'>\n voicelistTrans: SdkModuleInvoker<'voicelist_trans'>\n yunbei: SdkModuleInvoker<'yunbei'>\n yunbeiExpense: SdkModuleInvoker<'yunbei_expense'>\n yunbeiInfo: SdkModuleInvoker<'yunbei_info'>\n yunbeiRcmdSong: SdkModuleInvoker<'yunbei_rcmd_song'>\n yunbeiRcmdSongHistory: SdkModuleInvoker<'yunbei_rcmd_song_history'>\n yunbeiReceipt: SdkModuleInvoker<'yunbei_receipt'>\n yunbeiSign: SdkModuleInvoker<'yunbei_sign'>\n yunbeiTaskFinish: SdkModuleInvoker<'yunbei_task_finish'>\n yunbeiTasks: SdkModuleInvoker<'yunbei_tasks'>\n yunbeiTasksTodo: SdkModuleInvoker<'yunbei_tasks_todo'>\n yunbeiToday: SdkModuleInvoker<'yunbei_today'>\n}\n\nexport const activateInitProfile = createModuleInvoker(\n 'activate_init_profile',\n sdkModuleRegistry.activate_init_profile,\n)\nexport const aidjContentRcmd = createModuleInvoker(\n 'aidj_content_rcmd',\n sdkModuleRegistry.aidj_content_rcmd,\n)\nexport const album = createModuleInvoker('album', sdkModuleRegistry.album)\nexport const albumDetail = createModuleInvoker('album_detail', sdkModuleRegistry.album_detail)\nexport const albumDetailDynamic = createModuleInvoker(\n 'album_detail_dynamic',\n sdkModuleRegistry.album_detail_dynamic,\n)\nexport const albumList = createModuleInvoker('album_list', sdkModuleRegistry.album_list)\nexport const albumListStyle = createModuleInvoker(\n 'album_list_style',\n sdkModuleRegistry.album_list_style,\n)\nexport const albumNew = createModuleInvoker('album_new', sdkModuleRegistry.album_new)\nexport const albumNewest = createModuleInvoker('album_newest', sdkModuleRegistry.album_newest)\nexport const albumPrivilege = createModuleInvoker(\n 'album_privilege',\n sdkModuleRegistry.album_privilege,\n)\nexport const albumSongsaleboard = createModuleInvoker(\n 'album_songsaleboard',\n sdkModuleRegistry.album_songsaleboard,\n)\nexport const albumSub = createModuleInvoker('album_sub', sdkModuleRegistry.album_sub)\nexport const albumSublist = createModuleInvoker('album_sublist', sdkModuleRegistry.album_sublist)\nexport const artistAlbum = createModuleInvoker('artist_album', sdkModuleRegistry.artist_album)\nexport const artistDesc = createModuleInvoker('artist_desc', sdkModuleRegistry.artist_desc)\nexport const artistDetail = createModuleInvoker('artist_detail', sdkModuleRegistry.artist_detail)\nexport const artistDetailDynamic = createModuleInvoker(\n 'artist_detail_dynamic',\n sdkModuleRegistry.artist_detail_dynamic,\n)\nexport const artistFans = createModuleInvoker('artist_fans', sdkModuleRegistry.artist_fans)\nexport const artistFollowCount = createModuleInvoker(\n 'artist_follow_count',\n sdkModuleRegistry.artist_follow_count,\n)\nexport const artistList = createModuleInvoker('artist_list', sdkModuleRegistry.artist_list)\nexport const artistMv = createModuleInvoker('artist_mv', sdkModuleRegistry.artist_mv)\nexport const artistNewMv = createModuleInvoker('artist_new_mv', sdkModuleRegistry.artist_new_mv)\nexport const artistNewSong = createModuleInvoker(\n 'artist_new_song',\n sdkModuleRegistry.artist_new_song,\n)\nexport const artistSongs = createModuleInvoker('artist_songs', sdkModuleRegistry.artist_songs)\nexport const artistSub = createModuleInvoker('artist_sub', sdkModuleRegistry.artist_sub)\nexport const artistSublist = createModuleInvoker('artist_sublist', sdkModuleRegistry.artist_sublist)\nexport const artistTopSong = createModuleInvoker(\n 'artist_top_song',\n sdkModuleRegistry.artist_top_song,\n)\nexport const artistVideo = createModuleInvoker('artist_video', sdkModuleRegistry.artist_video)\nexport const artists = createModuleInvoker('artists', sdkModuleRegistry.artists)\nexport const audioMatch = createModuleInvoker('audio_match', sdkModuleRegistry.audio_match)\nexport const avatarUpload = createModuleInvoker('avatar_upload', sdkModuleRegistry.avatar_upload)\nexport const banner = createModuleInvoker('banner', sdkModuleRegistry.banner)\nexport const batch = createModuleInvoker('batch', sdkModuleRegistry.batch)\nexport const broadcastCategoryRegionGet = createModuleInvoker(\n 'broadcast_category_region_get',\n sdkModuleRegistry.broadcast_category_region_get,\n)\nexport const broadcastChannelCollectList = createModuleInvoker(\n 'broadcast_channel_collect_list',\n sdkModuleRegistry.broadcast_channel_collect_list,\n)\nexport const broadcastChannelCurrentinfo = createModuleInvoker(\n 'broadcast_channel_currentinfo',\n sdkModuleRegistry.broadcast_channel_currentinfo,\n)\nexport const broadcastChannelList = createModuleInvoker(\n 'broadcast_channel_list',\n sdkModuleRegistry.broadcast_channel_list,\n)\nexport const broadcastSub = createModuleInvoker('broadcast_sub', sdkModuleRegistry.broadcast_sub)\nexport const calendar = createModuleInvoker('calendar', sdkModuleRegistry.calendar)\nexport const captchaSent = createModuleInvoker('captcha_sent', sdkModuleRegistry.captcha_sent)\nexport const captchaVerify = createModuleInvoker('captcha_verify', sdkModuleRegistry.captcha_verify)\nexport const cellphoneExistenceCheck = createModuleInvoker(\n 'cellphone_existence_check',\n sdkModuleRegistry.cellphone_existence_check,\n)\nexport const checkMusic = createModuleInvoker('check_music', sdkModuleRegistry.check_music)\nexport const cloud = createModuleInvoker('cloud', sdkModuleRegistry.cloud)\nexport const cloudImport = createModuleInvoker('cloud_import', sdkModuleRegistry.cloud_import)\nexport const cloudMatch = createModuleInvoker('cloud_match', sdkModuleRegistry.cloud_match)\nexport const cloudsearch = createModuleInvoker('cloudsearch', sdkModuleRegistry.cloudsearch)\nexport const comment = createModuleInvoker('comment', sdkModuleRegistry.comment)\nexport const commentAlbum = createModuleInvoker('comment_album', sdkModuleRegistry.comment_album)\nexport const commentDj = createModuleInvoker('comment_dj', sdkModuleRegistry.comment_dj)\nexport const commentEvent = createModuleInvoker('comment_event', sdkModuleRegistry.comment_event)\nexport const commentFloor = createModuleInvoker('comment_floor', sdkModuleRegistry.comment_floor)\nexport const commentHot = createModuleInvoker('comment_hot', sdkModuleRegistry.comment_hot)\nexport const commentHugList = createModuleInvoker(\n 'comment_hug_list',\n sdkModuleRegistry.comment_hug_list,\n)\nexport const commentLike = createModuleInvoker('comment_like', sdkModuleRegistry.comment_like)\nexport const commentMusic = createModuleInvoker('comment_music', sdkModuleRegistry.comment_music)\nexport const commentMv = createModuleInvoker('comment_mv', sdkModuleRegistry.comment_mv)\nexport const commentNew = createModuleInvoker('comment_new', sdkModuleRegistry.comment_new)\nexport const commentPlaylist = createModuleInvoker(\n 'comment_playlist',\n sdkModuleRegistry.comment_playlist,\n)\nexport const commentVideo = createModuleInvoker('comment_video', sdkModuleRegistry.comment_video)\nexport const countriesCodeList = createModuleInvoker(\n 'countries_code_list',\n sdkModuleRegistry.countries_code_list,\n)\nexport const dailySignin = createModuleInvoker('daily_signin', sdkModuleRegistry.daily_signin)\nexport const digitalAlbumDetail = createModuleInvoker(\n 'digitalAlbum_detail',\n sdkModuleRegistry.digitalAlbum_detail,\n)\nexport const digitalAlbumOrdering = createModuleInvoker(\n 'digitalAlbum_ordering',\n sdkModuleRegistry.digitalAlbum_ordering,\n)\nexport const digitalAlbumPurchased = createModuleInvoker(\n 'digitalAlbum_purchased',\n sdkModuleRegistry.digitalAlbum_purchased,\n)\nexport const digitalAlbumSales = createModuleInvoker(\n 'digitalAlbum_sales',\n sdkModuleRegistry.digitalAlbum_sales,\n)\nexport const djBanner = createModuleInvoker('dj_banner', sdkModuleRegistry.dj_banner)\nexport const djCategoryExcludehot = createModuleInvoker(\n 'dj_category_excludehot',\n sdkModuleRegistry.dj_category_excludehot,\n)\nexport const djCategoryRecommend = createModuleInvoker(\n 'dj_category_recommend',\n sdkModuleRegistry.dj_category_recommend,\n)\nexport const djCatelist = createModuleInvoker('dj_catelist', sdkModuleRegistry.dj_catelist)\nexport const djDetail = createModuleInvoker('dj_detail', sdkModuleRegistry.dj_detail)\nexport const djDifmAllStyleChannel = createModuleInvoker(\n 'dj_difm_all_style_channel',\n sdkModuleRegistry.dj_difm_all_style_channel,\n)\nexport const djDifmChannelSubscribe = createModuleInvoker(\n 'dj_difm_channel_subscribe',\n sdkModuleRegistry.dj_difm_channel_subscribe,\n)\nexport const djDifmChannelUnsubscribe = createModuleInvoker(\n 'dj_difm_channel_unsubscribe',\n sdkModuleRegistry.dj_difm_channel_unsubscribe,\n)\nexport const djDifmPlayingTracksList = createModuleInvoker(\n 'dj_difm_playing_tracks_list',\n sdkModuleRegistry.dj_difm_playing_tracks_list,\n)\nexport const djDifmSubscribeChannelsGet = createModuleInvoker(\n 'dj_difm_subscribe_channels_get',\n sdkModuleRegistry.dj_difm_subscribe_channels_get,\n)\nexport const djHot = createModuleInvoker('dj_hot', sdkModuleRegistry.dj_hot)\nexport const djPaygift = createModuleInvoker('dj_paygift', sdkModuleRegistry.dj_paygift)\nexport const djPersonalizeRecommend = createModuleInvoker(\n 'dj_personalize_recommend',\n sdkModuleRegistry.dj_personalize_recommend,\n)\nexport const djProgram = createModuleInvoker('dj_program', sdkModuleRegistry.dj_program)\nexport const djProgramDetail = createModuleInvoker(\n 'dj_program_detail',\n sdkModuleRegistry.dj_program_detail,\n)\nexport const djProgramToplist = createModuleInvoker(\n 'dj_program_toplist',\n sdkModuleRegistry.dj_program_toplist,\n)\nexport const djProgramToplistHours = createModuleInvoker(\n 'dj_program_toplist_hours',\n sdkModuleRegistry.dj_program_toplist_hours,\n)\nexport const djRadioHot = createModuleInvoker('dj_radio_hot', sdkModuleRegistry.dj_radio_hot)\nexport const djRecommend = createModuleInvoker('dj_recommend', sdkModuleRegistry.dj_recommend)\nexport const djRecommendType = createModuleInvoker(\n 'dj_recommend_type',\n sdkModuleRegistry.dj_recommend_type,\n)\nexport const djSub = createModuleInvoker('dj_sub', sdkModuleRegistry.dj_sub)\nexport const djSublist = createModuleInvoker('dj_sublist', sdkModuleRegistry.dj_sublist)\nexport const djSubscriber = createModuleInvoker('dj_subscriber', sdkModuleRegistry.dj_subscriber)\nexport const djTodayPerfered = createModuleInvoker(\n 'dj_today_perfered',\n sdkModuleRegistry.dj_today_perfered,\n)\nexport const djToplist = createModuleInvoker('dj_toplist', sdkModuleRegistry.dj_toplist)\nexport const djToplistHours = createModuleInvoker(\n 'dj_toplist_hours',\n sdkModuleRegistry.dj_toplist_hours,\n)\nexport const djToplistNewcomer = createModuleInvoker(\n 'dj_toplist_newcomer',\n sdkModuleRegistry.dj_toplist_newcomer,\n)\nexport const djToplistPay = createModuleInvoker('dj_toplist_pay', sdkModuleRegistry.dj_toplist_pay)\nexport const djToplistPopular = createModuleInvoker(\n 'dj_toplist_popular',\n sdkModuleRegistry.dj_toplist_popular,\n)\nexport const djRadioTop = createModuleInvoker('djRadio_top', sdkModuleRegistry.djRadio_top)\nexport const event = createModuleInvoker('event', sdkModuleRegistry.event)\nexport const eventDel = createModuleInvoker('event_del', sdkModuleRegistry.event_del)\nexport const eventForward = createModuleInvoker('event_forward', sdkModuleRegistry.event_forward)\nexport const fmTrash = createModuleInvoker('fm_trash', sdkModuleRegistry.fm_trash)\nexport const follow = createModuleInvoker('follow', sdkModuleRegistry.follow)\nexport const getUserids = createModuleInvoker('get_userids', sdkModuleRegistry.get_userids)\nexport const historyRecommendSongs = createModuleInvoker(\n 'history_recommend_songs',\n sdkModuleRegistry.history_recommend_songs,\n)\nexport const historyRecommendSongsDetail = createModuleInvoker(\n 'history_recommend_songs_detail',\n sdkModuleRegistry.history_recommend_songs_detail,\n)\nexport const homepageBlockPage = createModuleInvoker(\n 'homepage_block_page',\n sdkModuleRegistry.homepage_block_page,\n)\nexport const homepageDragonBall = createModuleInvoker(\n 'homepage_dragon_ball',\n sdkModuleRegistry.homepage_dragon_ball,\n)\nexport const hotTopic = createModuleInvoker('hot_topic', sdkModuleRegistry.hot_topic)\nexport const hugComment = createModuleInvoker('hug_comment', sdkModuleRegistry.hug_comment)\nexport const innerVersion = createModuleInvoker('inner_version', sdkModuleRegistry.inner_version)\nexport const like = createModuleInvoker('like', sdkModuleRegistry.like)\nexport const likelist = createModuleInvoker('likelist', sdkModuleRegistry.likelist)\nexport const listenDataRealtimeReport = createModuleInvoker(\n 'listen_data_realtime_report',\n sdkModuleRegistry.listen_data_realtime_report,\n)\nexport const listenDataReport = createModuleInvoker(\n 'listen_data_report',\n sdkModuleRegistry.listen_data_report,\n)\nexport const listenDataTodaySong = createModuleInvoker(\n 'listen_data_today_song',\n sdkModuleRegistry.listen_data_today_song,\n)\nexport const listenDataTotal = createModuleInvoker(\n 'listen_data_total',\n sdkModuleRegistry.listen_data_total,\n)\nexport const listenDataYearReport = createModuleInvoker(\n 'listen_data_year_report',\n sdkModuleRegistry.listen_data_year_report,\n)\nexport const listentogetherAccept = createModuleInvoker(\n 'listentogether_accept',\n sdkModuleRegistry.listentogether_accept,\n)\nexport const listentogetherEnd = createModuleInvoker(\n 'listentogether_end',\n sdkModuleRegistry.listentogether_end,\n)\nexport const listentogetherHeatbeat = createModuleInvoker(\n 'listentogether_heatbeat',\n sdkModuleRegistry.listentogether_heatbeat,\n)\nexport const listentogetherPlayCommand = createModuleInvoker(\n 'listentogether_play_command',\n sdkModuleRegistry.listentogether_play_command,\n)\nexport const listentogetherRoomCheck = createModuleInvoker(\n 'listentogether_room_check',\n sdkModuleRegistry.listentogether_room_check,\n)\nexport const listentogetherRoomCreate = createModuleInvoker(\n 'listentogether_room_create',\n sdkModuleRegistry.listentogether_room_create,\n)\nexport const listentogetherStatus = createModuleInvoker(\n 'listentogether_status',\n sdkModuleRegistry.listentogether_status,\n)\nexport const listentogetherSyncListCommand = createModuleInvoker(\n 'listentogether_sync_list_command',\n sdkModuleRegistry.listentogether_sync_list_command,\n)\nexport const listentogetherSyncPlaylistGet = createModuleInvoker(\n 'listentogether_sync_playlist_get',\n sdkModuleRegistry.listentogether_sync_playlist_get,\n)\nexport const login = createModuleInvoker('login', sdkModuleRegistry.login)\nexport const loginCellphone = createModuleInvoker(\n 'login_cellphone',\n sdkModuleRegistry.login_cellphone,\n)\nexport const loginQrCheck = createModuleInvoker('login_qr_check', sdkModuleRegistry.login_qr_check)\nexport const loginQrCreate = createModuleInvoker(\n 'login_qr_create',\n sdkModuleRegistry.login_qr_create,\n)\nexport const loginQrKey = createModuleInvoker('login_qr_key', sdkModuleRegistry.login_qr_key)\nexport const loginRefresh = createModuleInvoker('login_refresh', sdkModuleRegistry.login_refresh)\nexport const loginStatus = createModuleInvoker('login_status', sdkModuleRegistry.login_status)\nexport const logout = createModuleInvoker('logout', sdkModuleRegistry.logout)\nexport const lyric = createModuleInvoker('lyric', sdkModuleRegistry.lyric)\nexport const lyricNew = createModuleInvoker('lyric_new', sdkModuleRegistry.lyric_new)\nexport const mlogMusicRcmd = createModuleInvoker(\n 'mlog_music_rcmd',\n sdkModuleRegistry.mlog_music_rcmd,\n)\nexport const mlogToVideo = createModuleInvoker('mlog_to_video', sdkModuleRegistry.mlog_to_video)\nexport const mlogUrl = createModuleInvoker('mlog_url', sdkModuleRegistry.mlog_url)\nexport const msgComments = createModuleInvoker('msg_comments', sdkModuleRegistry.msg_comments)\nexport const msgForwards = createModuleInvoker('msg_forwards', sdkModuleRegistry.msg_forwards)\nexport const msgNotices = createModuleInvoker('msg_notices', sdkModuleRegistry.msg_notices)\nexport const msgPrivate = createModuleInvoker('msg_private', sdkModuleRegistry.msg_private)\nexport const msgPrivateHistory = createModuleInvoker(\n 'msg_private_history',\n sdkModuleRegistry.msg_private_history,\n)\nexport const msgRecentcontact = createModuleInvoker(\n 'msg_recentcontact',\n sdkModuleRegistry.msg_recentcontact,\n)\nexport const musicFirstListenInfo = createModuleInvoker(\n 'music_first_listen_info',\n sdkModuleRegistry.music_first_listen_info,\n)\nexport const musicianCloudbean = createModuleInvoker(\n 'musician_cloudbean',\n sdkModuleRegistry.musician_cloudbean,\n)\nexport const musicianCloudbeanObtain = createModuleInvoker(\n 'musician_cloudbean_obtain',\n sdkModuleRegistry.musician_cloudbean_obtain,\n)\nexport const musicianDataOverview = createModuleInvoker(\n 'musician_data_overview',\n sdkModuleRegistry.musician_data_overview,\n)\nexport const musicianPlayTrend = createModuleInvoker(\n 'musician_play_trend',\n sdkModuleRegistry.musician_play_trend,\n)\nexport const musicianSign = createModuleInvoker('musician_sign', sdkModuleRegistry.musician_sign)\nexport const musicianTasks = createModuleInvoker('musician_tasks', sdkModuleRegistry.musician_tasks)\nexport const musicianTasksNew = createModuleInvoker(\n 'musician_tasks_new',\n sdkModuleRegistry.musician_tasks_new,\n)\nexport const mvAll = createModuleInvoker('mv_all', sdkModuleRegistry.mv_all)\nexport const mvDetail = createModuleInvoker('mv_detail', sdkModuleRegistry.mv_detail)\nexport const mvDetailInfo = createModuleInvoker('mv_detail_info', sdkModuleRegistry.mv_detail_info)\nexport const mvExclusiveRcmd = createModuleInvoker(\n 'mv_exclusive_rcmd',\n sdkModuleRegistry.mv_exclusive_rcmd,\n)\nexport const mvFirst = createModuleInvoker('mv_first', sdkModuleRegistry.mv_first)\nexport const mvSub = createModuleInvoker('mv_sub', sdkModuleRegistry.mv_sub)\nexport const mvSublist = createModuleInvoker('mv_sublist', sdkModuleRegistry.mv_sublist)\nexport const mvUrl = createModuleInvoker('mv_url', sdkModuleRegistry.mv_url)\nexport const nicknameCheck = createModuleInvoker('nickname_check', sdkModuleRegistry.nickname_check)\nexport const personalFm = createModuleInvoker('personal_fm', sdkModuleRegistry.personal_fm)\nexport const personalFmMode = createModuleInvoker(\n 'personal_fm_mode',\n sdkModuleRegistry.personal_fm_mode,\n)\nexport const personalized = createModuleInvoker('personalized', sdkModuleRegistry.personalized)\nexport const personalizedDjprogram = createModuleInvoker(\n 'personalized_djprogram',\n sdkModuleRegistry.personalized_djprogram,\n)\nexport const personalizedMv = createModuleInvoker(\n 'personalized_mv',\n sdkModuleRegistry.personalized_mv,\n)\nexport const personalizedNewsong = createModuleInvoker(\n 'personalized_newsong',\n sdkModuleRegistry.personalized_newsong,\n)\nexport const personalizedPrivatecontent = createModuleInvoker(\n 'personalized_privatecontent',\n sdkModuleRegistry.personalized_privatecontent,\n)\nexport const personalizedPrivatecontentList = createModuleInvoker(\n 'personalized_privatecontent_list',\n sdkModuleRegistry.personalized_privatecontent_list,\n)\nexport const plCount = createModuleInvoker('pl_count', sdkModuleRegistry.pl_count)\nexport const playlistCatlist = createModuleInvoker(\n 'playlist_catlist',\n sdkModuleRegistry.playlist_catlist,\n)\nexport const playlistCoverUpdate = createModuleInvoker(\n 'playlist_cover_update',\n sdkModuleRegistry.playlist_cover_update,\n)\nexport const playlistCreate = createModuleInvoker(\n 'playlist_create',\n sdkModuleRegistry.playlist_create,\n)\nexport const playlistDelete = createModuleInvoker(\n 'playlist_delete',\n sdkModuleRegistry.playlist_delete,\n)\nexport const playlistDescUpdate = createModuleInvoker(\n 'playlist_desc_update',\n sdkModuleRegistry.playlist_desc_update,\n)\nexport const playlistDetail = createModuleInvoker(\n 'playlist_detail',\n sdkModuleRegistry.playlist_detail,\n)\nexport const playlistDetailDynamic = createModuleInvoker(\n 'playlist_detail_dynamic',\n sdkModuleRegistry.playlist_detail_dynamic,\n)\nexport const playlistDetailRcmdGet = createModuleInvoker(\n 'playlist_detail_rcmd_get',\n sdkModuleRegistry.playlist_detail_rcmd_get,\n)\nexport const playlistHighqualityTags = createModuleInvoker(\n 'playlist_highquality_tags',\n sdkModuleRegistry.playlist_highquality_tags,\n)\nexport const playlistHot = createModuleInvoker('playlist_hot', sdkModuleRegistry.playlist_hot)\nexport const playlistImportNameTaskCreate = createModuleInvoker(\n 'playlist_import_name_task_create',\n sdkModuleRegistry.playlist_import_name_task_create,\n)\nexport const playlistImportTaskStatus = createModuleInvoker(\n 'playlist_import_task_status',\n sdkModuleRegistry.playlist_import_task_status,\n)\nexport const playlistMylike = createModuleInvoker(\n 'playlist_mylike',\n sdkModuleRegistry.playlist_mylike,\n)\nexport const playlistNameUpdate = createModuleInvoker(\n 'playlist_name_update',\n sdkModuleRegistry.playlist_name_update,\n)\nexport const playlistOrderUpdate = createModuleInvoker(\n 'playlist_order_update',\n sdkModuleRegistry.playlist_order_update,\n)\nexport const playlistPrivacy = createModuleInvoker(\n 'playlist_privacy',\n sdkModuleRegistry.playlist_privacy,\n)\nexport const playlistSubscribe = createModuleInvoker(\n 'playlist_subscribe',\n sdkModuleRegistry.playlist_subscribe,\n)\nexport const playlistSubscribers = createModuleInvoker(\n 'playlist_subscribers',\n sdkModuleRegistry.playlist_subscribers,\n)\nexport const playlistTagsUpdate = createModuleInvoker(\n 'playlist_tags_update',\n sdkModuleRegistry.playlist_tags_update,\n)\nexport const playlistTrackAdd = createModuleInvoker(\n 'playlist_track_add',\n sdkModuleRegistry.playlist_track_add,\n)\nexport const playlistTrackAll = createModuleInvoker(\n 'playlist_track_all',\n sdkModuleRegistry.playlist_track_all,\n)\nexport const playlistTrackDelete = createModuleInvoker(\n 'playlist_track_delete',\n sdkModuleRegistry.playlist_track_delete,\n)\nexport const playlistTracks = createModuleInvoker(\n 'playlist_tracks',\n sdkModuleRegistry.playlist_tracks,\n)\nexport const playlistUpdate = createModuleInvoker(\n 'playlist_update',\n sdkModuleRegistry.playlist_update,\n)\nexport const playlistUpdatePlaycount = createModuleInvoker(\n 'playlist_update_playcount',\n sdkModuleRegistry.playlist_update_playcount,\n)\nexport const playlistVideoRecent = createModuleInvoker(\n 'playlist_video_recent',\n sdkModuleRegistry.playlist_video_recent,\n)\nexport const playmodeIntelligenceList = createModuleInvoker(\n 'playmode_intelligence_list',\n sdkModuleRegistry.playmode_intelligence_list,\n)\nexport const programRecommend = createModuleInvoker(\n 'program_recommend',\n sdkModuleRegistry.program_recommend,\n)\nexport const rebind = createModuleInvoker('rebind', sdkModuleRegistry.rebind)\nexport const recentListenList = createModuleInvoker(\n 'recent_listen_list',\n sdkModuleRegistry.recent_listen_list,\n)\nexport const recommendResource = createModuleInvoker(\n 'recommend_resource',\n sdkModuleRegistry.recommend_resource,\n)\nexport const recommendSongs = createModuleInvoker(\n 'recommend_songs',\n sdkModuleRegistry.recommend_songs,\n)\nexport const recommendSongsDislike = createModuleInvoker(\n 'recommend_songs_dislike',\n sdkModuleRegistry.recommend_songs_dislike,\n)\nexport const recordRecentAlbum = createModuleInvoker(\n 'record_recent_album',\n sdkModuleRegistry.record_recent_album,\n)\nexport const recordRecentDj = createModuleInvoker(\n 'record_recent_dj',\n sdkModuleRegistry.record_recent_dj,\n)\nexport const recordRecentPlaylist = createModuleInvoker(\n 'record_recent_playlist',\n sdkModuleRegistry.record_recent_playlist,\n)\nexport const recordRecentSong = createModuleInvoker(\n 'record_recent_song',\n sdkModuleRegistry.record_recent_song,\n)\nexport const recordRecentVideo = createModuleInvoker(\n 'record_recent_video',\n sdkModuleRegistry.record_recent_video,\n)\nexport const recordRecentVoice = createModuleInvoker(\n 'record_recent_voice',\n sdkModuleRegistry.record_recent_voice,\n)\nexport const registerAnonimous = createModuleInvoker(\n 'register_anonimous',\n sdkModuleRegistry.register_anonimous,\n)\nexport const registerCellphone = createModuleInvoker(\n 'register_cellphone',\n sdkModuleRegistry.register_cellphone,\n)\nexport const relatedAllvideo = createModuleInvoker(\n 'related_allvideo',\n sdkModuleRegistry.related_allvideo,\n)\nexport const relatedPlaylist = createModuleInvoker(\n 'related_playlist',\n sdkModuleRegistry.related_playlist,\n)\nexport const resourceLike = createModuleInvoker('resource_like', sdkModuleRegistry.resource_like)\nexport const scrobble = createModuleInvoker('scrobble', sdkModuleRegistry.scrobble)\nexport const search = createModuleInvoker('search', sdkModuleRegistry.search)\nexport const searchDefault = createModuleInvoker('search_default', sdkModuleRegistry.search_default)\nexport const searchHot = createModuleInvoker('search_hot', sdkModuleRegistry.search_hot)\nexport const searchHotDetail = createModuleInvoker(\n 'search_hot_detail',\n sdkModuleRegistry.search_hot_detail,\n)\nexport const searchMatch = createModuleInvoker('search_match', sdkModuleRegistry.search_match)\nexport const searchMultimatch = createModuleInvoker(\n 'search_multimatch',\n sdkModuleRegistry.search_multimatch,\n)\nexport const searchSuggest = createModuleInvoker('search_suggest', sdkModuleRegistry.search_suggest)\nexport const sendAlbum = createModuleInvoker('send_album', sdkModuleRegistry.send_album)\nexport const sendPlaylist = createModuleInvoker('send_playlist', sdkModuleRegistry.send_playlist)\nexport const sendSong = createModuleInvoker('send_song', sdkModuleRegistry.send_song)\nexport const sendText = createModuleInvoker('send_text', sdkModuleRegistry.send_text)\nexport const setting = createModuleInvoker('setting', sdkModuleRegistry.setting)\nexport const shareResource = createModuleInvoker('share_resource', sdkModuleRegistry.share_resource)\nexport const sheetList = createModuleInvoker('sheet_list', sdkModuleRegistry.sheet_list)\nexport const sheetPreview = createModuleInvoker('sheet_preview', sdkModuleRegistry.sheet_preview)\nexport const signHappyInfo = createModuleInvoker(\n 'sign_happy_info',\n sdkModuleRegistry.sign_happy_info,\n)\nexport const signinProgress = createModuleInvoker(\n 'signin_progress',\n sdkModuleRegistry.signin_progress,\n)\nexport const simiArtist = createModuleInvoker('simi_artist', sdkModuleRegistry.simi_artist)\nexport const simiMv = createModuleInvoker('simi_mv', sdkModuleRegistry.simi_mv)\nexport const simiPlaylist = createModuleInvoker('simi_playlist', sdkModuleRegistry.simi_playlist)\nexport const simiSong = createModuleInvoker('simi_song', sdkModuleRegistry.simi_song)\nexport const simiUser = createModuleInvoker('simi_user', sdkModuleRegistry.simi_user)\nexport const songChorus = createModuleInvoker('song_chorus', sdkModuleRegistry.song_chorus)\nexport const songDetail = createModuleInvoker('song_detail', sdkModuleRegistry.song_detail)\nexport const songDownlist = createModuleInvoker('song_downlist', sdkModuleRegistry.song_downlist)\nexport const songDownloadUrl = createModuleInvoker(\n 'song_download_url',\n sdkModuleRegistry.song_download_url,\n)\nexport const songDownloadUrlV1 = createModuleInvoker(\n 'song_download_url_v1',\n sdkModuleRegistry.song_download_url_v1,\n)\nexport const songDynamicCover = createModuleInvoker(\n 'song_dynamic_cover',\n sdkModuleRegistry.song_dynamic_cover,\n)\nexport const songLikeCheck = createModuleInvoker(\n 'song_like_check',\n sdkModuleRegistry.song_like_check,\n)\nexport const songLyricsMark = createModuleInvoker(\n 'song_lyrics_mark',\n sdkModuleRegistry.song_lyrics_mark,\n)\nexport const songLyricsMarkAdd = createModuleInvoker(\n 'song_lyrics_mark_add',\n sdkModuleRegistry.song_lyrics_mark_add,\n)\nexport const songLyricsMarkDel = createModuleInvoker(\n 'song_lyrics_mark_del',\n sdkModuleRegistry.song_lyrics_mark_del,\n)\nexport const songLyricsMarkUserPage = createModuleInvoker(\n 'song_lyrics_mark_user_page',\n sdkModuleRegistry.song_lyrics_mark_user_page,\n)\nexport const songMonthdownlist = createModuleInvoker(\n 'song_monthdownlist',\n sdkModuleRegistry.song_monthdownlist,\n)\nexport const songMusicDetail = createModuleInvoker(\n 'song_music_detail',\n sdkModuleRegistry.song_music_detail,\n)\nexport const songOrderUpdate = createModuleInvoker(\n 'song_order_update',\n sdkModuleRegistry.song_order_update,\n)\nexport const songPurchased = createModuleInvoker('song_purchased', sdkModuleRegistry.song_purchased)\nexport const songRedCount = createModuleInvoker('song_red_count', sdkModuleRegistry.song_red_count)\nexport const songSingledownlist = createModuleInvoker(\n 'song_singledownlist',\n sdkModuleRegistry.song_singledownlist,\n)\nexport const songUrl = createModuleInvoker('song_url', sdkModuleRegistry.song_url)\nexport const songUrlV1 = createModuleInvoker('song_url_v1', sdkModuleRegistry.song_url_v1)\nexport const songWikiSummary = createModuleInvoker(\n 'song_wiki_summary',\n sdkModuleRegistry.song_wiki_summary,\n)\nexport const starpickCommentsSummary = createModuleInvoker(\n 'starpick_comments_summary',\n sdkModuleRegistry.starpick_comments_summary,\n)\nexport const styleAlbum = createModuleInvoker('style_album', sdkModuleRegistry.style_album)\nexport const styleArtist = createModuleInvoker('style_artist', sdkModuleRegistry.style_artist)\nexport const styleDetail = createModuleInvoker('style_detail', sdkModuleRegistry.style_detail)\nexport const styleList = createModuleInvoker('style_list', sdkModuleRegistry.style_list)\nexport const stylePlaylist = createModuleInvoker('style_playlist', sdkModuleRegistry.style_playlist)\nexport const stylePreference = createModuleInvoker(\n 'style_preference',\n sdkModuleRegistry.style_preference,\n)\nexport const styleSong = createModuleInvoker('style_song', sdkModuleRegistry.style_song)\nexport const summaryAnnual = createModuleInvoker('summary_annual', sdkModuleRegistry.summary_annual)\nexport const topAlbum = createModuleInvoker('top_album', sdkModuleRegistry.top_album)\nexport const topArtists = createModuleInvoker('top_artists', sdkModuleRegistry.top_artists)\nexport const topList = createModuleInvoker('top_list', sdkModuleRegistry.top_list)\nexport const topMv = createModuleInvoker('top_mv', sdkModuleRegistry.top_mv)\nexport const topPlaylist = createModuleInvoker('top_playlist', sdkModuleRegistry.top_playlist)\nexport const topPlaylistHighquality = createModuleInvoker(\n 'top_playlist_highquality',\n sdkModuleRegistry.top_playlist_highquality,\n)\nexport const topSong = createModuleInvoker('top_song', sdkModuleRegistry.top_song)\nexport const topicDetail = createModuleInvoker('topic_detail', sdkModuleRegistry.topic_detail)\nexport const topicDetailEventHot = createModuleInvoker(\n 'topic_detail_event_hot',\n sdkModuleRegistry.topic_detail_event_hot,\n)\nexport const topicSublist = createModuleInvoker('topic_sublist', sdkModuleRegistry.topic_sublist)\nexport const toplist = createModuleInvoker('toplist', sdkModuleRegistry.toplist)\nexport const toplistArtist = createModuleInvoker('toplist_artist', sdkModuleRegistry.toplist_artist)\nexport const toplistDetail = createModuleInvoker('toplist_detail', sdkModuleRegistry.toplist_detail)\nexport const ugcAlbumGet = createModuleInvoker('ugc_album_get', sdkModuleRegistry.ugc_album_get)\nexport const ugcArtistGet = createModuleInvoker('ugc_artist_get', sdkModuleRegistry.ugc_artist_get)\nexport const ugcArtistSearch = createModuleInvoker(\n 'ugc_artist_search',\n sdkModuleRegistry.ugc_artist_search,\n)\nexport const ugcDetail = createModuleInvoker('ugc_detail', sdkModuleRegistry.ugc_detail)\nexport const ugcMvGet = createModuleInvoker('ugc_mv_get', sdkModuleRegistry.ugc_mv_get)\nexport const ugcSongGet = createModuleInvoker('ugc_song_get', sdkModuleRegistry.ugc_song_get)\nexport const ugcUserDevote = createModuleInvoker(\n 'ugc_user_devote',\n sdkModuleRegistry.ugc_user_devote,\n)\nexport const userAccount = createModuleInvoker('user_account', sdkModuleRegistry.user_account)\nexport const userAudio = createModuleInvoker('user_audio', sdkModuleRegistry.user_audio)\nexport const userBinding = createModuleInvoker('user_binding', sdkModuleRegistry.user_binding)\nexport const userCloud = createModuleInvoker('user_cloud', sdkModuleRegistry.user_cloud)\nexport const userCloudDel = createModuleInvoker('user_cloud_del', sdkModuleRegistry.user_cloud_del)\nexport const userCloudDetail = createModuleInvoker(\n 'user_cloud_detail',\n sdkModuleRegistry.user_cloud_detail,\n)\nexport const userCommentHistory = createModuleInvoker(\n 'user_comment_history',\n sdkModuleRegistry.user_comment_history,\n)\nexport const userDetail = createModuleInvoker('user_detail', sdkModuleRegistry.user_detail)\nexport const userDj = createModuleInvoker('user_dj', sdkModuleRegistry.user_dj)\nexport const userEvent = createModuleInvoker('user_event', sdkModuleRegistry.user_event)\nexport const userFollowMixed = createModuleInvoker(\n 'user_follow_mixed',\n sdkModuleRegistry.user_follow_mixed,\n)\nexport const userFolloweds = createModuleInvoker('user_followeds', sdkModuleRegistry.user_followeds)\nexport const userFollows = createModuleInvoker('user_follows', sdkModuleRegistry.user_follows)\nexport const userLevel = createModuleInvoker('user_level', sdkModuleRegistry.user_level)\nexport const userMedal = createModuleInvoker('user_medal', sdkModuleRegistry.user_medal)\nexport const userMutualfollowGet = createModuleInvoker(\n 'user_mutualfollow_get',\n sdkModuleRegistry.user_mutualfollow_get,\n)\nexport const userPlaylist = createModuleInvoker('user_playlist', sdkModuleRegistry.user_playlist)\nexport const userPlaylistCollect = createModuleInvoker(\n 'user_playlist_collect',\n sdkModuleRegistry.user_playlist_collect,\n)\nexport const userPlaylistCreate = createModuleInvoker(\n 'user_playlist_create',\n sdkModuleRegistry.user_playlist_create,\n)\nexport const userRecord = createModuleInvoker('user_record', sdkModuleRegistry.user_record)\nexport const userReplacephone = createModuleInvoker(\n 'user_replacephone',\n sdkModuleRegistry.user_replacephone,\n)\nexport const userSocialStatus = createModuleInvoker(\n 'user_social_status',\n sdkModuleRegistry.user_social_status,\n)\nexport const userSocialStatusEdit = createModuleInvoker(\n 'user_social_status_edit',\n sdkModuleRegistry.user_social_status_edit,\n)\nexport const userSocialStatusRcmd = createModuleInvoker(\n 'user_social_status_rcmd',\n sdkModuleRegistry.user_social_status_rcmd,\n)\nexport const userSocialStatusSupport = createModuleInvoker(\n 'user_social_status_support',\n sdkModuleRegistry.user_social_status_support,\n)\nexport const userSubcount = createModuleInvoker('user_subcount', sdkModuleRegistry.user_subcount)\nexport const userUpdate = createModuleInvoker('user_update', sdkModuleRegistry.user_update)\nexport const verifyGetQr = createModuleInvoker('verify_getQr', sdkModuleRegistry.verify_getQr)\nexport const verifyQrcodestatus = createModuleInvoker(\n 'verify_qrcodestatus',\n sdkModuleRegistry.verify_qrcodestatus,\n)\nexport const videoCategoryList = createModuleInvoker(\n 'video_category_list',\n sdkModuleRegistry.video_category_list,\n)\nexport const videoDetail = createModuleInvoker('video_detail', sdkModuleRegistry.video_detail)\nexport const videoDetailInfo = createModuleInvoker(\n 'video_detail_info',\n sdkModuleRegistry.video_detail_info,\n)\nexport const videoGroup = createModuleInvoker('video_group', sdkModuleRegistry.video_group)\nexport const videoGroupList = createModuleInvoker(\n 'video_group_list',\n sdkModuleRegistry.video_group_list,\n)\nexport const videoSub = createModuleInvoker('video_sub', sdkModuleRegistry.video_sub)\nexport const videoTimelineAll = createModuleInvoker(\n 'video_timeline_all',\n sdkModuleRegistry.video_timeline_all,\n)\nexport const videoTimelineRecommend = createModuleInvoker(\n 'video_timeline_recommend',\n sdkModuleRegistry.video_timeline_recommend,\n)\nexport const videoUrl = createModuleInvoker('video_url', sdkModuleRegistry.video_url)\nexport const vipGrowthpoint = createModuleInvoker(\n 'vip_growthpoint',\n sdkModuleRegistry.vip_growthpoint,\n)\nexport const vipGrowthpointDetails = createModuleInvoker(\n 'vip_growthpoint_details',\n sdkModuleRegistry.vip_growthpoint_details,\n)\nexport const vipGrowthpointGet = createModuleInvoker(\n 'vip_growthpoint_get',\n sdkModuleRegistry.vip_growthpoint_get,\n)\nexport const vipInfo = createModuleInvoker('vip_info', sdkModuleRegistry.vip_info)\nexport const vipInfoV2 = createModuleInvoker('vip_info_v2', sdkModuleRegistry.vip_info_v2)\nexport const vipTasks = createModuleInvoker('vip_tasks', sdkModuleRegistry.vip_tasks)\nexport const vipTimemachine = createModuleInvoker(\n 'vip_timemachine',\n sdkModuleRegistry.vip_timemachine,\n)\nexport const voiceDelete = createModuleInvoker('voice_delete', sdkModuleRegistry.voice_delete)\nexport const voiceDetail = createModuleInvoker('voice_detail', sdkModuleRegistry.voice_detail)\nexport const voiceLyric = createModuleInvoker('voice_lyric', sdkModuleRegistry.voice_lyric)\nexport const voiceUpload = createModuleInvoker('voice_upload', sdkModuleRegistry.voice_upload)\nexport const voicelistDetail = createModuleInvoker(\n 'voicelist_detail',\n sdkModuleRegistry.voicelist_detail,\n)\nexport const voicelistList = createModuleInvoker('voicelist_list', sdkModuleRegistry.voicelist_list)\nexport const voicelistListSearch = createModuleInvoker(\n 'voicelist_list_search',\n sdkModuleRegistry.voicelist_list_search,\n)\nexport const voicelistSearch = createModuleInvoker(\n 'voicelist_search',\n sdkModuleRegistry.voicelist_search,\n)\nexport const voicelistTrans = createModuleInvoker(\n 'voicelist_trans',\n sdkModuleRegistry.voicelist_trans,\n)\nexport const yunbei = createModuleInvoker('yunbei', sdkModuleRegistry.yunbei)\nexport const yunbeiExpense = createModuleInvoker('yunbei_expense', sdkModuleRegistry.yunbei_expense)\nexport const yunbeiInfo = createModuleInvoker('yunbei_info', sdkModuleRegistry.yunbei_info)\nexport const yunbeiRcmdSong = createModuleInvoker(\n 'yunbei_rcmd_song',\n sdkModuleRegistry.yunbei_rcmd_song,\n)\nexport const yunbeiRcmdSongHistory = createModuleInvoker(\n 'yunbei_rcmd_song_history',\n sdkModuleRegistry.yunbei_rcmd_song_history,\n)\nexport const yunbeiReceipt = createModuleInvoker('yunbei_receipt', sdkModuleRegistry.yunbei_receipt)\nexport const yunbeiSign = createModuleInvoker('yunbei_sign', sdkModuleRegistry.yunbei_sign)\nexport const yunbeiTaskFinish = createModuleInvoker(\n 'yunbei_task_finish',\n sdkModuleRegistry.yunbei_task_finish,\n)\nexport const yunbeiTasks = createModuleInvoker('yunbei_tasks', sdkModuleRegistry.yunbei_tasks)\nexport const yunbeiTasksTodo = createModuleInvoker(\n 'yunbei_tasks_todo',\n sdkModuleRegistry.yunbei_tasks_todo,\n)\nexport const yunbeiToday = createModuleInvoker('yunbei_today', sdkModuleRegistry.yunbei_today)\n\nexport function createHanaMusicApi(config: CreateHanaMusicApiConfig = {}): HanaMusicApiClient {\n return {\n activateInitProfile: createModuleInvoker(\n 'activate_init_profile',\n sdkModuleRegistry.activate_init_profile,\n config,\n ),\n aidjContentRcmd: createModuleInvoker(\n 'aidj_content_rcmd',\n sdkModuleRegistry.aidj_content_rcmd,\n config,\n ),\n album: createModuleInvoker('album', sdkModuleRegistry.album, config),\n albumDetail: createModuleInvoker('album_detail', sdkModuleRegistry.album_detail, config),\n albumDetailDynamic: createModuleInvoker(\n 'album_detail_dynamic',\n sdkModuleRegistry.album_detail_dynamic,\n config,\n ),\n albumList: createModuleInvoker('album_list', sdkModuleRegistry.album_list, config),\n albumListStyle: createModuleInvoker(\n 'album_list_style',\n sdkModuleRegistry.album_list_style,\n config,\n ),\n albumNew: createModuleInvoker('album_new', sdkModuleRegistry.album_new, config),\n albumNewest: createModuleInvoker('album_newest', sdkModuleRegistry.album_newest, config),\n albumPrivilege: createModuleInvoker(\n 'album_privilege',\n sdkModuleRegistry.album_privilege,\n config,\n ),\n albumSongsaleboard: createModuleInvoker(\n 'album_songsaleboard',\n sdkModuleRegistry.album_songsaleboard,\n config,\n ),\n albumSub: createModuleInvoker('album_sub', sdkModuleRegistry.album_sub, config),\n albumSublist: createModuleInvoker('album_sublist', sdkModuleRegistry.album_sublist, config),\n artistAlbum: createModuleInvoker('artist_album', sdkModuleRegistry.artist_album, config),\n artistDesc: createModuleInvoker('artist_desc', sdkModuleRegistry.artist_desc, config),\n artistDetail: createModuleInvoker('artist_detail', sdkModuleRegistry.artist_detail, config),\n artistDetailDynamic: createModuleInvoker(\n 'artist_detail_dynamic',\n sdkModuleRegistry.artist_detail_dynamic,\n config,\n ),\n artistFans: createModuleInvoker('artist_fans', sdkModuleRegistry.artist_fans, config),\n artistFollowCount: createModuleInvoker(\n 'artist_follow_count',\n sdkModuleRegistry.artist_follow_count,\n config,\n ),\n artistList: createModuleInvoker('artist_list', sdkModuleRegistry.artist_list, config),\n artistMv: createModuleInvoker('artist_mv', sdkModuleRegistry.artist_mv, config),\n artistNewMv: createModuleInvoker('artist_new_mv', sdkModuleRegistry.artist_new_mv, config),\n artistNewSong: createModuleInvoker(\n 'artist_new_song',\n sdkModuleRegistry.artist_new_song,\n config,\n ),\n artistSongs: createModuleInvoker('artist_songs', sdkModuleRegistry.artist_songs, config),\n artistSub: createModuleInvoker('artist_sub', sdkModuleRegistry.artist_sub, config),\n artistSublist: createModuleInvoker('artist_sublist', sdkModuleRegistry.artist_sublist, config),\n artistTopSong: createModuleInvoker(\n 'artist_top_song',\n sdkModuleRegistry.artist_top_song,\n config,\n ),\n artistVideo: createModuleInvoker('artist_video', sdkModuleRegistry.artist_video, config),\n artists: createModuleInvoker('artists', sdkModuleRegistry.artists, config),\n audioMatch: createModuleInvoker('audio_match', sdkModuleRegistry.audio_match, config),\n avatarUpload: createModuleInvoker('avatar_upload', sdkModuleRegistry.avatar_upload, config),\n banner: createModuleInvoker('banner', sdkModuleRegistry.banner, config),\n batch: createModuleInvoker('batch', sdkModuleRegistry.batch, config),\n broadcastCategoryRegionGet: createModuleInvoker(\n 'broadcast_category_region_get',\n sdkModuleRegistry.broadcast_category_region_get,\n config,\n ),\n broadcastChannelCollectList: createModuleInvoker(\n 'broadcast_channel_collect_list',\n sdkModuleRegistry.broadcast_channel_collect_list,\n config,\n ),\n broadcastChannelCurrentinfo: createModuleInvoker(\n 'broadcast_channel_currentinfo',\n sdkModuleRegistry.broadcast_channel_currentinfo,\n config,\n ),\n broadcastChannelList: createModuleInvoker(\n 'broadcast_channel_list',\n sdkModuleRegistry.broadcast_channel_list,\n config,\n ),\n broadcastSub: createModuleInvoker('broadcast_sub', sdkModuleRegistry.broadcast_sub, config),\n calendar: createModuleInvoker('calendar', sdkModuleRegistry.calendar, config),\n captchaSent: createModuleInvoker('captcha_sent', sdkModuleRegistry.captcha_sent, config),\n captchaVerify: createModuleInvoker('captcha_verify', sdkModuleRegistry.captcha_verify, config),\n cellphoneExistenceCheck: createModuleInvoker(\n 'cellphone_existence_check',\n sdkModuleRegistry.cellphone_existence_check,\n config,\n ),\n checkMusic: createModuleInvoker('check_music', sdkModuleRegistry.check_music, config),\n cloud: createModuleInvoker('cloud', sdkModuleRegistry.cloud, config),\n cloudImport: createModuleInvoker('cloud_import', sdkModuleRegistry.cloud_import, config),\n cloudMatch: createModuleInvoker('cloud_match', sdkModuleRegistry.cloud_match, config),\n cloudsearch: createModuleInvoker('cloudsearch', sdkModuleRegistry.cloudsearch, config),\n comment: createModuleInvoker('comment', sdkModuleRegistry.comment, config),\n commentAlbum: createModuleInvoker('comment_album', sdkModuleRegistry.comment_album, config),\n commentDj: createModuleInvoker('comment_dj', sdkModuleRegistry.comment_dj, config),\n commentEvent: createModuleInvoker('comment_event', sdkModuleRegistry.comment_event, config),\n commentFloor: createModuleInvoker('comment_floor', sdkModuleRegistry.comment_floor, config),\n commentHot: createModuleInvoker('comment_hot', sdkModuleRegistry.comment_hot, config),\n commentHugList: createModuleInvoker(\n 'comment_hug_list',\n sdkModuleRegistry.comment_hug_list,\n config,\n ),\n commentLike: createModuleInvoker('comment_like', sdkModuleRegistry.comment_like, config),\n commentMusic: createModuleInvoker('comment_music', sdkModuleRegistry.comment_music, config),\n commentMv: createModuleInvoker('comment_mv', sdkModuleRegistry.comment_mv, config),\n commentNew: createModuleInvoker('comment_new', sdkModuleRegistry.comment_new, config),\n commentPlaylist: createModuleInvoker(\n 'comment_playlist',\n sdkModuleRegistry.comment_playlist,\n config,\n ),\n commentVideo: createModuleInvoker('comment_video', sdkModuleRegistry.comment_video, config),\n countriesCodeList: createModuleInvoker(\n 'countries_code_list',\n sdkModuleRegistry.countries_code_list,\n config,\n ),\n dailySignin: createModuleInvoker('daily_signin', sdkModuleRegistry.daily_signin, config),\n digitalAlbumDetail: createModuleInvoker(\n 'digitalAlbum_detail',\n sdkModuleRegistry.digitalAlbum_detail,\n config,\n ),\n digitalAlbumOrdering: createModuleInvoker(\n 'digitalAlbum_ordering',\n sdkModuleRegistry.digitalAlbum_ordering,\n config,\n ),\n digitalAlbumPurchased: createModuleInvoker(\n 'digitalAlbum_purchased',\n sdkModuleRegistry.digitalAlbum_purchased,\n config,\n ),\n digitalAlbumSales: createModuleInvoker(\n 'digitalAlbum_sales',\n sdkModuleRegistry.digitalAlbum_sales,\n config,\n ),\n djBanner: createModuleInvoker('dj_banner', sdkModuleRegistry.dj_banner, config),\n djCategoryExcludehot: createModuleInvoker(\n 'dj_category_excludehot',\n sdkModuleRegistry.dj_category_excludehot,\n config,\n ),\n djCategoryRecommend: createModuleInvoker(\n 'dj_category_recommend',\n sdkModuleRegistry.dj_category_recommend,\n config,\n ),\n djCatelist: createModuleInvoker('dj_catelist', sdkModuleRegistry.dj_catelist, config),\n djDetail: createModuleInvoker('dj_detail', sdkModuleRegistry.dj_detail, config),\n djDifmAllStyleChannel: createModuleInvoker(\n 'dj_difm_all_style_channel',\n sdkModuleRegistry.dj_difm_all_style_channel,\n config,\n ),\n djDifmChannelSubscribe: createModuleInvoker(\n 'dj_difm_channel_subscribe',\n sdkModuleRegistry.dj_difm_channel_subscribe,\n config,\n ),\n djDifmChannelUnsubscribe: createModuleInvoker(\n 'dj_difm_channel_unsubscribe',\n sdkModuleRegistry.dj_difm_channel_unsubscribe,\n config,\n ),\n djDifmPlayingTracksList: createModuleInvoker(\n 'dj_difm_playing_tracks_list',\n sdkModuleRegistry.dj_difm_playing_tracks_list,\n config,\n ),\n djDifmSubscribeChannelsGet: createModuleInvoker(\n 'dj_difm_subscribe_channels_get',\n sdkModuleRegistry.dj_difm_subscribe_channels_get,\n config,\n ),\n djHot: createModuleInvoker('dj_hot', sdkModuleRegistry.dj_hot, config),\n djPaygift: createModuleInvoker('dj_paygift', sdkModuleRegistry.dj_paygift, config),\n djPersonalizeRecommend: createModuleInvoker(\n 'dj_personalize_recommend',\n sdkModuleRegistry.dj_personalize_recommend,\n config,\n ),\n djProgram: createModuleInvoker('dj_program', sdkModuleRegistry.dj_program, config),\n djProgramDetail: createModuleInvoker(\n 'dj_program_detail',\n sdkModuleRegistry.dj_program_detail,\n config,\n ),\n djProgramToplist: createModuleInvoker(\n 'dj_program_toplist',\n sdkModuleRegistry.dj_program_toplist,\n config,\n ),\n djProgramToplistHours: createModuleInvoker(\n 'dj_program_toplist_hours',\n sdkModuleRegistry.dj_program_toplist_hours,\n config,\n ),\n djRadioHot: createModuleInvoker('dj_radio_hot', sdkModuleRegistry.dj_radio_hot, config),\n djRecommend: createModuleInvoker('dj_recommend', sdkModuleRegistry.dj_recommend, config),\n djRecommendType: createModuleInvoker(\n 'dj_recommend_type',\n sdkModuleRegistry.dj_recommend_type,\n config,\n ),\n djSub: createModuleInvoker('dj_sub', sdkModuleRegistry.dj_sub, config),\n djSublist: createModuleInvoker('dj_sublist', sdkModuleRegistry.dj_sublist, config),\n djSubscriber: createModuleInvoker('dj_subscriber', sdkModuleRegistry.dj_subscriber, config),\n djTodayPerfered: createModuleInvoker(\n 'dj_today_perfered',\n sdkModuleRegistry.dj_today_perfered,\n config,\n ),\n djToplist: createModuleInvoker('dj_toplist', sdkModuleRegistry.dj_toplist, config),\n djToplistHours: createModuleInvoker(\n 'dj_toplist_hours',\n sdkModuleRegistry.dj_toplist_hours,\n config,\n ),\n djToplistNewcomer: createModuleInvoker(\n 'dj_toplist_newcomer',\n sdkModuleRegistry.dj_toplist_newcomer,\n config,\n ),\n djToplistPay: createModuleInvoker('dj_toplist_pay', sdkModuleRegistry.dj_toplist_pay, config),\n djToplistPopular: createModuleInvoker(\n 'dj_toplist_popular',\n sdkModuleRegistry.dj_toplist_popular,\n config,\n ),\n djRadioTop: createModuleInvoker('djRadio_top', sdkModuleRegistry.djRadio_top, config),\n event: createModuleInvoker('event', sdkModuleRegistry.event, config),\n eventDel: createModuleInvoker('event_del', sdkModuleRegistry.event_del, config),\n eventForward: createModuleInvoker('event_forward', sdkModuleRegistry.event_forward, config),\n fmTrash: createModuleInvoker('fm_trash', sdkModuleRegistry.fm_trash, config),\n follow: createModuleInvoker('follow', sdkModuleRegistry.follow, config),\n getUserids: createModuleInvoker('get_userids', sdkModuleRegistry.get_userids, config),\n historyRecommendSongs: createModuleInvoker(\n 'history_recommend_songs',\n sdkModuleRegistry.history_recommend_songs,\n config,\n ),\n historyRecommendSongsDetail: createModuleInvoker(\n 'history_recommend_songs_detail',\n sdkModuleRegistry.history_recommend_songs_detail,\n config,\n ),\n homepageBlockPage: createModuleInvoker(\n 'homepage_block_page',\n sdkModuleRegistry.homepage_block_page,\n config,\n ),\n homepageDragonBall: createModuleInvoker(\n 'homepage_dragon_ball',\n sdkModuleRegistry.homepage_dragon_ball,\n config,\n ),\n hotTopic: createModuleInvoker('hot_topic', sdkModuleRegistry.hot_topic, config),\n hugComment: createModuleInvoker('hug_comment', sdkModuleRegistry.hug_comment, config),\n innerVersion: createModuleInvoker('inner_version', sdkModuleRegistry.inner_version, config),\n like: createModuleInvoker('like', sdkModuleRegistry.like, config),\n likelist: createModuleInvoker('likelist', sdkModuleRegistry.likelist, config),\n listenDataRealtimeReport: createModuleInvoker(\n 'listen_data_realtime_report',\n sdkModuleRegistry.listen_data_realtime_report,\n config,\n ),\n listenDataReport: createModuleInvoker(\n 'listen_data_report',\n sdkModuleRegistry.listen_data_report,\n config,\n ),\n listenDataTodaySong: createModuleInvoker(\n 'listen_data_today_song',\n sdkModuleRegistry.listen_data_today_song,\n config,\n ),\n listenDataTotal: createModuleInvoker(\n 'listen_data_total',\n sdkModuleRegistry.listen_data_total,\n config,\n ),\n listenDataYearReport: createModuleInvoker(\n 'listen_data_year_report',\n sdkModuleRegistry.listen_data_year_report,\n config,\n ),\n listentogetherAccept: createModuleInvoker(\n 'listentogether_accept',\n sdkModuleRegistry.listentogether_accept,\n config,\n ),\n listentogetherEnd: createModuleInvoker(\n 'listentogether_end',\n sdkModuleRegistry.listentogether_end,\n config,\n ),\n listentogetherHeatbeat: createModuleInvoker(\n 'listentogether_heatbeat',\n sdkModuleRegistry.listentogether_heatbeat,\n config,\n ),\n listentogetherPlayCommand: createModuleInvoker(\n 'listentogether_play_command',\n sdkModuleRegistry.listentogether_play_command,\n config,\n ),\n listentogetherRoomCheck: createModuleInvoker(\n 'listentogether_room_check',\n sdkModuleRegistry.listentogether_room_check,\n config,\n ),\n listentogetherRoomCreate: createModuleInvoker(\n 'listentogether_room_create',\n sdkModuleRegistry.listentogether_room_create,\n config,\n ),\n listentogetherStatus: createModuleInvoker(\n 'listentogether_status',\n sdkModuleRegistry.listentogether_status,\n config,\n ),\n listentogetherSyncListCommand: createModuleInvoker(\n 'listentogether_sync_list_command',\n sdkModuleRegistry.listentogether_sync_list_command,\n config,\n ),\n listentogetherSyncPlaylistGet: createModuleInvoker(\n 'listentogether_sync_playlist_get',\n sdkModuleRegistry.listentogether_sync_playlist_get,\n config,\n ),\n login: createModuleInvoker('login', sdkModuleRegistry.login, config),\n loginCellphone: createModuleInvoker(\n 'login_cellphone',\n sdkModuleRegistry.login_cellphone,\n config,\n ),\n loginQrCheck: createModuleInvoker('login_qr_check', sdkModuleRegistry.login_qr_check, config),\n loginQrCreate: createModuleInvoker(\n 'login_qr_create',\n sdkModuleRegistry.login_qr_create,\n config,\n ),\n loginQrKey: createModuleInvoker('login_qr_key', sdkModuleRegistry.login_qr_key, config),\n loginRefresh: createModuleInvoker('login_refresh', sdkModuleRegistry.login_refresh, config),\n loginStatus: createModuleInvoker('login_status', sdkModuleRegistry.login_status, config),\n logout: createModuleInvoker('logout', sdkModuleRegistry.logout, config),\n lyric: createModuleInvoker('lyric', sdkModuleRegistry.lyric, config),\n lyricNew: createModuleInvoker('lyric_new', sdkModuleRegistry.lyric_new, config),\n mlogMusicRcmd: createModuleInvoker(\n 'mlog_music_rcmd',\n sdkModuleRegistry.mlog_music_rcmd,\n config,\n ),\n mlogToVideo: createModuleInvoker('mlog_to_video', sdkModuleRegistry.mlog_to_video, config),\n mlogUrl: createModuleInvoker('mlog_url', sdkModuleRegistry.mlog_url, config),\n msgComments: createModuleInvoker('msg_comments', sdkModuleRegistry.msg_comments, config),\n msgForwards: createModuleInvoker('msg_forwards', sdkModuleRegistry.msg_forwards, config),\n msgNotices: createModuleInvoker('msg_notices', sdkModuleRegistry.msg_notices, config),\n msgPrivate: createModuleInvoker('msg_private', sdkModuleRegistry.msg_private, config),\n msgPrivateHistory: createModuleInvoker(\n 'msg_private_history',\n sdkModuleRegistry.msg_private_history,\n config,\n ),\n msgRecentcontact: createModuleInvoker(\n 'msg_recentcontact',\n sdkModuleRegistry.msg_recentcontact,\n config,\n ),\n musicFirstListenInfo: createModuleInvoker(\n 'music_first_listen_info',\n sdkModuleRegistry.music_first_listen_info,\n config,\n ),\n musicianCloudbean: createModuleInvoker(\n 'musician_cloudbean',\n sdkModuleRegistry.musician_cloudbean,\n config,\n ),\n musicianCloudbeanObtain: createModuleInvoker(\n 'musician_cloudbean_obtain',\n sdkModuleRegistry.musician_cloudbean_obtain,\n config,\n ),\n musicianDataOverview: createModuleInvoker(\n 'musician_data_overview',\n sdkModuleRegistry.musician_data_overview,\n config,\n ),\n musicianPlayTrend: createModuleInvoker(\n 'musician_play_trend',\n sdkModuleRegistry.musician_play_trend,\n config,\n ),\n musicianSign: createModuleInvoker('musician_sign', sdkModuleRegistry.musician_sign, config),\n musicianTasks: createModuleInvoker('musician_tasks', sdkModuleRegistry.musician_tasks, config),\n musicianTasksNew: createModuleInvoker(\n 'musician_tasks_new',\n sdkModuleRegistry.musician_tasks_new,\n config,\n ),\n mvAll: createModuleInvoker('mv_all', sdkModuleRegistry.mv_all, config),\n mvDetail: createModuleInvoker('mv_detail', sdkModuleRegistry.mv_detail, config),\n mvDetailInfo: createModuleInvoker('mv_detail_info', sdkModuleRegistry.mv_detail_info, config),\n mvExclusiveRcmd: createModuleInvoker(\n 'mv_exclusive_rcmd',\n sdkModuleRegistry.mv_exclusive_rcmd,\n config,\n ),\n mvFirst: createModuleInvoker('mv_first', sdkModuleRegistry.mv_first, config),\n mvSub: createModuleInvoker('mv_sub', sdkModuleRegistry.mv_sub, config),\n mvSublist: createModuleInvoker('mv_sublist', sdkModuleRegistry.mv_sublist, config),\n mvUrl: createModuleInvoker('mv_url', sdkModuleRegistry.mv_url, config),\n nicknameCheck: createModuleInvoker('nickname_check', sdkModuleRegistry.nickname_check, config),\n personalFm: createModuleInvoker('personal_fm', sdkModuleRegistry.personal_fm, config),\n personalFmMode: createModuleInvoker(\n 'personal_fm_mode',\n sdkModuleRegistry.personal_fm_mode,\n config,\n ),\n personalized: createModuleInvoker('personalized', sdkModuleRegistry.personalized, config),\n personalizedDjprogram: createModuleInvoker(\n 'personalized_djprogram',\n sdkModuleRegistry.personalized_djprogram,\n config,\n ),\n personalizedMv: createModuleInvoker(\n 'personalized_mv',\n sdkModuleRegistry.personalized_mv,\n config,\n ),\n personalizedNewsong: createModuleInvoker(\n 'personalized_newsong',\n sdkModuleRegistry.personalized_newsong,\n config,\n ),\n personalizedPrivatecontent: createModuleInvoker(\n 'personalized_privatecontent',\n sdkModuleRegistry.personalized_privatecontent,\n config,\n ),\n personalizedPrivatecontentList: createModuleInvoker(\n 'personalized_privatecontent_list',\n sdkModuleRegistry.personalized_privatecontent_list,\n config,\n ),\n plCount: createModuleInvoker('pl_count', sdkModuleRegistry.pl_count, config),\n playlistCatlist: createModuleInvoker(\n 'playlist_catlist',\n sdkModuleRegistry.playlist_catlist,\n config,\n ),\n playlistCoverUpdate: createModuleInvoker(\n 'playlist_cover_update',\n sdkModuleRegistry.playlist_cover_update,\n config,\n ),\n playlistCreate: createModuleInvoker(\n 'playlist_create',\n sdkModuleRegistry.playlist_create,\n config,\n ),\n playlistDelete: createModuleInvoker(\n 'playlist_delete',\n sdkModuleRegistry.playlist_delete,\n config,\n ),\n playlistDescUpdate: createModuleInvoker(\n 'playlist_desc_update',\n sdkModuleRegistry.playlist_desc_update,\n config,\n ),\n playlistDetail: createModuleInvoker(\n 'playlist_detail',\n sdkModuleRegistry.playlist_detail,\n config,\n ),\n playlistDetailDynamic: createModuleInvoker(\n 'playlist_detail_dynamic',\n sdkModuleRegistry.playlist_detail_dynamic,\n config,\n ),\n playlistDetailRcmdGet: createModuleInvoker(\n 'playlist_detail_rcmd_get',\n sdkModuleRegistry.playlist_detail_rcmd_get,\n config,\n ),\n playlistHighqualityTags: createModuleInvoker(\n 'playlist_highquality_tags',\n sdkModuleRegistry.playlist_highquality_tags,\n config,\n ),\n playlistHot: createModuleInvoker('playlist_hot', sdkModuleRegistry.playlist_hot, config),\n playlistImportNameTaskCreate: createModuleInvoker(\n 'playlist_import_name_task_create',\n sdkModuleRegistry.playlist_import_name_task_create,\n config,\n ),\n playlistImportTaskStatus: createModuleInvoker(\n 'playlist_import_task_status',\n sdkModuleRegistry.playlist_import_task_status,\n config,\n ),\n playlistMylike: createModuleInvoker(\n 'playlist_mylike',\n sdkModuleRegistry.playlist_mylike,\n config,\n ),\n playlistNameUpdate: createModuleInvoker(\n 'playlist_name_update',\n sdkModuleRegistry.playlist_name_update,\n config,\n ),\n playlistOrderUpdate: createModuleInvoker(\n 'playlist_order_update',\n sdkModuleRegistry.playlist_order_update,\n config,\n ),\n playlistPrivacy: createModuleInvoker(\n 'playlist_privacy',\n sdkModuleRegistry.playlist_privacy,\n config,\n ),\n playlistSubscribe: createModuleInvoker(\n 'playlist_subscribe',\n sdkModuleRegistry.playlist_subscribe,\n config,\n ),\n playlistSubscribers: createModuleInvoker(\n 'playlist_subscribers',\n sdkModuleRegistry.playlist_subscribers,\n config,\n ),\n playlistTagsUpdate: createModuleInvoker(\n 'playlist_tags_update',\n sdkModuleRegistry.playlist_tags_update,\n config,\n ),\n playlistTrackAdd: createModuleInvoker(\n 'playlist_track_add',\n sdkModuleRegistry.playlist_track_add,\n config,\n ),\n playlistTrackAll: createModuleInvoker(\n 'playlist_track_all',\n sdkModuleRegistry.playlist_track_all,\n config,\n ),\n playlistTrackDelete: createModuleInvoker(\n 'playlist_track_delete',\n sdkModuleRegistry.playlist_track_delete,\n config,\n ),\n playlistTracks: createModuleInvoker(\n 'playlist_tracks',\n sdkModuleRegistry.playlist_tracks,\n config,\n ),\n playlistUpdate: createModuleInvoker(\n 'playlist_update',\n sdkModuleRegistry.playlist_update,\n config,\n ),\n playlistUpdatePlaycount: createModuleInvoker(\n 'playlist_update_playcount',\n sdkModuleRegistry.playlist_update_playcount,\n config,\n ),\n playlistVideoRecent: createModuleInvoker(\n 'playlist_video_recent',\n sdkModuleRegistry.playlist_video_recent,\n config,\n ),\n playmodeIntelligenceList: createModuleInvoker(\n 'playmode_intelligence_list',\n sdkModuleRegistry.playmode_intelligence_list,\n config,\n ),\n programRecommend: createModuleInvoker(\n 'program_recommend',\n sdkModuleRegistry.program_recommend,\n config,\n ),\n rebind: createModuleInvoker('rebind', sdkModuleRegistry.rebind, config),\n recentListenList: createModuleInvoker(\n 'recent_listen_list',\n sdkModuleRegistry.recent_listen_list,\n config,\n ),\n recommendResource: createModuleInvoker(\n 'recommend_resource',\n sdkModuleRegistry.recommend_resource,\n config,\n ),\n recommendSongs: createModuleInvoker(\n 'recommend_songs',\n sdkModuleRegistry.recommend_songs,\n config,\n ),\n recommendSongsDislike: createModuleInvoker(\n 'recommend_songs_dislike',\n sdkModuleRegistry.recommend_songs_dislike,\n config,\n ),\n recordRecentAlbum: createModuleInvoker(\n 'record_recent_album',\n sdkModuleRegistry.record_recent_album,\n config,\n ),\n recordRecentDj: createModuleInvoker(\n 'record_recent_dj',\n sdkModuleRegistry.record_recent_dj,\n config,\n ),\n recordRecentPlaylist: createModuleInvoker(\n 'record_recent_playlist',\n sdkModuleRegistry.record_recent_playlist,\n config,\n ),\n recordRecentSong: createModuleInvoker(\n 'record_recent_song',\n sdkModuleRegistry.record_recent_song,\n config,\n ),\n recordRecentVideo: createModuleInvoker(\n 'record_recent_video',\n sdkModuleRegistry.record_recent_video,\n config,\n ),\n recordRecentVoice: createModuleInvoker(\n 'record_recent_voice',\n sdkModuleRegistry.record_recent_voice,\n config,\n ),\n registerAnonimous: createModuleInvoker(\n 'register_anonimous',\n sdkModuleRegistry.register_anonimous,\n config,\n ),\n registerCellphone: createModuleInvoker(\n 'register_cellphone',\n sdkModuleRegistry.register_cellphone,\n config,\n ),\n relatedAllvideo: createModuleInvoker(\n 'related_allvideo',\n sdkModuleRegistry.related_allvideo,\n config,\n ),\n relatedPlaylist: createModuleInvoker(\n 'related_playlist',\n sdkModuleRegistry.related_playlist,\n config,\n ),\n resourceLike: createModuleInvoker('resource_like', sdkModuleRegistry.resource_like, config),\n scrobble: createModuleInvoker('scrobble', sdkModuleRegistry.scrobble, config),\n search: createModuleInvoker('search', sdkModuleRegistry.search, config),\n searchDefault: createModuleInvoker('search_default', sdkModuleRegistry.search_default, config),\n searchHot: createModuleInvoker('search_hot', sdkModuleRegistry.search_hot, config),\n searchHotDetail: createModuleInvoker(\n 'search_hot_detail',\n sdkModuleRegistry.search_hot_detail,\n config,\n ),\n searchMatch: createModuleInvoker('search_match', sdkModuleRegistry.search_match, config),\n searchMultimatch: createModuleInvoker(\n 'search_multimatch',\n sdkModuleRegistry.search_multimatch,\n config,\n ),\n searchSuggest: createModuleInvoker('search_suggest', sdkModuleRegistry.search_suggest, config),\n sendAlbum: createModuleInvoker('send_album', sdkModuleRegistry.send_album, config),\n sendPlaylist: createModuleInvoker('send_playlist', sdkModuleRegistry.send_playlist, config),\n sendSong: createModuleInvoker('send_song', sdkModuleRegistry.send_song, config),\n sendText: createModuleInvoker('send_text', sdkModuleRegistry.send_text, config),\n setting: createModuleInvoker('setting', sdkModuleRegistry.setting, config),\n shareResource: createModuleInvoker('share_resource', sdkModuleRegistry.share_resource, config),\n sheetList: createModuleInvoker('sheet_list', sdkModuleRegistry.sheet_list, config),\n sheetPreview: createModuleInvoker('sheet_preview', sdkModuleRegistry.sheet_preview, config),\n signHappyInfo: createModuleInvoker(\n 'sign_happy_info',\n sdkModuleRegistry.sign_happy_info,\n config,\n ),\n signinProgress: createModuleInvoker(\n 'signin_progress',\n sdkModuleRegistry.signin_progress,\n config,\n ),\n simiArtist: createModuleInvoker('simi_artist', sdkModuleRegistry.simi_artist, config),\n simiMv: createModuleInvoker('simi_mv', sdkModuleRegistry.simi_mv, config),\n simiPlaylist: createModuleInvoker('simi_playlist', sdkModuleRegistry.simi_playlist, config),\n simiSong: createModuleInvoker('simi_song', sdkModuleRegistry.simi_song, config),\n simiUser: createModuleInvoker('simi_user', sdkModuleRegistry.simi_user, config),\n songChorus: createModuleInvoker('song_chorus', sdkModuleRegistry.song_chorus, config),\n songDetail: createModuleInvoker('song_detail', sdkModuleRegistry.song_detail, config),\n songDownlist: createModuleInvoker('song_downlist', sdkModuleRegistry.song_downlist, config),\n songDownloadUrl: createModuleInvoker(\n 'song_download_url',\n sdkModuleRegistry.song_download_url,\n config,\n ),\n songDownloadUrlV1: createModuleInvoker(\n 'song_download_url_v1',\n sdkModuleRegistry.song_download_url_v1,\n config,\n ),\n songDynamicCover: createModuleInvoker(\n 'song_dynamic_cover',\n sdkModuleRegistry.song_dynamic_cover,\n config,\n ),\n songLikeCheck: createModuleInvoker(\n 'song_like_check',\n sdkModuleRegistry.song_like_check,\n config,\n ),\n songLyricsMark: createModuleInvoker(\n 'song_lyrics_mark',\n sdkModuleRegistry.song_lyrics_mark,\n config,\n ),\n songLyricsMarkAdd: createModuleInvoker(\n 'song_lyrics_mark_add',\n sdkModuleRegistry.song_lyrics_mark_add,\n config,\n ),\n songLyricsMarkDel: createModuleInvoker(\n 'song_lyrics_mark_del',\n sdkModuleRegistry.song_lyrics_mark_del,\n config,\n ),\n songLyricsMarkUserPage: createModuleInvoker(\n 'song_lyrics_mark_user_page',\n sdkModuleRegistry.song_lyrics_mark_user_page,\n config,\n ),\n songMonthdownlist: createModuleInvoker(\n 'song_monthdownlist',\n sdkModuleRegistry.song_monthdownlist,\n config,\n ),\n songMusicDetail: createModuleInvoker(\n 'song_music_detail',\n sdkModuleRegistry.song_music_detail,\n config,\n ),\n songOrderUpdate: createModuleInvoker(\n 'song_order_update',\n sdkModuleRegistry.song_order_update,\n config,\n ),\n songPurchased: createModuleInvoker('song_purchased', sdkModuleRegistry.song_purchased, config),\n songRedCount: createModuleInvoker('song_red_count', sdkModuleRegistry.song_red_count, config),\n songSingledownlist: createModuleInvoker(\n 'song_singledownlist',\n sdkModuleRegistry.song_singledownlist,\n config,\n ),\n songUrl: createModuleInvoker('song_url', sdkModuleRegistry.song_url, config),\n songUrlV1: createModuleInvoker('song_url_v1', sdkModuleRegistry.song_url_v1, config),\n songWikiSummary: createModuleInvoker(\n 'song_wiki_summary',\n sdkModuleRegistry.song_wiki_summary,\n config,\n ),\n starpickCommentsSummary: createModuleInvoker(\n 'starpick_comments_summary',\n sdkModuleRegistry.starpick_comments_summary,\n config,\n ),\n styleAlbum: createModuleInvoker('style_album', sdkModuleRegistry.style_album, config),\n styleArtist: createModuleInvoker('style_artist', sdkModuleRegistry.style_artist, config),\n styleDetail: createModuleInvoker('style_detail', sdkModuleRegistry.style_detail, config),\n styleList: createModuleInvoker('style_list', sdkModuleRegistry.style_list, config),\n stylePlaylist: createModuleInvoker('style_playlist', sdkModuleRegistry.style_playlist, config),\n stylePreference: createModuleInvoker(\n 'style_preference',\n sdkModuleRegistry.style_preference,\n config,\n ),\n styleSong: createModuleInvoker('style_song', sdkModuleRegistry.style_song, config),\n summaryAnnual: createModuleInvoker('summary_annual', sdkModuleRegistry.summary_annual, config),\n topAlbum: createModuleInvoker('top_album', sdkModuleRegistry.top_album, config),\n topArtists: createModuleInvoker('top_artists', sdkModuleRegistry.top_artists, config),\n topList: createModuleInvoker('top_list', sdkModuleRegistry.top_list, config),\n topMv: createModuleInvoker('top_mv', sdkModuleRegistry.top_mv, config),\n topPlaylist: createModuleInvoker('top_playlist', sdkModuleRegistry.top_playlist, config),\n topPlaylistHighquality: createModuleInvoker(\n 'top_playlist_highquality',\n sdkModuleRegistry.top_playlist_highquality,\n config,\n ),\n topSong: createModuleInvoker('top_song', sdkModuleRegistry.top_song, config),\n topicDetail: createModuleInvoker('topic_detail', sdkModuleRegistry.topic_detail, config),\n topicDetailEventHot: createModuleInvoker(\n 'topic_detail_event_hot',\n sdkModuleRegistry.topic_detail_event_hot,\n config,\n ),\n topicSublist: createModuleInvoker('topic_sublist', sdkModuleRegistry.topic_sublist, config),\n toplist: createModuleInvoker('toplist', sdkModuleRegistry.toplist, config),\n toplistArtist: createModuleInvoker('toplist_artist', sdkModuleRegistry.toplist_artist, config),\n toplistDetail: createModuleInvoker('toplist_detail', sdkModuleRegistry.toplist_detail, config),\n ugcAlbumGet: createModuleInvoker('ugc_album_get', sdkModuleRegistry.ugc_album_get, config),\n ugcArtistGet: createModuleInvoker('ugc_artist_get', sdkModuleRegistry.ugc_artist_get, config),\n ugcArtistSearch: createModuleInvoker(\n 'ugc_artist_search',\n sdkModuleRegistry.ugc_artist_search,\n config,\n ),\n ugcDetail: createModuleInvoker('ugc_detail', sdkModuleRegistry.ugc_detail, config),\n ugcMvGet: createModuleInvoker('ugc_mv_get', sdkModuleRegistry.ugc_mv_get, config),\n ugcSongGet: createModuleInvoker('ugc_song_get', sdkModuleRegistry.ugc_song_get, config),\n ugcUserDevote: createModuleInvoker(\n 'ugc_user_devote',\n sdkModuleRegistry.ugc_user_devote,\n config,\n ),\n userAccount: createModuleInvoker('user_account', sdkModuleRegistry.user_account, config),\n userAudio: createModuleInvoker('user_audio', sdkModuleRegistry.user_audio, config),\n userBinding: createModuleInvoker('user_binding', sdkModuleRegistry.user_binding, config),\n userCloud: createModuleInvoker('user_cloud', sdkModuleRegistry.user_cloud, config),\n userCloudDel: createModuleInvoker('user_cloud_del', sdkModuleRegistry.user_cloud_del, config),\n userCloudDetail: createModuleInvoker(\n 'user_cloud_detail',\n sdkModuleRegistry.user_cloud_detail,\n config,\n ),\n userCommentHistory: createModuleInvoker(\n 'user_comment_history',\n sdkModuleRegistry.user_comment_history,\n config,\n ),\n userDetail: createModuleInvoker('user_detail', sdkModuleRegistry.user_detail, config),\n userDj: createModuleInvoker('user_dj', sdkModuleRegistry.user_dj, config),\n userEvent: createModuleInvoker('user_event', sdkModuleRegistry.user_event, config),\n userFollowMixed: createModuleInvoker(\n 'user_follow_mixed',\n sdkModuleRegistry.user_follow_mixed,\n config,\n ),\n userFolloweds: createModuleInvoker('user_followeds', sdkModuleRegistry.user_followeds, config),\n userFollows: createModuleInvoker('user_follows', sdkModuleRegistry.user_follows, config),\n userLevel: createModuleInvoker('user_level', sdkModuleRegistry.user_level, config),\n userMedal: createModuleInvoker('user_medal', sdkModuleRegistry.user_medal, config),\n userMutualfollowGet: createModuleInvoker(\n 'user_mutualfollow_get',\n sdkModuleRegistry.user_mutualfollow_get,\n config,\n ),\n userPlaylist: createModuleInvoker('user_playlist', sdkModuleRegistry.user_playlist, config),\n userPlaylistCollect: createModuleInvoker(\n 'user_playlist_collect',\n sdkModuleRegistry.user_playlist_collect,\n config,\n ),\n userPlaylistCreate: createModuleInvoker(\n 'user_playlist_create',\n sdkModuleRegistry.user_playlist_create,\n config,\n ),\n userRecord: createModuleInvoker('user_record', sdkModuleRegistry.user_record, config),\n userReplacephone: createModuleInvoker(\n 'user_replacephone',\n sdkModuleRegistry.user_replacephone,\n config,\n ),\n userSocialStatus: createModuleInvoker(\n 'user_social_status',\n sdkModuleRegistry.user_social_status,\n config,\n ),\n userSocialStatusEdit: createModuleInvoker(\n 'user_social_status_edit',\n sdkModuleRegistry.user_social_status_edit,\n config,\n ),\n userSocialStatusRcmd: createModuleInvoker(\n 'user_social_status_rcmd',\n sdkModuleRegistry.user_social_status_rcmd,\n config,\n ),\n userSocialStatusSupport: createModuleInvoker(\n 'user_social_status_support',\n sdkModuleRegistry.user_social_status_support,\n config,\n ),\n userSubcount: createModuleInvoker('user_subcount', sdkModuleRegistry.user_subcount, config),\n userUpdate: createModuleInvoker('user_update', sdkModuleRegistry.user_update, config),\n verifyGetQr: createModuleInvoker('verify_getQr', sdkModuleRegistry.verify_getQr, config),\n verifyQrcodestatus: createModuleInvoker(\n 'verify_qrcodestatus',\n sdkModuleRegistry.verify_qrcodestatus,\n config,\n ),\n videoCategoryList: createModuleInvoker(\n 'video_category_list',\n sdkModuleRegistry.video_category_list,\n config,\n ),\n videoDetail: createModuleInvoker('video_detail', sdkModuleRegistry.video_detail, config),\n videoDetailInfo: createModuleInvoker(\n 'video_detail_info',\n sdkModuleRegistry.video_detail_info,\n config,\n ),\n videoGroup: createModuleInvoker('video_group', sdkModuleRegistry.video_group, config),\n videoGroupList: createModuleInvoker(\n 'video_group_list',\n sdkModuleRegistry.video_group_list,\n config,\n ),\n videoSub: createModuleInvoker('video_sub', sdkModuleRegistry.video_sub, config),\n videoTimelineAll: createModuleInvoker(\n 'video_timeline_all',\n sdkModuleRegistry.video_timeline_all,\n config,\n ),\n videoTimelineRecommend: createModuleInvoker(\n 'video_timeline_recommend',\n sdkModuleRegistry.video_timeline_recommend,\n config,\n ),\n videoUrl: createModuleInvoker('video_url', sdkModuleRegistry.video_url, config),\n vipGrowthpoint: createModuleInvoker(\n 'vip_growthpoint',\n sdkModuleRegistry.vip_growthpoint,\n config,\n ),\n vipGrowthpointDetails: createModuleInvoker(\n 'vip_growthpoint_details',\n sdkModuleRegistry.vip_growthpoint_details,\n config,\n ),\n vipGrowthpointGet: createModuleInvoker(\n 'vip_growthpoint_get',\n sdkModuleRegistry.vip_growthpoint_get,\n config,\n ),\n vipInfo: createModuleInvoker('vip_info', sdkModuleRegistry.vip_info, config),\n vipInfoV2: createModuleInvoker('vip_info_v2', sdkModuleRegistry.vip_info_v2, config),\n vipTasks: createModuleInvoker('vip_tasks', sdkModuleRegistry.vip_tasks, config),\n vipTimemachine: createModuleInvoker(\n 'vip_timemachine',\n sdkModuleRegistry.vip_timemachine,\n config,\n ),\n voiceDelete: createModuleInvoker('voice_delete', sdkModuleRegistry.voice_delete, config),\n voiceDetail: createModuleInvoker('voice_detail', sdkModuleRegistry.voice_detail, config),\n voiceLyric: createModuleInvoker('voice_lyric', sdkModuleRegistry.voice_lyric, config),\n voiceUpload: createModuleInvoker('voice_upload', sdkModuleRegistry.voice_upload, config),\n voicelistDetail: createModuleInvoker(\n 'voicelist_detail',\n sdkModuleRegistry.voicelist_detail,\n config,\n ),\n voicelistList: createModuleInvoker('voicelist_list', sdkModuleRegistry.voicelist_list, config),\n voicelistListSearch: createModuleInvoker(\n 'voicelist_list_search',\n sdkModuleRegistry.voicelist_list_search,\n config,\n ),\n voicelistSearch: createModuleInvoker(\n 'voicelist_search',\n sdkModuleRegistry.voicelist_search,\n config,\n ),\n voicelistTrans: createModuleInvoker(\n 'voicelist_trans',\n sdkModuleRegistry.voicelist_trans,\n config,\n ),\n yunbei: createModuleInvoker('yunbei', sdkModuleRegistry.yunbei, config),\n yunbeiExpense: createModuleInvoker('yunbei_expense', sdkModuleRegistry.yunbei_expense, config),\n yunbeiInfo: createModuleInvoker('yunbei_info', sdkModuleRegistry.yunbei_info, config),\n yunbeiRcmdSong: createModuleInvoker(\n 'yunbei_rcmd_song',\n sdkModuleRegistry.yunbei_rcmd_song,\n config,\n ),\n yunbeiRcmdSongHistory: createModuleInvoker(\n 'yunbei_rcmd_song_history',\n sdkModuleRegistry.yunbei_rcmd_song_history,\n config,\n ),\n yunbeiReceipt: createModuleInvoker('yunbei_receipt', sdkModuleRegistry.yunbei_receipt, config),\n yunbeiSign: createModuleInvoker('yunbei_sign', sdkModuleRegistry.yunbei_sign, config),\n yunbeiTaskFinish: createModuleInvoker(\n 'yunbei_task_finish',\n sdkModuleRegistry.yunbei_task_finish,\n config,\n ),\n yunbeiTasks: createModuleInvoker('yunbei_tasks', sdkModuleRegistry.yunbei_tasks, config),\n yunbeiTasksTodo: createModuleInvoker(\n 'yunbei_tasks_todo',\n sdkModuleRegistry.yunbei_tasks_todo,\n config,\n ),\n yunbeiToday: createModuleInvoker('yunbei_today', sdkModuleRegistry.yunbei_today, config),\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,SAAgB,aACd,OACA,SAAwB,IACF;CACtB,OAAO;EACL,YAAY,MAAM,aAAa,cAAc,MAAM,UAAU,IAAI;EACjE,QAAQ,MAAM;EACd,QAAQ,gBAAgB,MAAM,MAAM,KAAK;EACzC,QAAQ,iBAAiB,MAAM,MAAM,KAAK;EAC1C,KAAK,MAAM,QAAQ,KAAA,KAAa,MAAM,QAAQ,OAAO,KAAA,IAAY,cAAc,MAAM,GAAG;EACxF,OAAO,iBAAiB,MAAM,KAAK;EACnC,QAAQ,iBAAiB,MAAM,MAAM;EACrC,IAAI,iBAAiB,MAAM,EAAE,KAAK;CACpC;AACF;AAEA,SAAS,cAAc,OAA2C;CAChE,IAAI,OAAO,UAAU,aAAa,OAAO,UAAU,YAAY,OAAO,UAAU,UAC9E,OAAO;CAGT,OAAO,KAAK,UAAU,KAAK;AAC7B;AAEA,SAAS,iBAAiB,OAAoC;CAC5D,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC;CAGF,IAAI,OAAO,UAAU,UACnB,OAAO;CAGT,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAChD,OAAO,OAAO,KAAK;CAGrB,OAAO,KAAK,UAAU,KAAK;AAC7B;AAEA,SAAS,gBAAgB,OAA2C;CAClE,MAAM,aAAa,iBAAiB,KAAK;CACzC,IACE,eAAe,KAAA,KACf,eAAe,MACf,eAAe,SACf,eAAe,UACf,eAAe,cACf,eAAe,SAEf,OAAO;AAIX;;;AC5EA,MAAa,oBAAoB;CAC/B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACL;AAEA,MAAa,WAAW;CACtB,WAAW;CACX,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,YACE;CACF,YACE;AACJ;AAEA,MAAa,cAAc;CACzB,SAAS;EACP,QAAQ;EACR,SAAS;EACT,IAAI;EACJ,OAAO;CACT;CACA,QAAQ;EACN,QAAQ;EACR,SAAS;EACT,IAAI;EACJ,OAAO;CACT;CACA,OAAO;EACL,QAAQ;EACR,SAAS;EACT,IAAI;EACJ,OAAO;CACT;CACA,IAAI;EACF,QAAQ;EACR,SAAS;EACT,IAAI;EAEJ,OAAO;CACT;AACF;AAEA,MAAa,iBAAiB;CAC5B,KAAK;EACH,SACE;EACF,QAAQ;EACR,IAAI;CACN;CACA,UAAU,EACR,OACE,2GACJ;CACA,OAAO,EACL,IAAI,sIACN;AACF;AAEA,MAAa,uBAAuB,IAAI,IAAI;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;AAAG,CAAC;;;ACxDpF,MAAM,KAAK;AACX,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,mBAAmB;;;AAGzB,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AAKvB,SAAgB,WACd,MACA,MACA,KAEA,IACA,SAA6B,UACrB;CAER,MAAM,aAAa,aADD,gBAAgB,IACM,GAAG,KAAK,SAAS,QAAQ,OAAO,EAAE;CAC1E,MAAM,YAAY,OAAO,OAAO,CAAC,WAAW,OAAO,MAAM,MAAM,GAAG,WAAW,MAAM,CAAC,CAAC;CAErF,OAAO,WAAW,QAAQ,UAAU,SAAS,KAAK,CAAC,CAAC,YAAY,IAAI,UAAU,SAAS,QAAQ;AACjG;AAEA,SAAgB,WACd,YACA,MACA,KACA,IACA,SAA6B,UACrB;CACR,MAAM,kBACJ,WAAW,QAAQ,OAAO,KAAK,YAAY,KAAK,IAAI,OAAO,KAAK,YAAY,QAAQ;CAEtF,MAAM,WAAW,eADC,gBAAgB,IACM,GAAG,KAAK,SAAS,QAAQ,OAAO,EAAE;CAE1E,OAAO,OAAO,OAAO,CAAC,SAAS,OAAO,eAAe,GAAG,SAAS,MAAM,CAAC,CAAC;AAC3E;AAEA,SAAgB,WAAW,WAAmB,YAAY,kBAA0B;CAClF,MAAM,eAAe,OAAO,MAAM,cAAc;CAChD,OAAO,KAAK,WAAW,MAAM,CAAC,CAAC,KAAK,cAAc,iBAAiB,UAAU,MAAM;CAEnF,OAAO,cACL;EACE,KAAK,gBAAgB,SAAS;EAC9B,SAAS,UAAU;CACrB,GACA,YACF,CAAC,CAAC,SAAS,KAAK;AAClB;AAEA,SAAgB,uBAA+B;CAC7C,IAAI,YAAY;CAEhB,KAAK,IAAI,QAAQ,GAAG,QAAQ,IAAI,SAAS,GAAG;EAC1C,MAAM,cAAc,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE;EACjD,aAAa,OAAO,gBAAgB,OAAO;CAC7C;CAEA,OAAO;AACT;AAEA,SAAgB,MACd,QACA,YAAY,qBAAqB,GAIjC;CACA,MAAM,OAAO,KAAK,UAAU,MAAM;CAElC,OAAO;EACL,WAAW,WAAW,UAAU,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;EAC/D,QAAQ,WAAW,WAAW,MAAM,OAAO,YAAY,EAAE,GAAG,OAAO,WAAW,EAAE;CAClF;AACF;AAEA,SAAgB,SAAS,QAEvB;CACA,OAAO,EACL,SAAS,WAAW,KAAK,UAAU,MAAM,GAAG,OAAO,cAAc,IAAI,KAAK,EAC5E;AACF;AAEA,SAAgB,KACd,KACA,QAGA;CACA,MAAM,OAAO,OAAO,WAAW,WAAW,SAAS,KAAK,UAAU,MAAM;CACxE,MAAM,UAAU,SAAS,IAAI,KAAK,KAAK;CAIvC,OAAO,EACL,QAAQ,WAAW,GAHL,MAAM,iBAAiB,OAAO,iBAD/B,WAAW,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,OAAO,KACY,KAGzC,OAAO,UAAU,IAAI,KAAK,EACrD;AACF;AAEA,SAAgB,eACd,iBACA,QAAQ,OACwB;CAChC,IAAI;EACF,MAAM,YAAY,WAAW,iBAAiB,OAAO,UAAU,IAAI,KAAK;EACxE,IAAI,OACF,OAAO,gBAAgB,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC;EAG/D,OAAO,gBAAgB,UAAU,SAAS,MAAM,CAAC;CACnD,SAAS,OAAO;EACd,QAAQ,MAAM,yBAAyB,KAAK;EAC5C,OAAO;CACT;AACF;AA4BA,SAAS,gBAAgB,MAA8C;CACrE,OAAO,SAAS,QAAQ,gBAAgB;AAC1C;AAEA,SAAS,aAAa,WAA0C,KAAa,IAAmB;CAC9F,MAAM,UAAU,eACd,WACA,OAAO,KAAK,KAAK,MAAM,GACvB,OAAO,OAAO,OAAO,OAAO,KAAK,IAAI,MAAM,CAC7C;CACA,QAAQ,eAAe,IAAI;CAC3B,OAAO;AACT;AAEA,SAAS,eAAe,WAA0C,KAAa,IAAmB;CAChG,MAAM,UAAU,iBACd,WACA,OAAO,KAAK,KAAK,MAAM,GACvB,OAAO,OAAO,OAAO,OAAO,KAAK,IAAI,MAAM,CAC7C;CACA,QAAQ,eAAe,IAAI;CAC3B,OAAO;AACT;AAEA,SAAS,gBAAgB,MAAuC;CAC9D,MAAM,SAAkB,KAAK,MAAM,IAAI;CAEvC,IAAI,aAAa,MAAM,GACrB,OAAO;CAGT,MAAM,IAAI,UAAU,8BAA8B;AACpD;AAEA,SAAS,aAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;AChMA,MAAM,oBAAoB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,kBAAkB;AAExB,SAAgB,UAAU,OAA8C;CACtE,IAAI,OAAO,UAAU,WACnB,OAAO;CAGT,IAAI,UAAU,IACZ,OAAO;CAGT,OAAO,UAAU,UAAU,UAAU,KAAK,UAAU;AACtD;AAIA,SAAgB,aAAa,QAA0C;CACrE,IAAI,CAAC,QACH,OAAO,CAAC;CAGV,MAAM,SAAuB,CAAC;CAE9B,KAAK,MAAM,QAAQ,OAAO,MAAM,GAAG,GAAG;EACpC,MAAM,cAAc,KAAK,QAAQ,GAAG;EAEpC,IAAI,cAAc,KAAK,eAAe,KAAK,SAAS,GAClD;EAGF,MAAM,MAAM,KAAK,MAAM,GAAG,WAAW,CAAC,CAAC,KAAK;EAE5C,OAAO,OADO,KAAK,MAAM,cAAc,CAAC,CAAC,CAAC,KACxB;CACpB;CAEA,OAAO;AACT;AAEA,SAAgB,kBAAkB,QAA8B;CAC9D,OAAO,OAAO,QAAQ,MAAM,CAAC,CAC1B,QAAQ,UAA0C,MAAM,OAAO,KAAA,CAAS,CAAC,CACzE,KAAK,CAAC,KAAK,WAAW;EACrB,OAAO,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC;CACvE,CAAC,CAAC,CACD,KAAK,IAAI;AACd;AAUA,SAAgB,0BAAkC;CAGhD,OAAO,GAFQ,kBAAkB,KAAK,MAAM,KAAK,OAAO,IAAI,kBAAkB,MAAM,GAEnE,GAAG,kBAAkB,EAAE,GAAG,kBAAkB;AAC/D;AAEA,SAAgB,gBAAgB,QAAmD;CACjF,MAAM,UAAU;CAChB,MAAM,eAAe,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG;CAMnD,OAAO,GAAG,QAAQ,GALD,eAAe,QAAQ,WAAW,KAAK,WAAW,eAKrC,aAFZ,KAAK,IAEwC;AACjE;AAEA,SAAgB,mBAA2B;CACzC,MAAM,aAAuB,CAAC;CAE9B,KAAK,IAAI,QAAQ,GAAG,QAAQ,IAAI,SAAS,GAAG;EAE1C,MAAM,YAAY,gBADE,KAAK,MAAM,KAAK,OAAO,IAAI,EACH;EAC5C,WAAW,KAAK,cAAc,KAAA,IAAY,MAAM,SAAS;CAC3D;CAEA,OAAO,WAAW,KAAK,EAAE;AAC3B;AAEA,SAAgB,gBAAgB,YAA4B;CAC1D,OAAO,YAAY,UAAU,CAAC,CAAC,SAAS,KAAK;AAC/C;AAEA,SAAgB,SAAS,OAAkD;CACzE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,oBAA4B;CACnC,OAAO,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI;AAC3C;AAEA,SAAS,eAAe,QAA2C,MAAsB;CACvF,IAAI,CAAC,QACH,OAAO;CAGT,IAAI,SAAS,MAAM,GAAG;EACpB,MAAM,QAAQ,OAAO;EACrB,OAAO,UAAU,KAAA,IAAY,KAAK,OAAO,KAAK;CAChD;CAEA,MAAM,QAAQ,KAAK,SAAS,MAAM,KAAK,KAAK,EAAE;CAC9C,IAAI,MAAM,WAAW,GACnB,OAAO;CAGT,OAAO,MAAM,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM;AACpC;;;ACnIA,MAAa,+BAA+B,QAAQ,OAAO,GAAG,iBAAiB;AAE/E,IAAI,eAA6B;CAC/B,gBAAgB,mBAAmB,4BAA4B;CAC/D,MAAM,wBAAwB;CAC9B,UAAU,iBAAiB;AAC7B;AAEA,SAAgB,gBAAgB,YAAmC,CAAC,GAAiB;CACnF,OAAO;EACL,GAAG;EACH,GAAG;CACL;AACF;AAEA,SAAgB,gBAAgB,WAAgD;CAC9E,eAAe;EACb,GAAG;EACH,GAAG;CACL;CAEA,OAAO;AACT;AAEA,SAAgB,mBAAmB,WAAW,8BAAsC;CAClF,IAAI;EACF,OAAO,aAAa,UAAU,MAAM,CAAC,CAAC,KAAK;CAC7C,QAAQ;EACN,OAAO;CACT;AACF;;;AChBA,MAAM,SAAS,aAAa;AAE5B,eAAsB,cACpB,KACA,MACA,UAAgC,CAAC,GACR;CACzB,MAAM,UAAkC,EACtC,GAAG,QAAQ,QACb;CACA,MAAM,KAAK,QAAQ,UAAU,QAAQ,MAAM;CAE3C,IAAI,IAAI;EACN,QAAQ,qBAAqB;EAC7B,QAAQ,eAAe;CACzB;CAEA,MAAM,UAAqB,QAAQ,WAAW;CAC9C,MAAM,QAAQ,gBAAgB,QAAQ,KAAK;CAG3C,MAAM,SAAS,oBADb,OAAO,QAAQ,WAAW,WAAW,aAAa,QAAQ,MAAM,IAAI,EAAE,GAAG,QAAQ,OAAO,GAC1C,KAAK,KAAK;CAC1D,QAAQ,SAAS,kBAAkB,MAAM;CAEzC,MAAM,YAAY,OAAO,OAAO,aAAa,EAAE;CAC/C,MAAM,SAAS,cAAc,QAAQ,MAAM;CAC3C,MAAM,UAAU,EACd,GAAG,KACL;CAEA,IAAI,MAAM;CACV,IAAI;CAEJ,QAAQ,QAAR;EACE,KAAK;GACH,QAAQ,UAAU,QAAQ,UAAU,SAAS;GAC7C,QAAQ,gBAAgB,QAAQ,MAAM,gBAAgB,SAAS,IAAI;GACnE,QAAQ,aAAa;GACrB,cAAc,MAAM,OAAO;GAC3B,MAAM,GAAG,QAAQ,UAAU,SAAS,OAAO,SAAS,IAAI,MAAM,CAAC;GAC/D;EAGF,KAAK;GACH,QAAQ,gBAAgB,QAAQ,MAAM,gBAAgB,YAAY,OAAO;GACzE,cAAc,SAAS;IACrB,QAAQ;IACR,QAAQ;IACR,KAAK,GAAG,QAAQ,UAAU,SAAS,SAAS;GAC9C,CAAC;GACD,MAAM,GAAG,QAAQ,UAAU,SAAS,OAAO;GAC3C;EAGF,KAAK;EACL,KAAK,OAAO;GACV,MAAM,SAAS,iBAAiB,QAAQ,WAAW,OAAO;GAC1D,QAAQ,SAAS,mBAAmB,MAAM;GAC1C,QAAQ,gBAAgB,QAAQ,MAAM,gBAAgB,OAAO,QAAQ;GAErE,IAAI,WAAW,QAAQ;IACrB,QAAQ,SAAS;IACjB,QAAQ,MAAM,UACZ,QAAQ,QAAQ,KAAA,IACZ,QAAQ,MACP,gBAAgB,QAAQ,GAAG,KAAK,SAAS,eAChD;IACA,cAAc,KAAK,KAAK,OAAO;IAC/B,MAAM,GAAG,QAAQ,UAAU,SAAS,UAAU,QAAQ,IAAI,MAAM,CAAC;GACnE,OAAO;IACL,cAAc,iBAAiB,OAAO;IACtC,MAAM,GAAG,QAAQ,UAAU,SAAS,YAAY;GAClD;GACA;EACF;EAEA,SACE,MAAM;GACJ,MAAM;IACJ,MAAM;IACN,KAAK,wBAAwB;GAC/B;GACA,QAAQ,CAAC;GACT,QAAQ;EACV;CAEJ;CAEA,IAAI;EACF,MAAM,WAAW,MAAM,QAAQ,KAAK,gBAAgB,SAAS,aAAa,QAAQ,KAAK,CAAC;EACxF,MAAM,SAAyB;GAC7B,MAAM,CAAC;GACP,QAAQ,cAAc,SAAS,OAAO,CAAC,CAAC,IAAI,iBAAiB;GAC7D,QAAQ;EACV;EAEA,IAAI,WAAW,UAAU,QAAQ,KAI/B,OAAO,OAAO,sBACZ,eAJoB,OAAO,KAAK,MAAM,SAAS,YAAY,CAAC,CAAC,CAC5D,SAAS,KAAK,CAAC,CACf,YAE0B,GAAG,QAAQ,eAAe,MAAM,CAC7D;OAEA,OAAO,OAAO,sBAAsB,MAAM,kBAAkB,QAAQ,CAAC;EAGvE,MAAM,aAAa,SAAS,OAAO,IAAI,IAAK,OAAO,OAAmC,KAAA;EAEtF,IAAI,YAAY,SAAS,KAAA,GAAW;GAClC,WAAW,OAAO,OAAO,WAAW,IAAI;GACxC,OAAO,SAAS,OAAO,WAAW,IAAI;EACxC,OACE,OAAO,SAAS,SAAS;EAG3B,IAAI,cAAc,qBAAqB,IAAI,OAAO,WAAW,IAAI,CAAC,GAChE,OAAO,SAAS;EAGlB,OAAO,SAAS,OAAO,SAAS,OAAO,OAAO,SAAS,MAAM,OAAO,SAAS;EAE7E,IAAI,OAAO,WAAW,KACpB,OAAO;EAGT,QAAQ,MAAM,SAAS,MAAM;EAC7B,MAAM;CACR,SAAS,OAAO;EACd,IAAI,iBAAiB,KAAK,GACxB,MAAM;EAIR,MAAM,SAA4C;GAChD,MAAM;IACJ,MAAM;IACN,KAJY,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GAKnE;GACA,QAAQ,CAAC;GACT,QAAQ;EACV;EACA,QAAQ,MAAM,SAAS,MAAM;EAC7B,MAAM;CACR;AACF;AAEA,SAAS,cAAc,QAAkD;CACvE,IAAI,QACF,OAAO;CAGT,OAAO,SAAS,UAAU,SAAS;AACrC;AAEA,SAAS,gBACP,QACA,SAAgD,MACxC;CACR,MAAM,SAAS,eAAe;CAG9B,IAAI,CAAC,QACH,OAAO;CAGT,OAAO,OAAO,WAAW;AAC3B;AAEA,SAAS,oBAAoB,QAAsB,KAAa,OAAmC;CACjG,MAAM,aAAa,gBAAgB,EAAE;CAErC,MAAM,YAAY,YADJ,gBAAgB,OAAO,EACH;CAClC,MAAM,kBAAgC;EACpC,GAAG;EACH,eAAe;EACf,YAAY,OAAO,OAAO,iBAAiB,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG;EACxE,YAAY,OAAO,OAAO,iBAAiB,UAAU;EACrD,QAAQ,OAAO,OAAO,UAAU,OAAO;EACvC,QAAQ,OAAO,OAAO,UAAU,MAAM;EACtC,QAAQ,OAAO,OAAO,UAAU,UAAU,MAAM;EAChD,SAAS,OAAO,OAAO,WAAW,UAAU,OAAO;EACnD,UAAU,OAAO,OAAO,YAAY,MAAM,QAAQ;EAClD,eAAe;EACf,IAAI,OAAO,OAAO,MAAM,UAAU,EAAE;EACpC,OAAO,OAAO,OAAO,SAAS,UAAU,KAAK;CAC/C;CAEA,IAAI,CAAC,IAAI,SAAS,OAAO,GACvB,gBAAgB,QAAQ,gBAAgB,EAAE;CAG5C,IAAI,CAAC,gBAAgB,SACnB,gBAAgB,UAAU,OAAO,gBAAgB,WAAW,MAAM,cAAc;CAGlF,OAAO;AACT;AAEA,SAAS,mBAAmB,QAAwC;CAClE,OAAO,OAAO,QAAQ,MAAM,CAAC,CAC1B,KAAK,CAAC,KAAK,WAAW;EACrB,OAAO,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,KAAK;CAC/D,CAAC,CAAC,CACD,KAAK,IAAI;AACd;AAEA,SAAS,iBACP,QACA,WACA,SACwB;CACxB,MAAM,SAAiC;EACrC,QAAQ;EACR,QAAQ,OAAO,OAAO,UAAU,EAAE;EAClC,UAAU,OAAO,OAAO,YAAY,GAAG,KAAK,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;EAChE,SAAS,OAAO,OAAO,WAAW,EAAE;EACpC,UAAU,OAAO,OAAO,YAAY,EAAE;EACtC,YAAY,OAAO,OAAO,cAAc,EAAE;EAC1C,IAAI,OAAO,OAAO,MAAM,EAAE;EAC1B,OAAO,OAAO,OAAO,SAAS,EAAE;EAChC,WAAW,kBAAkB;EAC7B,YAAY,OAAO,OAAO,cAAc,WAAW;EACnD,aAAa,OAAO,OAAO,eAAe,KAAK;CACjD;CAEA,IAAI,QAAQ,YACV,OAAO,sBAAsB,SAAS;CAGxC,IAAI,OAAO,SACT,OAAO,UAAU,OAAO,OAAO,OAAO;CAGxC,IAAI,OAAO,SACT,OAAO,UAAU,OAAO,OAAO,OAAO;CAGxC,OAAO;AACT;AAEA,SAAS,oBAA4B;CACnC,OAAO,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,KAAK,OAAO,IAAI,GAAI,CAAC,CACrD,SAAS,CAAC,CACV,SAAS,GAAG,GAAG;AACpB;AAEA,SAAS,gBACP,SACA,MACA,OACc;CACd,MAAM,OAAqB;EACzB,MAAM,IAAI,gBAAgB,IAAI,CAAC,CAAC,SAAS;EACzC,SAAS;GACP,gBAAgB;GAChB,GAAG;EACL;EACA,QAAQ;CACV;CAEA,IAAI,OAAO;EACT,IAAI,MAAM,SAAS,KAAK,GACtB,MAAM,IAAI,MAAM,6DAA6D;EAG/E,KAAK,QAAQ;CACf;CAEA,OAAO;AACT;AAEA,eAAe,kBAAkB,UAAsC;CAGrE,KAFoB,SAAS,QAAQ,IAAI,cAAc,KAAK,GAAA,CAE5C,SAAS,kBAAkB,GACzC,OAAO,SAAS,KAAK;CAGvB,MAAM,OAAO,MAAM,SAAS,KAAK;CAEjC,IAAI;EACF,OAAO,KAAK,MAAM,IAAI;CACxB,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,cAAc,SAA4B;CACjD,MAAM,uBAAuB;CAI7B,IAAI,OAAO,qBAAqB,iBAAiB,YAC/C,OAAO,qBAAqB,aAAa;CAG3C,MAAM,eAAe,QAAQ,IAAI,YAAY;CAC7C,IAAI,CAAC,cACH,OAAO,CAAC;CAGV,OAAO,qBAAqB,YAAY;AAC1C;AAEA,SAAS,iBAAiB,OAAyC;CACjE,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,YAAY,SACZ,YAAY;AAEhB;AAEA,SAAS,sBAAsB,OAA8B;CAC3D,IACE,UAAU,QACV,OAAO,UAAU,aACjB,OAAO,UAAU,YACjB,OAAO,UAAU,UAEjB,OAAO;CAGT,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO;CAGT,IAAI,SAAS,KAAK,GAChB,OAAO;CAGT,OAAO,CAAC;AACV;AAEA,SAAS,qBAAqB,aAA+B;CAC3D,MAAM,SAAmB,CAAC;CAC1B,IAAI,UAAU;CACd,IAAI,YAAY;CAEhB,KAAK,MAAM,aAAa,aAAa;EACnC,IAAI,cAAc,KAAK;GACrB,IAAI,WAAW;IACb,WAAW;IACX;GACF;GAEA,OAAO,KAAK,QAAQ,KAAK,CAAC;GAC1B,UAAU;GACV;EACF;EAEA,WAAW;EAEX,IAAI,QAAQ,SAAS,UAAU,GAC7B,YAAY;OACP,IAAI,aAAa,cAAc,KACpC,YAAY;CAEhB;CAEA,IAAI,QAAQ,KAAK,GACf,OAAO,KAAK,QAAQ,KAAK,CAAC;CAG5B,OAAO;AACT;AAEA,SAAS,kBAAkB,QAAwB;CACjD,OAAO,OAAO,QAAQ,0BAA0B,EAAE;AACpD;AAEA,SAAS,iBAAiB,SAAiD;CACzE,OAAO,OAAO,YACZ,OAAO,QAAQ,OAAO,CAAC,CACpB,QAAQ,UAAU,MAAM,OAAO,KAAA,CAAS,CAAC,CACzC,KAAK,CAAC,KAAK,WAAW;EACrB,IAAI,OAAO,UAAU,UACnB,OAAO,CAAC,KAAK,KAAK;EAGpB,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAChD,OAAO,CAAC,KAAK,OAAO,KAAK,CAAC;EAG5B,OAAO,CAAC,KAAK,KAAK,UAAU,KAAK,CAAC;CACpC,CAAC,CACL;AACF;AAEA,SAAS,eAAuB;CAC9B,IAAI,eAAe;CACnB,MAAM,aAAa;CAEnB,KAAK,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG;EACzC,MAAM,cAAc,KAAK,MAAM,KAAK,OAAO,IAAI,EAAiB;EAChE,gBAAgB,WAAW,gBAAgB,WAAW;CACxD;CAEA,OAAO,GAAG,aAAa,GAAG,KAAK,IAAI,EAAE;AACvC;AAEA,SAAS,gBAAgB,OAAuD;CAC9E,IAAI,OAAO,UAAU,aAAa,OAAO,UAAU,YAAY,OAAO,UAAU,UAC9E,OAAO;AAIX;AAEA,SAAS,gBAAgB,OAAyC;CAChE,IAAI,UAAU,aAAa,UAAU,YAAY,UAAU,WAAW,UAAU,MAC9E,OAAO;CAGT,OAAO;AACT;;;ACpbA,SAASA,eAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,oBAAoB,OAA0B;CACrD,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO,CAAC;CAGV,OAAO,MAAM,KAAK,UAAU,OAAO,KAAK,CAAC;AAC3C;AAEA,SAAS,oBAAoB,OAAwB;CACnD,MAAM,SAAS,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK;CAE/D,IAAI,CAAC,OAAO,SAAS,MAAM,GACzB,OAAO;CAGT,OAAO,UAAU,OAAO,SAAS,MAAM,SAAS;AAClD;AAEA,SAAS,eAAe,OAAuC;CAC7D,IAAI,CAACA,eAAa,KAAK,KAAK,EAAE,YAAY,UAAU,EAAE,UAAU,QAC9D,OAAO;CAGT,OAAO;EACL,MAAM,cAAc,MAAM,IAAI;EAC9B,QAAQ,oBAAoB,MAAM,MAAM;EACxC,QAAQ,oBAAoB,MAAM,MAAM;CAC1C;AACF;;;;AAKA,SAAgB,8BAA8B,OAAgC;CAC5E,MAAM,aAAa,eAAe,KAAK;CACvC,IAAI,YACF,OAAO;CAGT,OAAO;EACL,MAAM,cAAc,KAAK;EACzB,QAAQ,CAAC;EACT,QAAQ;CACV;AACF;;;;AAKA,SAAgB,2BAA2B,OAAyB;CAClE,OAAO,eAAe,KAAK,KAAK;AAClC;AAEA,SAAS,cAAc,OAA8B;CACnD,IACE,UAAU,QACV,OAAO,UAAU,aACjB,OAAO,UAAU,YACjB,OAAO,UAAU,YACjB,MAAM,QAAQ,KAAK,GAEnB,OAAO;CAGT,IAAIA,eAAa,KAAK,GACpB,OAAO;CAGT,OAAO,CAAC;AACV;;;ACtEA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,6BAA6B,EAF1C,UAAU,MAAM,SAE6B,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACfA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,UAAmC,CAAC;CAC1C,IAAI,MAAM,YAAY,KAAA,GACpB,QAAQ,cAAc,CACpB;EACE,KAAK,MAAM;EACX,KAAK,MAAM;EACX,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;CACpC,CACF;CAEF,QAAQ,eAAe;CACvB,QAAQ,uBAAuB,KAAK,IAAI;CACxC,QAAQ,aAAa;CAIrB,OAAO,QAAQ,+BAA+B,EAF5C,SAAS,KAAK,UAAU,OAAO,EAEgB,GAAG,aAAa,KAAK,CAAC;AACzE;AAEA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjCA,MAAMC,oBAAgB,OAAmB,YAA2B;CAClE,OAAO,QAAQ,iBAAiB,MAAM,MAAM,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAAmB,YAA2B;CAIlE,OAAO,QAAQ,oCAAoC,EAFjD,IAAI,MAAM,GAE0C,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAAmB,YAA2B;CAIlE,OAAO,QAAQ,6BAA6B,EAF1C,IAAI,MAAM,GAEmC,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAAuB,YAA2B;CAQtE,OAAO,QAAQ,kCAAkC;EAN/C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM;CAEsC,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA4B,YAA2B;CAO3E,OAAO,QAAQ,qCAAqC;EALlD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,MAAM,MAAM,QAAQ;CAEiC,GAAG,aAAa,OAAO,OAAO,CAAC;AACxF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAAuB,YAA2B;CAOtE,OAAO,QAAQ,kBAAkB;EAL/B,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,MAAM,MAAM,QAAQ;CAEc,GAAG,aAAa,OAAO,OAAO,CAAC;AACrE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAAyB,YAA2B;CACxE,OAAO,QAAQ,2BAA2B,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAAmB,YAA2B;CAIlE,OAAO,QAAQ,wBAAwB,EAFrC,IAAI,MAAM,GAE8B,GAAG,aAAa,KAAK,CAAC;AAClE;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAAgC,YAA2B;CAC/E,IAAI,OAAgC,EAClC,WAAW,MAAM,aAAa,EAChC;CACA,MAAM,OAAO,MAAM,QAAQ;CAC3B,IAAI,SAAS,QACX,OAAO;EACL,GAAG;EACH,MAAM,MAAM;CACd;CAEF,OAAO,QAAQ,+BAA+B,KAAK,QAAQ,MAAM,aAAa,OAAO,OAAO,CAAC;AAC/F;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAAsB,YAA2B;CACrE,MAAM,SAAS,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ;CAC/C,MAAM,OAAO,EACX,IAAI,MAAM,GACZ;CACA,OAAO,QAAQ,cAAc,UAAU,MAAM,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,sBAAsB;EAJnC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE+B,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAAyB,YAA2B;CACxE,MAAM,OAAO;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CACT;CACA,OAAO,QAAQ,sBAAsB,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAAoB,YAA2B;CAInE,OAAO,QAAQ,4BAA4B,EAFzC,IAAI,MAAM,GAEkC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAAoB,YAA2B;CACnE,OAAO,QACL,6BACA,EACE,IAAI,MAAM,GACZ,GACA,aAAa,KAAK,CACpB;AACF;AAEA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAAoB,YAA2B;CAInE,OAAO,QAAQ,8BAA8B,EAF3C,IAAI,MAAM,GAEoC,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,wBAAwB;EAJrC,IAAI,MAAM;EACV,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEgB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,gCAAgC,EAF7C,IAAI,MAAM,GAEsC,GAAG,aAAa,OAAO,OAAO,CAAC;AACnF;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACFA,MAAMC,oBAAgB,OAA0B,YAA2B;CAWzE,OAAO,QAAQ,uBAAuB;EATpC,SAAS,MAAM,MAAM,OAAO,KACvB,MAAM,WAAW,GAAA,CAAI,YAAY,CAAC,CAAC,WAAW,KAAK,KAAA,IACpD,MAAM;EACV,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;EACtB,OAAO;EACP,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM;CAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxCA,MAAMC,oBAAgB,OAAyB,YAA2B;CAOxE,OAAO,QAAQ,mBAAmB;EALhC,UAAU,MAAM;EAChB,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,OAAO;CAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,qCAAqC;EAHlD,OAAO,MAAM,SAAS;EACtB,gBAAgB,MAAM,UAAU,KAAK,IAAI;CAEY,GAAG,aAAa,OAAO,OAAO,CAAC;AACxF;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,uCAAuC;EAHpD,OAAO,MAAM,SAAS;EACtB,gBAAgB,MAAM,UAAU,KAAK,IAAI;CAEc,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1F;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAAyB,YAA2B;CASxE,OAAO,QAAQ,wBAAwB;EAPrC,IAAI,MAAM;EACV,eAAe;EACf,WAAW;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;CAEkB,GAAG,aAAa,KAAK,CAAC;AAClE;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAAuB,YAA2B;CACtE,MAAM,SAAS,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ;CAC/C,MAAM,OAAO;EACX,UAAU,MAAM;EAChB,WAAW,MAAM,MAAM,KAAK;CAC9B;CACA,OAAO,QAAQ,eAAe,UAAU,MAAM,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA2B,YAA2B;CAM1E,OAAO,QAAQ,uBAAuB;EAJpC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAEgC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAAoB,YAA2B;CAInE,OAAO,QAAQ,wBAAwB,EAFrC,IAAI,MAAM,GAE8B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAUzE,OAAO,QAAQ,0BAA0B;EARvC,UAAU,MAAM;EAChB,MAAM,KAAK,UAAU;GACnB,MAAM,MAAM,QAAQ;GACpB,QAAQ,MAAM,UAAU;EAC1B,CAAC;EACD,KAAK;EACL,OAAO,MAAM,SAAS;CAEoB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzBA,MAAMC,oBAAgB,OAAoB,YAA2B;CACnE,OAAO,QAAQ,kBAAkB,MAAM,MAAM,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACXA,MAAMC,mBAAe,OAAO,OAAwB,aAA4B;CAM9E,MAAM,MAAM,uBAAuB,OAAM,MALlB,MACrB,qHACE,MAAM,SACP,WAAW,mBAAmB,MAAM,OAAO,EAAE,mBAChD,EAAA,CACkD,KAAK,CAAC;CACxD,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM,IAAI,QAAQ;GAClB,MAAM,IAAI;GACV,SAAS,IAAI;EACf;EACA,QAAQ,CAAC;CACX;AACF;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;AAEA,SAAS,uBAAuB,OAAwC;CACtE,IAAI,CAACC,eAAa,KAAK,GACrB,OAAO,EACL,MAAM,IACR;CAKF,OAAO;EACL,MAHW,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;EAIzD,MAHWA,eAAa,MAAM,IAAI,IAAI,MAAM,OAAO,KAAA;EAInD,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,KAAA;CAC/D;AACF;AAEA,SAASA,eAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;;;ACrDA,eAA8B,aAAa,OAAyB,SAAwB;CAC1F,IAAI,CAAC,MAAM,SACT,MAAM,IAAI,UAAU,uCAAuC;CAE7D,MAAM,cAAcC,WAAS,MAAM,QAAQ,IAAI;CAY/C,MAAM,MAAM,MAAM,QAAQ,wBAAwB;EAThD,QAAQ;EACR,KAAK;EACL,UAAU,MAAM,QAAQ;EACxB,OAAO;EACP,aAAa;EACb,aAAa;EACb,MAAM;CAG6C,GAAG,aAAa,OAAO,OAAO,CAAC;CACpF,MAAM,MACJ,oCAAoC,OAAO,IAAI,KAAK,OAAO,SAAS,EAAE,sCACtE;EACE,QAAQ;EACR,SAAS;GACP,eAAe,OAAO,IAAI,KAAK,OAAO,KAAK;GAC3C,gBAAgB;EAClB;EACA,MAAM;CACR,CACF;CAEA,OAAO;EACL,SAAS,8BAA8B,OAAO,IAAI,KAAK,OAAO,SAAS;EACvE,OAAO,IAAI,KAAK,OAAO;CACzB;AACF;AAEA,SAASA,WAAS,MAAiD;CACjE,IAAI,OAAO,SAAS,IAAI,GACtB,OAAO;CAGT,OAAO,gBAAgB,aAAa,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,WAAW,IAAI,CAAC;AAC1F;;;ACvCA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,MAAM,aAAa,MAAM,aAAa,OAAO,OAAO;CACpD,MAAM,MAAM,MAAM,QAChB,8BACA,EACE,OAAO,WAAW,MACpB,GACA,aAAa,KAAK,CACpB;CACA,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM;IACJ,GAAG;IACH,GAAG,IAAI;GACT;EACF;CACF;AACF;AAEA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC/BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,sBAAsB,EAAE,YAD1B;EALX,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;CAEoB,EAAE,OAAO,MAAM,QAAQ,CAAC,MAAM,KACC,GAAG,aAAa,KAAK,CAAC;AAChF;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAAmB,YAA2B;CAClE,MAAM,OAAgC,CAAC;CACvC,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM;EAChC,IAAI,EAAE,WAAW,OAAO,GACtB,KAAK,KAAK,MAAM;CAEpB,CAAC;CACD,OAAO,QAAQ,cAAc,MAAM,aAAa,KAAK,CAAC;AACxD;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,4CAA4C,CAAG,GAAG,aAAa,KAAK,CAAC;AACtF;;;;AAKA,eAA8B,mCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,qCAAqC;EALlD,aAAa;EACb,OAAO,MAAM,SAAS;EACtB,kBAAkB;EAClB,WAAW;CAE0C,GAAG,aAAa,KAAK,CAAC;AAC/E;;;;AAKA,eAA8B,oCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,4CAA4C,EAFzD,WAAW,MAAM,GAE2C,GAAG,aAAa,KAAK,CAAC;AACtF;;;;AAKA,eAA8B,oCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,qCAAqC;EANlD,YAAY,MAAM,cAAc;EAChC,UAAU,MAAM,YAAY;EAC5B,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;CAE+B,GAAG,aAAa,KAAK,CAAC;AAC/E;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,UAAU;CAM5C,OAAO,QAAQ,iCAAiC;EAJ9C,aAAa;EACb,WAAW,MAAM;EACjB,eAAe,MAAM;CAE4B,GAAG,aAAa,KAAK,CAAC;AAC3E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,yBAAyB;EAHtC,WAAW,MAAM,aAAa,KAAK,IAAI;EACvC,SAAS,MAAM,WAAW,KAAK,IAAI;CAEM,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;AAEA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,yBAAyB;EAJtC,QAAQ,MAAM,UAAU;EACxB,SAAS;EACT,WAAW,MAAM;CAEwB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,2BAA2B;EAJxC,QAAQ,MAAM,UAAU;EACxB,WAAW,MAAM;EACjB,SAAS,MAAM;CAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,kCAAkC;EAH/C,WAAW,MAAM;EACjB,aAAa,MAAM;CAE+B,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACTA,MAAMC,oBAAgB,OAAwB,YAA2B;CAKvE,OAAO,QACL,gCACA;EALA,KAAK,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI;EACjD,IAAI,SAAS,OAAO,MAAM,MAAM,KAAM,GAAG,EAAE;CAIxC,GACH,aAAa,OAAO,OAAO,CAC7B,CAAC,CAAC,MAAM,aAAa;EACnB,IAAI,WAAW;EACf,IAAI,SAAS,KAAK,SAAS;OACrB,SAAS,KAAK,OAAO,EAAE,EAAE,SAAS,KACpC,WAAW;EAAA;EAGf,IAAI,UAAU;GACZ,SAAS,OAAO;IAAE,MAAM;IAAK,SAAS;IAAM,SAAS;GAAK;GAC1D,OAAO;EACT,OAAO;GACL,SAAS,OAAO;IAAE,MAAM;IAAK,SAAS;IAAO,SAAS;GAAW;GACjE,OAAO;EACT;CACF,CAAC;AACH;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC9CA,eAA8B,iBAAiB,OAAwB,SAAwB;CAC7F,IAAI,CAAC,MAAM,UACT,MAAM,IAAI,UAAU,6CAA6C;CAEnE,MAAM,aAAaC,WAAS,MAAM,SAAS,IAAI;CAE/C,IAAI,MAAM;CACV,IAAI,MAAM,SAAS,KAAK,SAAS,GAAG,GAClC,MAAM,MAAM,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK;CAEhD,MAAM,WAAW,MAAM,SAAS,KAC7B,QAAQ,MAAM,KAAK,EAAE,CAAC,CACtB,QAAQ,OAAO,EAAE,CAAC,CAClB,QAAQ,OAAO,GAAG;CACrB,MAAM,SAAS;CAEf,MAAM,WAAW,MAAM,QACrB,wBACA;EACU;EACH;EACK;EACV,OAAO;EACP,aAAa;EACb,MAAM;EACN,KAAK,MAAM,SAAS;CACtB,GACA,aAAa,OAAO,OAAO,CAC7B;CAGA,MAAM,YAAY,SAAS,KAAK,OAAO,UAAU,QAAQ,KAAK,KAAK;CAInE,MAAM,aAHM,gBACV,OAAO,MAAM,MAAM,uDAAuD,QAAQ,EAAA,CAAG,KAAK,CAEvE,CAAC,CAAC,SAAS;CAChC,IAAI,CAAC,YACH,MAAM,IAAI,UAAU,oCAAoC;CAG1D,MAAM,WAAW,MAAM,MACrB,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,sCACrC;EACE,QAAQ;EACR,SAAS;GACP,eAAe,OAAO,SAAS,KAAK,OAAO,KAAK;GAChD,eAAe,MAAM,SAAS,OAAO;GACrC,gBAAgB;GAChB,kBAAkB,OAAO,MAAM,SAAS,IAAI;EAC9C;EACA,MAAM;CACR,CACF;CACA,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,kCAAkC,SAAS,QAAQ;CAErE,OAAO,EACL,GAAG,SACL;AACF;AAEA,SAASA,WAAS,MAAiD;CACjE,IAAI,OAAO,SAAS,IAAI,GACtB,OAAO;CAGT,OAAO,gBAAgB,aAAa,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,WAAW,IAAI,CAAC;AAC1F;AAEA,SAAS,gBAAgB,OAA6B;CACpD,IAAI,CAACC,eAAa,KAAK,KAAK,CAAC,MAAM,QAAQ,MAAM,MAAM,GACrD,OAAO,CAAC;CAGV,OAAO,EACL,QAAQ,MAAM,OAAO,KAAK,UAAU,OAAO,KAAK,CAAC,EACnD;AACF;AAEA,SAASA,eAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;;;AChFA,MAAMC,mBAAe,OAAO,OAAmB,YAA2B;CACxE,IAAI,CAAC,MAAM,UACT,MAAM;EACJ,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,MAAM;EACR;EACA,QAAQ,CAAC;CACX;CAGF,MAAM,WAAW,MAAM;CACvB,MAAM,aAAa,SAAS,SAAS,IAAI;CACzC,IAAI,MAAM;CACV,IAAI,SAAS,KAAK,SAAS,GAAG,GAC5B,MAAM,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK;CAE1C,SAAS,OAAO,OAAO,KAAK,SAAS,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO;CACrE,MAAM,WAAW,SAAS,KACvB,QAAQ,MAAM,KAAK,EAAE,CAAC,CACtB,QAAQ,OAAO,EAAE,CAAC,CAClB,QAAQ,OAAO,GAAG;CACrB,MAAM,UAAU;CAChB,IAAI,CAAC,SAAS,KAAK;EAEjB,SAAS,MAAM,WAAW,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,OAAO,KAAK;EAChE,SAAS,OAAO,WAAW;CAC7B;CACA,MAAM,MAAM,MAAM,QAChB,2BACA;EACE,SAAS,OAAO,OAAO;EACvB,KAAK;EACL,QAAQ,SAAS;EACjB,KAAK,SAAS;EACd,QAAQ;EACR,SAAS;CACX,GACA,aAAa,KAAK,CACpB;CACA,IAAI,SAAS;CACb,IAAI,QAAQ;CACZ,IAAI,WAAW;CACf,IAAI;EAEF,MAAM,QAAO,MADU,GAAG,YAAY,YAAY,SAAS,QAAQ,EAAA,CAC7C;EAEtB,IAAI,KAAK,OACP,WAAW,KAAK;EAElB,IAAI,KAAK,OACP,QAAQ,KAAK;EAEf,IAAI,KAAK,QACP,SAAS,KAAK;CAElB,QAAQ,CAAC;CACT,MAAM,WAAW,MAAM,QACrB,wBACA;EACE,QAAQ;EACH;EACK;EACV,OAAO;EACP,aAAa;EACb,MAAM;EACN,KAAK,SAAS;CAChB,GACA,aAAa,KAAK,CACpB;CAEA,IAAI,IAAI,KAAK,YACX,MAAMC,iBAAa,OAAO,OAAO;CAgBnC,MAAM,OAAO,MAAM,QACjB,qBACA,EACE,SAAQ,MAjBO,QACjB,6BACA;EACE,KAAK,SAAS;EACd,QAAQ,IAAI,KAAK;EACjB,UAAU,SAAS;EACnB,MAAM,YAAY;EAClB,OAAO,SAAS;EAChB,QAAQ,UAAU;EAClB,SAAS,OAAO,OAAO;EACvB,YAAY,SAAS,KAAK,OAAO;CACnC,GACA,aAAa,KAAK,CACpB,EAAA,CAIiB,KAAK,OACpB,GACA,aAAa,KAAK,CACpB;CACA,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,GAAG,IAAI;GACP,GAAG,KAAK;EACV;EACA,QAAQ,IAAI;CACd;AACF;AAEA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMD,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;AAEA,SAAS,SAAS,MAAiD;CACjE,IAAI,OAAO,SAAS,IAAI,GACtB,OAAO;CAGT,OAAO,gBAAgB,aAAa,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,WAAW,IAAI,CAAC;AAC1F;;;AC/HA,MAAME,mBAAe,OAAO,OAAyB,YAA2B;CAC9E,MAAM,KAAK,MAAM,MAAM;CACvB,MAAM,SAAS,MAAM,UAAU;CAC/B,MAAM,QAAQ,MAAM,SAAS;CAY7B,MAAM,MAAM,MAAM,QAAQ,8BAA8B;EAVtD,YAAY;EACZ,OAAO,KAAK,UAAU,CACpB;GACE,KAAK,MAAM;GACX,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,UAAU,MAAM;EAClB,CACF,CAAC;CAE6D,GAAG,aAAa,KAAK,CAAC;CAgBtF,OAAO,QAAQ,+BAA+B;EAZ5C,YAAY;EACZ,OAAO,KAAK,UAAU,CACpB;GACE,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC;GACzB,SAAS,MAAM;GACf,MAAM,MAAM;GACZ,QAAQ,MAAM;GACd,OAAO,MAAM;GACb,UAAU,MAAM,OAAO,MAAM,MAAM;EACrC,CACF,CAAC;CAEoD,GAAG,aAAa,KAAK,CAAC;AAC/E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC9CA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,8BAA8B;EAJ3C,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,cAAc,MAAM;CAE0B,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,uBAAuB;EANpC,GAAG,MAAM;EACT,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAEgC,GAAG,aAAa,KAAK,CAAC;AACjE;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAM,uBAA+C;AACrD,MAAM,yBAAgD;CACpD,KAAK;CACL,KAAK;AACP;AAEA,SAAgB,oBAAoB,OAAwB;CAG1D,OAAO,qBAFK,OAAO,OAAO,SAAS,CAAC,CAEN,MAAM,qBAAqB,QAAQ;AACnE;AAEA,SAAgB,qBAAqB,OAAuB;CAG1D,OAAO,uBAFK,UAAU,QAAQ,QAAQ,UAEA;AACxC;;;ACXA,MAAMC,oBAAgB,OAAqB,YAA2B;CAMpE,MAAM,SAAS;EAJb,GAAG;EACH,GAAG;EACH,GAAG;CAEkB,EAAE,OAAO,MAAM,KAAK,CAAC,MAAM;CAClD,MAAM,eAAe,oBAAoB,MAAM,IAAI;CACnD,MAAM,OAAgC,EACpC,UAAU,GAAG,eAAe,OAAO,MAAM,EAAE,IAC7C;CAEA,IAAI,iBAAiB,WACnB,KAAK,WAAW,MAAM;CAExB,IAAI,WAAW,OAAO,KAAK,UAAU,MAAM;MACtC,IAAI,WAAW,UAAU,KAAK,YAAY,MAAM;MAChD,IAAI,WAAW,SAAS;EAC3B,KAAK,YAAY,MAAM;EACvB,KAAK,UAAU,MAAM;CACvB;CACA,OAAO,QAAQ,0BAA0B,UAAU,MAAM,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrCA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,6BAA6B,MAAM,YAAY,MAAM,aAAa,OAAO,OAAO,CAAC;AAClG;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,eAAe,oBAAoB,MAAM,IAAI;CAOnD,OAAO,QAAQ,mCAAmC;EALhD,iBAAiB,MAAM;EACvB,UAAU,GAAG,eAAe,OAAO,MAAM,EAAE;EAC3C,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;CAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AACtF;AAEA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAAwB,YAA2B;CACvE,MAAM,eAAe,oBAAoB,MAAM,IAAI;CACnD,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QACL,gCAAgC,eAAe,OAAO,MAAM,EAAE,KAC9D,MACA,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,oBAAoB,MAAM,IAAI;CAC3C,MAAM,WAAW,GAAG,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAO,MAAM,OAAO,EAAE;CAUrE,OAAO,QAAQ,sCAAsC;EARnD,cAAc,MAAM;EACpB,WAAW,MAAM;EACjB,QAAQ,MAAM,UAAU;EACd;EACV,QAAQ,MAAM,QAAQ;EACtB,UAAU,MAAM,YAAY;EAC5B,UAAU,MAAM,YAAY;CAE0B,GAAG,aAAa,KAAK,CAAC;AAChF;AAEA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,oBAAgB,OAAyB,YAA2B;CACxE,MAAM,SAAS,OAAO,MAAM,CAAC,MAAM,IAAI,SAAS;CAChD,MAAM,eAAe,oBAAoB,MAAM,IAAI;CACnD,MAAM,OAAgC;EACpC,UAAU,GAAG,eAAe,OAAO,MAAM,EAAE;EAC3C,WAAW,MAAM;CACnB;CACA,IAAI,iBAAiB,WACnB,KAAK,WAAW,MAAM;CAExB,OAAO,QAAQ,mBAAmB,UAAU,MAAM,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAAwB,YAA2B;CAEvE,MAAM,WAAW,GADI,oBAAoB,MAAM,IAChB,IAAI,OAAO,MAAM,EAAE;CAClD,MAAM,WAAW,OAAO,MAAM,YAAY,EAAE,KAAK;CACjD,MAAM,SAAS,OAAO,MAAM,UAAU,CAAC,KAAK;CAC5C,IAAI,WAAW,OAAO,MAAM,QAAQ,KAAK;CACzC,IAAI,aAAa,GACf,WAAW;CAEb,IAAI,SAAS;CACb,QAAQ,UAAR;EACE,KAAK;GACH,SAAS,QAAQ,SAAS,KAAK,QAAQ;GACvC;EACF,KAAK;GACH,SAAS,eAAe,QAAQ,SAAS,KAAK,QAAQ;GACtD;EACF,KAAK;GACH,SAAS,MAAM,UAAU;GACzB;EACF,SACE;CACJ;CASA,OAAO,QAAQ,6BAA6B;EAPhC;EACV;EACA,WAAW,MAAM,aAAa;EAC9B;EACQ;EACE;CAEmC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC/CA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,MAAM,MAAM,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA2B,YAA2B;CAC1E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,YAAY,MAAM,UAAU;CAC9B;CACA,OAAO,QACL,qCAAqC,MAAM,MAC3C,MACA,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,yBAAyB,CAAG,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACVA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,wBAAwB,EAFrC,MAAM,MAAM,QAAQ,EAEoB,GAAG,aAAa,KAAK,CAAC;AAClE;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,oCAAoC,EAFjD,IAAI,MAAM,GAE0C,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAazE,OAAO,QAAQ,6BAA6B;EAX1C,UAAU;EACV,eAAe,MAAM;EACrB,kBAAkB,KAAK,UAAU,CAC/B;GACE,UAAU;GACV,YAAY,MAAM;GAClB,UAAU,MAAM;EAClB,CACF,CAAC;EACD,MAAM;CAEuC,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC5BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,+BAA+B;EAJ5C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAEwC,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+CAA+C,EAF5D,UAAU,MAAM,IAE+C,GAAG,aAAa,OAAO,OAAO,CAAC;AAClG;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,2BAA2B,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,oCAAoC,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,wCAAwC,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACzF;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,6BAA6B,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,uBAAuB,EAFpC,IAAI,MAAM,IAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,qCAAqC,EAFlD,SAAS,MAAM,WAAW,MAE2B,GAAG,aAAa,KAAK,CAAC;AAC/E;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kCAAkC,EAF/C,IAAI,MAAM,GAEwC,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,oCAAoC,EAFjD,IAAI,MAAM,GAE0C,GAAG,aAAa,KAAK,CAAC;AAC9E;;;;AAKA,eAA8B,iCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,oCAAoC;EAJjD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,WAAW,MAAM;CAEmC,GAAG,aAAa,KAAK,CAAC;AAC9E;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,0CAA0C,EAFvD,SAAS,MAAM,WAAW,MAEgC,GAAG,aAAa,KAAK,CAAC;AACpF;;;;AAKA,eAA8B,mCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,uBAAuB;EAHpC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEe,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,kCAAkC;EAJ/C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,SAAS;CAEyC,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,iCACA,EACE,OAAO,MAAM,SAAS,EACxB,GACA,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,2BAA2B;EALxC,SAAS,MAAM;EACf,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,KAAK,UAAU,MAAM,GAAG;CAEmB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,0BAA0B,EAFvC,IAAI,MAAM,GAEgC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,2BAA2B;EAHxC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEmB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,gCAAgC,EAH7C,OAAO,MAAM,SAAS,IAG0B,GAAG,aAAa,OAAO,OAAO,CAAC;AACnF;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,oBAAoB;EAJjC,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEY,GAAG,aAAa,OAAO,OAAO,CAAC;AACvE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,6BAA6B,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACOA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,0BAA0B,EAFvC,QAAQ,MAAM,KAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;AAEA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvCA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ;CAC1C,MAAM,OAAO,EACX,IAAI,MAAM,IACZ;CACA,OAAO,QAAQ,gBAAgB,MAAM,KAAK,MAAM,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,0BAA0B;EAJvC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAEmC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,2BAA2B;EALxC,MAAM,MAAM,QAAQ;EACpB,IAAI,MAAM;EACV,OAAO,MAAM,SAAS;EACtB,OAAO;CAEoC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,oCAAoC,EAFjD,MAAM,MAAM,QAAQ,EAEgC,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,wBAAwB;EAJrC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,MAAM,qBAAqB,MAAM,IAAI;CAEG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,yBAAyB,EAHtC,OAAO,MAAM,SAAS,IAGmB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,4BAA4B;EAHzC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEoB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,4BAA4B,EAHzC,OAAO,MAAM,SAAS,IAGsB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,2BAA2B,EAHxC,OAAO,MAAM,SAAS,IAGqB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,uCAAuC;EALpD,WAAW,MAAM,aAAa;EAC9B,WAAW,MAAM,aAAa;EAC9B,aAAa,MAAM,eAAe;EAClC,UAAU,MAAM,YAAY;CAE2B,GAAG,aAAa,KAAK,CAAC;AACjF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,qBAAqB;EAHlC,UAAU,MAAM,YAAY;EAC5B,UAAU,MAAM,YAAY;CAES,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,qBAAqB,EAFlC,IAAI,MAAM,KAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,sBAAsB;EAJnC,UAAU,MAAM;EAChB,IAAI,MAAM;EACV,aAAa,MAAM;CAEmB,GAAG,aAAa,KAAK,CAAC;AAChE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,wBAAwB;EAJrC,QAAQ,MAAM;EACd,KAAK;EACL,MAAM,MAAM,QAAQ;CAEoB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,WAAW;CAC7C,OAAO,QAAQ,aAAa,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,wBAAwB,EAFrC,WAAW,MAAM,UAEuB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QACL,iDACA,CAAG,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QACL,iDACA,EAJA,MAAM,MAAM,QAAQ,GAIjB,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,oCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,4BAA4B;EAD5B,SAAS,MAAM,WAAW;EAAO,QAAQ,MAAM;CAChB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;;;AAOA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAGzE,OAAO,QAAQ,oCAAoC,CAAG,GAAG,aAAa,KAAK,CAAC;AAC9E;;;;;;;AAQA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,gBAAgB;EAH7B,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEQ,GAAG,aAAa,OAAO,OAAO,CAAC;AACnE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,oBAAoB,MAAM,IAAI;CAC3C,MAAM,WAAW,GAAG,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAO,MAAM,OAAO,EAAE;CAMrE,OAAO,QAAQ,0CAA0C;EAJvD,cAAc,MAAM;EACpB,WAAW,MAAM;EACP;CAEgD,GAAG,aAAa,KAAK,CAAC;AACpF;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAM,mBAAmB,QAAQ,cAAc,OAAO,KAAK,GAAG,CAAC;AAE/D,SAAS,yBAAiC;CACxC,IAAI,mBAAmB;CAEvB,KAAK,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG;EACzC,MAAM,kBAAkB,QAAQ,kBAAkB,cAAc;EAEhE,IAAI;GACF,MAAM,cAAc,KAAK,MACvB,aAAa,iBAAiB,MAAM,CACtC;GAEA,IAAI,OAAO,YAAY,YAAY,YAAY,YAAY,QAAQ,SAAS,GAC1E,OAAO;EAEX,QAAQ,CAER;EAEA,mBAAmB,QAAQ,kBAAkB,IAAI;CACnD;CAEA,MAAM,IAAI,MAAM,sCAAsC,kBAAkB;AAC1E;AAEA,MAAM,oBAAoB,uBAAuB;AAEjD,SAAS,qBAA6B;CACpC,MAAM,cAAc,KAAK,MAAM,aAAa,mBAAmB,MAAM,CAAC;CAEtE,IAAI,OAAO,YAAY,YAAY,YAAY,YAAY,QAAQ,WAAW,GAC5E,MAAM,IAAI,UAAU,8BAA8B,mBAAmB;CAGvE,OAAO,YAAY;AACrB;AAEA,MAAa,kBAAkB,mBAAmB;;;ACxClD,MAAMC,oBAAgB,QAA2B,aAA4B;CAC3E,OAAO,QAAQ,QAAQ;EACrB,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM,EACJ,SAAS,gBACX;EACF;CACF,CAAC;AACH;AAEA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,OAAO,MAAM,QAAQ,EAAE,MAAM;CAO1C,OAAO,QAAQ,mBAAmB;EALhC,KAAK;EACL,SAAS,MAAM;EACf,MAAM,MAAM;EACZ,MAAM;CAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,aAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,sBAAsB,EAFnC,KAAK,MAAM,IAE2B,GAAG,aAAa,KAAK,CAAC;AAChE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,qDACA,EACE,MAAM,MAAM,QAAQ,OACtB,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,iCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,4CACA;EACE,MAAM,MAAM,QAAQ;EACpB,SAAS,MAAM;CACjB,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,0DAA0D,CAAC,GAAG,aAAa,KAAK,CAAC;AAClG;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,2CAA2C,CAAC,GAAG,aAAa,KAAK,CAAC;AACnF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,iDAAiD,CAAC,GAAG,aAAa,KAAK,CAAC;AACzF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,+CAA+C;EAJ5D,OAAO;EACP,QAAQ,MAAM;EACd,WAAW,MAAM;CAE8C,GAAG,aAAa,KAAK,CAAC;AACzF;AAEA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+BAA+B,EAF5C,QAAQ,MAAM,OAEiC,GAAG,aAAa,KAAK,CAAC;AACzE;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,kCAAkC;EAL/C,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,YAAY,MAAM;EAClB,UAAU,MAAM;CAEkC,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAYzE,OAAO,QAAQ,4CAA4C;EAVzD,QAAQ,MAAM;EACd,aAAa,KAAK,UAAU;GAC1B,aAAa,MAAM;GACnB,UAAU,MAAM,YAAY;GAC5B,YAAY,MAAM;GAClB,cAAc,MAAM;GACpB,cAAc,MAAM;GACpB,WAAW,MAAM;EACnB,CAAC;CAE2D,GAAG,aAAa,KAAK,CAAC;AACtF;;;;AAKA,eAA8B,kCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mCAAmC,EAFhD,QAAQ,MAAM,OAEqC,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,oCAAoC,EAFjD,OAAO,gBAE6C,GAAG,aAAa,KAAK,CAAC;AAC9E;;;;AAKA,eAA8B,iCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,mCAAmC,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACpF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAiBzE,OAAO,QAAQ,iDAAiD;EAf9D,QAAQ,MAAM;EACd,eAAe,KAAK,UAAU;GAC5B,aAAa,MAAM;GACnB,SAAS,CACP;IACE,QAAQ,MAAM;IACd,SAAS,MAAM;GACjB,CACF;GACA,cAAc;GACd,gBAAgB;GAChB,YAAY,MAAM,WAAW,MAAM,GAAG;GACtC,aAAa,MAAM,YAAY,MAAM,GAAG;EAC1C,CAAC;CAEgE,GAAG,aAAa,KAAK,CAAC;AAC3F;;;;AAKA,eAA8B,sCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChCA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,0CAA0C,EAFvD,QAAQ,MAAM,OAE4C,GAAG,aAAa,KAAK,CAAC;AACpF;;;;AAKA,eAA8B,sCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAe,OAAO,OAAmB,YAA2B;CAQxE,IAAI,SAAS,MAAM,QAAQ,gBAAgB;EANzC,MAAM;EACN,OAAO;EACP,UAAU,MAAM;EAChB,UAAU,MAAM,gBAAgB,WAAW,KAAK,CAAC,CAAC,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK;EAC7F,eAAe;CAE6B,GAAG,aAAa,KAAK,CAAC;CACpE,IAAI,OAAO,KAAK,SAAS,KACvB,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,MAAM;GACN,SAAS;EACX;CACF;CAEF,IAAI,OAAO,KAAK,SAAS,KACvB,SAAS;EACP,QAAQ;EACR,MAAM;GACJ,GAAG,KAAK,MAAM,KAAK,UAAU,OAAO,IAAI,CAAC,CAAC,QAAQ,oBAAoB,gBAAgB,CAAC;GACvF,QAAQ,OAAO,OAAO,KAAK,GAAG;EAChC;EACA,QAAQ,OAAO;CACjB;CAEF,OAAO;AACT;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC5CA,MAAMC,mBAAe,OAAO,OAA4B,YAA2B;CAYjF,IAAI,SAAS,MAAM,QAAQ,0BAA0B;EAVnD,MAAM;EACN,OAAO;EACP,OAAO,MAAM;EACb,aAAa,MAAM,eAAe;EAClC,SAAS,MAAM;GACd,MAAM,UAAU,YAAY,aAAa,MAAM,UAC5C,MAAM,UACN,MAAM,gBAAgB,WAAW,KAAK,CAAC,CAAC,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK;EACvF,UAAU;CAE4C,GAAG,aAAa,OAAO,OAAO,CAAC;CAEvF,IAAI,OAAO,KAAK,SAAS,KACvB,SAAS;EACP,QAAQ;EACR,MAAM;GACJ,GAAG,KAAK,MAAM,KAAK,UAAU,OAAO,IAAI,CAAC,CAAC,QAAQ,oBAAoB,gBAAgB,CAAC;GACvF,QAAQ,OAAO,OAAO,KAAK,GAAG;EAChC;EACA,QAAQ,OAAO;CACjB;CAEF,OAAO;AACT;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzCA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,MAAM,OAAO;EACX,KAAK,MAAM;EACX,MAAM;CACR;CACA,IAAI;CACJ,IAAI;EACF,SAAS,MAAM,QAAQ,kCAAkC,MAAM,aAAa,KAAK,CAAC;EAClF,SAAS;GACP,QAAQ;GACR,MAAM;IACJ,GAAG,OAAO;IACV,QAAQ,OAAO,OAAO,KAAK,GAAG;GAChC;GACA,QAAQ,OAAO;EACjB;EACA,OAAO;CACT,QAAQ;EACN,OAAO;GACL,QAAQ;GACR,MAAM,CAAC;GACP,QAAQ,QAAQ,UAAU,CAAC;EAC7B;CACF;AACF;AAEA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjCA,MAAMC,mBAAe,OAAO,UAA8B;CACxD,MAAM,WAAW,MAAM,YAAY;CACnC,MAAM,SAAS,MAAM,UAAU;CAE/B,IAAI,MAAM,uCAAuC,MAAM;CAEvD,IAAI,aAAa,OAAO;EACtB,MAAM,UAAU,gBAAgB,MAAM;EACtC,OAAO,YAAY;CACrB;CAEA,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM;IACJ,OAAO;IACP,OAAO,MAAM,QAAQ,MAAM,OAAO,UAAU,GAAG,IAAI;GACrD;EACF;EACA,QAAQ,CAAC;CACX;AACF;AAEA,eAA8B,sBAC5B,OACA,UACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,KAAK,CAAC;CAChE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnCA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAI/E,MAAM,SAAS,MAAM,QAAQ,4BAA4B,EAFvD,MAAM,EAEoD,GAAG,aAAa,KAAK,CAAC;CAClF,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM,OAAO;GACb,MAAM;EACR;EACA,QAAQ,OAAO;CACjB;AACF;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,IAAI,SAAS,MAAM,QAAQ,4BAA4B,CAAC,GAAG,aAAa,KAAK,CAAC;CAC9E,IAAI,OAAO,KAAK,SAAS,KACvB,SAAS;EACP,QAAQ;EACR,MAAM;GACJ,GAAG,OAAO;GACV,QAAQ,OAAO,OAAO,KAAK,GAAG;EAChC;EACA,QAAQ,OAAO;CACjB;CAEF,OAAO;AACT;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAE/E,IAAI,SAAS,MAAM,QAAQ,4BAA4B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;CACzF,IAAI,OAAO,KAAK,SAAS,KACvB,SAAS;EACP,QAAQ;EACR,MAAM,EACJ,MAAM,EACJ,GAAG,OAAO,KACZ,EACF;EACA,QAAQ,OAAO;CACjB;CAEF,OAAO;AACT;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,eAAe,CAAC,GAAG,aAAa,KAAK,CAAC;AACvD;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CASzE,OAAO,QAAQ,mBAAmB;EAPhC,IAAI,MAAM;EACV,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;CAE0B,GAAG,aAAa,KAAK,CAAC;AAC7D;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAYzE,OAAO,QAAQ,sBAAsB;EAVnC,IAAI,MAAM;EACV,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,KAAK;EACL,KAAK;CAEiC,GAAG,aAAa,KAAK,CAAC;AAChE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,4BAA4B;EANzC,IAAI,MAAM,QAAQ;EAClB,MAAM;EACN,UAAU;EACV,OAAO,MAAM,SAAS;EACtB,SAAS,KAAK,UAAU,EAAE,QAAQ,MAAM,OAAO,CAAC;CAEJ,GAAG,aAAa,KAAK,CAAC;AACtE;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,8BAA8B,EAF3C,QAAQ,MAAM,GAEgC,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,uBAAuB;EAJpC,IAAI,MAAM;EACV,YAAY,MAAM,OAAO;EACzB,MAAM;CAEiC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO;EACX,YAAY,MAAM,UAAU;EAC5B,OAAO,MAAM,SAAS;EACtB,OAAO;EACP,KAAK,MAAM;CACb;CAEA,OAAO,QAAQ,yBAAyB,MAAM,OAAO,MAAM,aAAa,OAAO,OAAO,CAAC;AACzF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,qBAAqB;EAJlC,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;EACtB,OAAO;CAE8B,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,oBAAoB;EAHjC,OAAO,MAAM,SAAS;EACtB,MAAM,MAAM,YAAY;CAEY,GAAG,aAAa,OAAO,OAAO,CAAC;AACvE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,0BAA0B;EAJvC,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;EACtB,OAAO;CAEmC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,4BAA4B;EALzC,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,MAAM,MAAM,UAAU;EACtB,OAAO;CAEqC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,8BAA8B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,iDAAiD,EAF9D,QAAQ,MAAM,GAEmD,GAAG,aAAa,KAAK,CAAC;AAC3F;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,sBAAsB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QACL,sDACA;EALA,eAAe,MAAM;EACrB,QAAQ,MAAM;CAIX,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QACL,qDACA,CAAG,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QACL,6DACA;EALA,WAAW,MAAM;EACjB,SAAS,MAAM;CAIZ,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,4BAA4B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,+CAA+C,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAClG;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,gDAAgD,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAWzE,OAAO,QAAQ,eAAe;EAT5B,MAAM,KAAK,UAAU;GACnB,IAAI,MAAM,QAAQ;GAClB,IAAI,MAAM,QAAQ;GAClB,IAAI,MAAM,SAAS;EACrB,CAAC;EACD,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,OAAO,MAAM,SAAS;CAES,GAAG,aAAa,KAAK,CAAC;AACzD;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,qBAAqB,EAFlC,IAAI,MAAM,KAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,mCAAmC;EAHhD,UAAU,UAAU,MAAM;EAC1B,cAAc;CAEqC,GAAG,aAAa,OAAO,OAAO,CAAC;AACtF;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,0BAA0B;EAHvC,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;CAEoB,GAAG,aAAa,KAAK,CAAC;AACpE;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,iBAAiB;EAJ9B,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;EACtB,OAAO;CAE0B,GAAG,aAAa,KAAK,CAAC;AAC3D;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ;CAC1C,MAAM,OAAO;EACX,MAAM,MAAM;EACZ,OAAO,QAAO,MAAM,OAAO;CAC7B;CACA,OAAO,QAAQ,WAAW,MAAM,KAAK,MAAM,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,oCAAoC;EAJjD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE6C,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,iCAAiC;EAH9C,IAAI,MAAM;EACV,GAAG,MAAM,KAAK;CAEmC,GAAG,aAAa,OAAO,OAAO,CAAC;AACpF;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,4BAA4B,EAFzC,UAAU,MAAM,SAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,qBAAqB,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,qBAAqB;EAJlC,MAAM,MAAM;EACZ,SAAS,MAAM;EACf,OAAO,MAAM,SAAS;CAEe,GAAG,aAAa,KAAK,CAAC;AAC/D;;;;;;AAOA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,8BAA8B;EAL3C,OAAO,MAAM,SAAS;EAEtB,OAAO;EACP,GAAG;CAE2C,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,+BAA+B,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,wBAAwB,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,6BAA6B;EAJ1C,MAAM;EACN,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEqB,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,oCAAoC,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,mCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,+BAA+B;EAJ5C,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,OAAO,MAAM,SAAS;CAEyB,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;;;;AAKA,eAA8B,uCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,iBAAiB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACpE;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,2BAA2B,CAAC,GAAG,aAAa,OAAO,MAAM,CAAC;AAC3E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACfA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,IAAI,CAAC,MAAM,SACT,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,KAAK;EACP;CACF;CAEF,MAAM,aAAa,MAAM,aAAa,OAAO,OAAO;CACpD,MAAM,MAAM,MAAM,QAChB,8BACA;EACE,IAAI,MAAM;EACV,YAAY,WAAW;CACzB,GACA,aAAa,OAAO,OAAO,CAC7B;CACA,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM;IACJ,GAAG;IACH,GAAG,IAAI;GACT;EACF;CACF;AACF;AAEA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzCA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,wBAAwB;EAJrC,MAAM,MAAM;EACZ,SAAS,MAAM,WAAW;EAC1B,MAAM,MAAM,QAAQ;CAEoB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,wBAAwB,EAFrC,KAAK,MAAM,MAAM,KAAK,IAEkB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,6BAA6B;EAH1C,IAAI,MAAM;EACV,MAAM,MAAM;CAEiC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA4B,YAA2B;CAM3E,OAAO,QAAQ,2BAA2B;EAJxC,IAAI,MAAM;EACV,GAAG;EACH,GAAG,MAAM,KAAK;CAE6B,GAAG,aAAa,KAAK,CAAC;AACrE;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,gCAAgC;EAJ7C,IAAI,MAAM;EACV,GAAG;EACH,GAAG,MAAM,KAAK;CAEkC,GAAG,aAAa,KAAK,CAAC;AAC1E;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,iCAAiC;EAJ9C,OAAO;EACP,YAAY,MAAM;EAClB,UAAU;CAEuC,GAAG,aAAa,KAAK,CAAC;AAC3E;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,kCAAkC,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,yBAAyB,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACVA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,IAAI,OAAgC,EAClC,oBAAoB,MAAM,sBAAsB,MAClD;CAEA,IAAI,MAAM,OAAO;EAEf,MAAM,QAAQ,+BAA+B,MAAM,KAAK;EACxD,MAAM,aAAa,KAAK,UACtB,MAAM,IAAI,SAAU,GAAG;GACrB,OAAO;IACL,UAAU,EAAE;IACZ,YAAY,EAAE;IACd,WAAW,EAAE;GACf;EACF,CAAC,CACH;EACA,OAAO;GACL,GAAG;GACS;EACd;CACF,OAAO;EACL,MAAM,eAAe,MAAM,gBAAgB,QAAQ,wBAAO,IAAI,KAAK,EAAA,CAAE,eAAe,CAAC;EACrF,IAAI,QAAQ;EACZ,IAAI,MAAM,MAER,QAAQ,KAAK,UAAU,CACrB;GACE,MAAM;GACN,MAAM;GACN,KAAK,UAAU,8BAA8B,OAAO,MAAM,IAAI,CAAC;EACjE,CACF,CAAC;EAGH,IAAI,MAAM,MAAM;GAEd,MAAM,OAAO,wBAAwB,MAAM,IAAI;GAC/C,QAAQ,KAAK,UACX,KAAK,IAAI,SAAU,GAAW;IAC5B,OAAO;KAAE,MAAM;KAAc,MAAM;KAAI,KAAK,UAAU,CAAC;IAAE;GAC3D,CAAC,CACH;EACF;EACA,OAAO;GACL,GAAG;GACW;GACd,oBAAoB,KAAA;GACpB,UAAU,KAAA;GACV,cAAc;GACP;EACT;CACF;CACA,OAAO,QAAQ,yCAAyC,MAAM,aAAa,KAAK,CAAC;AACnF;;;;AAKA,eAA8B,qCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;AAEA,SAAS,+BAA+B,OAA4C;CAGlF,OAFe,cAAc,KAEjB,CAAC,CACV,QAAQ,UAA4C,aAAa,KAAK,CAAC,CAAC,CACxE,KAAK,UAAU;EACd,OAAO;GACL,OAAO,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ,KAAA;GACvD,QAAQ,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,KAAA;GAC1D,MAAM,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,KAAA;EACtD;CACF,CAAC;AACL;AAEA,SAAS,wBAAwB,OAA0B;CACzD,OAAO,cAAc,KAAK,CAAC,CACxB,QAAQ,UAA2B,OAAO,UAAU,QAAQ,CAAC,CAC7D,KAAK,UAAU,KAAK;AACzB;AAEA,SAAS,cAAc,OAA2B;CAChD,IAAI;EACF,MAAM,SAAS,KAAK,MAAM,OAAO,KAAK,CAAC;EACvC,OAAO,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC;CAC3C,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AAEA,SAAS,aAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;;;AC3GA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,uCACA,EACE,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,EACpC,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,iCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,wCAAwC;EAHrD,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;CAEkC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3F;AAEA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,6BAA6B;EAH1C,IAAI,MAAM;EACV,MAAM,MAAM;CAEiC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,8BAA8B,EAF3C,KAAK,MAAM,IAEmC,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,gCAAgC;EAH7C,IAAI,MAAM;EACV,SAAS;CAEuC,GAAG,aAAa,KAAK,CAAC;AAC1E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,kBAAkB,OAAO,MAAM,CAAC,MAAM;CAC5C,MAAM,OAAO,kBAAkB,cAAc;CAC7C,MAAM,OAAO;EACX,IAAI,MAAM;EACV,GAAI,kBAAkB,EAAE,YAAY,MAAM,cAAc,SAAS,WAAW,IAAI,CAAC;CACnF;CACA,MAAM,aAAa;CACnB,OAAO,QAAQ,iBAAiB,QAAQ,MAAM,aAAa,OAAO,MAAM,CAAC;AAC3E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,6BAA6B;EAJ1C,IAAI,MAAM;EACV,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEqB,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,6BAA6B;EAH1C,IAAI,MAAM;EACV,MAAM,MAAM;CAEiC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,MAAM,MAAM,OAAO,MAAM,OAAO,EAAE;CAUlC,OAAO,QAAQ,2BAA2B;EARxC,IAAI,MAAM;EACV,QAAQ,KAAK,UACX,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,SAAiB;GACnC,OAAO;IAAE,MAAM;IAAG,IAAI;GAAK;EAC7B,CAAC,CACH;CAG2C,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;AAEA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACbA,MAAMC,oBAAgB,OAA8B,YAA2B;CAC7E,MAAM,OAAO;EACX,IAAI,MAAM;EACV,GAAG;EACH,GAAG,MAAM,KAAK;CAChB;CAEA,MAAM,QAAQ,SAAS,OAAO,MAAM,SAAS,GAAI,GAAG,EAAE,KAAK;CAC3D,MAAM,SAAS,SAAS,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK;CAE1D,OAAO,QAA8B,2BAA2B,MAAM,aAAa,KAAK,CAAC,CAAC,CAAC,MACxF,QAAQ;EAYP,OAAO,QAAQ,uBAAuB,EATpC,GACE,OAHa,IAAI,KAAK,UAAU,YAAY,CAAC,EAAA,CAK1C,MAAM,QAAQ,SAAS,KAAK,CAAC,CAC7B,KAAK,SAAS,aAAW,KAAK,KAAK,GAAG,CAAC,CACvC,KAAK,GAAG,IACX,IAGwC,GAAG,aAAa,KAAK,CAAC;CACpE,CACF;AACF;;;;;AAMA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnDA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAC/E,MAAM,MAAM,OAAO,MAAM,OAAO,EAAE;CAUlC,OAAO,QAAQ,8BAA8B;EAR3C,IAAI,MAAM;EACV,QAAQ,KAAK,UACX,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,SAAiB;GACnC,OAAO;IAAE,MAAM;IAAG,IAAI;GAAK;EAC7B,CAAC,CACH;CAG8C,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,mBAAe,OAAO,OAA0B,YAA2B;CAE/E,MAAM,SAAS,OAAO,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG;CACnD,MAAM,OAAO;EACX,IAAI,MAAM;EACV,KAAK,MAAM;EACX,UAAU,KAAK,UAAU,MAAM;EAC/B,MAAM;CACR;CAEA,IAAI;EAEF,OAAO;GACL,QAAQ;GACR,MAAM,EACJ,GAAG,MAJW,QAAQ,mCAAmC,MAAM,aAAa,KAAK,CAAC,EAKpF;EACF;CACF,SAAS,OAAO;EACd,IACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAO,MAAM,SAAS,YACtB,MAAM,SAAS,QACf,UAAU,MAAM,QAChB,MAAM,KAAK,SAAS,KAEpB,OAAO,QACL,mCACA;GACE,IAAI,MAAM;GACV,KAAK,MAAM;GACX,UAAU,KAAK,UAAU,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;GAC/C,MAAM;EACR,GACA,aAAa,KAAK,CACpB;OAEA,OAAO;GACL,QAAQ;GACR,MAAM,cAAc,KAAK;EAC3B;CAEJ;AACF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;AAEA,SAAS,cAAc,OAAyC;CAC9D,IACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAO,MAAM,SAAS,YACtB,MAAM,SAAS,MAEf,OAAO,EACL,GAAG,MAAM,KACX;CAGF,OAAO;EAAE,MAAM;EAAK,KAAK,OAAO,KAAK;CAAE;AACzC;;;AC3EA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,OAAO,MAAM,QAAQ;CAM3B,OAAO,QAAQ,cAAc;EAJ3B,6BAA6B,SAAS,MAAM,GAAG,WAAW,MAAM,KAAK;EACrE,6BAA6B,SAAS,MAAM,GAAG,WAAW,MAAM,KAAK;EACrE,6BAA6B,SAAS,MAAM,GAAG,WAAW,MAAM,KAAK;CAEvC,GAAG,aAAa,KAAK,CAAC;AACxD;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kCAAkC,EAF/C,IAAI,MAAM,GAEwC,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,8BAA8B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;AAEA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,oBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,mCAAmC;EANhD,QAAQ,MAAM;EACd,MAAM;EACN,YAAY,MAAM;EAClB,cAAc,MAAM,OAAO,MAAM;EACjC,OAAO,MAAM,SAAS;CAE6B,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,iCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,6BAA6B;EAJ1C,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEqB,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,8BAA8B;EAL3C,SAAS,MAAM;EACf,OAAO,MAAM;EACb,YAAY,MAAM;EAClB,QAAQ,MAAM,UAAU;CAEsB,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,8BAA8B,CAAG,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,wCAAwC,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACzF;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,qCAAqC,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACxF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,uCAAuC;EAJpD,OAAO,MAAM;EACb,SAAS;EACT,WAAW;CAE4C,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1F;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+BAA+B,EAF5C,OAAO,MAAM,SAAS,IAEyB,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;AAEA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,iCAAiC,EAF9C,OAAO,MAAM,SAAS,IAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AACpF;AAEA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kCAAkC,EAF/C,OAAO,MAAM,SAAS,IAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;AAEA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,8BAA8B,EAF3C,OAAO,MAAM,SAAS,IAEwB,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;AAEA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kCAAkC,EAF/C,OAAO,MAAM,SAAS,IAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;AAEA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+BAA+B,EAF5C,OAAO,MAAM,SAAS,IAEyB,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;AAEA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAM,eAAe;AAQrB,SAAS,yBAAyB,SAAiB;CACjD,IAAI,cAAc;CAClB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACvC,MAAM,WAAW,QAAQ,WAAW,CAAC,IAAI,aAAa,WAAW,IAAI,EAAmB;EACxF,eAAe,OAAO,aAAa,QAAQ;CAC7C;CACA,OAAO,WAAW,KAAK,CAAC,CAAC,OAAO,aAAa,MAAM,CAAC,CAAC,OAAO,QAAQ;AACtE;AAEA,MAAMC,mBAAe,OAAO,OAA+B,YAA2B;CACpF,MAAM,WAAW,iBAAiB;CAClC,gBAAgB,EAAE,SAAS,CAAC;CAQ5B,IAAI,SAAS,MAAM,QAAQ,2BAA2B,EAFpD,UALgB,OAAO,KACvB,GAAG,SAAS,GAAG,yBAAyB,QAAQ,KAChD,MACF,CAAC,CAAC,SAAS,QAES,EAEqC,GAAG,aAAa,OAAO,OAAO,CAAC;CACxF,IAAI,OAAO,KAAK,SAAS,KACvB,SAAS;EACP,QAAQ;EACR,MAAM;GACJ,GAAG,OAAO;GACV,QAAQ,OAAO,OAAO,KAAK,GAAG;EAChC;EACA,QAAQ,OAAO;CACjB;CAEF,OAAO;AACT;AAEA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClDA,MAAMC,oBAAgB,OAA+B,YAA2B;CAS9E,OAAO,QAAQ,6BAA6B;EAP1C,SAAS,MAAM;EACf,OAAO,MAAM;EACb,UAAU,WAAW,KAAK,CAAC,CAAC,OAAO,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;EAC/D,UAAU,MAAM;EAChB,aAAa,MAAM,eAAe;EAClC,OAAO;CAEsC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,oCAAoC;EAHjD,IAAI,MAAM;EACV,MAAM,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI;CAEiB,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAe,OAAO,UAA6B;CAEvD,MAAM,OAAO,OAAM,MADI,MAAM,qCAAqC,MAAM,IAAI,EAAA,CAChD,KAAK;CACjC,IAAI;EACF,MAAM,UACJ;EACF,IAAI;EACJ,MAAM,YAKD,CAAC;EACN,QAAQ,SAAS,QAAQ,KAAK,IAAI,MAAM,MAAM;GAC5C,MAAM,GAEJ,cAAc,IACd,eAAe,IACf,eAAe,IACf,WAAW,IACX,WAAW,MACT;GACJ,UAAU,KAAK;IACb,SAAS;KACP,QAAQ,SAAS,MAAM,EAAuB;KAC9C;IACF;IACA,aAAa,YAAY,QAAQ,mBAAmB,EAAE;IACtD,MAAM;IACN,IAAI,aAAa,MAAM,EAAsB;GAC/C,CAAC;EACH;EACA,OAAO;GACL,QAAQ;GACR,MAAM;IAAE,MAAM;IAAK;GAAU;GAC7B,QAAQ,CAAC;EACX;CACF,SAAS,KAAK;EACZ,MAAM;GACJ,QAAQ;GACR,MAAM;IAAE,MAAM;IAAK,KAAK,eAAe,QAAQ,IAAI,SAAS,IAAI,UAAU,OAAO,GAAG;GAAE;GACtF,QAAQ,CAAC;EACX;CACF;AACF;;;;AAKA,eAA8B,wBAC5B,OACA,UACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,KAAK,CAAC;CAChE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxDA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,SAAS;CAC3C,MAAM,OAAO,oBAAoB,MAAM,IAAI;CAC3C,MAAM,OAAgC,EACpC,UAAU,GAAG,OAAO,MAAM,QAAQ,EAAE,IAAI,OAAO,MAAM,MAAM,EAAE,IAC/D;CACA,IAAI,MAAM,SAAS,WACjB,KAAK,WAAW,MAAM;CAExB,OAAO,QAAQ,iBAAiB,MAAM,KAAK,MAAM,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAqBzE,OAAO,QAAQ,wBAAwB,EAnBrC,MAAM,KAAK,UAAU,CACnB;EACE,QAAQ;EACR,MAAM;GACJ,UAAU;GACV,KAAK;GACL,IAAI,MAAM;GACV,UAAU,MAAM;GAChB,MAAM,MAAM;GACZ,MAAM;GACN,MAAM;GACN,QAAQ;GACR,UAAU;GACV,SAAS;EACX;CACF,CACF,CAAC,EAGuC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpCA,MAAMC,oBAAgB,OAAoB,YAA2B;CACnE,IAAI,OAAO,MAAM,QAAQ,EAAE,MAAM,QAO/B,OAAO,QAAQ,yBAAyB;EALtC,SAAS,MAAM;EACf,OAAO;EACP,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEiB,GAAG,aAAa,KAAK,CAAC;CAQnE,OAAO,QAAQ,mBAAmB;EALhC,GAAG,MAAM;EACT,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEW,GAAG,aAAa,KAAK,CAAC;AAC7D;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC/BA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,kCAAkC,CAAC,GAAG,aAAa,KAAK,CAAC;AAC1E;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mBAAmB,EAFhC,MAAM,KAE6B,GAAG,aAAa,KAAK,CAAC;AAC7D;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,0BAA0B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,QAAQ,CACZ;EACE,OAAO,MAAM,SAAS;EACtB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,UAAU,MAAM,YAAY;EAC5B,WAAW,MAAM;CACnB,CACF;CAIA,OAAO,QAAQ,yBAAyB,EAFtC,OAAO,KAAK,UAAU,KAAK,EAEc,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC5BA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,kCAAkC;EAH/C,MAAM,MAAM,QAAQ;EACpB,GAAG,MAAM,YAAY;CAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,EACX,GAAG,MAAM,YAAY,GACvB;CAEA,OAAO,QAAQ,0BADF,MAAM,SAAS,WAAW,YAAY,QACL,MAAM,aAAa,OAAO,OAAO,CAAC;AAClF;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,yBAAyB;EALtC,IAAI,MAAM;EACV,KAAK,MAAM,OAAO;EAClB,MAAM;EACN,SAAS,MAAM,MAAM,WAAW;CAES,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,yBAAyB;EALtC,IAAI,MAAM;EACV,MAAM;EACN,KAAK,MAAM;EACX,SAAS,MAAM,MAAM,WAAW;CAES,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,yBAAyB;EALtC,IAAI,MAAM;EACV,KAAK,MAAM,OAAO;EAClB,MAAM;EACN,SAAS,MAAM,MAAM,WAAW;CAES,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,yBAAyB;EAJtC,MAAM;EACN,KAAK,MAAM;EACX,SAAS,MAAM,MAAM,WAAW;CAES,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,qBAAqB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,+BAA+B;EAJ5C,MAAM,MAAM,QAAQ;EACpB,KAAK,MAAM,OAAO;EAClB,IAAI,MAAM,MAAM;CAE+B,GAAG,aAAa,KAAK,CAAC;AACzE;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,4BAA4B;EAHzC,IAAI,MAAM;EACV,QAAQ,MAAM,MAAM;CAEwB,GAAG,aAAa,KAAK,CAAC;AACtE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,iCAAiC,EAF9C,IAAI,MAAM,GAEuC,GAAG,aAAa,KAAK,CAAC;AAC3E;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,wBAAwB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,uCAAuC,EAFpD,UAAU,MAAM,YAAY,wBAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1F;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,6BAA6B,EAF1C,UAAU,MAAM,GAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,yBAAyB,EAFtC,MAAM,MAAM,KAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,+BAA+B;EAJ5C,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEuB,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,8BAA8B;EAJ3C,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEsB,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,2BAA2B;EAJxC,QAAQ,MAAM;EACd,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEmB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,oBACA,EACE,KAAK,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,EAChC,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,uBAAuB,EAFpC,GAAG,MAFO,OAAO,MAAM,OAAO,EAAE,CAAC,CAAC,MAAM,SAE7B,CAAC,CAAC,KAAK,OAAe,aAAW,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAE3B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,6BAA6B;EAJ1C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAEsC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,kCAAkC;EAH/C,IAAI,MAAM;EACV,IAAI,SAAS,MAAM,MAAM,KAAM;CAEmB,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,qCAAqC;EAJlD,IAAI,MAAM;EACV,aAAa;EACb,OAAO,MAAM;CAEwC,GAAG,aAAa,KAAK,CAAC;AAC/E;;;;;;AAOA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+BAA+B,EAF5C,QAAQ,MAAM,GAEiC,GAAG,aAAa,KAAK,CAAC;AACzE;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,wBAAwB,EAFrC,UAAU,MAAM,IAEwB,GAAG,aAAa,KAAK,CAAC;AAClE;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mCAAmC,EAFhD,QAAQ,MAAM,GAEqC,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,kCAAkC;EAL/C,QAAQ,MAAM;EACd,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;CAG8B,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kCAAkC,EAF/C,SAAS,MAAM,GAEmC,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,wCAAwC;EAHrD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEgC,GAAG,aAAa,KAAK,CAAC;AAClF;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,kCAAkC;EAJ/C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE2C,GAAG,aAAa,KAAK,CAAC;AAC5E;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,8BAA8B,EAF3C,QAAQ,MAAM,GAEgC,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,oBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,mCAAmC;EALhD,KAAK,MAAM;EACX,UAAU,MAAM;EAChB,IAAI;CAG+C,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,iBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,kCAAkC;EAH/C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAE0B,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,uBAAuB,EAFpC,QAAQ,MAAM,GAEyB,GAAG,aAAa,KAAK,CAAC;AACjE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,mCAAmC;EAJhD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE4C,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACZA,MAAMC,kBAAe,OAAO,OAAqB,YAA2B;CAC1E,MAAM,MAAM,OAAO,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG;CAOtC,MAAM,SAAS,CAAC,IAAI,MAFF,QAAqB,gCAAgC;EAHrE,KAAK,KAAK,UAAU,GAAG;EACvB,IAAI,SAAS,OAAO,MAAM,MAAM,KAAM,GAAG,EAAE;CAE6B,GAAG,aAAa,KAAK,CAAC,EAAA,CAExE,KAAK,QAAQ,CAAC,CAAE;CACxC,OAAO,MAAM,GAAG,MAAM;EACpB,OAAO,IAAI,QAAQ,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,QAAQ,OAAO,EAAE,EAAE,CAAC;CAC7D,CAAC;CACD,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM;EACR;CACF;AACF;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1CA,MAAMC,mBAAgB,OAAuB,YAA2B;CACtE,MAAM,OAAgC;EACpC,KAAK,MAAM,MAAM,KAAK;EACtB,OAAO,MAAM;EACb,YAAY;CACd;CACA,IAAI,KAAK,UAAU,OACjB,KAAK,cAAc;CAErB,OAAO,QAAQ,mCAAmC,MAAM,aAAa,KAAK,CAAC;AAC7E;;;;;;AAOA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mCAAmC,EAFhD,QAAQ,MAAM,GAEqC,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,4BAA4B,EANzC,QAAQ,KAAK,UAAU;EACrB,QAAQ;EACR,oBAAoB,CAAC,gCAAgC;EACrD,SAAS;CACX,CAAC,EAE2C,GAAG,aAAa,KAAK,CAAC;AACtE;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,6BAA6B;EAL1C,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM;EACb,MAAM,MAAM,QAAQ;CAEyB,GAAG,aAAa,OAAO,OAAO,CAAC;AAChF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,8BAA8B;EAL3C,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM;EACb,MAAM;CAEwC,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,4BAA4B,EAFzC,OAAO,MAAM,MAE+B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,qBAAqB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,gCAAgC;EAL7C,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM;EACb,MAAM;CAE0C,GAAG,aAAa,OAAO,OAAO,CAAC;AACnF;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,8BAA8B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,4BAA4B;EALzC,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM;EACb,MAAM,MAAM,QAAQ;CAEwB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAO,CAAC;CACd,MAAM,MAAM;EAAC;EAAQ;EAAQ;CAAM,CAAC,CAAC,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,aAAa;CACjF,OAAO,QAAQ,gCAAgC,MAAM,KAAK,GAAG,OAAO,MAAM,aAAa,KAAK,CAAC;AAC/F;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,MAAM,uBAAO,IAAI,KAAK;CAYtB,OAAO,QAAQ,kCAAkC;EAT/C,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM,QAAQ,KAAK,YAAY;EACrC,OAAO,MAAM,SAAS,KAAK,SAAS,IAAI;EACxC,OAAO;EACP,MAAM;CAE4C,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC5BA,MAAMC,mBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,mBAAmB;EAJhC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,IAAI,MAAM,KACR,OAAO,QAAQ,QAAQ;EACrB,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,KAAK;EACP;CACF,CAAC;CAQH,OAAO,QAAQ,2BAA2B;EAJxC,IAAI,MAAM;EACV,GAAG;EACH,GAAG;CAEwC,GAAG,aAAa,KAAK,CAAC;AACrE;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC/BA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,mBAAmB;EALhC,MAAM,MAAM,QAAQ;EACpB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE4B,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,cAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,kBAAe,OAAO,OAA0B,YAA2B;CAQ/E,MAAM,MAAM,MAAM,QAAQ,sBAAsB;EAN9C,KAAK,MAAM,OAAO;EAClB,OAAO,MAAM,SAAS;EACtB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE0C,GAAG,aAAa,OAAO,OAAO,CAAC;CAClF,MAAM,SAAS,KAAK,UAAU,GAAG,CAAC,CAAC,QAAQ,oBAAoB,gBAAgB;CAC/E,OAAO,KAAK,MAAM,MAAM;AAC1B;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,kCAAkC;EAL/C,KAAK,MAAM,OAAO;EAClB,OAAO,MAAM,SAAS;EACtB,UAAU,MAAM,UAAU;EAC1B,OAAO;CAE2C,GAAG,aAAa,OAAO,OAAO,CAAC;AACrF;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,+BAA+B;EAL5C,QAAQ,MAAM,QAAQ;EAGtB,OAAO;CAEwC,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mBAAmB,EAFhC,OAAO,MAAM,MAEsB,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,sBAAsB,EAFnC,OAAO,MAAM,MAEyB,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;AAEA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,sBAAsB;EAJnC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO;CAE+B,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,gBAAgB,CAAC,GAAG,aAAa,KAAK,CAAC;AACxD;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,uBAAuB;EALpC,MAAM,MAAM,QAAQ;EACpB,OAAO;EACP,QAAQ;EACR,OAAO;CAEgC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,uBAAuB,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,0BAA0B,EAFvC,SAAS,MAAM,GAE2B,GAAG,aAAa,KAAK,CAAC;AACpE;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,2BAA2B,EAFxC,UAAU,MAAM,GAE2B,GAAG,aAAa,KAAK,CAAC;AACrE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,8BAA8B;EAH3C,SAAS,MAAM;EACf,OAAO,MAAM,SAAS;CAEwB,GAAG,aAAa,KAAK,CAAC;AACxE;;;;;AAMA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAazE,OAAO,QAAQ,uBAAuB;EAXpC,aAAa,MAAM,eAAe;EAGlC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;CAImB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC5BA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,uBAAuB,EAFpC,MAAM,MAAM,GAE2B,GAAG,aAAa,KAAK,CAAC;AACjE;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,yBAAyB,EAFtC,QAAQ,MAAM,GAE2B,GAAG,aAAa,KAAK,CAAC;AACnE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,4BAA4B,CAAG,GAAG,aAAa,KAAK,CAAC;AACtE;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAAyB,YAA2B;CAExE,OAAO,QAAQ,0BAA0B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,mBAAgB,OAAwB,YAA2B;CAIvE,OAAO,QAAQ,2BAA2B,EAFxC,QAAQ,MAAM,IAE6B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,yBAAyB,MAAM,OAAO,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACzF;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,qBAAqB;EAHlC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEa,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,kBAAkB,EAF/B,SAAS,CAAC,MAAM,EAAE,EAEgB,GAAG,aAAa,OAAO,OAAO,CAAC;AACrE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,2BAA2B,EAFxC,SAFS,MAAM,GAAG,QAAQ,OAAO,EAAE,CAAC,CAAC,MAAM,GAEjC,EAEiC,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,qCAAqC;EANlD,kBAAkB;EAClB,qBAAqB;EACrB,OAAO,MAAM,SAAS;EACtB,SAAS,MAAM;EACf,MAAM,MAAM,QAAQ;CAEiC,GAAG,aAAa,OAAO,OAAO,CAAC;AACxF;AAEA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,kBAAe,OAAO,OAAwB,YAA2B;CAC7E,MAAM,MAAM,MAAM,QAAQ,uBAAuB,MAAM,OAAO,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;CAC9F,MAAM,SAAS,KAAK,UAAU,GAAG,CAAC,CAAC,QAAQ,oBAAoB,gBAAgB;CAC/E,OAAO,KAAK,MAAM,MAAM;AAC1B;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,mBAAgB,OAA4B,YAA2B;CAC3E,MAAM,OAAO;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAC1B;CACA,OAAO,QAAQ,mBAAmB,MAAM,OAAO,MAAM,aAAa,OAAO,OAAO,CAAC;AACnF;;;;AAKA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAAuB,YAA2B;CACtE,MAAM,OAAO;EACX,WAAW;EACX,MAAM,MAAM,YAAY;EACxB,OAAO,MAAM,SAAS;EACtB,OAAO;CACT;CACA,OAAO,QAAQ,kBAAkB,MAAM,OAAO,MAAM,aAAa,KAAK,CAAC;AACzE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA6B,YAA2B;CAC5E,MAAM,OAAO,MAAM,QAAQ;CAC3B,MAAM,SAAS,MAAM,UAAU;CAC/B,MAAM,QAAQ,MAAM,SAAS;CAW7B,OAAO,QAAQ,uCAAuC;EATpD,WAAW;EACX,MAAM,KAAK,UAAU;GACb;GACE;EACV,CAAC;EACM;EACD;EACN,UAAU;CAE6C,GAAG,aAAa,KAAK,CAAC;AACjF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC7BA,MAAMC,mBAAgB,OAA4B,YAA2B;CAC3E,MAAM,OAAO;EACX,QAAQ,MAAM;EACd,MAAM;EACN,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,WAAW;CACb;CACA,OAAO,QAAQ,0BAA0B,MAAM,OAAO,MAAM,aAAa,KAAK,CAAC;AACjF;;;;AAKA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,mBAAgB,OAA4B,YAA2B;CAC3E,MAAM,OAAO;EACX,QAAQ,MAAM,UAAU;EACxB,OAAO,MAAM,SAAS;EACtB,OAAO;CACT;CACA,OAAO,QAAQ,wBAAwB,MAAM,OAAO,MAAM,aAAa,OAAO,OAAO,CAAC;AACxF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAAyB,YAA2B;CAExE,OAAO,QAAQ,mBAAmB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACtE;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,wBACA,EACE,KAAK,MAAM,IACb,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,8BAA8B,EAF3C,UAAU,MAAM,IAE8B,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA4B,YAA2B;CAO3E,OAAO,QAAQ,sBAAsB;EALnC,KAAK,MAAM;EACX,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,cAAc;CAEwB,GAAG,aAAa,OAAO,OAAO,CAAC;AACzE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CASzE,OAAO,QAAQ,8BAA8B;EAP3C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,QAAQ,MAAM;EACd,WAAW;EACX,iBAAiB;EACjB,YAAY;CAEkC,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,mBAAgB,OAA0B,YAA2B;CASzE,OAAO,QAAQ,6BAA6B;EAP1C,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,QAAQ,MAAM;EACd,WAAW;EACX,iBAAiB;EACjB,YAAY;CAEiC,GAAG,aAAa,KAAK,CAAC;AACvE;;;;AAKA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACxBA,MAAMC,mBAAgB,OAAwB,YAA2B;CAKvE,OAAO,QAAQ,uBAAuB;EAHpC,KAAK,MAAM;EACX,MAAM,MAAM,QAAQ;CAEmB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC1E;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,8BAA8B;EAL3C,OAAO,MAAM;EACb,SAAS,MAAM;EACf,YAAY,MAAM;EAClB,aAAa,MAAM,eAAe;CAEY,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;AAEA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,2BACA,EACE,WAAW,MAAM,IACnB,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,gCACA,EACE,SAAS,KAAK,UAAU;EACtB,MAAM,MAAM;EACZ,SAAS,MAAM;EACf,SAAS,MAAM;EACf,WAAW,MAAM;CACnB,CAAC,EACH,GACA,aAAa,KAAK,CACpB;AACF;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC3BA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,gCAAgC,CAAC,GAAG,aAAa,KAAK,CAAC;AACxE;;;;AAKA,eAA8B,6BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QAAQ,mCAAmC,CAAC,GAAG,aAAa,KAAK,CAAC;AAC3E;;;;AAKA,eAA8B,gCAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAAyB,YAA2B;CACxE,OAAO,QAAQ,iBAAiB,CAAC,GAAG,aAAa,OAAO,OAAO,CAAC;AAClE;;;;AAKA,eAA8B,qBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAUzE,OAAO,QAAQ,4BAA4B;EAPzC,UAAU,MAAM;EAChB,MAAM,MAAM;EACZ,QAAQ,MAAM;EACd,UAAU,MAAM;EAChB,UAAU,MAAM;EAChB,WAAW,MAAM;CAE2B,GAAG,aAAa,KAAK,CAAC;AACtE;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,kBAAe,OAAO,OAAyB,YAA2B;CAY9E,MAAM,MAAM,MAAM,QAAQ,mCAAmC;EAV3D,gBAAgB,MAAM;EACtB,YAAY,MAAM;EAClB,OAAO,MAAM;EACb,QAAQ,KAAK,UAAU;GACrB,UAAU,MAAM;GAChB,MAAM,MAAM;EACd,CAAC;EACD,MAAM;CAGwD,GAAG,aAAa,OAAO,OAAO,CAAC;CAC/F,MAAM,SAAS,iDACb,IAAI,KAAK,KAAK,OACf,eAAe,MAAM,MAAM,YAAY,MAAM,IAAI,cAChD,MAAM,KACP,UAAU,KAAK,UAAU;EACxB,UAAU,MAAM;EAChB,MAAM,MAAM;CACd,CAAC;CACD,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,MAAM;IACJ,QAAQ,IAAI,KAAK,KAAK;IACtB,OAAO;IACP,OAAO,MAAM,OAAO,UAAU,MAAM;GACtC;EACF;CACF;AACF;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC7CA,MAAMC,kBAAe,OAAO,OAA0B,YAA2B;CAS/E,OAAO,MALW,QAChB,sCACA,EAJA,QAAQ,MAAM,GAIX,GACH,aAAa,OAAO,OAAO,CAC7B;AAEF;AAEA,eAA8B,2BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,iCAAiC;EAJ9C,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,OAAO,MAAM,SAAS;CAE2B,GAAG,aAAa,OAAO,OAAO,CAAC;AACpF;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACrBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,mCAAmC,EAFhD,IAAI,MAAM,GAEyC,GAAG,aAAa,OAAO,OAAO,CAAC;AACtF;;;;AAKA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,mCAAmC;EAHhD,UAAU,WAAW,MAAM;EAC3B,cAAc;CAEqC,GAAG,aAAa,OAAO,OAAO,CAAC;AACtF;;;;AAKA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QACL,iDACA;EAPA,SAAS,MAAM;EACf,QAAQ,MAAM,UAAU;EACxB,kBAAkB;EAClB,OAAO;CAIJ,GACH,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC1BA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,8BAA8B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACjF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ;CAC1C,MAAM,OAAO,EACX,IAAI,MAAM,GACZ;CACA,OAAO,QAAQ,yBAAyB,MAAM,KAAK,MAAM,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,sCAAsC;EANnD,SAAS;EACT,QAAQ,MAAM,UAAU;EACxB,kBAAkB;EAClB,OAAO;CAG+C,GAAG,aAAa,OAAO,OAAO,CAAC;AACzF;;;;AAKA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,0BAA0B;EANvC,QAAQ,MAAM,UAAU;EACxB,aAAa;EACb,iBAAiB;EACjB,SAAS;EACT,YAAY;CAE8B,GAAG,aAAa,OAAO,OAAO,CAAC;AAC7E;;;;AAKA,eAA8B,+BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,2BAA2B;EAHxC,KAAK,QAAO,MAAM,KAAK;EACvB,YAAY,MAAM,OAAO;CAEkB,GAAG,aAAa,OAAO,OAAO,CAAC;AAC9E;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,gDAAgD,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACnG;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,8CAA8C;EAH3D,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEsC,GAAG,aAAa,OAAO,OAAO,CAAC;AACjG;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,+CAA+C,EAF5D,SAAS,MAAM,IAEgD,GAAG,aAAa,OAAO,OAAO,CAAC;AAClG;;;;AAKA,eAA8B,0BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,4CACA,EACE,QAAQ,MAAM,OAAO,GACvB,GACA,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,gBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,OAAO,QACL,6CACA,EACE,QAAQ,MAAM,OAAO,GACvB,GACA,aAAa,OAAO,OAAO,CAC7B;AACF;;;;AAKA,eAA8B,kBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,yCAAyC,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5F;;;;AAKA,eAA8B,iBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,mBAAgB,OAA0B,YAA2B;CACzE,MAAM,OAAgC,CAAC;CACvC,IAAI,MAAM,aAAa,MAAM,SAAS;EACpC,KAAK,YAAY,MAAM;EACvB,KAAK,UAAU,MAAM;EACrB,KAAK,OAAO;EACZ,KAAK,QAAQ,MAAM,SAAS;CAC9B;CACA,OAAO,QAAQ,oCAAoC,MAAM,aAAa,OAAO,OAAO,CAAC;AACvF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,6BAA6B,EAF1C,KAAK,MAAM,IAEkC,GAAG,aAAa,KAAK,CAAC;AACvE;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,qCAAqC,EAFlD,IAAI,MAAM,GAE2C,GAAG,aAAa,KAAK,CAAC;AAC/E;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,wBAAwB,EAFrC,WAAW,MAAM,GAEuB,GAAG,aAAa,KAAK,CAAC;AAClE;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAM,oBAAoB;AAE1B,SAAgB,uBAAuB,KAAqB;CAE1D,MAAM,WADQ,IAAI,MAAM,iBACH,CAAC,GAAG,EAAE,EAAE,KAAK;CAElC,IAAI,CAAC,UACH,MAAM,IAAI,UAAU,mDAAmD;CAGzE,OAAO;AACT;AAEA,SAAgB,2BAA2B,OAAkC;CAO3E,OAAO,4BANO,MACX,KAAK,MAAM,UAAU;EACpB,OAAO,qBAAqB,QAAQ,EAAE,qBAAqB,KAAK;CAClE,CAAC,CAAC,CACD,KAAK,EAE+B,EAAE;AAC3C;;;ACAA,SAAS,eAAuB;CAC9B,OAAO,WAAW;AACpB;AAEA,SAAS,cAAc,OAAyB;CAC9C,OAAO,OAAO,KAAK,MAAM;AAC3B;AAEA,MAAMC,kBAAe,OAAO,OAAyB,YAA2B;CAC9E,IAAI,CAAC,MAAM,UACT,MAAM;EACJ,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,MAAM;EACR;CACF;CAGF,IAAI,MAAM;CACV,IAAI,MAAM,SAAS,KAAK,SAAS,MAAM,GACrC,MAAM;CAER,MAAM,WACJ,MAAM,YACN,MAAM,SAAS,KACZ,QAAQ,MAAM,KAAK,EAAE,CAAC,CACtB,QAAQ,OAAO,EAAE,CAAC,CAClB,QAAQ,OAAO,GAAG;CAEvB,MAAM,WAAW,MAAM,QACrB,wBACA;EACE,QAAQ;EACH;EACK;EACV,OAAO;EACP,aAAa;EACb,MAAM;CACR,GACA,aAAa,OAAO,OAAO,CAC7B;CAEA,MAAM,YAAY,SAAS,KAAK,OAAO,UAAU,QAAQ,KAAK,KAAK;CACnE,MAAM,QAAQ,SAAS,KAAK,OAAO;CAQnC,MAAM,WAAW,uBAAuB,OAAM,MAPnB,MAAM,oCAAoC,UAAU,WAAW;EACxF,QAAQ;EACR,SAAS;GACP,eAAe,SAAS,KAAK,OAAO;GACpC,2BAA2B;EAC7B;CACF,CAAC,EAAA,CAC0D,KAAK,CAAC;CAEjE,MAAM,WAAW,cAAc,MAAM,SAAS,IAAI;CAClD,MAAM,YAAY,KAAK,OAAO;CAC9B,IAAI,SAAS;CACb,IAAI,aAAa;CAEjB,MAAM,QAAkB,CAAC;CAEzB,OAAO,SAAS,UAAU;EACxB,MAAM,QAAQ,iBACZ,MAAM,SAAS,MACf,QACA,KAAK,IAAI,SAAS,WAAW,QAAQ,CACvC;EAaA,MAAM,QAAO,MAXc,MACzB,oCAAoC,UAAU,cAAc,WAAW,YAAY,YACnF;GACE,QAAQ;GACR,SAAS;IACP,eAAe,SAAS,KAAK,OAAO;IACpC,gBAAgB;GAClB;GACA,MAAM;EACR,CACF,EAAA,CAC0B,QAAQ,IAAI,MAAM,KAAK;EACjD,MAAM,KAAK,IAAI;EACf,UAAU;EACV;CACF;CAGA,MAAM,MAAM,oCAAoC,UAAU,YAAY,YAAY;EAChF,QAAQ;EACR,SAAS;GACP,gBAAgB;GAChB,2BAA2B;GAC3B,eAAe,SAAS,KAAK,OAAO;EACtC;EACA,MAAM,2BAA2B,KAAK;CACxC,CAAC;CAGD,MAAM,QACJ,oDACA;EACE,QAAQ,aAAa;EACrB,WAAW,KAAK,UAAU,CACxB;GACE,MAAM;GACN,aAAa,cAAc,MAAM,WAAW;GAC5C,iBAAiB,MAAM,mBAAmB;GAC1C,aAAa,MAAM;GACnB,aAAa,MAAM;GACnB,YAAY,MAAM;GAClB,OAAO;GACP,YAAY,MAAM;GAClB,kBAAkB,MAAM;GACxB,eAAe,MAAM,gBAAgB,MAAM,cAAc,MAAM,GAAG,IAAI,CAAC;GACvE,SAAS,cAAc,MAAM,OAAO;GACpC,aAAa,MAAM,eAAe;GAClC,SAAS,MAAM,WAAW;EAC5B,CACF,CAAC;CACH,GACA;EACE,GAAG,aAAa,KAAK;EACrB,SAAS,EACP,eAAe,SAAS,KAAK,OAAO,MACtC;CACF,CACF;CA8BA,OAAO;EACL,QAAQ;EACR,MAAM;GACJ,MAAM;GACN,OAAM,MAjCW,QACnB,8CACA;IACE,QAAQ,aAAa;IACrB,WAAW,KAAK,UAAU,CACxB;KACE,MAAM;KACN,aAAa,cAAc,MAAM,WAAW;KAC5C,iBAAiB,MAAM,mBAAmB;KAC1C,aAAa,MAAM;KACnB,aAAa,MAAM;KACnB,YAAY,MAAM;KAClB,OAAO;KACP,YAAY,MAAM;KAClB,kBAAkB,MAAM;KACxB,eAAe,MAAM,gBAAgB,MAAM,cAAc,MAAM,GAAG,IAAI,CAAC;KACvE,SAAS,cAAc,MAAM,OAAO;KACpC,aAAa,MAAM,eAAe;KAClC,SAAS,MAAM,WAAW;IAC5B,CACF,CAAC;GACH,GACA;IACE,GAAG,aAAa,KAAK;IACrB,SAAS,EACP,eAAe,SAAS,KAAK,OAAO,MACtC;GACF,CACF,EAAA,CAKiB,KAAK;EACpB;CACF;AACF;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;AAEA,SAAS,cAAc,MAAiD;CACtE,IAAI,gBAAgB,aAClB,OAAO,KAAK;CAGd,OAAO,KAAK;AACd;AAEA,SAAS,iBACP,MACA,OACA,KACmC;CACnC,IAAI,gBAAgB,aAClB,OAAO,KAAK,MAAM,OAAO,GAAG;CAG9B,OAAO,KAAK,MAAM,OAAO,GAAG;AAC9B;;;AChNA,MAAMC,mBAAgB,OAA0B,YAA2B;CAIzE,OAAO,QAAQ,yCAAyC,EAFtD,IAAI,MAAM,GAE+C,GAAG,aAAa,KAAK,CAAC;AACnF;AAEA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AChBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAMzE,OAAO,QAAQ,4CAA4C;EAJzD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,aAAa,MAAM;CAEyC,GAAG,aAAa,KAAK,CAAC;AACtF;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AClBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAUzE,OAAO,QAAQ,mCAAmC;EARhD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,eAAe,MAAM,iBAAiB;EACtC,MAAM,MAAM,QAAQ;EACpB,cAAc,MAAM,gBAAgB;EACpC,SAAS,MAAM;CAEoC,GAAG,aAAa,KAAK,CAAC;AAC7E;;;;AAKA,eAA8B,4BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACzBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,yCAAyC;EALtD,KAAK;EACL,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,aAAa,MAAM,eAAe;CAEuB,GAAG,aAAa,KAAK,CAAC;AACnF;AAEA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACnBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,4CAA4C;EANzD,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;EACxB,SAAS,MAAM,WAAW;EAC1B,WAAW,MAAM,aAAa;EAC9B,UAAU,MAAM,YAAY;CAEgC,GAAG,aAAa,KAAK,CAAC;AACtF;AAEA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACpBA,MAAMC,mBAAgB,OAA0B,YAA2B;CAGzE,OAAO,QAAQ,yBAAyB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC5E;AAEA,eAA8B,eAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,gBAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACfA,MAAMC,kBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,sBAAsB;EAHnC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEc,GAAG,aAAa,KAAK,CAAC;AAChE;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,kBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,qBAAqB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACxE;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,kBAAgB,OAA0B,YAA2B;CAQzE,OAAO,QAAQ,gCAAgC;EAN7C,QAAQ,MAAM;EACd,QAAQ,MAAM,UAAU;EACxB,OAAO;EACP,YAAY;EACZ,WAAW,MAAM,aAAa;CAEkB,GAAG,aAAa,OAAO,OAAO,CAAC;AACnF;;;;AAKA,eAA8B,uBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACvBA,MAAMC,kBAAgB,OAA0B,YAA2B;CAOzE,OAAO,QAAQ,sCAAsC,EALnD,MAAM,KAAK,UAAU;EACnB,MAAM,MAAM,QAAQ;EACpB,QAAQ,MAAM,UAAU;CAC1B,CAAC,EAEqD,GAAG,aAAa,OAAO,OAAO,CAAC;AACzF;;;;AAKA,eAA8B,8BAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACtBA,MAAMC,kBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,sBAAsB;EAHnC,OAAO,MAAM,SAAS;EACtB,QAAQ,MAAM,UAAU;CAEc,GAAG,aAAa,KAAK,CAAC;AAChE;AAEA,eAA8B,sBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,kBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,4BAA4B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC/E;AAEA,eAA8B,mBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,kBAAgB,OAA0B,YAA2B;CAKzE,OAAO,QAAQ,oCAAoC;EAHjD,YAAY,MAAM;EAClB,aAAa,MAAM,eAAe;CAEkB,GAAG,aAAa,OAAO,OAAO,CAAC;AACvF;AAEA,eAA8B,yBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACjBA,MAAMC,kBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,+BAA+B,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAClF;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAMC,kBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,iCAAiC,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AACpF;AAEA,eAA8B,wBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAMA,eAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;ACdA,MAAM,gBAAgB,OAA0B,YAA2B;CAEzE,OAAO,QAAQ,wBAAwB,CAAG,GAAG,aAAa,OAAO,OAAO,CAAC;AAC3E;AAEA,eAA8B,oBAC5B,OACA,SACyB;CACzB,IAAI;EACF,OAAO,8BAA8B,MAAM,aAAa,OAAO,OAAO,CAAC;CACzE,SAAS,OAAO;EACd,MAAM,2BAA2B,KAAK;CACxC;AACF;;;AC8UA,MAAa,oBAAoB;CAC/B,uBAAuBC;CACvB,mBAAmBC;CACnB,OAAOC;CACP,cAAcC;CACd,sBAAsBC;CACtB,YAAYC;CACZ,kBAAkBC;CAClB,WAAWC;CACX,cAAcC;CACd,iBAAiBC;CACjB,qBAAqBC;CACrB,WAAWC;CACX,eAAeC;CACf,cAAcC;CACd,aAAaC;CACb,eAAeC;CACf,uBAAuBC;CACvB,aAAaC;CACb,qBAAqBC;CACrB,aAAaC;CACb,WAAWC;CACX,eAAeC;CACf,iBAAiBC;CACjB,cAAcC;CACd,YAAYC;CACZ,gBAAgBC;CAChB,iBAAiBC;CACjB,cAAcC;CACd,SAASC;CACT,aAAaC;CACb,eAAeC;CACf,QAAQC;CACR,OAAOC;CACP,+BAA+BC;CAC/B,gCAAgCC;CAChC,+BAA+BC;CAC/B,wBAAwBC;CACxB,eAAeC;CACf,UAAUC;CACV,cAAcC;CACd,gBAAgBC;CAChB,2BAA2BC;CAC3B,aAAaC;CACb,OAAOC;CACP,cAAcC;CACd,aAAaC;CACb,aAAaC;CACb,SAASC;CACT,eAAeC;CACf,YAAYC;CACZ,eAAeC;CACf,eAAeC;CACf,aAAaC;CACb,kBAAkBC;CAClB,cAAcC;CACd,eAAeC;CACf,YAAYC;CACZ,aAAaC;CACb,kBAAkBC;CAClB,eAAeC;CACf,qBAAqBC;CACrB,cAAcC;CACd,qBAAqBC;CACrB,uBAAuBC;CACvB,wBAAwBC;CACxB,oBAAoBC;CACpB,WAAWC;CACX,wBAAwBC;CACxB,uBAAuBC;CACvB,aAAaC;CACb,WAAWC;CACX,2BAA2BC;CAC3B,2BAA2BC;CAC3B,6BAA6BC;CAC7B,6BAA6BC;CAC7B,gCAAgCC;CAChC,QAAQC;CACR,YAAYC;CACZ,0BAA0BC;CAC1B,YAAYC;CACZ,mBAAmBC;CACnB,oBAAoBC;CACpB,0BAA0BC;CAC1B,cAAcC;CACd,cAAcC;CACd,mBAAmBC;CACnB,QAAQC;CACR,YAAYC;CACZ,eAAeC;CACf,mBAAmBC;CACnB,YAAYC;CACZ,kBAAkBC;CAClB,qBAAqBC;CACrB,gBAAgBC;CAChB,oBAAoBC;CACpB,aAAaC;CACb,OAAOC;CACP,WAAWC;CACX,eAAeC;CACf,UAAUC;CACV,QAAQC;CACR,aAAaC;CACb,yBAAyBC;CACzB,gCAAgCC;CAChC,qBAAqBC;CACrB,sBAAsBC;CACtB,WAAWC;CACX,aAAaC;CACb,eAAeC;CACf,MAAMC;CACN,UAAUC;CACV,6BAA6BC;CAC7B,oBAAoBC;CACpB,wBAAwBC;CACxB,mBAAmBC;CACnB,yBAAyBC;CACzB,uBAAuBC;CACvB,oBAAoBC;CACpB,yBAAyBC;CACzB,6BAA6BC;CAC7B,2BAA2BC;CAC3B,4BAA4BC;CAC5B,uBAAuBC;CACvB,kCAAkCC;CAClC,kCAAkCC;CAClC,OAAOC;CACP,iBAAiBC;CACjB,gBAAgBC;CAChB,iBAAiBC;CACjB,cAAcC;CACd,eAAeC;CACf,cAAcC;CACd,QAAQC;CACR,OAAOC;CACP,WAAWC;CACX,iBAAiBC;CACjB,eAAeC;CACf,UAAUC;CACV,cAAcC;CACd,cAAcC;CACd,aAAaC;CACb,aAAaC;CACb,qBAAqBC;CACrB,mBAAmBC;CACnB,yBAAyBC;CACzB,oBAAoBC;CACpB,2BAA2BC;CAC3B,wBAAwBC;CACxB,qBAAqBC;CACrB,eAAeC;CACf,gBAAgBC;CAChB,oBAAoBC;CACpB,QAAQC;CACR,WAAWC;CACX,gBAAgBC;CAChB,mBAAmBC;CACnB,UAAUC;CACV,QAAQC;CACR,YAAYC;CACZ,QAAQC;CACR,gBAAgBC;CAChB,aAAaC;CACb,kBAAkBC;CAClB,cAAcC;CACd,wBAAwBC;CACxB,iBAAiBC;CACjB,sBAAsBC;CACtB,6BAA6BC;CAC7B,kCAAkCC;CAClC,UAAUC;CACV,kBAAkBC;CAClB,uBAAuBC;CACvB,iBAAiBC;CACjB,iBAAiBC;CACjB,sBAAsBC;CACtB,iBAAiBC;CACjB,yBAAyBC;CACzB,0BAA0BC;CAC1B,2BAA2BC;CAC3B,cAAcC;CACd,kCAAkCC;CAClC,6BAA6BC;CAC7B,iBAAiBC;CACjB,sBAAsBC;CACtB,uBAAuBC;CACvB,kBAAkBC;CAClB,oBAAoBC;CACpB,sBAAsBC;CACtB,sBAAsBC;CACtB,oBAAoBC;CACpB,oBAAoBC;CACpB,uBAAuBC;CACvB,iBAAiBC;CACjB,iBAAiBC;CACjB,2BAA2BC;CAC3B,uBAAuBC;CACvB,4BAA4BC;CAC5B,mBAAmBC;CACnB,QAAQC;CACR,oBAAoBC;CACpB,oBAAoBC;CACpB,iBAAiBC;CACjB,yBAAyBC;CACzB,qBAAqBC;CACrB,kBAAkBC;CAClB,wBAAwBC;CACxB,oBAAoBC;CACpB,qBAAqBC;CACrB,qBAAqBC;CACrB,oBAAoBC;CACpB,oBAAoBC;CACpB,kBAAkBC;CAClB,kBAAkBC;CAClB,eAAeC;CACf,UAAUC;CACV,QAAQC;CACR,gBAAgBC;CAChB,YAAYC;CACZ,mBAAmBC;CACnB,cAAcC;CACd,mBAAmBC;CACnB,gBAAgBC;CAChB,YAAYC;CACZ,eAAeC;CACf,WAAWC;CACX,WAAWC;CACX,SAASC;CACT,gBAAgBC;CAChB,YAAYC;CACZ,eAAeC;CACf,iBAAiBC;CACjB,iBAAiBC;CACjB,aAAaC;CACb,SAASC;CACT,eAAeC;CACf,WAAWC;CACX,WAAWC;CACX,aAAaC;CACb,aAAaC;CACb,eAAeC;CACf,mBAAmBC;CACnB,sBAAsBC;CACtB,oBAAoBC;CACpB,iBAAiBC;CACjB,kBAAkBC;CAClB,sBAAsBC;CACtB,sBAAsBC;CACtB,4BAA4BC;CAC5B,oBAAoBC;CACpB,mBAAmBC;CACnB,mBAAmBC;CACnB,gBAAgBC;CAChB,gBAAgBC;CAChB,qBAAqBC;CACrB,UAAUC;CACV,aAAaC;CACb,mBAAmBC;CACnB,2BAA2BC;CAC3B,aAAaC;CACb,cAAcC;CACd,cAAcC;CACd,YAAYC;CACZ,gBAAgBC;CAChB,kBAAkBC;CAClB,YAAYC;CACZ,gBAAgBC;CAChB,WAAWC;CACX,aAAaC;CACb,UAAUC;CACV,QAAQC;CACR,cAAcC;CACd,0BAA0BC;CAC1B,UAAUC;CACV,cAAcC;CACd,wBAAwBC;CACxB,eAAeC;CACf,SAASC;CACT,gBAAgBC;CAChB,gBAAgBC;CAChB,eAAeC;CACf,gBAAgBC;CAChB,mBAAmBC;CACnB,YAAYC;CACZ,YAAYC;CACZ,cAAcC;CACd,iBAAiBC;CACjB,cAAcC;CACd,YAAYC;CACZ,cAAcC;CACd,YAAYC;CACZ,gBAAgBC;CAChB,mBAAmBC;CACnB,sBAAsBC;CACtB,aAAaC;CACb,SAASC;CACT,YAAYC;CACZ,mBAAmBC;CACnB,gBAAgBC;CAChB,cAAcC;CACd,YAAYC;CACZ,YAAYC;CACZ,uBAAuBC;CACvB,eAAeC;CACf,uBAAuBC;CACvB,sBAAsBC;CACtB,aAAaC;CACb,mBAAmBC;CACnB,oBAAoBC;CACpB,yBAAyBC;CACzB,yBAAyBC;CACzB,4BAA4BC;CAC5B,eAAeC;CACf,aAAaC;CACb,cAAcC;CACd,qBAAqBC;CACrB,qBAAqBC;CACrB,cAAcC;CACd,mBAAmBC;CACnB,aAAaC;CACb,kBAAkBC;CAClB,WAAWC;CACX,oBAAoBC;CACpB,0BAA0BC;CAC1B,WAAWC;CACX,iBAAiBC;CACjB,yBAAyBC;CACzB,qBAAqBC;CACrB,UAAUC;CACV,aAAaC;CACb,WAAWC;CACX,iBAAiBC;CACjB,cAAcC;CACd,cAAcC;CACd,aAAaC;CACb,cAAcC;CACd,kBAAkBC;CAClB,gBAAgBC;CAChB,uBAAuBC;CACvB,kBAAkBC;CAClB,iBAAiBC;CACjB,QAAQC;CACR,gBAAgBC;CAChB,aAAaC;CACb,kBAAkBC;CAClB,0BAA0BC;CAC1B,gBAAgBC;CAChB,aAAaC;CACb,oBAAoBC;CACpB,cAAcC;CACd,mBAAmBC;CACnB,cAAcC;AAChB;;;ACjrBA,SAAS,oBAAoB,OAAoB,SAA2B,CAAC,GAAgB;CAC3F,OAAO;EACL,GAAG;EACH,GAAG;CACL;AACF;AAEA,eAAsB,aACpB,YACA,OACA,QAC8B;CAC9B,MAAM,uBAAuB,kBAAkB;CAC/C,OAAO,mBAAmB,YAAY,sBAAsB,OAAO,MAAM;AAC3E;AAWA,SAAgB,oBACd,YACA,sBACA,aAAuC,CAAC,GACnB;CACrB,QAAQ,OAAO,OAAuB,WAA8B;EAGlE,OAAO,mBAAmB,YAAY,sBAFf,SAAS,CAAC,GAE0C;GACzE,GAAG;GACH,GAAG;EACL,CAAC;CACH;AACF;AAEA,eAAe,mBACb,YACA,sBACA,OACA,QAC8B;CAE9B,OAAO,qBACL,oBAAoB,OAAO,MAAM,GACjC,aACF;AACF;;;ACmSA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,qBAAqB,oBAChC,uBACA,kBAAkB,mBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,cAAc,oBAAoB,iBAAiB,kBAAkB,aAAa;AAC/F,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,UAAU,oBAAoB,WAAW,kBAAkB,OAAO;AAC/E,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,6BAA6B,oBACxC,iCACA,kBAAkB,6BACpB;AACA,MAAa,8BAA8B,oBACzC,kCACA,kBAAkB,8BACpB;AACA,MAAa,8BAA8B,oBACzC,iCACA,kBAAkB,6BACpB;AACA,MAAa,uBAAuB,oBAClC,0BACA,kBAAkB,sBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,WAAW,oBAAoB,YAAY,kBAAkB,QAAQ;AAClF,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,cAAc,oBAAoB,eAAe,kBAAkB,WAAW;AAC3F,MAAa,UAAU,oBAAoB,WAAW,kBAAkB,OAAO;AAC/E,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,qBAAqB,oBAChC,uBACA,kBAAkB,mBACpB;AACA,MAAa,uBAAuB,oBAClC,yBACA,kBAAkB,qBACpB;AACA,MAAa,wBAAwB,oBACnC,0BACA,kBAAkB,sBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,uBAAuB,oBAClC,0BACA,kBAAkB,sBACpB;AACA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,wBAAwB,oBACnC,6BACA,kBAAkB,yBACpB;AACA,MAAa,yBAAyB,oBACpC,6BACA,kBAAkB,yBACpB;AACA,MAAa,2BAA2B,oBACtC,+BACA,kBAAkB,2BACpB;AACA,MAAa,0BAA0B,oBACrC,+BACA,kBAAkB,2BACpB;AACA,MAAa,6BAA6B,oBACxC,kCACA,kBAAkB,8BACpB;AACA,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,yBAAyB,oBACpC,4BACA,kBAAkB,wBACpB;AACA,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,wBAAwB,oBACnC,4BACA,kBAAkB,wBACpB;AACA,MAAa,aAAa,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC5F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,wBAAwB,oBACnC,2BACA,kBAAkB,uBACpB;AACA,MAAa,8BAA8B,oBACzC,kCACA,kBAAkB,8BACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,OAAO,oBAAoB,QAAQ,kBAAkB,IAAI;AACtE,MAAa,WAAW,oBAAoB,YAAY,kBAAkB,QAAQ;AAClF,MAAa,2BAA2B,oBACtC,+BACA,kBAAkB,2BACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,sBAAsB,oBACjC,0BACA,kBAAkB,sBACpB;AACA,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,uBAAuB,oBAClC,2BACA,kBAAkB,uBACpB;AACA,MAAa,uBAAuB,oBAClC,yBACA,kBAAkB,qBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,yBAAyB,oBACpC,2BACA,kBAAkB,uBACpB;AACA,MAAa,4BAA4B,oBACvC,+BACA,kBAAkB,2BACpB;AACA,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,2BAA2B,oBACtC,8BACA,kBAAkB,0BACpB;AACA,MAAa,uBAAuB,oBAClC,yBACA,kBAAkB,qBACpB;AACA,MAAa,gCAAgC,oBAC3C,oCACA,kBAAkB,gCACpB;AACA,MAAa,gCAAgC,oBAC3C,oCACA,kBAAkB,gCACpB;AACA,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,aAAa,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC5F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,QAAQ,oBAAoB,SAAS,kBAAkB,KAAK;AACzE,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,cAAc,oBAAoB,iBAAiB,kBAAkB,aAAa;AAC/F,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,mBAAmB,oBAC9B,qBACA,kBAAkB,iBACpB;AACA,MAAa,uBAAuB,oBAClC,2BACA,kBAAkB,uBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,uBAAuB,oBAClC,0BACA,kBAAkB,sBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,eAAe,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC9F,MAAa,wBAAwB,oBACnC,0BACA,kBAAkB,sBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,sBAAsB,oBACjC,wBACA,kBAAkB,oBACpB;AACA,MAAa,6BAA6B,oBACxC,+BACA,kBAAkB,2BACpB;AACA,MAAa,iCAAiC,oBAC5C,oCACA,kBAAkB,gCACpB;AACA,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,wBAAwB,oBACnC,2BACA,kBAAkB,uBACpB;AACA,MAAa,wBAAwB,oBACnC,4BACA,kBAAkB,wBACpB;AACA,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,+BAA+B,oBAC1C,oCACA,kBAAkB,gCACpB;AACA,MAAa,2BAA2B,oBACtC,+BACA,kBAAkB,2BACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,sBAAsB,oBACjC,wBACA,kBAAkB,oBACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,2BAA2B,oBACtC,8BACA,kBAAkB,0BACpB;AACA,MAAa,mBAAmB,oBAC9B,qBACA,kBAAkB,iBACpB;AACA,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,wBAAwB,oBACnC,2BACA,kBAAkB,uBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,uBAAuB,oBAClC,0BACA,kBAAkB,sBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,WAAW,oBAAoB,YAAY,kBAAkB,QAAQ;AAClF,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,mBAAmB,oBAC9B,qBACA,kBAAkB,iBACpB;AACA,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,UAAU,oBAAoB,WAAW,kBAAkB,OAAO;AAC/E,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,SAAS,oBAAoB,WAAW,kBAAkB,OAAO;AAC9E,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,oBAAoB,oBAC/B,wBACA,kBAAkB,oBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,oBAAoB,oBAC/B,wBACA,kBAAkB,oBACpB;AACA,MAAa,oBAAoB,oBAC/B,wBACA,kBAAkB,oBACpB;AACA,MAAa,yBAAyB,oBACpC,8BACA,kBAAkB,0BACpB;AACA,MAAa,oBAAoB,oBAC/B,sBACA,kBAAkB,kBACpB;AACA,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,qBAAqB,oBAChC,uBACA,kBAAkB,mBACpB;AACA,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,YAAY,oBAAoB,eAAe,kBAAkB,WAAW;AACzF,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,0BAA0B,oBACrC,6BACA,kBAAkB,yBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,QAAQ,oBAAoB,UAAU,kBAAkB,MAAM;AAC3E,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,yBAAyB,oBACpC,4BACA,kBAAkB,wBACpB;AACA,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,sBAAsB,oBACjC,0BACA,kBAAkB,sBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,UAAU,oBAAoB,WAAW,kBAAkB,OAAO;AAC/E,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,cAAc,oBAAoB,iBAAiB,kBAAkB,aAAa;AAC/F,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,WAAW,oBAAoB,cAAc,kBAAkB,UAAU;AACtF,MAAa,aAAa,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC5F,MAAa,gBAAgB,oBAC3B,mBACA,kBAAkB,eACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,eAAe,oBAAoB,kBAAkB,kBAAkB,cAAc;AAClG,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,SAAS,oBAAoB,WAAW,kBAAkB,OAAO;AAC9E,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,YAAY,oBAAoB,cAAc,kBAAkB,UAAU;AACvF,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,qBAAqB,oBAChC,wBACA,kBAAkB,oBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,mBAAmB,oBAC9B,qBACA,kBAAkB,iBACpB;AACA,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,uBAAuB,oBAClC,2BACA,kBAAkB,uBACpB;AACA,MAAa,uBAAuB,oBAClC,2BACA,kBAAkB,uBACpB;AACA,MAAa,0BAA0B,oBACrC,8BACA,kBAAkB,0BACpB;AACA,MAAa,eAAe,oBAAoB,iBAAiB,kBAAkB,aAAa;AAChG,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,qBAAqB,oBAChC,uBACA,kBAAkB,mBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,yBAAyB,oBACpC,4BACA,kBAAkB,wBACpB;AACA,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,wBAAwB,oBACnC,2BACA,kBAAkB,uBACpB;AACA,MAAa,oBAAoB,oBAC/B,uBACA,kBAAkB,mBACpB;AACA,MAAa,UAAU,oBAAoB,YAAY,kBAAkB,QAAQ;AACjF,MAAa,YAAY,oBAAoB,eAAe,kBAAkB,WAAW;AACzF,MAAa,WAAW,oBAAoB,aAAa,kBAAkB,SAAS;AACpF,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,sBAAsB,oBACjC,yBACA,kBAAkB,qBACpB;AACA,MAAa,kBAAkB,oBAC7B,oBACA,kBAAkB,gBACpB;AACA,MAAa,iBAAiB,oBAC5B,mBACA,kBAAkB,eACpB;AACA,MAAa,SAAS,oBAAoB,UAAU,kBAAkB,MAAM;AAC5E,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,iBAAiB,oBAC5B,oBACA,kBAAkB,gBACpB;AACA,MAAa,wBAAwB,oBACnC,4BACA,kBAAkB,wBACpB;AACA,MAAa,gBAAgB,oBAAoB,kBAAkB,kBAAkB,cAAc;AACnG,MAAa,aAAa,oBAAoB,eAAe,kBAAkB,WAAW;AAC1F,MAAa,mBAAmB,oBAC9B,sBACA,kBAAkB,kBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAC7F,MAAa,kBAAkB,oBAC7B,qBACA,kBAAkB,iBACpB;AACA,MAAa,cAAc,oBAAoB,gBAAgB,kBAAkB,YAAY;AAE7F,SAAgB,mBAAmB,SAAmC,CAAC,GAAuB;CAC5F,OAAO;EACL,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,oBAAoB,oBAClB,wBACA,kBAAkB,sBAClB,MACF;EACA,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,gBAAgB,oBACd,oBACA,kBAAkB,kBAClB,MACF;EACA,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,oBAAoB,oBAClB,uBACA,kBAAkB,qBAClB,MACF;EACA,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,aAAa,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EACzF,eAAe,oBACb,mBACA,kBAAkB,iBAClB,MACF;EACA,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,eAAe,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC7F,eAAe,oBACb,mBACA,kBAAkB,iBAClB,MACF;EACA,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,SAAS,oBAAoB,WAAW,kBAAkB,SAAS,MAAM;EACzE,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,QAAQ,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACtE,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,4BAA4B,oBAC1B,iCACA,kBAAkB,+BAClB,MACF;EACA,6BAA6B,oBAC3B,kCACA,kBAAkB,gCAClB,MACF;EACA,6BAA6B,oBAC3B,iCACA,kBAAkB,+BAClB,MACF;EACA,sBAAsB,oBACpB,0BACA,kBAAkB,wBAClB,MACF;EACA,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,UAAU,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC5E,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,eAAe,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC7F,yBAAyB,oBACvB,6BACA,kBAAkB,2BAClB,MACF;EACA,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,aAAa,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACrF,SAAS,oBAAoB,WAAW,kBAAkB,SAAS,MAAM;EACzE,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,gBAAgB,oBACd,oBACA,kBAAkB,kBAClB,MACF;EACA,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,iBAAiB,oBACf,oBACA,kBAAkB,kBAClB,MACF;EACA,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,oBAAoB,oBAClB,uBACA,kBAAkB,qBAClB,MACF;EACA,sBAAsB,oBACpB,yBACA,kBAAkB,uBAClB,MACF;EACA,uBAAuB,oBACrB,0BACA,kBAAkB,wBAClB,MACF;EACA,mBAAmB,oBACjB,sBACA,kBAAkB,oBAClB,MACF;EACA,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,sBAAsB,oBACpB,0BACA,kBAAkB,wBAClB,MACF;EACA,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,uBAAuB,oBACrB,6BACA,kBAAkB,2BAClB,MACF;EACA,wBAAwB,oBACtB,6BACA,kBAAkB,2BAClB,MACF;EACA,0BAA0B,oBACxB,+BACA,kBAAkB,6BAClB,MACF;EACA,yBAAyB,oBACvB,+BACA,kBAAkB,6BAClB,MACF;EACA,4BAA4B,oBAC1B,kCACA,kBAAkB,gCAClB,MACF;EACA,OAAO,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACrE,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,wBAAwB,oBACtB,4BACA,kBAAkB,0BAClB,MACF;EACA,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,uBAAuB,oBACrB,4BACA,kBAAkB,0BAClB,MACF;EACA,YAAY,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACtF,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,OAAO,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACrE,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,gBAAgB,oBACd,oBACA,kBAAkB,kBAClB,MACF;EACA,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,cAAc,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC5F,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,SAAS,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC3E,QAAQ,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACtE,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,uBAAuB,oBACrB,2BACA,kBAAkB,yBAClB,MACF;EACA,6BAA6B,oBAC3B,kCACA,kBAAkB,gCAClB,MACF;EACA,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,oBAAoB,oBAClB,wBACA,kBAAkB,sBAClB,MACF;EACA,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,MAAM,oBAAoB,QAAQ,kBAAkB,MAAM,MAAM;EAChE,UAAU,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC5E,0BAA0B,oBACxB,+BACA,kBAAkB,6BAClB,MACF;EACA,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,qBAAqB,oBACnB,0BACA,kBAAkB,wBAClB,MACF;EACA,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,sBAAsB,oBACpB,2BACA,kBAAkB,yBAClB,MACF;EACA,sBAAsB,oBACpB,yBACA,kBAAkB,uBAClB,MACF;EACA,mBAAmB,oBACjB,sBACA,kBAAkB,oBAClB,MACF;EACA,wBAAwB,oBACtB,2BACA,kBAAkB,yBAClB,MACF;EACA,2BAA2B,oBACzB,+BACA,kBAAkB,6BAClB,MACF;EACA,yBAAyB,oBACvB,6BACA,kBAAkB,2BAClB,MACF;EACA,0BAA0B,oBACxB,8BACA,kBAAkB,4BAClB,MACF;EACA,sBAAsB,oBACpB,yBACA,kBAAkB,uBAClB,MACF;EACA,+BAA+B,oBAC7B,oCACA,kBAAkB,kCAClB,MACF;EACA,+BAA+B,oBAC7B,oCACA,kBAAkB,kCAClB,MACF;EACA,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,cAAc,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC5F,eAAe,oBACb,mBACA,kBAAkB,iBAClB,MACF;EACA,YAAY,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACtF,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,QAAQ,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACtE,OAAO,oBAAoB,SAAS,kBAAkB,OAAO,MAAM;EACnE,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,eAAe,oBACb,mBACA,kBAAkB,iBAClB,MACF;EACA,aAAa,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EACzF,SAAS,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC3E,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,kBAAkB,oBAChB,qBACA,kBAAkB,mBAClB,MACF;EACA,sBAAsB,oBACpB,2BACA,kBAAkB,yBAClB,MACF;EACA,mBAAmB,oBACjB,sBACA,kBAAkB,oBAClB,MACF;EACA,yBAAyB,oBACvB,6BACA,kBAAkB,2BAClB,MACF;EACA,sBAAsB,oBACpB,0BACA,kBAAkB,wBAClB,MACF;EACA,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,cAAc,oBAAoB,iBAAiB,kBAAkB,eAAe,MAAM;EAC1F,eAAe,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC7F,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,OAAO,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACrE,UAAU,oBAAoB,aAAa,kBAAkB,WAAW,MAAM;EAC9E,cAAc,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC5F,iBAAiB,oBACf,qBACA,kBAAkB,mBAClB,MACF;EACA,SAAS,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC3E,OAAO,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACrE,WAAW,oBAAoB,cAAc,kBAAkB,YAAY,MAAM;EACjF,OAAO,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACrE,eAAe,oBAAoB,kBAAkB,kBAAkB,gBAAgB,MAAM;EAC7F,YAAY,oBAAoB,eAAe,kBAAkB,aAAa,MAAM;EACpF,gBAAgB,oBACd,oBACA,kBAAkB,kBAClB,MACF;EACA,cAAc,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACxF,uBAAuB,oBACrB,0BACA,kBAAkB,wBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,qBAAqB,oBACnB,wBACA,kBAAkB,sBAClB,MACF;EACA,4BAA4B,oBAC1B,+BACA,kBAAkB,6BAClB,MACF;EACA,gCAAgC,oBAC9B,oCACA,kBAAkB,kCAClB,MACF;EACA,SAAS,oBAAoB,YAAY,kBAAkB,UAAU,MAAM;EAC3E,iBAAiB,oBACf,oBACA,kBAAkB,kBAClB,MACF;EACA,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,oBAAoB,oBAClB,wBACA,kBAAkB,sBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,uBAAuB,oBACrB,2BACA,kBAAkB,yBAClB,MACF;EACA,uBAAuB,oBACrB,4BACA,kBAAkB,0BAClB,MACF;EACA,yBAAyB,oBACvB,6BACA,kBAAkB,2BAClB,MACF;EACA,aAAa,oBAAoB,gBAAgB,kBAAkB,cAAc,MAAM;EACvF,8BAA8B,oBAC5B,oCACA,kBAAkB,kCAClB,MACF;EACA,0BAA0B,oBACxB,+BACA,kBAAkB,6BAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,oBAAoB,oBAClB,wBACA,kBAAkB,sBAClB,MACF;EACA,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,iBAAiB,oBACf,oBACA,kBAAkB,kBAClB,MACF;EACA,mBAAmB,oBACjB,sBACA,kBAAkB,oBAClB,MACF;EACA,qBAAqB,oBACnB,wBACA,kBAAkB,sBAClB,MACF;EACA,oBAAoB,oBAClB,wBACA,kBAAkB,sBAClB,MACF;EACA,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,yBAAyB,oBACvB,6BACA,kBAAkB,2BAClB,MACF;EACA,qBAAqB,oBACnB,yBACA,kBAAkB,uBAClB,MACF;EACA,0BAA0B,oBACxB,8BACA,kBAAkB,4BAClB,MACF;EACA,kBAAkB,oBAChB,qBACA,kBAAkB,mBAClB,MACF;EACA,QAAQ,oBAAoB,UAAU,kBAAkB,QAAQ,MAAM;EACtE,kBAAkB,oBAChB,sBACA,kBAAkB,oBAClB,MACF;EACA,mBAAmB,oBACjB,sBACA,kBAAkB,oBAClB,MACF;EACA,gBAAgB,oBACd,mBACA,kBAAkB,iBAClB,MACF;EACA,uBAAuB,oBACrB,2BACA,kBAAkB,yBAClB,MACF;EACA,mBAAmB,oBACjB,uBACA,kBAAkB,qBAClB,MACF;EACA,gBAAgB,oBACd,oBACA,kBAAkB,kBAClB,MACF;EACA,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"}