urlpurify 2.1.2 → 2.2.1

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 (830) hide show
  1. package/README.md +2 -0
  2. package/dist/clean.d.mts +1 -3
  3. package/dist/clean.mjs +8 -9
  4. package/dist/defaults.d.mts +2 -2
  5. package/dist/defaults.mjs +43 -4
  6. package/dist/index.d.mts +20 -2
  7. package/dist/index.mjs +20 -2
  8. package/dist/node_modules/entities/dist/decode-codepoint.mjs +72 -0
  9. package/dist/node_modules/entities/dist/decode.mjs +314 -0
  10. package/dist/node_modules/entities/dist/generated/decode-data-html.mjs +5 -0
  11. package/dist/node_modules/entities/dist/internal/bin-trie-flags.mjs +50 -0
  12. package/dist/node_modules/entities/dist/internal/decode-shared.mjs +143 -0
  13. package/dist/node_modules/trousse/dist/is.mjs +1 -2
  14. package/dist/node_modules/trousse/dist/matching.mjs +16 -5
  15. package/dist/node_modules/trousse/dist/urls.mjs +109 -9
  16. package/dist/pathTarget.mjs +1 -2
  17. package/dist/tracking/affiliate.d.mts +1 -3
  18. package/dist/tracking/affiliate.mjs +1 -2
  19. package/dist/tracking/campaign.d.mts +1 -3
  20. package/dist/tracking/campaign.mjs +1 -2
  21. package/dist/tracking/clickAttribution.d.mts +1 -3
  22. package/dist/tracking/clickAttribution.mjs +1 -2
  23. package/dist/tracking/housekeeping.d.mts +1 -3
  24. package/dist/tracking/housekeeping.mjs +1 -2
  25. package/dist/tracking/visitorId.d.mts +1 -3
  26. package/dist/tracking/visitorId.mjs +1 -2
  27. package/dist/types.d.mts +1 -3
  28. package/dist/unwraps/12ft.d.mts +1 -3
  29. package/dist/unwraps/12ft.mjs +1 -2
  30. package/dist/unwraps/2performant.d.mts +1 -3
  31. package/dist/unwraps/2performant.mjs +1 -2
  32. package/dist/unwraps/4pda.d.mts +1 -3
  33. package/dist/unwraps/4pda.mjs +1 -2
  34. package/dist/unwraps/a8Net.d.mts +1 -3
  35. package/dist/unwraps/a8Net.mjs +1 -2
  36. package/dist/unwraps/aboutCom.d.mts +1 -3
  37. package/dist/unwraps/aboutCom.mjs +1 -2
  38. package/dist/unwraps/acast.d.mts +1 -3
  39. package/dist/unwraps/acast.mjs +1 -2
  40. package/dist/unwraps/accesstrade.d.mts +1 -3
  41. package/dist/unwraps/accesstrade.mjs +1 -2
  42. package/dist/unwraps/aceml.d.mts +1 -3
  43. package/dist/unwraps/aceml.mjs +1 -2
  44. package/dist/unwraps/adcell.d.mts +1 -3
  45. package/dist/unwraps/adcell.mjs +1 -2
  46. package/dist/unwraps/adfly.d.mts +1 -3
  47. package/dist/unwraps/adfly.mjs +1 -2
  48. package/dist/unwraps/adjust.d.mts +1 -3
  49. package/dist/unwraps/adjust.mjs +1 -2
  50. package/dist/unwraps/admitad.d.mts +1 -3
  51. package/dist/unwraps/admitad.mjs +1 -2
  52. package/dist/unwraps/adrecord.d.mts +1 -3
  53. package/dist/unwraps/adrecord.mjs +1 -2
  54. package/dist/unwraps/adtraction.d.mts +1 -3
  55. package/dist/unwraps/adtraction.mjs +1 -2
  56. package/dist/unwraps/affilae.d.mts +1 -3
  57. package/dist/unwraps/affilae.mjs +3 -3
  58. package/dist/unwraps/affiliateFuture.d.mts +1 -3
  59. package/dist/unwraps/affiliateFuture.mjs +1 -2
  60. package/dist/unwraps/affiliatesOne.d.mts +1 -3
  61. package/dist/unwraps/affiliatesOne.mjs +1 -2
  62. package/dist/unwraps/aliexpress.d.mts +1 -3
  63. package/dist/unwraps/aliexpress.mjs +1 -2
  64. package/dist/unwraps/aliyun.d.mts +1 -3
  65. package/dist/unwraps/aliyun.mjs +1 -2
  66. package/dist/unwraps/allblog.d.mts +1 -3
  67. package/dist/unwraps/allblog.mjs +1 -2
  68. package/dist/unwraps/amazonAffiliate.d.mts +1 -3
  69. package/dist/unwraps/amazonAffiliate.mjs +1 -2
  70. package/dist/unwraps/amazonSes.d.mts +1 -3
  71. package/dist/unwraps/amazonSes.mjs +1 -2
  72. package/dist/unwraps/ampCache.d.mts +1 -3
  73. package/dist/unwraps/ampCache.mjs +1 -2
  74. package/dist/unwraps/ampCacheImage.d.mts +2 -0
  75. package/dist/unwraps/ampCacheImage.mjs +10 -0
  76. package/dist/unwraps/anchor.d.mts +1 -3
  77. package/dist/unwraps/anchor.mjs +1 -2
  78. package/dist/unwraps/anonymTo.d.mts +1 -3
  79. package/dist/unwraps/anonymTo.mjs +1 -2
  80. package/dist/unwraps/anonymouse.d.mts +1 -3
  81. package/dist/unwraps/anonymouse.mjs +1 -2
  82. package/dist/unwraps/appsflyerOnelink.d.mts +1 -3
  83. package/dist/unwraps/appsflyerOnelink.mjs +1 -2
  84. package/dist/unwraps/apptrkr.d.mts +1 -3
  85. package/dist/unwraps/apptrkr.mjs +3 -4
  86. package/dist/unwraps/archiveToday.d.mts +1 -3
  87. package/dist/unwraps/archiveToday.mjs +1 -2
  88. package/dist/unwraps/arquivo.d.mts +1 -3
  89. package/dist/unwraps/arquivo.mjs +1 -2
  90. package/dist/unwraps/arttrack.d.mts +1 -3
  91. package/dist/unwraps/arttrack.mjs +1 -2
  92. package/dist/unwraps/arxiv.d.mts +1 -3
  93. package/dist/unwraps/arxiv.mjs +1 -2
  94. package/dist/unwraps/ask.d.mts +1 -3
  95. package/dist/unwraps/ask.mjs +1 -2
  96. package/dist/unwraps/augure.d.mts +1 -3
  97. package/dist/unwraps/augure.mjs +1 -2
  98. package/dist/unwraps/ausha.d.mts +1 -3
  99. package/dist/unwraps/ausha.mjs +1 -2
  100. package/dist/unwraps/avantlink.d.mts +1 -3
  101. package/dist/unwraps/avantlink.mjs +1 -2
  102. package/dist/unwraps/awesound.d.mts +1 -3
  103. package/dist/unwraps/awesound.mjs +1 -2
  104. package/dist/unwraps/awin.d.mts +1 -3
  105. package/dist/unwraps/awin.mjs +1 -2
  106. package/dist/unwraps/axigen.d.mts +1 -3
  107. package/dist/unwraps/axigen.mjs +1 -2
  108. package/dist/unwraps/babyblog.d.mts +1 -3
  109. package/dist/unwraps/babyblog.mjs +1 -2
  110. package/dist/unwraps/bacLacWebArchive.d.mts +1 -3
  111. package/dist/unwraps/bacLacWebArchive.mjs +1 -2
  112. package/dist/unwraps/bale.d.mts +1 -3
  113. package/dist/unwraps/bale.mjs +1 -2
  114. package/dist/unwraps/bananatag.d.mts +1 -3
  115. package/dist/unwraps/bananatag.mjs +1 -2
  116. package/dist/unwraps/barracudaLinkProtect.d.mts +1 -3
  117. package/dist/unwraps/barracudaLinkProtect.mjs +1 -2
  118. package/dist/unwraps/big5Gate.d.mts +1 -3
  119. package/dist/unwraps/big5Gate.mjs +1 -2
  120. package/dist/unwraps/bing.d.mts +1 -3
  121. package/dist/unwraps/bing.mjs +1 -2
  122. package/dist/unwraps/bingAds.d.mts +1 -3
  123. package/dist/unwraps/bingAds.mjs +1 -2
  124. package/dist/unwraps/bitrix.d.mts +1 -3
  125. package/dist/unwraps/bitrix.mjs +1 -2
  126. package/dist/unwraps/bitrixBanner.d.mts +1 -3
  127. package/dist/unwraps/bitrixBanner.mjs +1 -2
  128. package/dist/unwraps/bizrate.d.mts +1 -3
  129. package/dist/unwraps/bizrate.mjs +1 -2
  130. package/dist/unwraps/bloggerImageProxy.d.mts +2 -0
  131. package/dist/unwraps/bloggerImageProxy.mjs +13 -0
  132. package/dist/unwraps/blubrry.d.mts +1 -3
  133. package/dist/unwraps/blubrry.mjs +1 -2
  134. package/dist/unwraps/bolPartner.d.mts +1 -3
  135. package/dist/unwraps/bolPartner.mjs +1 -2
  136. package/dist/unwraps/bridgyFed.d.mts +1 -3
  137. package/dist/unwraps/bridgyFed.mjs +1 -2
  138. package/dist/unwraps/brightspot.d.mts +2 -0
  139. package/dist/unwraps/brightspot.mjs +12 -0
  140. package/dist/unwraps/bsky.d.mts +1 -3
  141. package/dist/unwraps/bsky.mjs +1 -2
  142. package/dist/unwraps/businessWire.d.mts +1 -3
  143. package/dist/unwraps/businessWire.mjs +1 -2
  144. package/dist/unwraps/button.d.mts +1 -3
  145. package/dist/unwraps/button.mjs +1 -2
  146. package/dist/unwraps/buyAt.d.mts +1 -3
  147. package/dist/unwraps/buyAt.mjs +1 -2
  148. package/dist/unwraps/buybox.d.mts +1 -3
  149. package/dist/unwraps/buybox.mjs +1 -2
  150. package/dist/unwraps/buzzstream.d.mts +1 -3
  151. package/dist/unwraps/buzzstream.mjs +1 -2
  152. package/dist/unwraps/bytedance.d.mts +1 -3
  153. package/dist/unwraps/bytedance.mjs +1 -2
  154. package/dist/unwraps/cake.d.mts +1 -3
  155. package/dist/unwraps/cake.mjs +3 -4
  156. package/dist/unwraps/calendly.d.mts +1 -3
  157. package/dist/unwraps/calendly.mjs +1 -2
  158. package/dist/unwraps/canva.d.mts +1 -3
  159. package/dist/unwraps/canva.mjs +1 -2
  160. package/dist/unwraps/castPlus.d.mts +1 -3
  161. package/dist/unwraps/castPlus.mjs +1 -2
  162. package/dist/unwraps/ccbill.d.mts +1 -3
  163. package/dist/unwraps/ccbill.mjs +1 -2
  164. package/dist/unwraps/chartable.d.mts +1 -3
  165. package/dist/unwraps/chartable.mjs +1 -2
  166. package/dist/unwraps/checkPointHarmony.d.mts +1 -3
  167. package/dist/unwraps/checkPointHarmony.mjs +4 -5
  168. package/dist/unwraps/chitika.d.mts +1 -3
  169. package/dist/unwraps/chitika.mjs +1 -2
  170. package/dist/unwraps/ciscoSecureWeb.d.mts +1 -3
  171. package/dist/unwraps/ciscoSecureWeb.mjs +1 -2
  172. package/dist/unwraps/cjNetwork.d.mts +1 -3
  173. package/dist/unwraps/cjNetwork.mjs +1 -2
  174. package/dist/unwraps/claritas.d.mts +1 -3
  175. package/dist/unwraps/claritas.mjs +1 -2
  176. package/dist/unwraps/cleverbridge.d.mts +1 -3
  177. package/dist/unwraps/cleverbridge.mjs +3 -4
  178. package/dist/unwraps/clevercomm.d.mts +1 -3
  179. package/dist/unwraps/clevercomm.mjs +1 -2
  180. package/dist/unwraps/cloudflareImages.d.mts +2 -0
  181. package/dist/unwraps/cloudflareImages.mjs +12 -0
  182. package/dist/unwraps/cloudhq.d.mts +1 -3
  183. package/dist/unwraps/cloudhq.mjs +1 -2
  184. package/dist/unwraps/cloudinaryFetch.d.mts +2 -0
  185. package/dist/unwraps/cloudinaryFetch.mjs +9 -0
  186. package/dist/unwraps/cloze.d.mts +1 -3
  187. package/dist/unwraps/cloze.mjs +1 -2
  188. package/dist/unwraps/cohst.d.mts +1 -3
  189. package/dist/unwraps/cohst.mjs +1 -2
  190. package/dist/unwraps/commissionFactory.d.mts +1 -3
  191. package/dist/unwraps/commissionFactory.mjs +1 -2
  192. package/dist/unwraps/communicationads.d.mts +1 -3
  193. package/dist/unwraps/communicationads.mjs +1 -2
  194. package/dist/unwraps/constantContact.d.mts +1 -3
  195. package/dist/unwraps/constantContact.mjs +1 -2
  196. package/dist/unwraps/contactMonkey.d.mts +1 -3
  197. package/dist/unwraps/contactMonkey.mjs +1 -2
  198. package/dist/unwraps/convertiser.d.mts +1 -3
  199. package/dist/unwraps/convertiser.mjs +1 -2
  200. package/dist/unwraps/csdn.d.mts +1 -3
  201. package/dist/unwraps/csdn.mjs +1 -2
  202. package/dist/unwraps/cse360.d.mts +1 -3
  203. package/dist/unwraps/cse360.mjs +1 -2
  204. package/dist/unwraps/cuelinks.d.mts +1 -3
  205. package/dist/unwraps/cuelinks.mjs +1 -2
  206. package/dist/unwraps/dasBlog.d.mts +1 -3
  207. package/dist/unwraps/dasBlog.mjs +1 -2
  208. package/dist/unwraps/datalifeEngine.d.mts +1 -3
  209. package/dist/unwraps/datalifeEngine.mjs +3 -4
  210. package/dist/unwraps/deployer.d.mts +1 -3
  211. package/dist/unwraps/deployer.mjs +3 -4
  212. package/dist/unwraps/derefMail.d.mts +1 -3
  213. package/dist/unwraps/derefMail.mjs +1 -2
  214. package/dist/unwraps/devToImage.d.mts +2 -0
  215. package/dist/unwraps/devToImage.mjs +10 -0
  216. package/dist/unwraps/deviantartOutgoing.d.mts +1 -3
  217. package/dist/unwraps/deviantartOutgoing.mjs +1 -2
  218. package/dist/unwraps/digidip.d.mts +1 -3
  219. package/dist/unwraps/digidip.mjs +1 -2
  220. package/dist/unwraps/digikala.d.mts +1 -3
  221. package/dist/unwraps/digikala.mjs +1 -2
  222. package/dist/unwraps/directMail.d.mts +1 -3
  223. package/dist/unwraps/directMail.mjs +1 -2
  224. package/dist/unwraps/disqus.d.mts +1 -3
  225. package/dist/unwraps/disqus.mjs +1 -2
  226. package/dist/unwraps/dmmAffiliate.d.mts +1 -3
  227. package/dist/unwraps/dmmAffiliate.mjs +1 -2
  228. package/dist/unwraps/dognet.d.mts +1 -3
  229. package/dist/unwraps/dognet.mjs +1 -2
  230. package/dist/unwraps/douban.d.mts +1 -3
  231. package/dist/unwraps/douban.mjs +1 -2
  232. package/dist/unwraps/dropbox.d.mts +1 -3
  233. package/dist/unwraps/dropbox.mjs +1 -2
  234. package/dist/unwraps/drupalOembed.d.mts +2 -0
  235. package/dist/unwraps/drupalOembed.mjs +12 -0
  236. package/dist/unwraps/dstats.d.mts +1 -3
  237. package/dist/unwraps/dstats.mjs +1 -2
  238. package/dist/unwraps/duckduckgo.d.mts +1 -3
  239. package/dist/unwraps/duckduckgo.mjs +1 -2
  240. package/dist/unwraps/duckduckgoAds.d.mts +1 -3
  241. package/dist/unwraps/duckduckgoAds.mjs +1 -2
  242. package/dist/unwraps/duckduckgoImage.d.mts +2 -0
  243. package/dist/unwraps/duckduckgoImage.mjs +12 -0
  244. package/dist/unwraps/duomai.d.mts +1 -3
  245. package/dist/unwraps/duomai.mjs +1 -2
  246. package/dist/unwraps/dyn.d.mts +1 -3
  247. package/dist/unwraps/dyn.mjs +1 -2
  248. package/dist/unwraps/dzen.d.mts +1 -3
  249. package/dist/unwraps/dzen.mjs +1 -2
  250. package/dist/unwraps/eClick.d.mts +1 -3
  251. package/dist/unwraps/eClick.mjs +1 -2
  252. package/dist/unwraps/easyMarketing.d.mts +1 -3
  253. package/dist/unwraps/easyMarketing.mjs +1 -2
  254. package/dist/unwraps/ebayRover.d.mts +1 -3
  255. package/dist/unwraps/ebayRover.mjs +1 -2
  256. package/dist/unwraps/ebuzzing.d.mts +1 -3
  257. package/dist/unwraps/ebuzzing.mjs +1 -2
  258. package/dist/unwraps/edgepilot.d.mts +1 -3
  259. package/dist/unwraps/edgepilot.mjs +1 -2
  260. package/dist/unwraps/effiliation.d.mts +1 -3
  261. package/dist/unwraps/effiliation.mjs +1 -2
  262. package/dist/unwraps/ehub.d.mts +1 -3
  263. package/dist/unwraps/ehub.mjs +1 -2
  264. package/dist/unwraps/elasticEmail.d.mts +1 -3
  265. package/dist/unwraps/elasticEmail.mjs +3 -4
  266. package/dist/unwraps/embedly.d.mts +1 -3
  267. package/dist/unwraps/embedly.mjs +3 -4
  268. package/dist/unwraps/epn.d.mts +1 -3
  269. package/dist/unwraps/epn.mjs +1 -2
  270. package/dist/unwraps/esva.d.mts +1 -3
  271. package/dist/unwraps/esva.mjs +1 -2
  272. package/dist/unwraps/eulerian.d.mts +1 -3
  273. package/dist/unwraps/eulerian.mjs +1 -2
  274. package/dist/unwraps/evernote.d.mts +1 -3
  275. package/dist/unwraps/evernote.mjs +1 -2
  276. package/dist/unwraps/exciteTranslate.d.mts +1 -3
  277. package/dist/unwraps/exciteTranslate.mjs +1 -2
  278. package/dist/unwraps/expediaAffiliate.d.mts +1 -3
  279. package/dist/unwraps/expediaAffiliate.mjs +1 -2
  280. package/dist/unwraps/facebook.d.mts +1 -3
  281. package/dist/unwraps/facebook.mjs +1 -2
  282. package/dist/unwraps/fanbridge.d.mts +1 -3
  283. package/dist/unwraps/fanbridge.mjs +1 -2
  284. package/dist/unwraps/federatedMedia.d.mts +1 -3
  285. package/dist/unwraps/federatedMedia.mjs +1 -2
  286. package/dist/unwraps/feedStatistics.d.mts +1 -3
  287. package/dist/unwraps/feedStatistics.mjs +1 -2
  288. package/dist/unwraps/feedblitz.d.mts +1 -3
  289. package/dist/unwraps/feedblitz.mjs +4 -6
  290. package/dist/unwraps/feedsportal.d.mts +1 -3
  291. package/dist/unwraps/feedsportal.mjs +1 -2
  292. package/dist/unwraps/finalsite.d.mts +1 -3
  293. package/dist/unwraps/finalsite.mjs +3 -4
  294. package/dist/unwraps/firebaseDynamicLinks.d.mts +1 -3
  295. package/dist/unwraps/firebaseDynamicLinks.mjs +3 -3
  296. package/dist/unwraps/fireeye.d.mts +1 -3
  297. package/dist/unwraps/fireeye.mjs +1 -2
  298. package/dist/unwraps/firstory.d.mts +1 -3
  299. package/dist/unwraps/firstory.mjs +1 -2
  300. package/dist/unwraps/fiveByFive.d.mts +1 -3
  301. package/dist/unwraps/fiveByFive.mjs +1 -2
  302. package/dist/unwraps/fiverr.d.mts +1 -3
  303. package/dist/unwraps/fiverr.mjs +1 -2
  304. package/dist/unwraps/flexoffers.d.mts +1 -3
  305. package/dist/unwraps/flexoffers.mjs +1 -2
  306. package/dist/unwraps/flipboard.d.mts +1 -3
  307. package/dist/unwraps/flipboard.mjs +1 -2
  308. package/dist/unwraps/fortimail.d.mts +1 -3
  309. package/dist/unwraps/fortimail.mjs +3 -4
  310. package/dist/unwraps/ftc.d.mts +1 -3
  311. package/dist/unwraps/ftc.mjs +1 -2
  312. package/dist/unwraps/gateSc.d.mts +1 -3
  313. package/dist/unwraps/gateSc.mjs +1 -2
  314. package/dist/unwraps/georiot.d.mts +1 -3
  315. package/dist/unwraps/georiot.mjs +1 -2
  316. package/dist/unwraps/gfnLinkProxy.d.mts +1 -3
  317. package/dist/unwraps/gfnLinkProxy.mjs +1 -2
  318. package/dist/unwraps/gitee.d.mts +1 -3
  319. package/dist/unwraps/gitee.mjs +1 -2
  320. package/dist/unwraps/glueUp.d.mts +1 -3
  321. package/dist/unwraps/glueUp.mjs +1 -2
  322. package/dist/unwraps/godcaster.d.mts +1 -3
  323. package/dist/unwraps/godcaster.mjs +1 -2
  324. package/dist/unwraps/google.d.mts +1 -3
  325. package/dist/unwraps/google.mjs +1 -2
  326. package/dist/unwraps/googleAds.d.mts +1 -3
  327. package/dist/unwraps/googleAds.mjs +1 -2
  328. package/dist/unwraps/googleAmpViewer.d.mts +1 -3
  329. package/dist/unwraps/googleAmpViewer.mjs +6 -5
  330. package/dist/unwraps/googleNews.d.mts +1 -3
  331. package/dist/unwraps/googleNews.mjs +0 -1
  332. package/dist/unwraps/googleNewsModern.d.mts +1 -3
  333. package/dist/unwraps/googleNewsModern.mjs +1 -2
  334. package/dist/unwraps/googleScholar.d.mts +1 -3
  335. package/dist/unwraps/googleScholar.mjs +0 -1
  336. package/dist/unwraps/googleTranslate.d.mts +1 -3
  337. package/dist/unwraps/googleTranslate.mjs +12 -13
  338. package/dist/unwraps/googleWebLight.d.mts +1 -3
  339. package/dist/unwraps/googleWebLight.mjs +1 -2
  340. package/dist/unwraps/govdelivery.d.mts +1 -3
  341. package/dist/unwraps/govdelivery.mjs +1 -2
  342. package/dist/unwraps/groupMail.d.mts +1 -3
  343. package/dist/unwraps/groupMail.mjs +1 -2
  344. package/dist/unwraps/groupon.d.mts +1 -3
  345. package/dist/unwraps/groupon.mjs +1 -2
  346. package/dist/unwraps/gumball.d.mts +1 -3
  347. package/dist/unwraps/gumball.mjs +1 -2
  348. package/dist/unwraps/gurunavi.d.mts +1 -3
  349. package/dist/unwraps/gurunavi.mjs +1 -2
  350. package/dist/unwraps/hackerone.d.mts +1 -3
  351. package/dist/unwraps/hackerone.mjs +1 -2
  352. package/dist/unwraps/hashnode.d.mts +1 -3
  353. package/dist/unwraps/hashnode.mjs +1 -2
  354. package/dist/unwraps/hasoffers.d.mts +1 -3
  355. package/dist/unwraps/hasoffers.mjs +3 -4
  356. package/dist/unwraps/hatenaImage.d.mts +2 -0
  357. package/dist/unwraps/hatenaImage.mjs +10 -0
  358. package/dist/unwraps/hearthis.d.mts +1 -3
  359. package/dist/unwraps/hearthis.mjs +1 -2
  360. package/dist/unwraps/hellohq.d.mts +1 -3
  361. package/dist/unwraps/hellohq.mjs +1 -2
  362. package/dist/unwraps/hirkereso.d.mts +1 -3
  363. package/dist/unwraps/hirkereso.mjs +1 -2
  364. package/dist/unwraps/horde.d.mts +1 -3
  365. package/dist/unwraps/horde.mjs +1 -2
  366. package/dist/unwraps/hornetsecurity.d.mts +1 -3
  367. package/dist/unwraps/hornetsecurity.mjs +1 -2
  368. package/dist/unwraps/hrefLi.d.mts +1 -3
  369. package/dist/unwraps/hrefLi.mjs +1 -2
  370. package/dist/unwraps/hubspotSidekick.d.mts +1 -3
  371. package/dist/unwraps/hubspotSidekick.mjs +1 -2
  372. package/dist/unwraps/icptrack.d.mts +1 -3
  373. package/dist/unwraps/icptrack.mjs +1 -2
  374. package/dist/unwraps/iframely.d.mts +2 -0
  375. package/dist/unwraps/iframely.mjs +8 -0
  376. package/dist/unwraps/igafnl.d.mts +1 -3
  377. package/dist/unwraps/igafnl.mjs +1 -2
  378. package/dist/unwraps/imagekit.d.mts +2 -0
  379. package/dist/unwraps/imagekit.mjs +10 -0
  380. package/dist/unwraps/impact.d.mts +1 -3
  381. package/dist/unwraps/impact.mjs +1 -2
  382. package/dist/unwraps/indexHu.d.mts +1 -3
  383. package/dist/unwraps/indexHu.mjs +1 -2
  384. package/dist/unwraps/infospace.d.mts +1 -3
  385. package/dist/unwraps/infospace.mjs +1 -2
  386. package/dist/unwraps/insiderAffiliate.d.mts +1 -3
  387. package/dist/unwraps/insiderAffiliate.mjs +1 -2
  388. package/dist/unwraps/instagram.d.mts +1 -3
  389. package/dist/unwraps/instagram.mjs +1 -2
  390. package/dist/unwraps/intranetQuorum.d.mts +1 -3
  391. package/dist/unwraps/intranetQuorum.mjs +1 -2
  392. package/dist/unwraps/invisionNoExternalLinks.d.mts +1 -3
  393. package/dist/unwraps/invisionNoExternalLinks.mjs +1 -2
  394. package/dist/unwraps/involveAsia.d.mts +1 -3
  395. package/dist/unwraps/involveAsia.mjs +1 -2
  396. package/dist/unwraps/irs.d.mts +1 -3
  397. package/dist/unwraps/irs.mjs +1 -2
  398. package/dist/unwraps/jetpack.d.mts +2 -0
  399. package/dist/unwraps/jetpack.mjs +11 -0
  400. package/dist/unwraps/jianshuGo.d.mts +1 -3
  401. package/dist/unwraps/jianshuGo.mjs +1 -2
  402. package/dist/unwraps/jive.d.mts +1 -3
  403. package/dist/unwraps/jive.mjs +1 -2
  404. package/dist/unwraps/juejin.d.mts +1 -3
  405. package/dist/unwraps/juejin.mjs +1 -2
  406. package/dist/unwraps/justwatch.d.mts +1 -3
  407. package/dist/unwraps/justwatch.mjs +1 -2
  408. package/dist/unwraps/klook.d.mts +1 -3
  409. package/dist/unwraps/klook.mjs +1 -2
  410. package/dist/unwraps/lazada.d.mts +1 -3
  411. package/dist/unwraps/lazada.mjs +1 -2
  412. package/dist/unwraps/ld246.d.mts +1 -3
  413. package/dist/unwraps/ld246.mjs +1 -2
  414. package/dist/unwraps/letscast.d.mts +1 -3
  415. package/dist/unwraps/letscast.mjs +1 -2
  416. package/dist/unwraps/leverAnalytics.d.mts +1 -3
  417. package/dist/unwraps/leverAnalytics.mjs +1 -2
  418. package/dist/unwraps/linkA.d.mts +1 -3
  419. package/dist/unwraps/linkA.mjs +1 -2
  420. package/dist/unwraps/linkconnector.d.mts +1 -3
  421. package/dist/unwraps/linkconnector.mjs +1 -2
  422. package/dist/unwraps/linkedin.d.mts +1 -3
  423. package/dist/unwraps/linkedin.mjs +1 -2
  424. package/dist/unwraps/linksynergy.d.mts +1 -3
  425. package/dist/unwraps/linksynergy.mjs +1 -2
  426. package/dist/unwraps/linktrust.d.mts +1 -3
  427. package/dist/unwraps/linktrust.mjs +1 -2
  428. package/dist/unwraps/linkwise.d.mts +1 -3
  429. package/dist/unwraps/linkwise.mjs +1 -2
  430. package/dist/unwraps/livejournal.d.mts +1 -3
  431. package/dist/unwraps/livejournal.mjs +1 -2
  432. package/dist/unwraps/lnkam.d.mts +1 -3
  433. package/dist/unwraps/lnkam.mjs +1 -2
  434. package/dist/unwraps/locWebArchive.d.mts +1 -3
  435. package/dist/unwraps/locWebArchive.mjs +1 -2
  436. package/dist/unwraps/locaweb.d.mts +1 -3
  437. package/dist/unwraps/locaweb.mjs +3 -3
  438. package/dist/unwraps/logicboard.d.mts +1 -3
  439. package/dist/unwraps/logicboard.mjs +1 -2
  440. package/dist/unwraps/magellan.d.mts +1 -3
  441. package/dist/unwraps/magellan.mjs +1 -2
  442. package/dist/unwraps/magnetmail.d.mts +1 -3
  443. package/dist/unwraps/magnetmail.mjs +1 -2
  444. package/dist/unwraps/mail2easy.d.mts +1 -3
  445. package/dist/unwraps/mail2easy.mjs +1 -2
  446. package/dist/unwraps/mailRu.d.mts +1 -3
  447. package/dist/unwraps/mailRu.mjs +1 -2
  448. package/dist/unwraps/mailRuLink.d.mts +1 -3
  449. package/dist/unwraps/mailRuLink.mjs +1 -2
  450. package/dist/unwraps/mailchimp.d.mts +1 -3
  451. package/dist/unwraps/mailchimp.mjs +1 -2
  452. package/dist/unwraps/mailinblack.d.mts +1 -3
  453. package/dist/unwraps/mailinblack.mjs +1 -2
  454. package/dist/unwraps/mailpanion.d.mts +1 -3
  455. package/dist/unwraps/mailpanion.mjs +1 -2
  456. package/dist/unwraps/mailpgn.d.mts +1 -3
  457. package/dist/unwraps/mailpgn.mjs +1 -2
  458. package/dist/unwraps/mailstat.d.mts +1 -3
  459. package/dist/unwraps/mailstat.mjs +1 -2
  460. package/dist/unwraps/mailtrack.d.mts +1 -3
  461. package/dist/unwraps/mailtrack.mjs +1 -2
  462. package/dist/unwraps/mandrill.d.mts +1 -3
  463. package/dist/unwraps/mandrill.mjs +1 -2
  464. package/dist/unwraps/marketwire.d.mts +1 -3
  465. package/dist/unwraps/marketwire.mjs +1 -2
  466. package/dist/unwraps/mcas.d.mts +1 -3
  467. package/dist/unwraps/mcas.mjs +1 -2
  468. package/dist/unwraps/medium.d.mts +1 -3
  469. package/dist/unwraps/medium.mjs +1 -2
  470. package/dist/unwraps/megalodon.d.mts +1 -3
  471. package/dist/unwraps/megalodon.mjs +1 -2
  472. package/dist/unwraps/mimecast.d.mts +1 -3
  473. package/dist/unwraps/mimecast.mjs +1 -2
  474. package/dist/unwraps/ministryCloud.d.mts +1 -3
  475. package/dist/unwraps/ministryCloud.mjs +1 -2
  476. package/dist/unwraps/mintDownloads.d.mts +1 -3
  477. package/dist/unwraps/mintDownloads.mjs +1 -2
  478. package/dist/unwraps/mintFeeder.d.mts +1 -3
  479. package/dist/unwraps/mintFeeder.mjs +3 -4
  480. package/dist/unwraps/mohtwize.d.mts +1 -3
  481. package/dist/unwraps/mohtwize.mjs +1 -2
  482. package/dist/unwraps/moshimo.d.mts +1 -3
  483. package/dist/unwraps/moshimo.mjs +1 -2
  484. package/dist/unwraps/mozillaOutgoing.d.mts +1 -3
  485. package/dist/unwraps/mozillaOutgoing.mjs +1 -2
  486. package/dist/unwraps/myNewsletterBuilder.d.mts +1 -3
  487. package/dist/unwraps/myNewsletterBuilder.mjs +1 -2
  488. package/dist/unwraps/narrativ.d.mts +1 -3
  489. package/dist/unwraps/narrativ.mjs +1 -2
  490. package/dist/unwraps/natlibNz.d.mts +1 -3
  491. package/dist/unwraps/natlibNz.mjs +1 -2
  492. package/dist/unwraps/naverOutgoing.d.mts +1 -3
  493. package/dist/unwraps/naverOutgoing.mjs +1 -2
  494. package/dist/unwraps/ncls.d.mts +1 -3
  495. package/dist/unwraps/ncls.mjs +1 -2
  496. package/dist/unwraps/ndlWarp.d.mts +1 -3
  497. package/dist/unwraps/ndlWarp.mjs +1 -2
  498. package/dist/unwraps/netaffiliation.d.mts +1 -3
  499. package/dist/unwraps/netaffiliation.mjs +1 -2
  500. package/dist/unwraps/netcentrum.d.mts +1 -3
  501. package/dist/unwraps/netcentrum.mjs +1 -2
  502. package/dist/unwraps/newswire.d.mts +1 -3
  503. package/dist/unwraps/newswire.mjs +1 -2
  504. package/dist/unwraps/nextImage.d.mts +2 -0
  505. package/dist/unwraps/nextImage.mjs +10 -0
  506. package/dist/unwraps/nicoMs.d.mts +1 -3
  507. package/dist/unwraps/nicoMs.mjs +1 -2
  508. package/dist/unwraps/nimble.d.mts +1 -3
  509. package/dist/unwraps/nimble.mjs +1 -2
  510. package/dist/unwraps/nlaWebarchive.d.mts +1 -3
  511. package/dist/unwraps/nlaWebarchive.mjs +1 -2
  512. package/dist/unwraps/nodeseek.d.mts +1 -3
  513. package/dist/unwraps/nodeseek.mjs +1 -2
  514. package/dist/unwraps/okRu.d.mts +1 -3
  515. package/dist/unwraps/okRu.mjs +4 -4
  516. package/dist/unwraps/op3.d.mts +1 -3
  517. package/dist/unwraps/op3.mjs +1 -2
  518. package/dist/unwraps/orkut.d.mts +1 -3
  519. package/dist/unwraps/orkut.mjs +1 -2
  520. package/dist/unwraps/osnova.d.mts +1 -3
  521. package/dist/unwraps/osnova.mjs +1 -2
  522. package/dist/unwraps/outlookSafelinks.d.mts +1 -3
  523. package/dist/unwraps/outlookSafelinks.mjs +1 -2
  524. package/dist/unwraps/outlookWebAccess.d.mts +1 -3
  525. package/dist/unwraps/outlookWebAccess.mjs +1 -2
  526. package/dist/unwraps/pagefreezer.d.mts +1 -3
  527. package/dist/unwraps/pagefreezer.mjs +1 -2
  528. package/dist/unwraps/partnerAds.d.mts +1 -3
  529. package/dist/unwraps/partnerAds.mjs +1 -2
  530. package/dist/unwraps/pbs.d.mts +1 -3
  531. package/dist/unwraps/pbs.mjs +1 -2
  532. package/dist/unwraps/philpapers.d.mts +1 -3
  533. package/dist/unwraps/philpapers.mjs +1 -2
  534. package/dist/unwraps/pinterest.d.mts +1 -3
  535. package/dist/unwraps/pinterest.mjs +1 -2
  536. package/dist/unwraps/pipedrive.d.mts +1 -3
  537. package/dist/unwraps/pipedrive.mjs +1 -2
  538. package/dist/unwraps/pocket.d.mts +1 -3
  539. package/dist/unwraps/pocket.mjs +1 -2
  540. package/dist/unwraps/podcorn.d.mts +1 -3
  541. package/dist/unwraps/podcorn.mjs +1 -2
  542. package/dist/unwraps/podder.d.mts +1 -3
  543. package/dist/unwraps/podder.mjs +1 -2
  544. package/dist/unwraps/podigee.d.mts +2 -0
  545. package/dist/unwraps/podigee.mjs +10 -0
  546. package/dist/unwraps/podkite.d.mts +1 -3
  547. package/dist/unwraps/podkite.mjs +1 -2
  548. package/dist/unwraps/podroll.d.mts +1 -3
  549. package/dist/unwraps/podroll.mjs +1 -2
  550. package/dist/unwraps/podscribe.d.mts +1 -3
  551. package/dist/unwraps/podscribe.mjs +1 -2
  552. package/dist/unwraps/podsights.d.mts +1 -3
  553. package/dist/unwraps/podsights.mjs +1 -2
  554. package/dist/unwraps/podtrac.d.mts +1 -3
  555. package/dist/unwraps/podtrac.mjs +1 -2
  556. package/dist/unwraps/podup.d.mts +1 -3
  557. package/dist/unwraps/podup.mjs +1 -2
  558. package/dist/unwraps/postAffiliatePro.d.mts +1 -3
  559. package/dist/unwraps/postAffiliatePro.mjs +1 -2
  560. package/dist/unwraps/postmark.d.mts +1 -3
  561. package/dist/unwraps/postmark.mjs +5 -6
  562. package/dist/unwraps/prNewswire.d.mts +1 -3
  563. package/dist/unwraps/prNewswire.mjs +1 -2
  564. package/dist/unwraps/prezly.d.mts +1 -3
  565. package/dist/unwraps/prezly.mjs +1 -2
  566. package/dist/unwraps/priceGrabber.d.mts +1 -3
  567. package/dist/unwraps/priceGrabber.mjs +1 -2
  568. package/dist/unwraps/promoJukebox.d.mts +1 -3
  569. package/dist/unwraps/promoJukebox.mjs +1 -2
  570. package/dist/unwraps/proofpointIsolation.d.mts +1 -3
  571. package/dist/unwraps/proofpointIsolation.mjs +1 -2
  572. package/dist/unwraps/proofpointV1.d.mts +1 -3
  573. package/dist/unwraps/proofpointV1.mjs +1 -2
  574. package/dist/unwraps/proofpointV2.d.mts +1 -3
  575. package/dist/unwraps/proofpointV2.mjs +2 -3
  576. package/dist/unwraps/proofpointV3.d.mts +1 -3
  577. package/dist/unwraps/proofpointV3.mjs +2 -3
  578. package/dist/unwraps/prweb.d.mts +1 -3
  579. package/dist/unwraps/prweb.mjs +1 -2
  580. package/dist/unwraps/qualityClick.d.mts +1 -3
  581. package/dist/unwraps/qualityClick.mjs +3 -4
  582. package/dist/unwraps/rakutenAffiliate.d.mts +1 -3
  583. package/dist/unwraps/rakutenAffiliate.mjs +1 -2
  584. package/dist/unwraps/ramblerMail.d.mts +1 -3
  585. package/dist/unwraps/ramblerMail.mjs +1 -2
  586. package/dist/unwraps/recruitics.d.mts +1 -3
  587. package/dist/unwraps/recruitics.mjs +1 -2
  588. package/dist/unwraps/redditOut.d.mts +1 -3
  589. package/dist/unwraps/redditOut.mjs +1 -2
  590. package/dist/unwraps/rediffmail.d.mts +1 -3
  591. package/dist/unwraps/rediffmail.mjs +1 -2
  592. package/dist/unwraps/redirectingat.d.mts +1 -3
  593. package/dist/unwraps/redirectingat.mjs +1 -2
  594. package/dist/unwraps/researchgate.d.mts +1 -3
  595. package/dist/unwraps/researchgate.mjs +1 -2
  596. package/dist/unwraps/reverbnation.d.mts +1 -3
  597. package/dist/unwraps/reverbnation.mjs +1 -2
  598. package/dist/unwraps/reviveAdserver.d.mts +1 -3
  599. package/dist/unwraps/reviveAdserver.mjs +3 -4
  600. package/dist/unwraps/salesdoubler.d.mts +1 -3
  601. package/dist/unwraps/salesdoubler.mjs +1 -2
  602. package/dist/unwraps/salesflare.d.mts +1 -3
  603. package/dist/unwraps/salesflare.mjs +1 -2
  604. package/dist/unwraps/salesforceiq.d.mts +1 -3
  605. package/dist/unwraps/salesforceiq.mjs +1 -2
  606. package/dist/unwraps/saleshandy.d.mts +1 -3
  607. package/dist/unwraps/saleshandy.mjs +1 -2
  608. package/dist/unwraps/salsa.d.mts +1 -3
  609. package/dist/unwraps/salsa.mjs +1 -2
  610. package/dist/unwraps/sapHelp.d.mts +1 -3
  611. package/dist/unwraps/sapHelp.mjs +1 -2
  612. package/dist/unwraps/sbsAd.d.mts +1 -3
  613. package/dist/unwraps/sbsAd.mjs +1 -2
  614. package/dist/unwraps/segmentfault.d.mts +1 -3
  615. package/dist/unwraps/segmentfault.mjs +1 -2
  616. package/dist/unwraps/serendipity.d.mts +1 -3
  617. package/dist/unwraps/serendipity.mjs +3 -4
  618. package/dist/unwraps/shareasale.d.mts +1 -3
  619. package/dist/unwraps/shareasale.mjs +1 -2
  620. package/dist/unwraps/shareit.d.mts +1 -3
  621. package/dist/unwraps/shareit.mjs +1 -2
  622. package/dist/unwraps/skimlinks.d.mts +1 -3
  623. package/dist/unwraps/skimlinks.mjs +1 -2
  624. package/dist/unwraps/skyrock.d.mts +1 -3
  625. package/dist/unwraps/skyrock.mjs +1 -2
  626. package/dist/unwraps/slack.d.mts +1 -3
  627. package/dist/unwraps/slack.mjs +1 -2
  628. package/dist/unwraps/slickdeals.d.mts +1 -3
  629. package/dist/unwraps/slickdeals.mjs +1 -2
  630. package/dist/unwraps/smartAdserver.d.mts +1 -3
  631. package/dist/unwraps/smartAdserver.mjs +1 -2
  632. package/dist/unwraps/smartredirect.d.mts +1 -3
  633. package/dist/unwraps/smartredirect.mjs +1 -2
  634. package/dist/unwraps/smry.d.mts +1 -3
  635. package/dist/unwraps/smry.mjs +1 -2
  636. package/dist/unwraps/sophos.d.mts +1 -3
  637. package/dist/unwraps/sophos.mjs +1 -2
  638. package/dist/unwraps/soundOn.d.mts +1 -3
  639. package/dist/unwraps/soundOn.mjs +1 -2
  640. package/dist/unwraps/soundcloud.d.mts +1 -3
  641. package/dist/unwraps/soundcloud.mjs +1 -2
  642. package/dist/unwraps/soundstack.d.mts +1 -3
  643. package/dist/unwraps/soundstack.mjs +1 -2
  644. package/dist/unwraps/squarespaceEmail.d.mts +1 -3
  645. package/dist/unwraps/squarespaceEmail.mjs +1 -2
  646. package/dist/unwraps/sspai.d.mts +1 -3
  647. package/dist/unwraps/sspai.mjs +1 -2
  648. package/dist/unwraps/stay22.d.mts +1 -3
  649. package/dist/unwraps/stay22.mjs +1 -2
  650. package/dist/unwraps/steamLinkfilter.d.mts +1 -3
  651. package/dist/unwraps/steamLinkfilter.mjs +1 -2
  652. package/dist/unwraps/storify.d.mts +1 -3
  653. package/dist/unwraps/storify.mjs +1 -2
  654. package/dist/unwraps/streak.d.mts +1 -3
  655. package/dist/unwraps/streak.mjs +1 -2
  656. package/dist/unwraps/streamsend.d.mts +1 -3
  657. package/dist/unwraps/streamsend.mjs +1 -2
  658. package/dist/unwraps/stumbleupon.d.mts +1 -3
  659. package/dist/unwraps/stumbleupon.mjs +1 -2
  660. package/dist/unwraps/subscribeRu.d.mts +1 -3
  661. package/dist/unwraps/subscribeRu.mjs +1 -2
  662. package/dist/unwraps/substack.d.mts +1 -3
  663. package/dist/unwraps/substack.mjs +1 -2
  664. package/dist/unwraps/surly.d.mts +1 -3
  665. package/dist/unwraps/surly.mjs +1 -2
  666. package/dist/unwraps/surugaya.d.mts +1 -3
  667. package/dist/unwraps/surugaya.mjs +1 -2
  668. package/dist/unwraps/swap.d.mts +1 -3
  669. package/dist/unwraps/swap.mjs +1 -2
  670. package/dist/unwraps/symantecClicktime.d.mts +1 -3
  671. package/dist/unwraps/symantecClicktime.mjs +1 -2
  672. package/dist/unwraps/symplicity.d.mts +1 -3
  673. package/dist/unwraps/symplicity.mjs +1 -2
  674. package/dist/unwraps/targetCircle.d.mts +1 -3
  675. package/dist/unwraps/targetCircle.mjs +1 -2
  676. package/dist/unwraps/teacup.d.mts +1 -3
  677. package/dist/unwraps/teacup.mjs +3 -3
  678. package/dist/unwraps/telegramIv.d.mts +1 -3
  679. package/dist/unwraps/telegramIv.mjs +1 -2
  680. package/dist/unwraps/theRegister.d.mts +1 -3
  681. package/dist/unwraps/theRegister.mjs +1 -2
  682. package/dist/unwraps/threads.d.mts +1 -3
  683. package/dist/unwraps/threads.mjs +1 -2
  684. package/dist/unwraps/tiktok.d.mts +1 -3
  685. package/dist/unwraps/tiktok.mjs +1 -2
  686. package/dist/unwraps/titanhqLinklock.d.mts +1 -3
  687. package/dist/unwraps/titanhqLinklock.mjs +1 -2
  688. package/dist/unwraps/topsec.d.mts +1 -3
  689. package/dist/unwraps/topsec.mjs +1 -2
  690. package/dist/unwraps/toucharcade.d.mts +1 -3
  691. package/dist/unwraps/toucharcade.mjs +1 -2
  692. package/dist/unwraps/tracdelight.d.mts +1 -3
  693. package/dist/unwraps/tracdelight.mjs +3 -3
  694. package/dist/unwraps/tradedoubler.d.mts +1 -3
  695. package/dist/unwraps/tradedoubler.mjs +1 -2
  696. package/dist/unwraps/tradetracker.d.mts +1 -3
  697. package/dist/unwraps/tradetracker.mjs +1 -2
  698. package/dist/unwraps/travelpayouts.d.mts +1 -3
  699. package/dist/unwraps/travelpayouts.mjs +1 -2
  700. package/dist/unwraps/trendMicro.d.mts +1 -3
  701. package/dist/unwraps/trendMicro.mjs +1 -2
  702. package/dist/unwraps/triplelift.d.mts +1 -3
  703. package/dist/unwraps/triplelift.mjs +1 -2
  704. package/dist/unwraps/trustwaveScanmail.d.mts +1 -3
  705. package/dist/unwraps/trustwaveScanmail.mjs +1 -2
  706. package/dist/unwraps/trxHub.d.mts +1 -3
  707. package/dist/unwraps/trxHub.mjs +1 -2
  708. package/dist/unwraps/tumblr.d.mts +1 -3
  709. package/dist/unwraps/tumblr.mjs +1 -2
  710. package/dist/unwraps/twitterRedirect.d.mts +1 -3
  711. package/dist/unwraps/twitterRedirect.mjs +1 -2
  712. package/dist/unwraps/twoCheckout.d.mts +1 -3
  713. package/dist/unwraps/twoCheckout.mjs +3 -4
  714. package/dist/unwraps/uinterbox.d.mts +1 -3
  715. package/dist/unwraps/uinterbox.mjs +1 -2
  716. package/dist/unwraps/ukWebArchive.d.mts +1 -3
  717. package/dist/unwraps/ukWebArchive.mjs +1 -2
  718. package/dist/unwraps/ukgwa.d.mts +1 -3
  719. package/dist/unwraps/ukgwa.mjs +1 -2
  720. package/dist/unwraps/unescoWebArchive.d.mts +1 -3
  721. package/dist/unwraps/unescoWebArchive.mjs +1 -2
  722. package/dist/unwraps/unhcrWebArchive.d.mts +1 -3
  723. package/dist/unwraps/unhcrWebArchive.mjs +1 -2
  724. package/dist/unwraps/unisender.d.mts +1 -3
  725. package/dist/unwraps/unisender.mjs +2 -3
  726. package/dist/unwraps/upAudio.d.mts +1 -3
  727. package/dist/unwraps/upAudio.mjs +1 -2
  728. package/dist/unwraps/vadeSecure.d.mts +1 -3
  729. package/dist/unwraps/vadeSecure.mjs +1 -2
  730. package/dist/unwraps/valuePress.d.mts +1 -3
  731. package/dist/unwraps/valuePress.mjs +1 -2
  732. package/dist/unwraps/valuecommerce.d.mts +1 -3
  733. package/dist/unwraps/valuecommerce.mjs +1 -2
  734. package/dist/unwraps/vanilla.d.mts +1 -3
  735. package/dist/unwraps/vanilla.mjs +1 -2
  736. package/dist/unwraps/vbulletin.d.mts +1 -3
  737. package/dist/unwraps/vbulletin.mjs +1 -2
  738. package/dist/unwraps/vefsafn.d.mts +1 -3
  739. package/dist/unwraps/vefsafn.mjs +1 -2
  740. package/dist/unwraps/vgWort.d.mts +1 -3
  741. package/dist/unwraps/vgWort.mjs +1 -2
  742. package/dist/unwraps/viglink.d.mts +1 -3
  743. package/dist/unwraps/viglink.mjs +1 -2
  744. package/dist/unwraps/virgool.d.mts +1 -3
  745. package/dist/unwraps/virgool.mjs +1 -2
  746. package/dist/unwraps/visibli.d.mts +1 -3
  747. package/dist/unwraps/visibli.mjs +1 -2
  748. package/dist/unwraps/vkAway.d.mts +1 -3
  749. package/dist/unwraps/vkAway.mjs +1 -2
  750. package/dist/unwraps/vocus.d.mts +1 -3
  751. package/dist/unwraps/vocus.mjs +1 -2
  752. package/dist/unwraps/voxnest.d.mts +1 -3
  753. package/dist/unwraps/voxnest.mjs +1 -2
  754. package/dist/unwraps/vpixl.d.mts +1 -3
  755. package/dist/unwraps/vpixl.mjs +1 -2
  756. package/dist/unwraps/vuture.d.mts +1 -3
  757. package/dist/unwraps/vuture.mjs +1 -2
  758. package/dist/unwraps/webArchive.d.mts +1 -3
  759. package/dist/unwraps/webArchive.mjs +1 -2
  760. package/dist/unwraps/webcitation.d.mts +1 -3
  761. package/dist/unwraps/webcitation.mjs +1 -2
  762. package/dist/unwraps/webgains.d.mts +1 -3
  763. package/dist/unwraps/webgains.mjs +1 -2
  764. package/dist/unwraps/webharvest.d.mts +1 -3
  765. package/dist/unwraps/webharvest.mjs +1 -2
  766. package/dist/unwraps/weserv.d.mts +2 -0
  767. package/dist/unwraps/weserv.mjs +10 -0
  768. package/dist/unwraps/wikiwix.d.mts +1 -3
  769. package/dist/unwraps/wikiwix.mjs +1 -2
  770. package/dist/unwraps/wikizero.d.mts +1 -3
  771. package/dist/unwraps/wikizero.mjs +1 -2
  772. package/dist/unwraps/wordpressEmail.d.mts +1 -3
  773. package/dist/unwraps/wordpressEmail.mjs +1 -2
  774. package/dist/unwraps/wordpressGo2.d.mts +1 -3
  775. package/dist/unwraps/wordpressGo2.mjs +1 -2
  776. package/dist/unwraps/worldNomads.d.mts +1 -3
  777. package/dist/unwraps/worldNomads.mjs +3 -3
  778. package/dist/unwraps/wpPoczta.d.mts +1 -3
  779. package/dist/unwraps/wpPoczta.mjs +1 -2
  780. package/dist/unwraps/xengentr.d.mts +1 -3
  781. package/dist/unwraps/xengentr.mjs +1 -2
  782. package/dist/unwraps/xiaoyuzhou.d.mts +1 -3
  783. package/dist/unwraps/xiaoyuzhou.mjs +1 -2
  784. package/dist/unwraps/ximalaya.d.mts +1 -3
  785. package/dist/unwraps/ximalaya.mjs +1 -2
  786. package/dist/unwraps/yahooImage.d.mts +2 -0
  787. package/dist/unwraps/yahooImage.mjs +10 -0
  788. package/dist/unwraps/yahooJapan.d.mts +1 -3
  789. package/dist/unwraps/yahooJapan.mjs +1 -2
  790. package/dist/unwraps/yahooJapanAmpViewer.d.mts +1 -3
  791. package/dist/unwraps/yahooJapanAmpViewer.mjs +1 -2
  792. package/dist/unwraps/yahooMailImage.d.mts +2 -0
  793. package/dist/unwraps/yahooMailImage.mjs +9 -0
  794. package/dist/unwraps/yahooSearch.d.mts +1 -3
  795. package/dist/unwraps/yahooSearch.mjs +1 -2
  796. package/dist/unwraps/yamm.d.mts +1 -3
  797. package/dist/unwraps/yamm.mjs +1 -2
  798. package/dist/unwraps/yandexMail.d.mts +1 -3
  799. package/dist/unwraps/yandexMail.mjs +1 -2
  800. package/dist/unwraps/yandexMailImage.d.mts +2 -0
  801. package/dist/unwraps/yandexMailImage.mjs +10 -0
  802. package/dist/unwraps/yandexTranslate.d.mts +1 -3
  803. package/dist/unwraps/yandexTranslate.mjs +4 -5
  804. package/dist/unwraps/yandexTurbo.d.mts +1 -3
  805. package/dist/unwraps/yandexTurbo.mjs +1 -2
  806. package/dist/unwraps/yelp.d.mts +1 -3
  807. package/dist/unwraps/yelp.mjs +1 -2
  808. package/dist/unwraps/yesware.d.mts +1 -3
  809. package/dist/unwraps/yesware.mjs +1 -2
  810. package/dist/unwraps/yourMembership.d.mts +1 -3
  811. package/dist/unwraps/yourMembership.mjs +3 -4
  812. package/dist/unwraps/youtube.d.mts +1 -3
  813. package/dist/unwraps/youtube.mjs +1 -2
  814. package/dist/unwraps/zanox.d.mts +1 -3
  815. package/dist/unwraps/zanox.mjs +1 -2
  816. package/dist/unwraps/zayads.d.mts +1 -3
  817. package/dist/unwraps/zayads.mjs +1 -2
  818. package/dist/unwraps/zemanta.d.mts +1 -3
  819. package/dist/unwraps/zemanta.mjs +1 -2
  820. package/dist/unwraps/zencastr.d.mts +1 -3
  821. package/dist/unwraps/zencastr.mjs +1 -2
  822. package/dist/unwraps/zhihu.d.mts +1 -3
  823. package/dist/unwraps/zhihu.mjs +1 -2
  824. package/dist/unwraps/zix.d.mts +1 -3
  825. package/dist/unwraps/zix.mjs +1 -2
  826. package/dist/unwraps/zscalerIsolation.d.mts +1 -3
  827. package/dist/unwraps/zscalerIsolation.mjs +1 -2
  828. package/dist/utils.d.mts +1 -3
  829. package/dist/utils.mjs +8 -9
  830. package/package.json +5 -5
@@ -0,0 +1,314 @@
1
+ import { codePointToString } from "./decode-codepoint.mjs";
2
+ import { htmlDecodeTree } from "./generated/decode-data-html.mjs";
3
+ import { BinTrieFlags } from "./internal/bin-trie-flags.mjs";
4
+ // node_modules/entities/dist/decode.js
5
+ var CharCodes;
6
+ (function(CharCodes) {
7
+ CharCodes[CharCodes["AMP"] = 38] = "AMP";
8
+ CharCodes[CharCodes["NUM"] = 35] = "NUM";
9
+ CharCodes[CharCodes["SEMI"] = 59] = "SEMI";
10
+ CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS";
11
+ CharCodes[CharCodes["ZERO"] = 48] = "ZERO";
12
+ CharCodes[CharCodes["NINE"] = 57] = "NINE";
13
+ CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A";
14
+ CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X";
15
+ })(CharCodes || (CharCodes = {}));
16
+ /** Bit that needs to be set to convert an upper case ASCII character to lower case */
17
+ const TO_LOWER_BIT = 32;
18
+ const CONSUMED_SHIFT = 21;
19
+ const CODE_POINT_MASK = 2097151;
20
+ /**
21
+ * Reserved consumed field for counts of at least 2047 characters after `&`.
22
+ * The true count is in `longNumericConsumed`.
23
+ */
24
+ const CONSUMED_OVERFLOW = 2047;
25
+ /**
26
+ * Side channel for numeric entities of at least 2048 characters including
27
+ * `&`. Set by `parseNumericEntity` when its consumed count reaches the
28
+ * reserved value `CONSUMED_OVERFLOW`; callers read the true count from here.
29
+ * A module-level slot avoids a tuple allocation on the hot path.
30
+ */
31
+ let longNumericConsumed = 0;
32
+ /**
33
+ * Extract the consumed count from a `parseNumericEntity` packed result,
34
+ * recovering the true length from `longNumericConsumed` when the packed
35
+ * field contains the sentinel. Read it before the next `parseNumericEntity`
36
+ * call, which may overwrite the side channel. This helper owns that protocol.
37
+ * @param packed Packed result of `parseNumericEntity`.
38
+ */
39
+ function unpackConsumed(packed) {
40
+ const consumed = packed >>> CONSUMED_SHIFT;
41
+ return consumed === CONSUMED_OVERFLOW ? longNumericConsumed : consumed;
42
+ }
43
+ /**
44
+ * Unsigned subtraction trick: (code - lo) >>> 0 wraps negatives to large
45
+ * values, so a single `<=` covers the entire [lo..hi] range check.
46
+ * @param code Code point to check.
47
+ */
48
+ function isNumber(code) {
49
+ return code - CharCodes.ZERO >>> 0 <= 9;
50
+ }
51
+ function isHexadecimalCharacter(code) {
52
+ return (code | TO_LOWER_BIT) - CharCodes.LOWER_A >>> 0 <= 5;
53
+ }
54
+ function isAlpha(code) {
55
+ return (code | TO_LOWER_BIT) - CharCodes.LOWER_A >>> 0 <= 25;
56
+ }
57
+ /**
58
+ * Checks if the given character is a valid end character for an entity in an attribute.
59
+ *
60
+ * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.
61
+ * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state
62
+ * @param code Code point to check.
63
+ */
64
+ function isEntityInAttributeInvalidEnd(code) {
65
+ return code === CharCodes.EQUALS || isAlpha(code) || isNumber(code);
66
+ }
67
+ var EntityDecoderState;
68
+ (function(EntityDecoderState) {
69
+ EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart";
70
+ EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart";
71
+ EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal";
72
+ EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
73
+ EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
74
+ })(EntityDecoderState || (EntityDecoderState = {}));
75
+ /**
76
+ * Decoding mode for named entities.
77
+ */
78
+ var DecodingMode;
79
+ (function(DecodingMode) {
80
+ /** Entities in text nodes that can end with any character. */
81
+ DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
82
+ /** Only allow entities terminated with a semicolon. */
83
+ DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
84
+ /** Entities in attributes have limitations on ending characters. */
85
+ DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
86
+ })(DecodingMode || (DecodingMode = {}));
87
+ /**
88
+ * Determines the branch of the current node that is taken given the current
89
+ * character. This function is used to traverse the trie.
90
+ *
91
+ * See `BinTrieFlags` for the branch-data layouts handled here.
92
+ * @param decodeTree The trie.
93
+ * @param current The current node's header word.
94
+ * @param nodeIndex Index of the node's first branch-data word (the header
95
+ * plus any value words have been skipped by the caller).
96
+ * @param char The current character.
97
+ * @returns The index of the next node, or -1 if no branch is taken.
98
+ */
99
+ function determineBranch(decodeTree, current, nodeIndex, char) {
100
+ const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
101
+ const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
102
+ if (jumpOffset) {
103
+ if (branchCount === 0) return char === jumpOffset ? nodeIndex : -1;
104
+ const slot = char - jumpOffset;
105
+ if (slot >>> 0 >= branchCount) return -1;
106
+ const stored = decodeTree[nodeIndex + slot];
107
+ return stored === 0 ? -1 : nodeIndex + branchCount + stored - 1 & 65535;
108
+ }
109
+ if (branchCount === 0) return -1;
110
+ const packedKeySlots = branchCount + 1 >> 1;
111
+ const branchEnd = nodeIndex + packedKeySlots + branchCount;
112
+ for (let index = 0; index < branchCount; index++) {
113
+ const key = decodeTree[nodeIndex + (index >> 1)] >> ((index & 1) << 3) & 255;
114
+ if (key === char) return branchEnd + decodeTree[nodeIndex + packedKeySlots + index] & 65535;
115
+ if (key > char) return -1;
116
+ }
117
+ return -1;
118
+ }
119
+ /**
120
+ * Read the decoded value from a trie node.
121
+ * @param decodeTree The trie.
122
+ * @param nodeIndex The index of the node.
123
+ * @param valueLength The length of the value (1, 2, or 3).
124
+ * @returns The decoded string.
125
+ */
126
+ function readTrieValue(decodeTree, nodeIndex, valueLength) {
127
+ if (valueLength === 1) return String.fromCharCode(decodeTree[nodeIndex] & BinTrieFlags.VALUE_MASK);
128
+ if (valueLength === 2) return String.fromCharCode(decodeTree[nodeIndex + 1]);
129
+ return String.fromCharCode(decodeTree[nodeIndex + 1], decodeTree[nodeIndex + 2]);
130
+ }
131
+ /**
132
+ * Parse a numeric entity (`&#DDD;` or `&#xHHH;`).
133
+ *
134
+ * Encodes the result as `(consumed << CONSUMED_SHIFT) | codepoint` (see
135
+ * the packing comment at the top of the file; overlong entities spill
136
+ * their length into `longNumericConsumed`). Returns 0 when no digits were
137
+ * found.
138
+ *
139
+ * This is the sync counterpart of the streaming
140
+ * `EntityDecoder#stateNumericDecimal` / `#stateNumericHex`. Digit parsing
141
+ * matches those methods; only this packed result needs a value clamp.
142
+ * @param input The input string.
143
+ * @param numberStart Index of the `#` character.
144
+ * @param inputLength Cached `input.length`.
145
+ */
146
+ function parseNumericEntity(input, numberStart, inputLength) {
147
+ let offset = numberStart + 1;
148
+ let cp = 0;
149
+ let digitStart = offset;
150
+ if (offset < inputLength && (input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
151
+ offset += 1;
152
+ digitStart = offset;
153
+ while (offset < inputLength) {
154
+ const char = input.charCodeAt(offset);
155
+ if (isNumber(char)) cp = cp * 16 + (char - CharCodes.ZERO);
156
+ else if (isHexadecimalCharacter(char)) cp = cp * 16 + ((char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10);
157
+ else break;
158
+ offset += 1;
159
+ }
160
+ } else while (offset < inputLength) {
161
+ const digit = input.charCodeAt(offset) - CharCodes.ZERO;
162
+ if (digit >>> 0 > 9) break;
163
+ cp = cp * 10 + digit;
164
+ offset += 1;
165
+ }
166
+ if (offset === digitStart) return 0;
167
+ if (offset < inputLength && input.charCodeAt(offset) === CharCodes.SEMI) offset += 1;
168
+ if (cp > 1114111) cp = 1114112;
169
+ let consumed = offset - numberStart;
170
+ if (consumed >= CONSUMED_OVERFLOW) {
171
+ longNumericConsumed = consumed;
172
+ consumed = CONSUMED_OVERFLOW;
173
+ }
174
+ return consumed << CONSUMED_SHIFT | cp;
175
+ }
176
+ /**
177
+ * Decode all entities in `input` using the HTML trie.
178
+ *
179
+ * Hard-wired to `htmlDecodeTree`: the inline root navigation below assumes
180
+ * the HTML root's jump-table shape, so this must not be generalized to
181
+ * other tries (the XML trie's dictionary root would silently match no
182
+ * entities — `decodeXML` has its own hand-coded fast path instead).
183
+ * @param input The string to decode.
184
+ * @param isStrict Only match semicolon-terminated entities.
185
+ * @param isAttribute Whether to apply attribute-specific parsing rules (disallowing certain non-semicolon terminators).
186
+ * @returns The decoded string.
187
+ */
188
+ function decodeWithTrie(input, isStrict, isAttribute) {
189
+ const decodeTree = htmlDecodeTree;
190
+ let offset = input.indexOf("&");
191
+ if (offset < 0) return input;
192
+ const inputLength = input.length;
193
+ let chunkStart = 0;
194
+ let result = "";
195
+ const root = decodeTree[0];
196
+ const rootJumpOffset = root & BinTrieFlags.JUMP_TABLE;
197
+ const rootBranchCount = (root & BinTrieFlags.BRANCH_LENGTH) >> 7;
198
+ do {
199
+ const entityStart = offset + 1;
200
+ const firstChar = input.charCodeAt(entityStart);
201
+ let consumed;
202
+ let value;
203
+ if (firstChar === CharCodes.NUM) {
204
+ const packed = parseNumericEntity(input, entityStart, inputLength);
205
+ consumed = unpackConsumed(packed);
206
+ if (isStrict && consumed > 0 && input.charCodeAt(entityStart + consumed - 1) !== CharCodes.SEMI) consumed = 0;
207
+ value = consumed === 0 ? "" : codePointToString(packed & CODE_POINT_MASK);
208
+ } else if (isAlpha(firstChar)) {
209
+ consumed = 0;
210
+ value = "";
211
+ const rootSlotIndex = firstChar - rootJumpOffset;
212
+ let nodeIndex;
213
+ if (rootSlotIndex >>> 0 < rootBranchCount) {
214
+ const stored = decodeTree[1 + rootSlotIndex];
215
+ nodeIndex = stored === 0 ? -1 : rootBranchCount + stored & 65535;
216
+ } else nodeIndex = -1;
217
+ let bestNodeIndex = 0;
218
+ let bestValueLength = 0;
219
+ let current = nodeIndex < 0 ? 0 : decodeTree[nodeIndex];
220
+ let index = entityStart + 1;
221
+ trie: while (index < inputLength) {
222
+ while ((current & (BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13)) === 0 && (current & BinTrieFlags.JUMP_TABLE) !== 0) {
223
+ const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
224
+ const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
225
+ if (branchCount === 0) {
226
+ if (input.charCodeAt(index) !== jumpOffset) break trie;
227
+ nodeIndex += 1;
228
+ } else {
229
+ const slot = input.charCodeAt(index) - jumpOffset;
230
+ if (slot >>> 0 >= branchCount) break trie;
231
+ const stored = decodeTree[nodeIndex + 1 + slot];
232
+ if (stored === 0) break trie;
233
+ nodeIndex = nodeIndex + branchCount + stored & 65535;
234
+ }
235
+ current = decodeTree[nodeIndex];
236
+ index += 1;
237
+ if (index >= inputLength) break trie;
238
+ }
239
+ if ((current & (BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13)) === BinTrieFlags.FLAG13) {
240
+ const runLength = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
241
+ if (input.charCodeAt(index) !== (current & BinTrieFlags.JUMP_TABLE)) break;
242
+ index += 1;
243
+ const remaining = runLength - 1;
244
+ let wordIndex = nodeIndex + 1;
245
+ let charIndexInPacked = 0;
246
+ for (; charIndexInPacked + 1 < remaining; charIndexInPacked += 2) {
247
+ const packed = decodeTree[wordIndex];
248
+ if (input.charCodeAt(index) !== (packed & 255)) break trie;
249
+ index += 1;
250
+ if (input.charCodeAt(index) !== (packed >> 8 & 255)) break trie;
251
+ index += 1;
252
+ wordIndex += 1;
253
+ }
254
+ if (charIndexInPacked < remaining) {
255
+ if (input.charCodeAt(index) !== (decodeTree[wordIndex] & 255)) break;
256
+ index += 1;
257
+ }
258
+ nodeIndex += 1 + (runLength >> 1);
259
+ current = decodeTree[nodeIndex];
260
+ continue;
261
+ }
262
+ const valueLength = current >>> 14;
263
+ const char = input.charCodeAt(index);
264
+ if (valueLength !== 0) {
265
+ if (char === CharCodes.SEMI) {
266
+ consumed = index - entityStart + 1;
267
+ value = valueLength === 1 ? String.fromCharCode(current & BinTrieFlags.VALUE_MASK) : readTrieValue(decodeTree, nodeIndex, valueLength);
268
+ break;
269
+ }
270
+ if (!isStrict && (current & BinTrieFlags.FLAG13) === 0) {
271
+ consumed = index - entityStart;
272
+ bestNodeIndex = nodeIndex;
273
+ bestValueLength = valueLength;
274
+ }
275
+ if (valueLength === 1) break;
276
+ }
277
+ const next = determineBranch(decodeTree, current, nodeIndex + (valueLength || 1), char);
278
+ if (next < 0) break;
279
+ nodeIndex = next;
280
+ current = decodeTree[nodeIndex];
281
+ index += 1;
282
+ }
283
+ if (value === "") {
284
+ const finalVL = current >>> 14;
285
+ if (finalVL !== 0 && !isStrict && (current & BinTrieFlags.FLAG13) === 0) {
286
+ consumed = index - entityStart;
287
+ bestNodeIndex = nodeIndex;
288
+ bestValueLength = finalVL;
289
+ }
290
+ if (consumed > 0) value = readTrieValue(decodeTree, bestNodeIndex, bestValueLength);
291
+ }
292
+ } else {
293
+ consumed = 0;
294
+ value = "";
295
+ }
296
+ if (consumed === 0 || isAttribute && firstChar !== CharCodes.NUM && input.charCodeAt(entityStart + consumed - 1) !== CharCodes.SEMI && entityStart + consumed < inputLength && isEntityInAttributeInvalidEnd(input.charCodeAt(entityStart + consumed))) offset = entityStart;
297
+ else {
298
+ if (chunkStart < offset) result += input.slice(chunkStart, offset);
299
+ result += value;
300
+ offset = chunkStart = entityStart + consumed;
301
+ }
302
+ if (input.charCodeAt(offset) !== CharCodes.AMP) offset = input.indexOf("&", offset);
303
+ } while (offset >= 0);
304
+ return result + input.slice(chunkStart);
305
+ }
306
+ /**
307
+ * Decodes an HTML string, requiring all entities to be terminated by a semicolon.
308
+ * @param htmlString The string to decode.
309
+ * @returns The decoded string.
310
+ */
311
+ function decodeHTMLStrict(htmlString) {
312
+ return decodeWithTrie(htmlString, true, false);
313
+ }
314
+ export { DecodingMode, decodeHTMLStrict, determineBranch };
@@ -0,0 +1,5 @@
1
+ import { decodeTrieDict } from "../internal/decode-shared.mjs";
2
+ // node_modules/entities/dist/generated/decode-data-html.js
3
+ /** Packed HTML decode trie data. */
4
+ const htmlDecodeTree = /* #__PURE__ */ decodeTrieDict("!}.&u%}'&}*'~!6*)%&,~!J~!J~%L~y<~!R,~~%Lu~~#GD~~#|)1#%}^%}2%+#.##%##%}&%##%'#%##&%#%#'%#&#%#&#'#%%#&#%##%#)%''%&%#%#'%#%%#%%}%%%#%#&(23#%%#&-%0%('1#(##%#'##+%'*.:1}#%#6-+(%'%%#%%%}#L'2351&('%}&/N'(0(/*-%(%%}#'+&T%7.2}#&%&#%#36/5##%&%%#&#%%#))2%%##%&&'0~!#*+&'%1~!%).'3q?&%'1~!.##%6(~!+%%%(Gw'rT~!E#<nA%#jZ~!H%(~!42##~!*31&~!G%U~#)5~#`3~!J~!Z~%]~%Y~%C~!q~!u~#kz~%#~!6'~!D~!U~!?~#T~!c%~!G#'~%7|~!G~!J~!G&~#pb~(Df}#%}*&}#%##%##%##&#-}&'#'&%#.++}%mI,#,@&(}*%}*'%&##&#%##%}&0}#.},U},%}+%}&%}#%##&}B%(}(%}+%)})%##%#&}&%##%&}<%}>%#%&}*%}(%}9%}/%})%}*%}*%}?&}&%}3%}&*#%})%#%#)}#&#-#+*%E%%'%'#%}#*V##&##I}#&&##%&%#&&Qf%%))w/0+&%#(#.%-''''++++7}>%4'',##1,#%#&%##&#'##&#*#9)%&%}#*}%,#+P(%A&%#'&##wSD',9E00#y#@}(+}&%&>~!#~!X}#*}(&&}(&}(,%}%&#+&}#&}I%#%}%)#(},'%#*}4%%#%}(''}#/##(##),%-##%%)#&}(.}&%#&}%%}*&#%},&&}&%}#%*'#%})%}D&}&%}-&}6&#&}-,%}#%})-(~+`~,=?~I9'9%~!,#%})%})%}@%}?%}(~!?~#<~#pP~#BG~#=1#%K+~#?#~%;)~#A~#mF1~#A'~'X%'~#lR~#N~'N~#r~#m#-~#i'?%#'%~#B%##%,%#~#_%#0%~#]732~,w~2+#:&#%&'0%&>%}#>##F+)#%&&#(+_}4&}-%}(&}@&}O7Fdf0@+/v4}&WU##&/0#&'('B#%}.%}'+#%}#%%&#&%#%##+#&#)#6#'#.},%}c%},%#%##%&#&%#&~#>'*-.%##%##%}#%%}%'~#)D1}#%*&~#_%%'(~#S2%'.}#~#=##*'*-%}&'%'##&&~'E%.#&~#M4}%%##&'%#~#O1##%&#'+~#<B%##%%'%+~#;#@%}#&%#&&%#(~#H1}'%'##&&~#?A}&'~#D#%32}'&&&&~#[}'(#%}'~#;C})&}%%#%~#=&%,3}%'(#%%~#^'#&&)#%'~#Y%-~#d-%'~#^%%&#&&&}#~#b~2t*&'~&(~&@~0%~e~3}%*''0})&}+~!9##-}#%-hD*)1fC#%/&/fB#40~!+#)*4~!+~!K'&:~!/*7~!.#~!H~!L':~%x&~!H#~!*~%1~!I#~!+A~#p'~!F~~#-#~,,(~.Z~!V~%;'B'mq-W~!N~%I%#&&#&}#%},%%}'%}+X#%}#&}(%}'%}<%}#%}%%'}'%}:~![)9@~%>~#UA%-%##&~!C%~!-.9:~!1~!-^2/:a~!y,D*J#-5)/4~%23,~#G~!L1~!0X3`~!2+~!!0-~&E~!W~!o,>Y&]~%cZx_&~#O*9#A#'#+I'%#)~!0B*-5A+-((F&*M#)(-7-5+'-3a5Vi~!Y~!?+[)%3),ERHm~!+:D,VG.+)?fB%%*(%)'(#&80%1'8`K8?`+'Z#&O&'H5#*9)A%%5&3))0%39+.*7#()&&*=4@**L)<'_&*+..;(#*+)./&0#3)%')-8(4ixD(&.}%,('aI:,)%,k2231T)I'#/-W7,/'Q#.'Y24+h')37</31&83##&0#),H(?'&?/1##%#&&#%''-%&&&#(&''&#.-'%#%%(,')*'&#&#'##%(%(#%('#&##%%%%('%#%#%%#%#&%##h>w+v<ayvyvcg.uuhKr}g/v|g>u9i[~>g5uI~=RvdwEg;v/g;uk!!TTSx]@RT!U!#!@VBRUU!'UTe-d0c`e&gSdicedFcrdTaqb.kYcAohdYd@a3e+d}dMdtd.aJ#bqcK`dle/e.e'dwdPdodddjbEb}ogd^ofdpduc6j?l%d{drdqc)d7bacOdQ%T#Y)X.sR[yH>6Vyv3[xwLu>vo'!*.[yBacahoj>6Rew3[xqdZa#!a&#^(X-[yG>6Vyu3[xvg3sEr|g.u/Ri9db0T#^(Xa)!-[y;>6Vylg4wKs{JwNZt3@3r=c4Z([xlg;wKt!cpq's@v7A'*a(a+!-a#[y<3Dt?3Dt'>6Vym3[xmg9rxsNJwLZt4~?r?db1T#`-!(Xa,!0[yS>6Vz%NuQs.g4wKtnJwNZtS@3r>c4Z([y%g;wKtrdga8!a(!#&T*Y-Xa#!a0<or[yc3Dtq>6Vz43[y3JwNZtf@3s!Ju}!%Dti:pm3c_%X#tjB5pkd6q!r]u?voC'*-a.a2!0a&a+[yI3DtI3Ds~3DtH>6Vyw3[xx;:s#~<5pKJwNZtE@3r~d`a)!a2T#a.(!+U.X1[yT3Dt`3Dtv>6Vz&3[y&g9rxwzcxstPu.<rAJwLZtT~?r@dZa%!a.&^*Za(/Reu[ya>6Vz23[y1g3sEr}wkg{NuQRg{ci(U#5@b`~,cg#U(2WnH5wugcRh7dX#T(Y,a'Ta!!a,[yZ<]mj>6Vz,3[y+Pv#5ReZKu+=,%!H}7ABwkaS?Rh:BcW(X#<]mrj:ubv/ARekdg%!(!a.*Ta(Y.X1!#sP>Rl*Dt6[y>>6Vyo3Wf*jOvuumvuRgRJuq*!:9<B@bX~3jVv&v@s@5Re[d/rQt{uAvo&a&a*)a2!,0Wf!3Dt0=Bs'>6Re}3[xy~<5s%JwJZt1~Gs)c;&!#2sJkNuXvzq7rxu,Re8dka4!a8(aEZ+a@Y.X1Xa)[yd=Bs(3DtP>6Vz53[y4cX#X&Re:avRe9~<5s&JwJZtQ~Gs*i^rzvdRg+Jv{%!2sbB@bX}kdga,!Za?&^*T1/!a'Dt+[y6>6Vyf3Wf%g/u;s4hGu6?Rh-JvZ,!c%#&RoX54Rivj7uyvf8RgTKvZB%*!2sGh<vu5Rgq<=C::9bb~#dZ#T&Ta6Y.X*Dt>[y93Wf)coZ(T,6VyifluvRgC@95@B@bX~/hFu34cC#T,k/unq8w8Q5RkUklwQuzunq8w8Q5Rk8d/rJu?v8w9)-&!a0a;a&aIWejg3sEr/h1s<DtDJvyZqY5aws3Jvy!&Wei~Hr1:au5@Bag>23E~5c:Z&bX};kKv?w&unuVu5Rjc;>bs)#~@:Rh.=ay<a]C;b`}Vd6s/t{uAvoaxa()!a,a7%-a#a2Dt,[yF2Wo[>6Vyt3[xuNuPRi&NuPwpi#RoWh?vf8Ri%Jv]!%Ri:KvxD!.'2WeAjZu`q9rxu,Re7woeAg-unLq(qA_/*2Wg_g3u5q^9:4E}/jTrxrzv=Wkkd~0UX#^^Xa-a1a5T&a=U1a'*aEa]!a*aPaA-adok[y54Rn>;:p3~Dp5g9rpsFNvZqjg3uJp4~<5p0Pw;5qlJwNZt*@3p1Pw:5p/Ou!5p2JvG'!6Vye=<qnJvh_[xhg3v,Rh3kOwOw-sDuev/Re^dha[a%!%!a+#Ta7)-5TaCaO!aka!a)sf[yb2>Rl!9ARiq5E}Qg=ucRkBE|oJrJ_@Wk~@Wk{JrJ_@Wk|@WkyJrJ_@Wk}@WkzJvO_[y2g-vMRmiKuYC!)&>Ri;>Ri<@3RkNc](X#@9Rk=g5vuRmhKvDB!+'=]meg3u4Rmgd)#Y'Vz3CARmfd`a+!%T'!+#Ta1Ta6TaM-sTDt9[yA9sYd'%Y#s[[xpj:ueunaXRgEjRq,v-vuqdd2'`#6Rev<32@5>:2<E}5xIo9a*X#Y(;5RePJvD_g>vyRgNj8w)v8<wggs:RgXiZt|vjx,hSq3ah!-(~@:Ro/Ou!5RhWj^v(pyw8unRhUdx-UY#^Ua.a3a70!)%UX1TaDa)'omRiRRhE[y:3Dsz=Br,>6Vyj3[xkg6ruwjcqsrPw;5r*Ku]D'Zt-@3r(~?r.i[vwv]dU1a--U#`a4(g/vsRhPOu!5RhLj:rmu9Wo!~@:wdh@g/vsRiTjXuvvNr}:RhBj^v(pyw8unRn]dz1UYa'a+^Y(!aETZalaRY.Ta?a4[yDJw1!#qLsW>6Vyrfzq-pLflpwRe|Js>%!Dt@3Dt&Jvy_[xs~HrnjMuwpsw'RecKu+D#'!t<~Grl~?rjg5u-x,gwp{ah!-(~@:Rg~Ou!5Rh'jXuvvNr}:Rh#cW#X/c;&!#2sLi[v7u7RgpJv)(!iLrxu,Re6j7v@s@5Se[e7d`aW!Za(a`T.a#!a3!&aDa-!9)Dt_=6s+3[x~~DR|h~DS6avhGun5RkZj3w)v-]mkKunB!&*]kb97R|i<ARk<c:Z(6Vy}Juh'!wziMRoS:F|vkLuauJv5vtvQRh1d='T+Y#VyO~DR|jcF#T'7R|g97R|kJv3'!ay<Rj,Jvh&!:ReXcsa6*a+#a#_aIRf9aLRf?c,Z&Rf5Rf7c.Z&Rf;Rf>cQ#%T'p-Rf8Rf=ct#%'(*!,p,Rf4p+Rf6Rf:Rf<d~'Ua%U*^UYa(!a,-!#a4YaTalaEX0a8a<Weo3Dt/3Dsx=Br93Wen~Dr;~<5p<JwNZt2@3p=Pw:5p;Ou!5r3c7&!#:p>3Ds}KvGB)_6Vyk2sM=<r7x'eovA(!hFu1ARf}cV#X&@r5j6rvwQa^Rf3c=Za'wkghJv__g;unRggA53B9=b^}%j6uduo5Jq;!(hIv%2Re`Ou4ARe_e%a#^^^Xa&!a*a2!&a6YaP!*ad!#a:aE/5Rn?[y@>6Vyp;:pE~DrY~<5pBJwNZt8@3pCh=rt3rWPw:5pAJup_[xoNuPpF9c!#'45pD5ARn)d8#X'X*3@rU72s]h>v<<sSjJpqvewOJq/(!hNw'5ReBk0s2u3w/w'5ReE5@Jq.!a+JQ!&WeU23d(#Y&RjG5]jBk!u7w&u0udARjEe#+^^^Ub#!a2/a`Z(agT1!a-a;|@TaG!aS[yV=Re~fow'RguNuPRe?bz#'>RoUWeL>:Cbb|?JwPZtVg6ruRmzJvD'!6Vz(g/vmRh~Jvy_[y(g9voRgyx*cy(#2>Ri2B9b]~9kIw9u7rluJu3Rg]dI#a%UY'@=p%CAx.gQZ&RhwwygtRm{x5g_Z'+ABqR9Woa=Bp&dV#^*Xa'!&@o{g4v]Rk;Jv{!%Rk[wkkiA5RkiwwfUB=x,fUuqC&*!>RfTg8v0RfV~ARfSd;rJsAuAv9wR'ae+/aO!a@aza/a#[yQ@Wg!2Wemg3sEr0JvB_g>uvReWg2v+Re=KupB_+[y!2AbY~-~Hr2AJwD!(h<~El>h<~El?Kun@+_:9b`}Kg-v/Ri3g;vtwyk_9]k_d=&T#*U.6qh@Ab`|K9:H|CJv[!&3Dtex'fDwC%!Rf[9WlMd[(^X,!a%Z06Vz!@WgBg=v~Rgvg,QRe@awd,#Y+jTv|Q~EfWj]uNr|~FRfXdy#Y&^Ua%!aO.!(a)Ua;=!a@aKap!a-,a!Ta]a[rSa]p?[y82sK=Bq~;:p:~<5p8Pw:5p7d'#Y'Wf(;RnRi[u4w&RgJJvG'!6Vyh=<r#ijuuv/sIKuYD'ZtG@3p9~Gr&d2#`(g<vtRgFj`u5w&rqpxRf2CJuY!+:wfnTOu!5Rg}jNs1ucv&RfwJvA!&3@q|BDcC#T,k/unq8w8Q5RkTklwQuzunq8w8Q5Rk9dga#!a'!a=#a0!:+Tb*b@aO.a4!aba8aFJv^}?!VyR~Dr<g;u%Rn.~<5p[x'e`wNZtR@3p]Pw:5pZhNvjBp.woe_g5u-r4JwF!%DtO3:ooc7&!#:p^3DtpLuGw(!+%)Dtk6Vz#2sd=<r8d'#Y([y#<x3gJt`w@!)%}MRiowzikRij=]ilxAf3,U(#B2Rf#g0v-Rm[ck{`U#]giKv3>)!&6Ri154s,KuGB_%@r68r:dJ|t`#X(9<E|u2@H|rx3gJu?w'!+'1Nu7Reg4=H~+9<wxgY95Rm]xLggZ-`(X}U2:Ri4h<uOawRmsJv__5@bb{jbV~3dka#a'a]!,#a+U=a>b6a3b%!/aKa/)!arwve^VyJ;:pR~DpTg3uJpS~<5pOPw;5qmPw:5pNOu!5pQJvG'!6Vyx=<qoJvA!{~Jup!%@qk7Rn/KvyD!}''[xz;>wkh'?Rh,x8gyt`w5D!&),(SgyccRgztJ@3pPB5p#d'(Y#<]mmifubw&RgoJvE&!82s^JvF&!8Rf,ADb]~;x=h'rNu]vK!,%'*0RnORh)4Rh*AqQg-vaRnNg;wHwkh'ba~4cE#Ta*x3gctyw@'!+%RnFRnD<4Rn@hFvK5RnCxWg[#`&a0Ua()`1Rm75Rg[c]%X#qi8Rg^NvdRj>BwzgZauwji7Rm6A4wgg]d1#&(*,.0a#Rm;Rm<Rm=Rm>Rm?Rm@RmARmBe%#^^^Xaea?aC/b+(,!a+a#!a/!>a&Ta<aKbD!2wphBRnk[yPw}hE|.=Br-3Dtm>6Vy~g6urRf.x,hPrNav!%'RnqRo%Ro#Nu;q[Pw;5r+JwNZtM@3r)d'#Y'Weh;xChL#`&RnmRnoKu}>%(!Rne~Bs-;2wjcussJv+'!aYSO}6@B<5?ba~8LrNvj!.%*ROwungw~ng~:9;Ri^>wtnig;wHRnixDh@|(UZ.x1h@|)!#:2<H|*xHn]#-UX'3Ro)z=iT}6ARns=Bwsn_wpnaRncw]aR(#UXa&Ua*a/=]iPd'#Y&Ro'WnXf{QRm2hNvj]nZd`'T~&1`{|`#9b]{}c:'!#Wl{>@=be}]?cl{{U#:5Abb}Jds#^YaF!a*b4a#a3aPa>&Tb!bH!*a_!Eau?/a&RjY<]gj>6Vz*;:pe~DrZg,QRj1JwNZtX@wihspcJvZ&!VyX9WmOJu|!|N2WmHJvh&!]ht~Bpbcn&T(!#RmQ<s7Nu;padH#X'`+WmJ@>RmKCARhnKup=!)&Wf+:RhqNuPpf9c!#'45pd5AwghpARn(Ls@w!%,)!RmP@Wfe<E|IJva!&WmNg8vsRmLd`*.`#Y'Xa!axRn*]hrA8Rhug5s@rXg8u!RmMd8#X'X*3@rV72smdI*#UY&RmICARho~GsgxVgd)Ta'U-Y&Xa!T#RnEWnA@Wffg1uDRi0hFvK5RnBxGnG&#`%owp)@wsf+bX}Ze-*1!a*^^^Ua|!#a.aq&Ya2!a>.a6!a:aO`aJDtL[y`@Wg#>6Vz12@wzoYRoZNuPRi!NuPRhzg=ucRi,@=b`{Yg=ucRi-ACJvB!&Sh[ebSh]ebi`wUuFRm4Jw2_[y0JvB!.<Ju(!&SoG}6Shd}6<Ju(!&SoH}6She}6Kur@._g5vHRieJvx!{L2G{Kx6gd'T#?Rh82Wi5cZ#X(g1w)Rm5dW-Y(Ta#!a)!#aYa=wnfE=su2>>bU{0j9udv:<svj8uQv-7RgHdE%#^'sq9sp=>Bb_{TJv`!&g/r|snj6v(us5d,#Y(56H}[978H}]Jw5!&g1rushJvB!+j;v{u5?zDhd}6}bj;v{u5?zDhe}6}ce*#`(^^^a[aea!=!a6a*aoXb1a.!aAbL!b>,b'aL!aV@Wf|2Wlg3[y/JwNZt^@3piPw:5pgJunZou3@rsJva&!Vy_g<v~Rm#JvG'!6Vz0=<r{Ju{%!:pj@WfsiXuJu3Rm:JvZ&!WfA~Bph@c4Z&Dtwax5rubx(#:awRk1@d,#Y&RfjRfid1#,Y(@Wfp2Wlrg5s@ryKu[@!,'=]ig9wlk?Rk>g5u-rqJvy'!@9RkQcH(T#=>Ri~@<wkj(Wj(KuZB*!&<7rw@9RkRcH(T#=>Ri}@<wkj)Wj)dg(Ta2Xa9X#`-!a*CARhg@@=I}d9x;c~#X%so=<sj>2@@=aybb}XjWv0Q~EfEj3vLv;<d,#Y(56H}`978H}_dgaPaFa'a/!#a3Y0a_a;a|!1(a7-[yE3[xt;:pJNvZrrg3uJrvJwNZt=@3pIh=rt3rxPw:5pGOu!5rpJvG'!6Vys=<rz@c4Z&Dt(ax5rtJvZ!&~BpH@wsfNg-vaRlNci*U#=<wei<F}a5@Jq.!a*JQ!%@qZ23d(#Y&RjH5]jCk!u7w&u0udARjFd/prq=tyvpaEa(a:.!a1aZ(@@=I}:9wpd%=<sX55w_h}@@=I{t=ay<aU@@=I}T=ay<2@@=I})?C9:9au@9Cb]}DP~=x-fAZ(2Wl1=ay<aU@@=I}>5@d##Y+jTv|vV~EfFj]uNpn~FRfGdgaK!Z2&!a8a-Tb({E!acTbM*!a(DtY[yYd'%Y#sl[y*hHvh>Re5x2c{Z}.j4uCvcawRiMd+#X+_x&d!},<5RkX;2Hzw@x,gavfB-!{CcF&T#Roe;RodwWbBg5urRgaKvHC*_6Vz+<4opieuew&Rmq@d]&Y)X,T#X0Rh}<BqP=4qS9:ReMg/ujReNJw0!/<Jui%!bd{kawwnemRelAxUa?a3#*.&UX(Ya+a/RhvRnQ<o}9Wmtd-#Y&RgSRmw9;Rmxay=Rmyg-vaRmuxEhSrNu,v-voC!%(aR.a(a7+1Ro1>Ro5CE{A9b]{@;5x#eO{:g;urRi+KrNA!%(Ro3>Ro79;Ri_Ku@>{;&!x%gX|{KunA_+g5QRj/g3u5Rj#g>uERj%wio/xRhS&!,!#^1U}wba{8>>@=be}qC@:D5ba{7Ku+A&!}x?ba}t>>@=be}se(aA^^^Uat!b0#{pa+awUazbGa#aLb9bgaWac'a5TbS=Br!d1#`%scp_Jvl!#rT>Re0JvX&!VyN=H{Fcm#U&:pY=ReaJv2&!]h0=]nUJvG'!6Vy|=<r%JrM_=]h2@Wlud'#)U'Wf'b]{i=]h/Jvh!&~BpWg=v]RnMx+ny#'Nu;pVwjnu=]nwxJnx,T#`&Reqwjnt=]nvieu9vrRjLLuYwP(#+!th@wih5pX~Gr'g5v/Rh4KunA'!-CARnP@wwiN:Rm_9x'cvw>!|l=<saKvAA!0&3@q}>w^e1bp#&Re2Re3BDx7gH#T|f5H|eKuZ>!%(:qNAH{]Jv6!+3B2B9=b^{X<5<B92:E{ZLvhwA(a;a%!igQuyRmad+#Y}m@3Rh5d8#X'X*:AqUAHzmaxwbh<aXRnVcF}RT#Nw&cj#U(BWnug/vsRntdka)(a3+.Zb7aYYan1!bVa@Xa}[y^@b[{G=H{+hFu73Rj&Pv#5ReQcK%T#sig1v{Rj'Ku+D#'!t]~Grm~?rkKuMB!01d5#`'Vy.ta3Dtu~Hroc8#'{^45s85AwZbP&!#Rn!wghxWn#KvEA!)&2RlA2RlBx:h|#(T,=]j09Wobz>x]z/@awRoTd+#Y(az]hFhCrm4d,#Y+jTv|Q~EfMj]uNr|~FRfOdCa!Xa9_X#@<plJvf!%b`{(9;Rgwc;.!#2x7cw#T|UDb]|T5Ju={(!=@E{&Jv)&!Ab`{'awJvf!~*>>@=be{#KuY>!+&4Ezyi[ugv&RjIdea+T)#UXa&T-T&a!Rh9auRmW=]kLg5vuRn+g3u4Rn-Ow6ARn,hHus5xNk?#UX(U~)/g8v0RkD~AwkkF?Ri.OuNBwkkA?Ri/d|a2`a*^UYa.!aBTZaTa'Xa;!(!2!-a#b2[yC>6Vyq3[xr2Wi?g1rusVh%s?DtF~<5rbJs;%!DtBfswKtCj[uvuSsEu3RgVx3o:u+wN'*Zt;@3rd~Grh~?rfg8w)Lq)qE&-a%!>bI|`jWv0vV~EfCjTv|vV~Ef@j]uNpn~FRfBcK#T']gWNu7x,k7q4ai(0!hHv8<RhmkMu9vrsBuev/RhlCJvB!,g<v{wchh~@:Rhji[vrv{wchi~@:RhkdS&a5UY#Ta!RgPwwiI5BwciI~@:Rh`x'iJvj'!5]iJPu8Bwch]~@:Rhach)U#h3rp]gLh@t|Ax,hTq3ah!-(~@:Ro0Ou!5RhXj^v(pyw8unRhVd|)`,^UYas!a?/a2Z'a^Ta{Tb7Ta(a#!a,Wf&9sZ3DtAadamov=Bqt3[xig8vsRm~>waiL2b`{QJv*_Ouv2qgj<v]v2BqfdR'X*X#Y-@3qr~Gqv~?p6hHv-]glPup5Lq+q?_%*b_{qF{n9b^{rOu4ARhpKvCD!+&~Bqp:5Dbb}nwoiKl&unuTuBv]v+ueunaXRf0=Jvh!0nKufu8v1w&w7q%w&uHrz:Rgnj5w,uxDJq/(!hNw'5ReCk0s2u3w/w'5ReFd>Za&!*UaA=<wkgsRnSJv^!%Refifw3vyRgOKu_B'!,<]gkiiu:w&Rh<=C@a^<B57@2F{[<B5@aW:=3away9A5aW=<B=C@a^<B57@2F{Ie-#`(^^^bCara.b8aza6!/bZ,!adTbnTbOb+aFaS!aAT9@Wf~2Wli3Dtl2@d,#Y&RfnRfmJwJZtN~GqyJva&!VyMg<v~Rm%iXuJu3Rm9Jv[_=]ih9wlkDRkCd1#`(@Wg>2Wls3cH#T(@<Rj*=>Ri|b~'#23s9h<~El.d'#Y&Dtxi^rzvdRl#d*#U%(o|B2s`hJwSaxRmDKv4B&!1:Rmdd5#`'Vx}to~Hq{x'f1v3(!BA5ba|bJv_&!Wfug1v]ReIdO+U/Y#&G}-8wze=Rh{g1v]ReHg/uQRf/by#)ibQwERl/cH#T(@<Rj+=>Ri{cNu+vlax-!(#a0qa9<Rii2;;bU{H;x<i=&X#Rk`<4wwi=C9H~8xAI(Y#<azRi@45wXI<B9;5bb~7dL(X#Xa(+!aL6Vy{g5QqOau:5au2@ay547EzbxOcU(UX-T#Ta#:Cbb|A?wjh/b_|SOw6ARgtihr}u7Rhy<d1#T)X1@@=I|~=ay<2@@=aybb}Sj3vLv;<d,#Y(56H}A978H}@dGpvs@uAu`vcw9*!aFa+ai%(b!aXa8.a?a[ozWey=sU2@G}Nch&U#Rf_WexKu+D#'!t:~Gr`~?r^j]uNr|~FRg*j^psurwJt|RmcKv)@&!)7Rkv~Br[@wxfO:Rl3co#U'6Rezj_q#vIuavjRltwzeyh@vr5JqD0!>aY?C9:9au@9Cb]}9cl#U*5;5<H||jbuus1ucv&Rfvg1v~d/pppzqFr^a--a~!aMat1(hFv;Wiz@@=Izoj5uuv-7Rix~Cw`fk2WlVcZ#X,k)u3vWs@u2]ktg;wEx'fBq(_2Wg/jTv|vV~EfoJv]!15x'hzqG!(P~EfU~CRl_j6v(us5x4i-#T(2WmZ?C2F|d>Kq<aj1!*jTqIsBv=Wl`~Cw`fi2WlWj`v0u*~>RlR=c>Z,k#u3vWs@u2]kr<c1Z+jTqIsBv=Wla~Cw`fm2WlXdmb3!a{(arZa`bkTa%TbQTa-a9+c'!aM!/[yL=Bqug.w'RifhFvyDRj.g>vgwyk^9]k^Jv3_@WfbAARkhJw2_[x|JvB_wkoIRoKwkoJRoLd'(Y#<]gm=<9<H|yd'%_X#skDtb3awwqkgNulRkgdB#^',9:p'hJwSaxRmEBwVb8@4=H|qLu+w50&!)@3qs~?pU>Awwn;;Rn=c:Z'ARn<=<qwKvC@!/&~BqqJv6!&]eVb^z^xRge'/a%+^`#Sge}6<4Rn3=]n0Pw2>Rn8Jw0!&>Rn:>Rn6cY#a7+!a&=<wkaNw~h3z_c5Z{=wjh#=]nLKv^D!&)Vyz=bW|swYb<WetcG#T(2wxa@qVx@gD#Y&b^|V5JwG&!5bb|pg/w&RgD@x=kHs=uAvn!a%%/'+RmSRh694Ro`g-vaRmRhHv-]mlxCcS#`&ba~.5cD#Ta)P~=d,#Y(56H{>978H{Dd_#{2^Y%_+qbbb{6g3sERhsbU{?dfa.,`a(Xa<!aiX#(55RiG54RiHcI#T'WiU3RiVNvdwtfcRlKNvdd,#Y&RlHRlExQgf.1*^T'X#Sgf}6Wn4=]hfPrk>Rn7Jw0!&>Rn5>Rn9Lunw?&a2!,5<oq@@wqfdRlJj5Q~=d,#Y(~ARfcOuN]fdDKw;ay(}i!547E}j?cI#T(@5bV}iCbV}hdv(^^Tb?a40,b##Tbo!a*bR!a<b|a/!aKai!aU[yK=]o^g:v>ReGJwPZtK<7Rh+h<~El,Pv#5ReR@awwxjCg,ulRjDJv6&!]j!z?aQeeg>w=Sh<eeJw;!&axEzOg,Qosc!#*:wkeJ]eJ>x'h-u(!%Ro.w~h.zPdNZ(X,Ya![x{;9ReY;wkgxRiF:x?ap#Y&RmUg<s2Rkod]+UY0TZ'!a&A9sw<=bczLNvuw{gqzNhJwSaxRmCKuLay!#&s_Rf-55b^{uJvZa!!c%#(55Ri654wmiu5RiuawLu,vp!+}^%b_}Y9;wkgxba}o>A9:=b^}zKuh=a''!3awRk3c*'!#aHRk6c+Z&Rk5Rk4Jv)&!awRjSawd9*`#0?C2@EzMj8u<uJ5RmbjQrquJu3x,k>uq@_+=ayb^|W~ARkEOuN]k@7dhzV^X/X&a-#zRzSb`zXcJzTT#2WkVKvDBzW!%FzY9;5bbzWjQrquJu3Jw3%!b`zU=ayb^zQd:#X(T-a!6Vyywxh}=b]{Jg=u1RiAdGp~qHtzv!w(wA+a+a;<!aJaYai'anasb(=azRmV:Cbb{MLq2vb!%')RjuRjrRjtRjqx3jnqCw3!%')Rk(Rk+Rk&Rk)Lq2vb!%')Rj{RjxRjzRjwLq2vb!%')RjsRjpRjfRjex3jcqCw3!%')Rk'Rk*RjkRjl9<CbbzfOu4ARhxLq2vb!%')RjyRjvRjhRjgx=joq*uKvb!%')+-Rk.Rk%Rj~Rk-Rk#Rj}x=jdq*uKvb!%')+-Rk,Rk!Rj|RjmRjjRjidAq&qKs@uAv8Aa.'*-a@a&0!aM@a5[y73Dsy3Ds|3Dt):wxgI2sHJwJZt.~Gqxwsf0ikrzt}Rl0Jvy_[xj~HqzKv_A|D!&WfP8axRoVcf,U#k(v]v+ueunaXRf1Ju}'!g8u#Ri=jQw!sCunLprq>!,')~<5qeGzq9F{W=c##%s5au:5aU3CBE|;d4#X(D!a&6Vygx(b;#(=]ed?C2F{N<capoq2r[a&!aPa9,'Pw;5s:@@=I|,55w_h|@@=IzcP~=x'fCqB_2Wl2>aU@@=I|1OuNBc1Z+jTqIsBv=Wlc~Cw`fl2WlZ~AcTa%!Z+jTqIsBv=Wlb~Cw`fh2WlYk+uNqJsBv=WlSg,u3dca3#UXaMYa)TaB-=cM|7T#<bI}l5@B932:aV2G{BOuNBJq:|M!5Ezt=<B=C@a^<B57@2F{v>cB{/T#=ay<bI{3Jv6!a.6BKq0ah&+!5E}HP~Ef{978BaU@@=Iza<7d#.Y#978BaU@@=IzH~AJq0!(@@=IzG978BaU@@=IzFe,aU*Y&^^^bvJb,b:bFad!a,c2Ta>aL.bo6!a#CbTa'T#Re{2Wlh2@G{yg6t~Ro_NvdRfticuRQRllJv3&!x&c|zs@Jw3!%RflwpfkRlpKuL;%(!Re<@G|C2GzdhIvuBwgjAg-u0RjAKQB%!(GzZ@G|5NuuRl7d='T+Y#Vy[g<v~Rm!==G|>JvA!)@wma=]m1ifuaw&RmnLs@vT'!|/+[y,g:v>ReTJw1!#qX=x!eC{bLu+wT&)ZtZauq_~Graci&U#F|89:r_Lupvq!.)&2RlG8RfaC=x!eF{_h?rpWlmd&'!#X|&]k::xJey#`'T|+<E|&2@H|%dE#(^,g;u.RiEg6vjRiC9xCkA{O|zY#g=ucRmXKs0@!&*@G|m@awRknJuh!,3d(}gY}eJvj!%Rm):Jw3!%Rm+Rm-Ls0w(&!a(a#@b[|6cZ#X'7RkxWgAOu4ARn'dH'U#Y*Vz-Wm'CARm}d]*#a%^a*T'aK!a<9bV{PC=p*Jw4!&SgxcbB5r]idw(wBRmF7xFkt#&`(Rm/Rm8E|!JuY_9:Rl5=wrgr2:bbxd@xXfB(a*#T+!.X0X1Ta/a'T&RlDRfL>RlyARl9b[z[>RfZ:RlL:RfRwlg/ARl;9;RlxKv,A/!%7s69<74=BA5ba{-8Bde#`a<XaKYa1,a'P~=wxfB2bZ}}?C972@@=I}r8@55B9;5bb}G978B2@@=aybb}3j3vLv;<Jw3&!>Rfk=ayb^}4~Ad1#`*@@=aybb{w2@>==<bbz]dx+UY#^UaF!a9!bB'Ya1.!ajXa#%olRhD[y=3Dt#Ov5BrHKuMB%!(Rf^Wep~HrJwkiQjKr|~FRg)Ku+D#'!t5~GrF~?rDdV)UY,Z/_7RkuG{<~BrBg,rlsO:235B@bX}|d?a1!#`(6Vyn5@d##Y+jTv|vV~EfIj]uNpn~FRfH7Lq2vb1!a9-978BaU@@=Iz9978BbU}#~AJq0!(@@=Iz8978BaU@@=Iz7~AJQ|}!978BbU}!JvkaK!AdUa21-U#`a+(g/vsRn~Ou!5RPj:rmu9WhOjXuvvNr}:RhAj^v(pyw8unRn[kPr}p|u7vwv]RiSBd;pppzq@qHQa?(b.!a.a`@.|xa(hFv;Wiyj5uuv-7Riw~Cw`fg2WlU978BbU|wOuNBJqG!(P~EfD~CRlQcZ#X,k)u3vWs@u2]ksg;wEx'f@q1_2Wg.j]uNpn~FRfqJv]!15x'h{qG!(@@=IzK~CRl^j6v(us5x4i,#T(2WmY?C2F{1>Kq<aj1!*jTqIsBv=Wld~Cw`fj2Wl[j`v0u*~>RlT=c>Z,k#u3vWs@u2]kq<c1Z+jTqIsBv=Wle~Cw`fn2Wl]dn1#c(a(b^a2!b/bAT(bj!aDa7bu,a_a{c0!2T0g:v>ReD2@G{42@G{5~DpM~<5rc=Bx6i>{RT#RnI@zCx]y]z:2Jv[!zr5Awyk]9]k]dD(Y+X#6Vz.g=wKtgwhaCwgmTWj2Lu,w%_+/[y-B;b^xeg3u3Rj-2@bX{*KrJ<!+'@Wg(g?QRlC@Jv`!%b[zIwsfII}8JQ_@w|kW|=Jv(%!AqcOuNBJvEzh!bYzjLs@wP#(0!oy@>RkdJwMZtc3Dtd@BcG#T'9bWxg2@2Fznd*#Y+;2x'c}w<zizixNgwa#Z'U+!/!a'!a+w~g~z6wcn{Rn}wcnzRn|5Rh%=]nJg5vuRmvNvdRlvcprJu}w*az*a#!%.a.'Bot9qT]kj@Wg'ay2Gzv@Jv`!%b[zEwsfHI}1;ck#Ux`<Cbbx_Lu+w!a&0*!wko*wwo,So,}6Juqxf!E}PigQuyRm`d3(`#8>Rn%:A5B;bZ~%KvhCa!a2!x>k7#Uxb@b{#xaRk7Jw0!)>wwhlShl}6>wwhmShm}6CJvB!.x'hhvj{!!5Bwkhhbaz}x'hivjz~!5Bwkhibaz|xEhTrNu,v-vpD!a%&/)a3a.,%Ro2t[CE{)@3re9b]{%wjo09:rgc:Z&Ro6=<riifuaw&RmoKrNA!%(Ro4>Ro89;Ri`dSaL'UYzxZb)7Rka3xRhT&!,!#^1U}vbaz{>>@=be}yC@:D5bazzKu+A&!}{?ba}y>>@=be}wxBh[t`u~vJvr!%a!a()a,a0a4RoC=]o;Ju(!%RoGRhdwjh`=]oAg>w#Ro?g5vuRo=NvdRl|Ku]C.!&;RoEJvB!%RoORoMBx'h[v+_?w~h`}~5?w~hd~!xKh]oiptu-utv.vp!#%&a30a@a'a+(a/aOp(o~p!RoDJu(!%RoHRhewjha=]oBNvdRl}g>w#Ro@g5vuRo>c[#X']o<CauRoRAd-#Y':RkpauRoQKu]C.!&;RoFJvB!%RoNRoPBx'h]v+_?w~ha}t5?w~he}ue!/UbhYacXaW^Tc&a;b:a-c/#b&aja1(!cL+!bKbt!bmcRc9aIc?8[yW3Dtt94Rg`Jv}!&SiRMzBhEebShEMNuPRe>x7gL#TzuwjirRipc<Z&>on;>z=h-MSh.Mwqczx'a7vj&!>Re4@=ResJt__NuPRi*NuPRi)j]uNr|~FRfzKrJ>_+@Wfy@Wf]2WocKrJ<!+'@Wg%g/QRl@@Jv`!&awRl<wsfFIzgLu(w*!.*&ShBMwvhIRhI9;RhNx1hK'!#Sn]Mx1hK~0!#:2<H~7cNu+w7D*'1ZtW>Rn1~?rOc:Z&Rn2=<rQ<7wjh&=BSnLMc]#X(6Vz)w[b=a!U#9wzgMc3#&(RgMRitRis<x,gKt`ax!&+SioM=BSilMc3#&(RgKRinRimKurB,!&SiQMzBhDebShDM6BJQ!(P~Efx978B2@@=I}WLrJw!!,a*&@G}O@9wkibRid@@x'fKwC!&SlDMSfLMjUv~Q~EfKKv3@a+!(hFv-]mpx/hYZ(C5RiWz<o/MwkhY?So/M@x,gbvfB*&!SgEM:SoeeehFu3:Rgbda(,^TZa)X/7Sg[eb:2RgI~BrMC@wgkc:wwkcRerx3h(uUvK!&*,SnOM4Sh*MArRg;wHRh(x=h;rJvPwI!a4',a'0@Wg&=BSh/Mg>w=Rh=g3w*wwgGRgGcW(X#;Sg}M2Gzk@Jv`!&awRl=wsfGIz`dKZ*T'Y-:RhR7RhQg5u-p`j6v(us5d,#Y+~Awkia?RicOuNBwkibba}Ld6p~tyu_vbAa'a+!a/'a3aEa8a!>Sh,ebJv{!&Sh@ebSaReb9;SgwebNuPRi(NvdRl)NuPRi'hHu^<Rm^Jvv_@Wl(g;u1Si/ebKu'B&!*Sh?eb@Wl'z@aPeb95Si.ebcpputyvjB)!,&a+0a%ShAMWeK@G}C@WfJ9;RhMwvhH9w{ia}ix,hJvRA1(!zAn[MRhHx1hJ~*!#hFv(BSn[MBJQ!(@@=I~'978B2@@=I}2db.Ua<'X}+T#a0XaG2G}E;wkg|wuh!Rh!x,hZu,@)!&So0MVy)C5RiXACJvB!&5RiY5RiZg8w)cG}*T#2@bU}=KsA>(!a.3wkhZba~(x,h^u(A!&(SoCMRhb5Bz=h[eb?w~hb~6x,h_u(A!&(SoDMRhc5Bz=h]eb?w~hc~6e)aA1T#T,^^^c-bMb&blcPaP(a/!0!bA=b5c@a(!bfbrc#2afwmhARnjwchORnp2Wlf3DtsNvdRl-2@wpa<]m0bx(#:awRk2@Jw3!%RfhwpfgRlnKQB%!(G{V@G|'NuuRl6d='T+Y#VyUg<v~Rl~==G|<Jv+'!aYShC}6@B<5?ba~8@Jw3'!g2QRljhLrpWlOd+#Y'g.w'rIg>w*wgj@g-u0Rj@Lu+wT&)ZtUauq]~GrGci&U#F|39:rELrNvj!.%*RhCwunfw~nf~:9;Ri]>wtnhg;wHRnhx3hDs@v~!/+'@Wfr@9RkSNu&Rlo=@<5GzoKs0@_+@Wl+@awRkmJuh!-3d(}pY#qWJvj!%Rm(:Jw3!%Rm,Rm*de&!1U-U#`)Re;@G|.@9Ri82@wjfvRlq=@<5GzpLvOvr!).&2RlF8Rf`C=x!eE{.Jw3_g2QRlkhLrpWlPde(!#U{s,UXa*Ta'[y'g:v>ReS;x0PZ&RnlRnn~HrKJw1}f!=x!eB|2w]aP(#Xa&a*Ta.Ua2a7=]iOd'#Y&Ro&WnWg;u.RiDg6vjRiBNvdRlzhNvj]nYJuW_2Wm3x)kFze{9d])!a.!,Y01!#&aC!a3RndC=ox~BrC@2b^{pg,rlse7x'ksuq!%Rm.E{xidw(wBRmGx9o+)X#wwo-So-}69:Rl4@xSf@a#XZ'X)X,Ta(/ARl8b[xc>RfY:RlI:RfQwlg.ARl:9;Rlwdn'#^XafaQa1X1TaHTa)@b[{zcZ#X'7RkwWg@Ou4ARn&x)kG#{,g7u/RkGdH'U#Y*Vz'Wm&CARm|bx#(A]gUbUzJj9Q~=d,#Y(56H}l978H{U7d,0#U*2>ABb_xZ978BbU{e~AJQ{g!978BbU{hxMh?ad{oUYZ.x1h?{l!#:2<H{mx3n[t{vl!,&a%3Ro(z=iS}6ARnr=Bwsn^wvn`Rnbd`*T}B0!#^X'BG{c9b]{a>>@=be}F?JvS!&BG{d7BG}(Bde#`a1X,Ya@!a'P~=wxf@2bZ}I56B2@@=aybb}08@55B9;5bb}<j3vLv;<Jw3&!>Rfg=ayb^}&OuNBKuLA!)a!P~=x#fD{f2@>==<bbzl?C972@@=Ix^d6rSu,v7w*C(0a)a6#B+a%!sQ[y?3Dt%3[xn~<5rLOu!5p@Ku+D#'!t7~GrP~?rNKvlaya7'!h+v-5qMg=t|cd,U#5AAaa5Abb{S@52B5@a[@52B5Gx[iXueu;d<#`a(!/549C;ag>23ExY5@Dah89b^~689Jv)!~2b[~1Lv'w(%*!a#bX|aPrmawRe]keu7uhv-q6rxu,q`xTo]/a5aU!bNaDXbi!b-!ao!b<bwA!#5@B932:aV2G|:d-)Y#hJrL>RhG<7@C5<H|_=Cau:5aj5@B932:bJ|ng>vIbs)#?C2F|9jPv0w.vISh-MKvUaz(.!9ABbb|[5;5<H|Eg>unwfh;9:4E|YjQsBt|vjx'hYq3!(?C2F|J:2<BaY?C2F|GOu!5x,g|p{ah!-(?C2F|c9:4E|OjXuvvNr}:Rh&i[w*t|cd+U#jJvsu)vsSn~Mkfrmu9p}u7vwv]So!McW#Xa!ax5@A5aY:5;5<H|>kJv~vYrquJu3x4ib#T)2@SmZM?C2F|Bj:rmu9@xPhI(a*a#U#`a3-5Abb|L~@:RhK9:4E|0@52B5G|#C::aY?C2F|-:2<BaY?C2F|.5Jvk!a)javYrquJu3x4ia#T)2@SmYM?C2F|HAxPhH(!a#U#`a*-5Abb|4~@:RhJ9:4E|R@52B5G|F:2<BaY?C2F|Sc^#Xa2j=Qq5CJvB!-g<v{z;hhM?C2F|Zi[vrv{z;hiM?C2F|XKsA>!a)-g<v{z;h[eb?C2F|]i[vrv{z;h]eb?C2F|^iZu.vix,hZq3ah!.(?C2F|QOu!5ShXM:2<BaY?C2F|P", 13494, 2713, 49, 25, 61);
5
+ export { htmlDecodeTree };
@@ -0,0 +1,50 @@
1
+ // node_modules/entities/dist/internal/bin-trie-flags.js
2
+ /**
3
+ * Bit flags & masks for the binary trie encoding used for entity decoding.
4
+ *
5
+ * The trie is a flat `Uint16Array`. Every node starts with one header word:
6
+ *
7
+ * 15..14 VALUE_LENGTH Number of words the value occupies, +1.
8
+ * 0 = no value; 1 = value inline in bits 12..0;
9
+ * 2/3 = value in the 1/2 words after the header.
10
+ * 13 FLAG13 If VALUE_LENGTH > 0: semicolon required ("strict"
11
+ * entity; `;` is never stored as a branch).
12
+ * If VALUE_LENGTH == 0: this node is a compact run.
13
+ * 12..7 BRANCH_LENGTH Number of branches (or run length for runs).
14
+ * 6..0 JUMP_TABLE Jump-table offset / single-branch char / first
15
+ * run char (see below).
16
+ *
17
+ * Branch data follows the header and any value words. Its shape is selected
18
+ * by (JUMP_TABLE, BRANCH_LENGTH) in the header:
19
+ *
20
+ * Single branch JUMP_TABLE = the only child's char, BRANCH_LENGTH = 0.
21
+ * No branch words; the child node follows immediately.
22
+ * Jump table JUMP_TABLE = first covered char (> 0), BRANCH_LENGTH =
23
+ * table length. One word per covered char: 0 = no branch,
24
+ * otherwise the child's offset from the END of the table,
25
+ * +1 (so 0 stays the no-branch sentinel).
26
+ * Dictionary JUMP_TABLE = 0, BRANCH_LENGTH = number of branches.
27
+ * ceil(n/2) words of sorted keys packed two per word
28
+ * (low byte first), then n pointer words storing the
29
+ * child's offset from the END of the branch data.
30
+ * Compact run VALUE_LENGTH = 0, FLAG13 set. BRANCH_LENGTH = run
31
+ * length (3..63), JUMP_TABLE = first char; remaining run
32
+ * chars packed two per word after the header. The target
33
+ * node follows the packed words immediately.
34
+ *
35
+ * Pointers are end-relative (rather than relative to the pointer's own
36
+ * position) because that makes the common "child encoded right after the
37
+ * branch data" case a small constant, which compresses far better. Offsets
38
+ * to already-encoded (shared) nodes wrap via uint16 modulo arithmetic; the
39
+ * decoder masks navigation results with `& 0xff_ff` to match.
40
+ */
41
+ var BinTrieFlags;
42
+ (function(BinTrieFlags) {
43
+ BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
44
+ BinTrieFlags[BinTrieFlags["FLAG13"] = 8192] = "FLAG13";
45
+ BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH";
46
+ BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
47
+ /** Bits 12..0: the inline value of a VALUE_LENGTH = 1 header word. */
48
+ BinTrieFlags[BinTrieFlags["VALUE_MASK"] = 8191] = "VALUE_MASK";
49
+ })(BinTrieFlags || (BinTrieFlags = {}));
50
+ export { BinTrieFlags };
@@ -0,0 +1,143 @@
1
+ // node_modules/entities/dist/internal/decode-shared.js
2
+ const BASE91_INVERSE = /* #__PURE__ */ (() => {
3
+ const table = /* @__PURE__ */ new Uint8Array(127);
4
+ let code = 0;
5
+ for (let char = 33; char <= 126; char++) if (char !== 34 && char !== 36 && char !== 92) table[char] = code++;
6
+ return table;
7
+ })();
8
+ /**
9
+ * Decode a dictionary-encoded trie string back into its Uint16Array.
10
+ *
11
+ * Stream layout (consumed in this order):
12
+ * 1. dict1 atoms — `dict1AtomCount` uint16 values, delta+RLE encoded.
13
+ * 2. dict2 atoms — `atomCount - dict1AtomCount` values, delta+RLE.
14
+ * 3. dict2 ngrams — `ngramCount - (dictSize - dict1AtomCount)` entries,
15
+ * each a pair of slot codes that resolve to earlier slots.
16
+ * 4. dict1 ngrams — `dictSize - dict1AtomCount` entries, same shape.
17
+ * 5. data — slot codes, each expanding to one or more uint16 values.
18
+ *
19
+ * Codes use a 91-char base (printable ASCII minus `"`, `$`, `\`):
20
+ * - char1 < dictSize → 1-char code, slot = char1
21
+ * - char1 ≥ dictSize → 2-char code, slot = dictSize + (char1 - dictSize)*91 + char2
22
+ *
23
+ * Slot index → token kind:
24
+ * [0, A) dict1 atoms (1-char codes)
25
+ * [A, dictSize) dict1 ngrams (1-char codes)
26
+ * [dictSize, dictSize+D) dict2 atoms (2-char codes)
27
+ * [dictSize+D, end) dict2 ngrams (2-char codes)
28
+ *
29
+ * Both atom dicts decode before any ngram, and dict2 ngrams decode before
30
+ * dict1 ngrams. So every ngram entry references slots whose contents are
31
+ * already filled — no forward references to handle.
32
+ *
33
+ * This runs on library import. Flat typed arrays store each slot as either
34
+ * a plain value (`single`, covering every atom) or a range in a shared
35
+ * `pool` (ngrams).
36
+ * @param input Packed trie string.
37
+ * @param resultLength Expected number of uint16 values in the output.
38
+ * @param atomCount Total number of distinct uint16 values in the trie.
39
+ * @param dict1AtomCount Atoms in the 1-char range (`A` above).
40
+ * @param ngramCount Total number of ngram entries (dict1 + dict2).
41
+ * @param dictSize Number of 1-char code slots; the rest of `BASE - dictSize`
42
+ * first-byte values are 2-char codes.
43
+ */
44
+ function decodeTrieDict(input, resultLength, atomCount, dict1AtomCount, ngramCount, dictSize) {
45
+ const base = 91;
46
+ const inputLength = input.length;
47
+ const twoCharBias = dictSize * 90;
48
+ let pos = 0;
49
+ /** Read one slot code at `pos` and return its slot index, advancing pos. */
50
+ const readSlotCode = () => {
51
+ const c1 = BASE91_INVERSE[input.charCodeAt(pos++)];
52
+ return c1 < dictSize ? c1 : c1 * base - twoCharBias + BASE91_INVERSE[input.charCodeAt(pos++)];
53
+ };
54
+ const dict2AtomCount = atomCount - dict1AtomCount;
55
+ const slotCount = atomCount + ngramCount;
56
+ const single = new Int32Array(slotCount);
57
+ single.fill(-1, dict1AtomCount, dictSize);
58
+ single.fill(-1, dictSize + dict2AtomCount, slotCount);
59
+ const start = new Int32Array(slotCount);
60
+ const length = new Int32Array(slotCount);
61
+ /**
62
+ * Decode `count` ascending uint16 values from a delta+RLE stream into
63
+ * `single[off..off+count)`.
64
+ *
65
+ * code < 89 → delta = code
66
+ * code == 89 → run-length: next char encodes runLength-2; emit `runLength` consecutive +1 values
67
+ * code == 90, next < 90 → escape: delta = 89 + next * BASE + after-next
68
+ * code == 90, next == 90 → double-escape: extra char for very large deltas
69
+ * @param count
70
+ * @param off
71
+ */
72
+ function decodeDelta(count, off) {
73
+ let previous = 0;
74
+ let slot = off;
75
+ const end = off + count;
76
+ while (slot < end) {
77
+ const code = BASE91_INVERSE[input.charCodeAt(pos++)];
78
+ if (code < 89) {
79
+ previous += code;
80
+ single[slot++] = previous;
81
+ } else if (code === 89) {
82
+ let runLength = BASE91_INVERSE[input.charCodeAt(pos++)] + 2;
83
+ while (runLength--) single[slot++] = ++previous;
84
+ } else {
85
+ const next = BASE91_INVERSE[input.charCodeAt(pos++)];
86
+ previous += 89 + (next < 90 ? next * base + BASE91_INVERSE[input.charCodeAt(pos++)] : BASE91_INVERSE[input.charCodeAt(pos++)] * 8281 + BASE91_INVERSE[input.charCodeAt(pos++)] * base + BASE91_INVERSE[input.charCodeAt(pos++)]);
87
+ single[slot++] = previous;
88
+ }
89
+ }
90
+ }
91
+ decodeDelta(dict1AtomCount, 0);
92
+ decodeDelta(dict2AtomCount, dictSize);
93
+ const references = new Int32Array(ngramCount * 2);
94
+ let poolSize = 0;
95
+ let ngramIndex = 0;
96
+ /**
97
+ * Read `count` ngram entries (each = 2 slot-code references) for the slots
98
+ * starting at `startSlot`, recording references and assigning pool ranges.
99
+ * @param count
100
+ * @param startSlot
101
+ */
102
+ function readNgramReferences(count, startSlot) {
103
+ for (let index = 0; index < count; index++) {
104
+ const slot = startSlot + index;
105
+ const a = readSlotCode();
106
+ const b = readSlotCode();
107
+ references[ngramIndex * 2] = a;
108
+ references[ngramIndex * 2 + 1] = b;
109
+ ngramIndex += 1;
110
+ start[slot] = poolSize;
111
+ const entryLength = (single[a] < 0 ? length[a] : 1) + (single[b] < 0 ? length[b] : 1);
112
+ length[slot] = entryLength;
113
+ poolSize += entryLength;
114
+ }
115
+ }
116
+ readNgramReferences(ngramCount - dictSize + dict1AtomCount, dictSize + dict2AtomCount);
117
+ readNgramReferences(dictSize - dict1AtomCount, dict1AtomCount);
118
+ const pool = new Uint16Array(poolSize);
119
+ let write = 0;
120
+ for (let index = 0; index < ngramIndex; index++) for (let half = 0; half < 2; half++) {
121
+ const source = references[index * 2 + half];
122
+ const value = single[source];
123
+ if (value < 0) {
124
+ let read = start[source];
125
+ const readEnd = read + length[source];
126
+ while (read < readEnd) pool[write++] = pool[read++];
127
+ } else pool[write++] = value;
128
+ }
129
+ const out = new Uint16Array(resultLength);
130
+ let outIndex = 0;
131
+ while (pos < inputLength) {
132
+ let slot = BASE91_INVERSE[input.charCodeAt(pos++)];
133
+ if (slot >= dictSize) slot = slot * base - twoCharBias + BASE91_INVERSE[input.charCodeAt(pos++)];
134
+ const value = single[slot];
135
+ if (value < 0) {
136
+ let read = start[slot];
137
+ const readEnd = read + length[slot];
138
+ while (read < readEnd) out[outIndex++] = pool[read++];
139
+ } else out[outIndex++] = value;
140
+ }
141
+ return out;
142
+ }
143
+ export { decodeTrieDict };
@@ -1,6 +1,5 @@
1
- //#region node_modules/trousse/dist/is.js
1
+ // node_modules/trousse/dist/is.js
2
2
  const isNullish = (value) => {
3
3
  return value == null;
4
4
  };
5
- //#endregion
6
5
  export { isNullish };
@@ -1,5 +1,5 @@
1
1
  import { isNullish } from "./is.mjs";
2
- //#region node_modules/trousse/dist/matching.js
2
+ // node_modules/trousse/dist/matching.js
3
3
  const testRegex = (regex, value) => {
4
4
  regex.lastIndex = 0;
5
5
  return regex.test(value);
@@ -7,21 +7,32 @@ const testRegex = (regex, value) => {
7
7
  const testRegexAnyCase = (regex, lowerValue, value) => {
8
8
  return testRegex(regex, lowerValue) || lowerValue !== value && testRegex(regex, value);
9
9
  };
10
+ const toPatternList = (patterns) => {
11
+ return typeof patterns === "string" || patterns instanceof RegExp ? [patterns] : patterns;
12
+ };
10
13
  const isAnyOf = (value, patterns, parser) => {
11
14
  if (isNullish(value)) return false;
12
15
  const parsedValue = parser ? parser(value) : value.toLowerCase().trim();
13
16
  const originalValue = parser ? parsedValue : value.trim();
14
- return (typeof patterns === "string" || patterns instanceof RegExp ? [patterns] : patterns).some((pattern) => {
17
+ return toPatternList(patterns).some((pattern) => {
15
18
  if (pattern instanceof RegExp) return testRegexAnyCase(pattern, parsedValue, originalValue);
16
19
  return parsedValue === (parser ? pattern : pattern.toLowerCase().trim());
17
20
  });
18
21
  };
22
+ const startsWithAnyOf = (value, patterns) => {
23
+ if (isNullish(value)) return false;
24
+ const lowerValue = value.toLowerCase();
25
+ return toPatternList(patterns).some((pattern) => {
26
+ if (pattern instanceof RegExp) return testRegexAnyCase(pattern, lowerValue, value);
27
+ return pattern && lowerValue.startsWith(pattern.toLowerCase());
28
+ });
29
+ };
19
30
  const endsWithAnyOf = (value, patterns) => {
31
+ if (isNullish(value)) return false;
20
32
  const lowerValue = value.toLowerCase();
21
- return patterns.some((pattern) => {
33
+ return toPatternList(patterns).some((pattern) => {
22
34
  if (pattern instanceof RegExp) return testRegexAnyCase(pattern, lowerValue, value);
23
35
  return pattern && lowerValue.endsWith(pattern.toLowerCase());
24
36
  });
25
37
  };
26
- //#endregion
27
- export { endsWithAnyOf, isAnyOf };
38
+ export { endsWithAnyOf, isAnyOf, startsWithAnyOf };