roxxie-proxy-u-prod 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +123 -0
  3. package/SOURCE.md +29 -0
  4. package/THIRD_PARTY_NOTICES.md +24 -0
  5. package/dist/assets/filters-Bu_3nHVy.bin +0 -0
  6. package/dist/assets/index-BdRlQ7d_.css +1 -0
  7. package/dist/assets/index-DcvPYWS3.js +3621 -0
  8. package/dist/assets/inject-BnVzMVpl.js +40 -0
  9. package/dist/assets/scramjet-C9HLwI-y.wasm +0 -0
  10. package/dist/defaultfavicon.png +0 -0
  11. package/dist/icon.png +0 -0
  12. package/dist/roxxie-icon.svg +12 -0
  13. package/embed.js +70 -0
  14. package/examples/single-page.html +25 -0
  15. package/package.json +42 -0
  16. package/runtime/controller.sw.js +273 -0
  17. package/runtime/index.html +18 -0
  18. package/runtime/localcontrollersw.js +7 -0
  19. package/runtime/roxxie-network.json +13 -0
  20. package/runtime/sw.js +6 -0
  21. package/scripts/build.mjs +344 -0
  22. package/scripts/smoke.mjs +123 -0
  23. package/scripts/verify.mjs +122 -0
  24. package/source/external/dreamlandjs/LICENSE +21 -0
  25. package/source/external/dreamlandjs/README.md +22 -0
  26. package/source/external/dreamlandjs/dist/core.d.ts +167 -0
  27. package/source/external/dreamlandjs/dist/core.js +2 -0
  28. package/source/external/dreamlandjs/dist/core.js.map +1 -0
  29. package/source/external/dreamlandjs/dist/core.size.html +4950 -0
  30. package/source/external/dreamlandjs/dist/js-runtime.d.ts +3 -0
  31. package/source/external/dreamlandjs/dist/js-runtime.js +2 -0
  32. package/source/external/dreamlandjs/dist/js-runtime.js.map +1 -0
  33. package/source/external/dreamlandjs/dist/jsx-runtime.d.ts +1 -0
  34. package/source/external/dreamlandjs/dist/jsx-runtime.js +2 -0
  35. package/source/external/dreamlandjs/dist/jsx-runtime.js.map +1 -0
  36. package/source/external/dreamlandjs/dist/motion.d.ts +19 -0
  37. package/source/external/dreamlandjs/dist/motion.js +2 -0
  38. package/source/external/dreamlandjs/dist/motion.js.map +1 -0
  39. package/source/external/dreamlandjs/dist/router.d.ts +48 -0
  40. package/source/external/dreamlandjs/dist/router.js +2 -0
  41. package/source/external/dreamlandjs/dist/router.js.map +1 -0
  42. package/source/external/dreamlandjs/dist/ssr.client.d.ts +3 -0
  43. package/source/external/dreamlandjs/dist/ssr.client.js +2 -0
  44. package/source/external/dreamlandjs/dist/ssr.client.js.map +1 -0
  45. package/source/external/dreamlandjs/dist/ssr.client.size.html +4950 -0
  46. package/source/external/dreamlandjs/dist/ssr.hybrid.d.ts +7 -0
  47. package/source/external/dreamlandjs/dist/ssr.hybrid.js +2 -0
  48. package/source/external/dreamlandjs/dist/ssr.hybrid.js.map +1 -0
  49. package/source/external/dreamlandjs/dist/ssr.hybrid.size.html +4950 -0
  50. package/source/external/dreamlandjs/dist/ssr.server.d.ts +11 -0
  51. package/source/external/dreamlandjs/dist/ssr.server.js +2373 -0
  52. package/source/external/dreamlandjs/dist/ssr.server.js.map +1 -0
  53. package/source/external/dreamlandjs/dist/types/core/consts.d.ts +16 -0
  54. package/source/external/dreamlandjs/dist/types/core/css/index.d.ts +11 -0
  55. package/source/external/dreamlandjs/dist/types/core/css/selectorParser.d.ts +50 -0
  56. package/source/external/dreamlandjs/dist/types/core/delegate.d.ts +10 -0
  57. package/source/external/dreamlandjs/dist/types/core/index.d.ts +9 -0
  58. package/source/external/dreamlandjs/dist/types/core/jsx/child.d.ts +2 -0
  59. package/source/external/dreamlandjs/dist/types/core/jsx/definitions.d.ts +76 -0
  60. package/source/external/dreamlandjs/dist/types/core/jsx/dom.d.ts +28 -0
  61. package/source/external/dreamlandjs/dist/types/core/jsx/index.d.ts +14 -0
  62. package/source/external/dreamlandjs/dist/types/core/state/index.d.ts +1 -0
  63. package/source/external/dreamlandjs/dist/types/core/state/pointers.d.ts +37 -0
  64. package/source/external/dreamlandjs/dist/types/core/state/state.d.ts +13 -0
  65. package/source/external/dreamlandjs/dist/types/core/state/use.d.ts +11 -0
  66. package/source/external/dreamlandjs/dist/types/core/utils.d.ts +4 -0
  67. package/source/external/dreamlandjs/dist/types/js-runtime/index.d.ts +1 -0
  68. package/source/external/dreamlandjs/dist/types/jsx-runtime/index.d.ts +2 -0
  69. package/source/external/dreamlandjs/dist/types/motion/index.d.ts +15 -0
  70. package/source/external/dreamlandjs/dist/types/router/index.d.ts +45 -0
  71. package/source/external/dreamlandjs/dist/types/ssr/client/index.d.ts +1 -0
  72. package/source/external/dreamlandjs/dist/types/ssr/common/consts.d.ts +4 -0
  73. package/source/external/dreamlandjs/dist/types/ssr/common/serialize.d.ts +4 -0
  74. package/source/external/dreamlandjs/dist/types/ssr/common/types.d.ts +21 -0
  75. package/source/external/dreamlandjs/dist/types/ssr/hybrid/index.d.ts +4 -0
  76. package/source/external/dreamlandjs/dist/types/ssr/server/index.d.ts +7 -0
  77. package/source/external/dreamlandjs/dist/types/ssr/server/vdom.d.ts +71 -0
  78. package/source/external/dreamlandjs/dist/types/util/index.d.ts +1 -0
  79. package/source/external/dreamlandjs/dist/types/util/store.d.ts +26 -0
  80. package/source/external/dreamlandjs/dist/types/vite/css-minifier.d.ts +7 -0
  81. package/source/external/dreamlandjs/dist/types/vite/index.d.ts +11 -0
  82. package/source/external/dreamlandjs/dist/util.d.ts +29 -0
  83. package/source/external/dreamlandjs/dist/util.js +2 -0
  84. package/source/external/dreamlandjs/dist/util.js.map +1 -0
  85. package/source/external/dreamlandjs/dist/vite.d.ts +19 -0
  86. package/source/external/dreamlandjs/dist/vite.js +2 -0
  87. package/source/external/dreamlandjs/dist/vite.js.map +1 -0
  88. package/source/external/dreamlandjs/package.json +101 -0
  89. package/source/external/dreamlandjs/rollup.config.ts +302 -0
  90. package/source/external/dreamlandjs/rollup.plugins.ts +1134 -0
  91. package/source/external/dreamlandjs/src/core/consts.d.ts +16 -0
  92. package/source/external/dreamlandjs/src/core/consts.js +18 -0
  93. package/source/external/dreamlandjs/src/core/css/index.ts +111 -0
  94. package/source/external/dreamlandjs/src/core/css/selectorParser.ts +313 -0
  95. package/source/external/dreamlandjs/src/core/delegate.ts +28 -0
  96. package/source/external/dreamlandjs/src/core/index.ts +31 -0
  97. package/source/external/dreamlandjs/src/core/jsx/child.ts +91 -0
  98. package/source/external/dreamlandjs/src/core/jsx/definitions.ts +125 -0
  99. package/source/external/dreamlandjs/src/core/jsx/dom.ts +49 -0
  100. package/source/external/dreamlandjs/src/core/jsx/index.ts +289 -0
  101. package/source/external/dreamlandjs/src/core/state/index.ts +1 -0
  102. package/source/external/dreamlandjs/src/core/state/pointers.ts +310 -0
  103. package/source/external/dreamlandjs/src/core/state/state.ts +112 -0
  104. package/source/external/dreamlandjs/src/core/state/use.ts +82 -0
  105. package/source/external/dreamlandjs/src/core/utils.ts +48 -0
  106. package/source/external/dreamlandjs/src/js-runtime/index.ts +4 -0
  107. package/source/external/dreamlandjs/src/jsx-runtime/index.ts +3 -0
  108. package/source/external/dreamlandjs/src/motion/index.ts +156 -0
  109. package/source/external/dreamlandjs/src/router/index.tsx +394 -0
  110. package/source/external/dreamlandjs/src/router/tsconfig.json +9 -0
  111. package/source/external/dreamlandjs/src/ssr/client/index.ts +193 -0
  112. package/source/external/dreamlandjs/src/ssr/common/consts.ts +5 -0
  113. package/source/external/dreamlandjs/src/ssr/common/serialize.ts +115 -0
  114. package/source/external/dreamlandjs/src/ssr/common/types.ts +28 -0
  115. package/source/external/dreamlandjs/src/ssr/hybrid/index.ts +144 -0
  116. package/source/external/dreamlandjs/src/ssr/server/index.ts +157 -0
  117. package/source/external/dreamlandjs/src/ssr/server/tsconfig.json +7 -0
  118. package/source/external/dreamlandjs/src/ssr/server/vdom.ts +285 -0
  119. package/source/external/dreamlandjs/src/util/index.ts +10 -0
  120. package/source/external/dreamlandjs/src/util/store.ts +134 -0
  121. package/source/external/dreamlandjs/src/vite/css-minifier.ts +222 -0
  122. package/source/external/dreamlandjs/src/vite/index.ts +60 -0
  123. package/source/external/dreamlandjs/src/vite/tsconfig.json +7 -0
  124. package/source/external/dreamlandjs/tsconfig.json +15 -0
  125. package/source/package.json +48 -0
  126. package/source/packages/adrift-protocol/package.json +31 -0
  127. package/source/packages/adrift-protocol/src/index.ts +348 -0
  128. package/source/packages/adrift-protocol/tsconfig.json +18 -0
  129. package/source/packages/cdp/LICENSE +21 -0
  130. package/source/packages/cdp/README.md +47 -0
  131. package/source/packages/cdp/dist/chobitsu.js +2 -0
  132. package/source/packages/cdp/dist/chobitsu.js.map +1 -0
  133. package/source/packages/cdp/package.json +73 -0
  134. package/source/packages/cdp/script/build.js +15 -0
  135. package/source/packages/cdp/src/Chobitsu.ts +110 -0
  136. package/source/packages/cdp/src/domains/CSS.ts +378 -0
  137. package/source/packages/cdp/src/domains/CacheStorage.ts +8 -0
  138. package/source/packages/cdp/src/domains/DOM.ts +487 -0
  139. package/source/packages/cdp/src/domains/DOMDebugger.ts +109 -0
  140. package/source/packages/cdp/src/domains/DOMStorage.ts +122 -0
  141. package/source/packages/cdp/src/domains/Debugger.ts +25 -0
  142. package/source/packages/cdp/src/domains/IndexedDB.ts +207 -0
  143. package/source/packages/cdp/src/domains/Input.ts +177 -0
  144. package/source/packages/cdp/src/domains/Network.ts +251 -0
  145. package/source/packages/cdp/src/domains/Overlay.ts +230 -0
  146. package/source/packages/cdp/src/domains/Page.ts +296 -0
  147. package/source/packages/cdp/src/domains/Runtime.ts +273 -0
  148. package/source/packages/cdp/src/domains/Storage.ts +71 -0
  149. package/source/packages/cdp/src/index.d.ts +8 -0
  150. package/source/packages/cdp/src/index.ts +153 -0
  151. package/source/packages/cdp/src/lib/connector.ts +15 -0
  152. package/source/packages/cdp/src/lib/constants.ts +1 -0
  153. package/source/packages/cdp/src/lib/evaluate.ts +59 -0
  154. package/source/packages/cdp/src/lib/mutationObserver.ts +39 -0
  155. package/source/packages/cdp/src/lib/nodeManager.ts +142 -0
  156. package/source/packages/cdp/src/lib/objManager.ts +422 -0
  157. package/source/packages/cdp/src/lib/request.ts +313 -0
  158. package/source/packages/cdp/src/lib/resources.ts +59 -0
  159. package/source/packages/cdp/src/lib/scriptMananger.ts +62 -0
  160. package/source/packages/cdp/src/lib/stylesheet.ts +146 -0
  161. package/source/packages/cdp/src/lib/util.ts +105 -0
  162. package/source/packages/cdp/tsconfig.json +16 -0
  163. package/source/packages/cdp/webpack.config.js +48 -0
  164. package/source/packages/chrome/index.html +17 -0
  165. package/source/packages/chrome/package.json +41 -0
  166. package/source/packages/chrome/public/ROXXIE_NETWORK.md +22 -0
  167. package/source/packages/chrome/public/controller.sw.js +273 -0
  168. package/source/packages/chrome/public/defaultfavicon.png +0 -0
  169. package/source/packages/chrome/public/icon.png +0 -0
  170. package/source/packages/chrome/public/localcontrollersw.js +7 -0
  171. package/source/packages/chrome/public/roxxie-icon.svg +12 -0
  172. package/source/packages/chrome/public/roxxie-network.json +13 -0
  173. package/source/packages/chrome/public/sw.js +6 -0
  174. package/source/packages/chrome/src/App.tsx +269 -0
  175. package/source/packages/chrome/src/CDP.ts +285 -0
  176. package/source/packages/chrome/src/Tab/History.ts +186 -0
  177. package/source/packages/chrome/src/Tab/Tab.tsx +219 -0
  178. package/source/packages/chrome/src/Tab/screenshot.ts +66 -0
  179. package/source/packages/chrome/src/Tab/serialize.ts +221 -0
  180. package/source/packages/chrome/src/adblock/AdBlockPlugin.test.ts +159 -0
  181. package/source/packages/chrome/src/adblock/AdBlockPlugin.ts +232 -0
  182. package/source/packages/chrome/src/adblock/AdBlockService.test.ts +148 -0
  183. package/source/packages/chrome/src/adblock/AdBlockService.ts +166 -0
  184. package/source/packages/chrome/src/adblock/NOTICE.md +14 -0
  185. package/source/packages/chrome/src/adblock/assets/filters.bin +0 -0
  186. package/source/packages/chrome/src/adblock/index.ts +18 -0
  187. package/source/packages/chrome/src/assets/favicon.ts +4 -0
  188. package/source/packages/chrome/src/components/BookmarkPopup.tsx +101 -0
  189. package/source/packages/chrome/src/components/BookmarksStrip.tsx +150 -0
  190. package/source/packages/chrome/src/components/Button.tsx +99 -0
  191. package/source/packages/chrome/src/components/Checkbox.tsx +89 -0
  192. package/source/packages/chrome/src/components/DownloadsPopup.tsx +230 -0
  193. package/source/packages/chrome/src/components/Favicon.tsx +65 -0
  194. package/source/packages/chrome/src/components/Icon.tsx +29 -0
  195. package/source/packages/chrome/src/components/Input.tsx +82 -0
  196. package/source/packages/chrome/src/components/Menu.tsx +287 -0
  197. package/source/packages/chrome/src/components/Omnibar/BookmarkButton.tsx +73 -0
  198. package/source/packages/chrome/src/components/Omnibar/CircularProgress.tsx +83 -0
  199. package/source/packages/chrome/src/components/Omnibar/Omnibar.tsx +455 -0
  200. package/source/packages/chrome/src/components/Omnibar/OmnibarButton.tsx +48 -0
  201. package/source/packages/chrome/src/components/Omnibar/Omnibox.tsx +466 -0
  202. package/source/packages/chrome/src/components/Omnibar/SiteOptionsButton.tsx +52 -0
  203. package/source/packages/chrome/src/components/Omnibar/Suggestion.tsx +186 -0
  204. package/source/packages/chrome/src/components/Omnibar/UrlInput.tsx +198 -0
  205. package/source/packages/chrome/src/components/Omnibar/suggestions.ts +468 -0
  206. package/source/packages/chrome/src/components/Omnibar/utils.ts +11 -0
  207. package/source/packages/chrome/src/components/ReportBrokenSiteModal.tsx +279 -0
  208. package/source/packages/chrome/src/components/Shell.tsx +191 -0
  209. package/source/packages/chrome/src/components/SiteInformationPopup.tsx +96 -0
  210. package/source/packages/chrome/src/components/SmallIconButton.tsx +36 -0
  211. package/source/packages/chrome/src/components/StartScreen.tsx +386 -0
  212. package/source/packages/chrome/src/components/TabStrip/DragTab.tsx +546 -0
  213. package/source/packages/chrome/src/components/TabStrip/Sidebar.tsx +820 -0
  214. package/source/packages/chrome/src/components/TabStrip/TabHoverCard.tsx +87 -0
  215. package/source/packages/chrome/src/components/TabStrip/TabStrip.tsx +510 -0
  216. package/source/packages/chrome/src/components/TopSiteButton.tsx +234 -0
  217. package/source/packages/chrome/src/consts.ts +3 -0
  218. package/source/packages/chrome/src/icons.ts +70 -0
  219. package/source/packages/chrome/src/index.ts +168 -0
  220. package/source/packages/chrome/src/migrations/0-from-legacy.ts +6 -0
  221. package/source/packages/chrome/src/migrations/1-vertical-tab-settings.ts +15 -0
  222. package/source/packages/chrome/src/migrations/index.ts +42 -0
  223. package/source/packages/chrome/src/pages/AboutPage.tsx +37 -0
  224. package/source/packages/chrome/src/pages/DownloadsPage.tsx +133 -0
  225. package/source/packages/chrome/src/pages/HistoryPage.tsx +99 -0
  226. package/source/packages/chrome/src/pages/NewTabPage.tsx +264 -0
  227. package/source/packages/chrome/src/pages/PlaygroundPage.tsx +43 -0
  228. package/source/packages/chrome/src/pages/SettingsPage.tsx +1931 -0
  229. package/source/packages/chrome/src/proxy/Controller.ts +331 -0
  230. package/source/packages/chrome/src/proxy/ProxyFrame.ts +26 -0
  231. package/source/packages/chrome/src/proxy/cache.ts +487 -0
  232. package/source/packages/chrome/src/proxy/codec.ts +11 -0
  233. package/source/packages/chrome/src/proxy/contextitems.ts +180 -0
  234. package/source/packages/chrome/src/proxy/index.ts +5 -0
  235. package/source/packages/chrome/src/proxy/roxxie.ts +85 -0
  236. package/source/packages/chrome/src/proxy/scramjet.ts +642 -0
  237. package/source/packages/chrome/src/reset.css +124 -0
  238. package/source/packages/chrome/src/runtime-base.ts +16 -0
  239. package/source/packages/chrome/src/sentry.tsx +45 -0
  240. package/source/packages/chrome/src/services/DownloadsService.ts +136 -0
  241. package/source/packages/chrome/src/services/FaviconService.ts +161 -0
  242. package/source/packages/chrome/src/services/KVWrapper.ts +169 -0
  243. package/source/packages/chrome/src/services/ProfileService.ts +94 -0
  244. package/source/packages/chrome/src/services/Service.ts +10 -0
  245. package/source/packages/chrome/src/services/SettingsService.ts +108 -0
  246. package/source/packages/chrome/src/services/TabsService.ts +161 -0
  247. package/source/packages/chrome/src/startup.test.ts +129 -0
  248. package/source/packages/chrome/src/startup.ts +161 -0
  249. package/source/packages/chrome/src/style.css +229 -0
  250. package/source/packages/chrome/src/themes.ts +756 -0
  251. package/source/packages/chrome/src/util/StatefulClass.ts +31 -0
  252. package/source/packages/chrome/src/util/index.ts +74 -0
  253. package/source/packages/chrome/src/util/memoize.ts +13 -0
  254. package/source/packages/chrome/src/vite-env.d.ts +16 -0
  255. package/source/packages/chrome/tsconfig.json +30 -0
  256. package/source/packages/chrome/vite.config.ts +47 -0
  257. package/source/packages/inject/package.json +20 -0
  258. package/source/packages/inject/src/context.ts +194 -0
  259. package/source/packages/inject/src/emulators/alwaysLastBubble.ts +168 -0
  260. package/source/packages/inject/src/emulators/anchors.ts +55 -0
  261. package/source/packages/inject/src/emulators/contextmenu.ts +46 -0
  262. package/source/packages/inject/src/emulators/history.ts +51 -0
  263. package/source/packages/inject/src/emulators/titlewatcher.ts +42 -0
  264. package/source/packages/inject/src/emulators/windowopen.ts +134 -0
  265. package/source/packages/inject/src/errorpage/errorpage.css +234 -0
  266. package/source/packages/inject/src/errorpage/errorpage.html +29 -0
  267. package/source/packages/inject/src/errorpage/errorpage.ts +76 -0
  268. package/source/packages/inject/src/index.ts +62 -0
  269. package/source/packages/inject/src/transport.ts +97 -0
  270. package/source/packages/inject/src/types.d.ts +136 -0
  271. package/source/packages/roxxie-transport/package.json +36 -0
  272. package/source/packages/roxxie-transport/src/binary.ts +398 -0
  273. package/source/packages/roxxie-transport/src/config.ts +254 -0
  274. package/source/packages/roxxie-transport/src/connection.ts +767 -0
  275. package/source/packages/roxxie-transport/src/index.ts +5 -0
  276. package/source/packages/roxxie-transport/src/tracker.ts +651 -0
  277. package/source/packages/roxxie-transport/src/transport.ts +414 -0
  278. package/source/packages/roxxie-transport/tsconfig.json +18 -0
  279. package/source/packages/scramjet/packages/controller/package.json +37 -0
  280. package/source/packages/scramjet/packages/controller/src/index.ts +861 -0
  281. package/source/packages/scramjet/packages/controller/src/inject.ts +365 -0
  282. package/source/packages/scramjet/packages/controller/src/sw.ts +231 -0
  283. package/source/packages/scramjet/packages/controller/src/symbols.ts +1 -0
  284. package/source/packages/scramjet/packages/controller/src/types.d.ts +140 -0
  285. package/source/packages/scramjet/packages/controller/src/typesEntry.ts +6 -0
  286. package/source/packages/scramjet/packages/controller/src/version.ts +30 -0
  287. package/source/packages/scramjet/packages/controller/tsconfig.json +24 -0
  288. package/source/packages/scramjet/packages/core/dist/scramjet-external.mjs +57 -0
  289. package/source/packages/scramjet/packages/core/dist/scramjet.js +13599 -0
  290. package/source/packages/scramjet/packages/core/dist/scramjet.js.map +1 -0
  291. package/source/packages/scramjet/packages/core/dist/scramjet.mjs +13649 -0
  292. package/source/packages/scramjet/packages/core/dist/scramjet.mjs.map +1 -0
  293. package/source/packages/scramjet/packages/core/dist/scramjet.wasm +0 -0
  294. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js +13601 -0
  295. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.js.map +1 -0
  296. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs +13651 -0
  297. package/source/packages/scramjet/packages/core/dist/scramjet_bundled.mjs.map +1 -0
  298. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js +23 -0
  299. package/source/packages/scramjet/packages/core/dist/temp-types-build/index.js.map +1 -0
  300. package/source/packages/scramjet/packages/core/dist/types/Tap.d.ts +39 -0
  301. package/source/packages/scramjet/packages/core/dist/types/client/client.d.ts +115 -0
  302. package/source/packages/scramjet/packages/core/dist/types/client/entry.d.ts +5 -0
  303. package/source/packages/scramjet/packages/core/dist/types/client/events.d.ts +10 -0
  304. package/source/packages/scramjet/packages/core/dist/types/client/helpers.d.ts +1 -0
  305. package/source/packages/scramjet/packages/core/dist/types/client/index.d.ts +7 -0
  306. package/source/packages/scramjet/packages/core/dist/types/client/location.d.ts +2 -0
  307. package/source/packages/scramjet/packages/core/dist/types/client/shared/eval.d.ts +3 -0
  308. package/source/packages/scramjet/packages/core/dist/types/client/shared/sourcemaps.d.ts +19 -0
  309. package/source/packages/scramjet/packages/core/dist/types/client/shared/wrap.d.ts +4 -0
  310. package/source/packages/scramjet/packages/core/dist/types/client/singletonbox.d.ts +18 -0
  311. package/source/packages/scramjet/packages/core/dist/types/fetch/body.d.ts +3 -0
  312. package/source/packages/scramjet/packages/core/dist/types/fetch/fetch.d.ts +7 -0
  313. package/source/packages/scramjet/packages/core/dist/types/fetch/headers.d.ts +19 -0
  314. package/source/packages/scramjet/packages/core/dist/types/fetch/index.d.ts +128 -0
  315. package/source/packages/scramjet/packages/core/dist/types/fetch/parse.d.ts +23 -0
  316. package/source/packages/scramjet/packages/core/dist/types/fetch/util.d.ts +7 -0
  317. package/source/packages/scramjet/packages/core/dist/types/index.d.ts +12 -0
  318. package/source/packages/scramjet/packages/core/dist/types/shared/cookie.d.ts +26 -0
  319. package/source/packages/scramjet/packages/core/dist/types/shared/headers.d.ts +13 -0
  320. package/source/packages/scramjet/packages/core/dist/types/shared/htmlRules.d.ts +6 -0
  321. package/source/packages/scramjet/packages/core/dist/types/shared/index.d.ts +50 -0
  322. package/source/packages/scramjet/packages/core/dist/types/shared/mime.d.ts +53 -0
  323. package/source/packages/scramjet/packages/core/dist/types/shared/refresh.d.ts +7 -0
  324. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/css.d.ts +4 -0
  325. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/html.d.ts +33 -0
  326. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/index.d.ts +6 -0
  327. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/js.d.ts +11 -0
  328. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/url.d.ts +24 -0
  329. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/wasm.d.ts +7 -0
  330. package/source/packages/scramjet/packages/core/dist/types/shared/rewriters/worker.d.ts +3 -0
  331. package/source/packages/scramjet/packages/core/dist/types/shared/set-cookie-parser.d.ts +20 -0
  332. package/source/packages/scramjet/packages/core/dist/types/shared/snapshot.d.ts +186 -0
  333. package/source/packages/scramjet/packages/core/dist/types/shared/sniffEncoding.d.ts +65 -0
  334. package/source/packages/scramjet/packages/core/dist/types/shared/util.d.ts +2 -0
  335. package/source/packages/scramjet/packages/core/dist/types/symbols.d.ts +6 -0
  336. package/source/packages/scramjet/packages/core/dist/types/types.d.ts +60 -0
  337. package/source/packages/scramjet/packages/core/dist/types/typesEntry.d.ts +5 -0
  338. package/source/packages/scramjet/packages/core/lib/index.cjs +7 -0
  339. package/source/packages/scramjet/packages/core/lib/index.d.ts +8 -0
  340. package/source/packages/scramjet/packages/core/package.json +69 -0
  341. package/source/packages/scramjet/packages/core/rewriter/Cargo.lock +1985 -0
  342. package/source/packages/scramjet/packages/core/rewriter/Cargo.toml +20 -0
  343. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/Cargo.toml +15 -0
  344. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/analyze.rs +1118 -0
  345. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/ast_table.rs +927 -0
  346. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/helper_index.rs +556 -0
  347. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/lib.rs +455 -0
  348. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/reachability.rs +85 -0
  349. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/templates.rs +192 -0
  350. package/source/packages/scramjet/packages/core/rewriter/coverage-macro/src/witness.rs +597 -0
  351. package/source/packages/scramjet/packages/core/rewriter/js/Cargo.toml +18 -0
  352. package/source/packages/scramjet/packages/core/rewriter/js/src/cfg.rs +45 -0
  353. package/source/packages/scramjet/packages/core/rewriter/js/src/changes.rs +379 -0
  354. package/source/packages/scramjet/packages/core/rewriter/js/src/lib.rs +171 -0
  355. package/source/packages/scramjet/packages/core/rewriter/js/src/rewrite.rs +290 -0
  356. package/source/packages/scramjet/packages/core/rewriter/js/src/visitor.rs +967 -0
  357. package/source/packages/scramjet/packages/core/rewriter/native/Cargo.toml +22 -0
  358. package/source/packages/scramjet/packages/core/rewriter/native/src/main.rs +166 -0
  359. package/source/packages/scramjet/packages/core/rewriter/native/src/rewriter.rs +161 -0
  360. package/source/packages/scramjet/packages/core/rewriter/native/src/test_runner.rs +156 -0
  361. package/source/packages/scramjet/packages/core/rewriter/rust-toolchain.toml +5 -0
  362. package/source/packages/scramjet/packages/core/rewriter/rustfmt.toml +2 -0
  363. package/source/packages/scramjet/packages/core/rewriter/transform/Cargo.toml +16 -0
  364. package/source/packages/scramjet/packages/core/rewriter/transform/src/lib.rs +242 -0
  365. package/source/packages/scramjet/packages/core/rewriter/transform/src/transform.rs +123 -0
  366. package/source/packages/scramjet/packages/core/rewriter/wasm/Cargo.toml +22 -0
  367. package/source/packages/scramjet/packages/core/rewriter/wasm/build.sh +128 -0
  368. package/source/packages/scramjet/packages/core/rewriter/wasm/src/error.rs +56 -0
  369. package/source/packages/scramjet/packages/core/rewriter/wasm/src/jsr.rs +125 -0
  370. package/source/packages/scramjet/packages/core/rewriter/wasm/src/lib.rs +144 -0
  371. package/source/packages/scramjet/packages/core/src/Tap.ts +166 -0
  372. package/source/packages/scramjet/packages/core/src/client/client.ts +916 -0
  373. package/source/packages/scramjet/packages/core/src/client/dom/attr.ts +94 -0
  374. package/source/packages/scramjet/packages/core/src/client/dom/beacon.ts +11 -0
  375. package/source/packages/scramjet/packages/core/src/client/dom/cookie.ts +21 -0
  376. package/source/packages/scramjet/packages/core/src/client/dom/css.ts +106 -0
  377. package/source/packages/scramjet/packages/core/src/client/dom/document.ts +140 -0
  378. package/source/packages/scramjet/packages/core/src/client/dom/element.ts +783 -0
  379. package/source/packages/scramjet/packages/core/src/client/dom/fontface.ts +11 -0
  380. package/source/packages/scramjet/packages/core/src/client/dom/fragments.ts +32 -0
  381. package/source/packages/scramjet/packages/core/src/client/dom/history.ts +35 -0
  382. package/source/packages/scramjet/packages/core/src/client/dom/open.ts +59 -0
  383. package/source/packages/scramjet/packages/core/src/client/dom/origin.ts +13 -0
  384. package/source/packages/scramjet/packages/core/src/client/dom/performance.ts +50 -0
  385. package/source/packages/scramjet/packages/core/src/client/dom/protocol.ts +17 -0
  386. package/source/packages/scramjet/packages/core/src/client/dom/storage.ts +107 -0
  387. package/source/packages/scramjet/packages/core/src/client/entry.ts +12 -0
  388. package/source/packages/scramjet/packages/core/src/client/events.ts +10 -0
  389. package/source/packages/scramjet/packages/core/src/client/helpers.ts +7 -0
  390. package/source/packages/scramjet/packages/core/src/client/index.ts +7 -0
  391. package/source/packages/scramjet/packages/core/src/client/location.ts +139 -0
  392. package/source/packages/scramjet/packages/core/src/client/shared/antiantidebugger.ts +20 -0
  393. package/source/packages/scramjet/packages/core/src/client/shared/blob.ts +35 -0
  394. package/source/packages/scramjet/packages/core/src/client/shared/caches.ts +31 -0
  395. package/source/packages/scramjet/packages/core/src/client/shared/chrome.ts +90 -0
  396. package/source/packages/scramjet/packages/core/src/client/shared/err.ts +55 -0
  397. package/source/packages/scramjet/packages/core/src/client/shared/error.ts +42 -0
  398. package/source/packages/scramjet/packages/core/src/client/shared/eval.ts +40 -0
  399. package/source/packages/scramjet/packages/core/src/client/shared/event.ts +215 -0
  400. package/source/packages/scramjet/packages/core/src/client/shared/function.ts +59 -0
  401. package/source/packages/scramjet/packages/core/src/client/shared/import.ts +46 -0
  402. package/source/packages/scramjet/packages/core/src/client/shared/indexeddb.ts +18 -0
  403. package/source/packages/scramjet/packages/core/src/client/shared/opfs.ts +27 -0
  404. package/source/packages/scramjet/packages/core/src/client/shared/postmessage.ts +113 -0
  405. package/source/packages/scramjet/packages/core/src/client/shared/realm.ts +26 -0
  406. package/source/packages/scramjet/packages/core/src/client/shared/requests/eventsource.ts +17 -0
  407. package/source/packages/scramjet/packages/core/src/client/shared/requests/fetch.ts +67 -0
  408. package/source/packages/scramjet/packages/core/src/client/shared/requests/websocket.ts +389 -0
  409. package/source/packages/scramjet/packages/core/src/client/shared/requests/xmlhttprequest.ts +163 -0
  410. package/source/packages/scramjet/packages/core/src/client/shared/settimeout.ts +20 -0
  411. package/source/packages/scramjet/packages/core/src/client/shared/sourcemaps.ts +203 -0
  412. package/source/packages/scramjet/packages/core/src/client/shared/worker.ts +72 -0
  413. package/source/packages/scramjet/packages/core/src/client/shared/wrap.ts +197 -0
  414. package/source/packages/scramjet/packages/core/src/client/singletonbox.ts +52 -0
  415. package/source/packages/scramjet/packages/core/src/client/worker/importScripts.ts +13 -0
  416. package/source/packages/scramjet/packages/core/src/fetch/body.ts +93 -0
  417. package/source/packages/scramjet/packages/core/src/fetch/fetch.ts +323 -0
  418. package/source/packages/scramjet/packages/core/src/fetch/headers.ts +528 -0
  419. package/source/packages/scramjet/packages/core/src/fetch/index.ts +198 -0
  420. package/source/packages/scramjet/packages/core/src/fetch/parse.ts +149 -0
  421. package/source/packages/scramjet/packages/core/src/fetch/util.ts +81 -0
  422. package/source/packages/scramjet/packages/core/src/global.d.ts +32 -0
  423. package/source/packages/scramjet/packages/core/src/index.ts +78 -0
  424. package/source/packages/scramjet/packages/core/src/log.ts +117 -0
  425. package/source/packages/scramjet/packages/core/src/shared/cookie.ts +199 -0
  426. package/source/packages/scramjet/packages/core/src/shared/headers.ts +76 -0
  427. package/source/packages/scramjet/packages/core/src/shared/htmlRules.ts +154 -0
  428. package/source/packages/scramjet/packages/core/src/shared/index.ts +79 -0
  429. package/source/packages/scramjet/packages/core/src/shared/mime.ts +234 -0
  430. package/source/packages/scramjet/packages/core/src/shared/refresh.ts +164 -0
  431. package/source/packages/scramjet/packages/core/src/shared/rewriters/css.ts +67 -0
  432. package/source/packages/scramjet/packages/core/src/shared/rewriters/html.ts +603 -0
  433. package/source/packages/scramjet/packages/core/src/shared/rewriters/index.ts +6 -0
  434. package/source/packages/scramjet/packages/core/src/shared/rewriters/js.ts +158 -0
  435. package/source/packages/scramjet/packages/core/src/shared/rewriters/url.ts +248 -0
  436. package/source/packages/scramjet/packages/core/src/shared/rewriters/wasm.ts +58 -0
  437. package/source/packages/scramjet/packages/core/src/shared/rewriters/worker.ts +37 -0
  438. package/source/packages/scramjet/packages/core/src/shared/set-cookie-parser.ts +195 -0
  439. package/source/packages/scramjet/packages/core/src/shared/snapshot.ts +245 -0
  440. package/source/packages/scramjet/packages/core/src/shared/sniffEncoding.ts +1061 -0
  441. package/source/packages/scramjet/packages/core/src/shared/util.ts +35 -0
  442. package/source/packages/scramjet/packages/core/src/symbols.ts +9 -0
  443. package/source/packages/scramjet/packages/core/src/sync.ts +63 -0
  444. package/source/packages/scramjet/packages/core/src/types.ts +66 -0
  445. package/source/packages/scramjet/packages/core/src/typesEntry.ts +6 -0
  446. package/source/packages/scramjet/packages/core/tsconfig.json +21 -0
  447. package/source/packages/scramjet/packages/rpc/index.ts +100 -0
  448. package/source/packages/scramjet/packages/rpc/package.json +7 -0
  449. package/source/packages/scramjet/packages/utils/package.json +39 -0
  450. package/source/packages/scramjet/packages/utils/src/alwaysLastBubble.ts +172 -0
  451. package/source/packages/scramjet/packages/utils/src/catch-escaped-links.ts +34 -0
  452. package/source/packages/scramjet/packages/utils/src/event-handler-plugin.ts +86 -0
  453. package/source/packages/scramjet/packages/utils/src/global.d.ts +8 -0
  454. package/source/packages/scramjet/packages/utils/src/http-cache-plugin.ts +475 -0
  455. package/source/packages/scramjet/packages/utils/src/index.ts +26 -0
  456. package/source/packages/scramjet/packages/utils/src/link-handler-plugin.ts +75 -0
  457. package/source/packages/scramjet/packages/utils/src/typesEntry.ts +5 -0
  458. package/source/packages/scramjet/packages/utils/src/url-watcher.ts +37 -0
  459. package/source/packages/scramjet/packages/utils/src/version.ts +40 -0
  460. package/source/packages/scramjet/packages/utils/tsconfig.json +11 -0
  461. package/source/packages/scramjet/patches/htmlparser2@12.0.0.patch +124 -0
  462. package/source/packages/scramjet/rspack.config.ts +613 -0
  463. package/source/packages/scramjet/tsconfig.json +11 -0
  464. package/source/packages/tracker-protocol/package.json +31 -0
  465. package/source/packages/tracker-protocol/src/index.ts +745 -0
  466. package/source/packages/tracker-protocol/tsconfig.json +18 -0
  467. package/source/pnpm-lock.yaml +12018 -0
  468. package/source/pnpm-workspace.yaml +31 -0
  469. package/source/rspack.config.ts +103 -0
  470. package/source/scripts/update-adblock-assets.mjs +164 -0
  471. package/third_party/filter-lists/LICENSE-CC-BY-SA-3.0.txt +359 -0
  472. package/third_party/filter-lists/LICENSE-GPL-3.0.txt +674 -0
  473. package/third_party/filter-lists/LICENSE-MPL-2.0.txt +375 -0
  474. package/third_party/filter-lists/README.md +24 -0
  475. package/third_party/filter-lists/easylist.txt +83088 -0
  476. package/third_party/filter-lists/easyprivacy.txt +56361 -0
  477. package/third_party/filter-lists/manifest.json +56 -0
  478. package/third_party/filter-lists/ublock-filters.txt +10937 -0
  479. package/third_party/filter-lists/ublock-privacy.txt +3209 -0
  480. package/third_party/filter-lists/ublock-resources.json +1852 -0
  481. package/third_party/filter-lists/ublock-unbreak.txt +6026 -0
@@ -0,0 +1,1852 @@
1
+ {
2
+ "scriptlets": [
3
+ {
4
+ "name": "safe-self.fn",
5
+ "aliases": [],
6
+ "body": "function safeSelf(){if(safeSelf.safe)return safeSelf.safe;const e=globalThis;const t={Array_from:Array.from,Error:e.Error,Function_toStringFn:e.Function.prototype.toString,Function_toString:e=>t.Function_toStringFn.call(e),Math_floor:Math.floor,Math_max:Math.max,Math_min:Math.min,Math_random:Math.random,Object:Object,Object_defineProperty:Object.defineProperty.bind(Object),Object_defineProperties:Object.defineProperties.bind(Object),Object_fromEntries:Object.fromEntries.bind(Object),Object_getOwnPropertyDescriptor:Object.getOwnPropertyDescriptor.bind(Object),Object_hasOwn:Object.hasOwn.bind(Object),Object_toString:Object.prototype.toString,RegExp:e.RegExp,RegExp_test:e.RegExp.prototype.test,RegExp_exec:e.RegExp.prototype.exec,Request_clone:e.Request.prototype.clone,String:e.String,String_fromCharCode:String.fromCharCode,String_split:String.prototype.split,XMLHttpRequest:e.XMLHttpRequest,addEventListener:e.EventTarget.prototype.addEventListener,removeEventListener:e.EventTarget.prototype.removeEventListener,fetch:e.fetch,JSON:e.JSON,JSON_parseFn:e.JSON.parse,JSON_stringifyFn:e.JSON.stringify,JSON_parse:(...e)=>t.JSON_parseFn.call(t.JSON,...e),JSON_stringify:(...e)=>t.JSON_stringifyFn.call(t.JSON,...e),log:console.log.bind(console),logLevel:0,makeLogPrefix(...e){return this.sendToLogger&&`[${e.join(\" \\u205d \")}]`||\"\"},uboLog(...e){if(this.sendToLogger===void 0)return;if(e===void 0||e[0]===\"\")return;return this.sendToLogger(\"info\",...e)},uboErr(...e){if(this.sendToLogger===void 0)return;if(e===void 0||e[0]===\"\")return;return this.sendToLogger(\"error\",...e)},escapeRegexChars(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")},initPattern(e,t={}){if(e===\"\")return{matchAll:true,expect:true};const r=t.canNegate!==true||e.startsWith(\"!\")===false;if(r===false)e=e.slice(1);const o=/^\\/(.+)\\/([gimsu]*)$/.exec(e);if(o!==null)return{re:new this.RegExp(o[1],o[2]||t.flags),expect:r};if(t.flags!==void 0)return{re:new this.RegExp(this.escapeRegexChars(e),t.flags),expect:r};return{pattern:e,expect:r}},testPattern(e,t){if(e.matchAll)return true;if(e.re)return this.RegExp_test.call(e.re,t)===e.expect;return t.includes(e.pattern)===e.expect},patternToRegex(e,t=void 0,r=false){if(e===\"\")return/^/;const o=/^\\/(.+)\\/([gimsu]*)$/.exec(e);if(o===null){const o=this.escapeRegexChars(e);return new RegExp(r?`^${o}$`:o,t)}try{return new RegExp(o[1],o[2]||void 0)}catch{}return/^/},getExtraArgs(e,t=0){const r=e.slice(t).reduce((e,t,r,o)=>{if((r&1)===0){const t=o[r+1];const n=/^\\d+$/.test(t)?parseInt(t,10):t;e.push([o[r],n])}return e},[]);return this.Object_fromEntries(r)}};safeSelf.safe=t;if(scriptletGlobals.bcSecret===void 0)return t;t.logLevel=scriptletGlobals.logLevel||1;let r=\"\";let o=\"\";let n=0;t.toLogText=(e,...t)=>{if(t.length===0)return;const s=`[${document.location.hostname||document.location.href}]${t.join(\" \")}`;if(s===o&&e===r)if(Date.now()-n<5e3)return;r=e;o=s;n=Date.now();return s};try{const r=new e.BroadcastChannel(scriptletGlobals.bcSecret);let o=[];t.sendToLogger=(e,...n)=>{const s=t.toLogText(e,...n);if(s===void 0)return;if(o===void 0)return r.postMessage({what:\"messageToLogger\",type:e,text:s});o.push({type:e,text:s})};r.onmessage=e=>{const n=e.data;switch(n){case\"iamready!\":if(o===void 0)break;o.forEach(({type:e,text:t})=>r.postMessage({what:\"messageToLogger\",type:e,text:t}));o=void 0;break;case\"setScriptletLogLevelToOne\":t.logLevel=1;break;case\"setScriptletLogLevelToTwo\":t.logLevel=2;break}};r.postMessage(\"areyouready?\")}catch{t.sendToLogger=(e,...r)=>{const o=t.toLogText(e,...r);if(o===void 0)return;t.log(`uBO ${o}`)}}return t}",
7
+ "dependencies": []
8
+ },
9
+ {
10
+ "name": "get-random-token.fn",
11
+ "aliases": [],
12
+ "body": "function getRandomTokenFn(){const n=safeSelf();return n.String_fromCharCode(Date.now()%26+97)+n.Math_floor(n.Math_random()*982451653+982451653).toString(36)}",
13
+ "dependencies": [
14
+ "safe-self.fn"
15
+ ]
16
+ },
17
+ {
18
+ "name": "get-exception-token.fn",
19
+ "aliases": [],
20
+ "body": "function getExceptionTokenFn(){const n=getRandomTokenFn();const e=self.onerror;self.onerror=function(t,...o){if(typeof t===\"string\"&&t.includes(n))return true;if(e instanceof Function)return e.call(this,t,...o)}.bind();return n}",
21
+ "dependencies": [
22
+ "get-random-token.fn"
23
+ ]
24
+ },
25
+ {
26
+ "name": "trap-property-access.fn",
27
+ "aliases": [],
28
+ "body": "function trapPropertyFn(t,e,r={}){if(t===\"\")return;let n=self;let o=t;for(;;){const t=o.indexOf(\".\");if(t===-1)break;n=n[o.slice(0,t)];if(n instanceof Object===false)return;o=o.slice(t+1)}const a=safeSelf();if(trapPropertyFn.db===void 0){trapPropertyFn.db=new WeakMap;trapPropertyFn.entryFromContext=(t,e)=>{const r=trapPropertyFn.db.get(t);return r?.get(e)};trapPropertyFn.getter=(t,e)=>{const r=trapPropertyFn.entryFromContext(t,e);if(r===void 0)return;let n=r.value;for(const t of r.stack)try{n=t.get()}catch(t){if(r.canThrow)throw t}return n};trapPropertyFn.setter=(t,e,r)=>{const n=trapPropertyFn.entryFromContext(t,e);if(n===void 0)return;n.value=r;for(const t of n.stack)try{t.set(r)}catch(t){if(n.canThrow)throw t}}}const{db:s}=trapPropertyFn;const c=s.get(n)||new Map;if(c.size===0)s.set(n,c);const p=c.get(o)||{value:n[o],stack:[]};p.stack.push(e);if(p.stack.length>1)return p.value;Object.assign(p,r);c.set(o,p);const f=a.Object_getOwnPropertyDescriptor(n,o);if(f instanceof a.Object)if(f.get||f.set)p.stack.push(f);try{a.Object_defineProperty(n,o,{get(){return trapPropertyFn.getter(n,o)},set(t){trapPropertyFn.setter(n,o,t)}})}catch{}return p.value}",
29
+ "dependencies": [
30
+ "safe-self.fn"
31
+ ]
32
+ },
33
+ {
34
+ "name": "collate-fetch-arguments.fn",
35
+ "aliases": [],
36
+ "body": "function collateFetchArgumentsFn(e,t){const o=safeSelf();const c=[\"body\",\"cache\",\"credentials\",\"duplex\",\"headers\",\"integrity\",\"keepalive\",\"method\",\"mode\",\"priority\",\"redirect\",\"referrer\",\"referrerPolicy\",\"url\"];const l={};if(collateFetchArgumentsFn.collateKnownProps===void 0)collateFetchArgumentsFn.collateKnownProps=(e,t)=>{for(const o of c){if(e[o]===void 0)continue;t[o]=e[o]}};if(typeof e!==\"object\"||o.Object_toString.call(e)!==\"[object Request]\")l.url=`${e}`;else{let t;try{t=o.Request_clone.call(e)}catch{}collateFetchArgumentsFn.collateKnownProps(t||e,l)}if(typeof t===\"object\"&&t!==null)collateFetchArgumentsFn.collateKnownProps(t,l);return l}",
37
+ "dependencies": [
38
+ "safe-self.fn"
39
+ ]
40
+ },
41
+ {
42
+ "name": "parse-properties-to-match.fn",
43
+ "aliases": [],
44
+ "body": "function parsePropertiesToMatchFn(t,e=\"\"){const i=safeSelf();const n=new Map;if(t===void 0||t===\"\")return n;const o={canNegate:true};for(const s of i.String_split.call(t,/\\s+/)){let[t,r]=i.String_split.call(s,\":\");if(t===\"\")continue;if(r!==void 0&&/[^$\\w -]/.test(t)){t=`${t}:${r}`;r=void 0}if(r!==void 0)n.set(t,i.initPattern(r,o));else if(e!==\"\")n.set(e,i.initPattern(t,o))}return n}",
45
+ "dependencies": [
46
+ "safe-self.fn"
47
+ ]
48
+ },
49
+ {
50
+ "name": "match-object-properties.fn",
51
+ "aliases": [],
52
+ "body": "function matchObjectPropertiesFn(t,...n){const e=safeSelf();const f=[];for(const o of n){if(o instanceof Object===false)continue;for(const[n,i]of t){let t=o[n];if(t===void 0)continue;if(typeof t!==\"string\"){try{t=e.JSON_stringify(t)}catch{}if(typeof t!==\"string\")continue}if(e.testPattern(i,t)===false)return;f.push(`${n}: ${t}`)}}return f}",
53
+ "dependencies": [
54
+ "safe-self.fn"
55
+ ]
56
+ },
57
+ {
58
+ "name": "generate-content.fn",
59
+ "aliases": [],
60
+ "body": "function generateContentFn(t,e){const n=safeSelf();const r=t=>{const e=[];let r=0;do{const t=n.Math_random().toString(36).slice(2);e.push(t);r+=t.length}while(r<t);return e.join(\" \").slice(0,t)};if(e===\"true\")return r(10);if(e===\"emptyObj\")return\"{}\";if(e===\"emptyArr\")return\"[]\";if(e===\"emptyStr\")return\"\";if(e.startsWith(\"length:\")){const t=/^length:(\\d+)(?:-(\\d+))?$/.exec(e);if(t===null)return\"\";const s=parseInt(t[1],10);const i=n.Math_max(parseInt(t[2],10)||0,s)-s;const o=n.Math_min(s+i*n.Math_random(),5e5);return r(o|0)}if(e.startsWith(\"war:\")){if(scriptletGlobals.warOrigin===void 0)return\"\";return new Promise(t=>{const r=scriptletGlobals.warOrigin;const s=e.slice(4);const i=[r,\"/\",s];const o=scriptletGlobals.warSecret;if(o!==void 0)i.push(\"?secret=\",o);const c=new n.XMLHttpRequest;c.responseType=\"text\";c.onloadend=e=>{t(e.target.responseText||\"\")};c.open(\"GET\",i.join(\"\"));c.send()}).catch(()=>\"\")}if(e.startsWith(\"join:\")){const n=e.slice(7).split(e.slice(5,7)).map(e=>generateContentFn(t,e));return n.some(t=>t instanceof Promise)?Promise.all(n).then(t=>t.join(\"\")):n.join(\"\")}if(t)return e;return\"\"}",
61
+ "dependencies": [
62
+ "safe-self.fn"
63
+ ]
64
+ },
65
+ {
66
+ "name": "on-idle.fn",
67
+ "aliases": [],
68
+ "body": "function onIdleFn(e,l){if(self.requestIdleCallback)return self.requestIdleCallback(e,l);return self.requestAnimationFrame(e)}",
69
+ "dependencies": []
70
+ },
71
+ {
72
+ "name": "off-idle.fn",
73
+ "aliases": [],
74
+ "body": "function offIdleFn(e){if(self.requestIdleCallback)return self.cancelIdleCallback(e);return self.cancelAnimationFrame(e)}",
75
+ "dependencies": []
76
+ },
77
+ {
78
+ "name": "sleep.fn",
79
+ "aliases": [],
80
+ "body": "function sleepFn(e=0){const n=()=>new Promise(e=>{self.requestAnimationFrame(e)});const o=Date.now()+e;const t=async e=>{do{await n()}while(Date.now()<o);e()};return new Promise(e=>{t(e)})}",
81
+ "dependencies": []
82
+ },
83
+ {
84
+ "name": "lookup-elements.fn",
85
+ "aliases": [],
86
+ "body": "function lookupElementsFn(e,o=0){if(lookupElementsFn.querySelectorEx===void 0){lookupElementsFn.getShadowRoot=e=>{if(e.openOrClosedShadowRoot)return e.openOrClosedShadowRoot;if(self.chrome?.dom?.openOrClosedShadowRoot)return self.chrome.dom.openOrClosedShadowRoot(e);return e.shadowRoot};lookupElementsFn.queryOrEvaluateSelector=(e,o)=>{if(e.startsWith(\"xpath:\")===false)return Array.from(o.querySelectorAll(e));const t=document.evaluate(e.slice(6),o,null,7,null);const r=[];if(t.resultType===7)for(let e=0;e<t.snapshotLength;e++)r[e]=t.snapshotItem(e);return r};lookupElementsFn.querySelectorEx=(e,o=document)=>{const t=e.indexOf(\" >>> \");if(t===-1)return lookupElementsFn.queryOrEvaluateSelector(e,o);const r=e.slice(0,t).trim();const n=e.slice(t+5).trim();const l=lookupElementsFn.queryOrEvaluateSelector(r,o);const s=[];for(let e=0;e<l.length;e++){const o=lookupElementsFn.getShadowRoot(l[e]);if(Boolean(o)===false)continue;lookupElementsFn.querySelectorEx(n,o).forEach(e=>s.push(e))}return s};lookupElementsFn.lookup=e=>{const o=e.startsWith(\"when-visible:\");const t=o?e.slice(13):e;const r=lookupElementsFn.querySelectorEx(t);if(o!==true)return r;return r.filter(e=>e.checkVisibility({opacityProperty:true,visibilityProperty:true}))};lookupElementsFn.lookupAsync=e=>{const o=lookupElementsFn.lookup(e.directive);if(o.length||Date.now()>=e.until){if(e.observer){e.observer.disconnect();e.observer=void 0}if(e.timer){offIdleFn(e.timer);e.timer=void 0}return e.resolve(o)}if(e.observer===void 0){e.observer=new MutationObserver(()=>{lookupElementsFn.lookupAsync(e)});e.observer.observe(document,{attributes:true,childList:true,subtree:true})}if(e.timer===void 0)e.timer=onIdleFn(()=>{e.timer=void 0;lookupElementsFn.lookupAsync(e)},{timeout:151})}}if(o===0)return lookupElementsFn.lookup(e);return new Promise(t=>{lookupElementsFn.lookupAsync({directive:e,until:o,resolve:t})})}",
87
+ "dependencies": [
88
+ "off-idle.fn",
89
+ "on-idle.fn"
90
+ ]
91
+ },
92
+ {
93
+ "name": "run-at.fn",
94
+ "aliases": [],
95
+ "body": "function runAt(e,t){const n=e=>{const t={loading:1,asap:1,interactive:2,end:2,2:2,complete:3,idle:3,3:3};const n=Array.isArray(e)?e:[e];for(const e of n){const n=`${e}`;if(Object.hasOwn(t,n)===false)continue;return t[n]}return 0};const r=n(t);if(n(document.readyState)>=r){e();return}const a=()=>{if(n(document.readyState)<r)return;e();c.removeEventListener.apply(document,o)};const c=safeSelf();const o=[\"readystatechange\",a,{capture:true}];c.addEventListener.apply(document,o)}",
96
+ "dependencies": [
97
+ "safe-self.fn"
98
+ ]
99
+ },
100
+ {
101
+ "name": "run-at-html-element.fn",
102
+ "aliases": [],
103
+ "body": "function runAtHtmlElementFn(e){if(document.documentElement){e();return}const n=new MutationObserver(()=>{n.disconnect();e()});n.observe(document,{childList:true})}",
104
+ "dependencies": []
105
+ },
106
+ {
107
+ "name": "abort-current-script.fn",
108
+ "aliases": [],
109
+ "body": "function abortCurrentScriptFn(t=\"\",e=\"\",r=\"\"){if(typeof t!==\"string\")return;if(t===\"\")return;const n=safeSelf();const o=n.makeLogPrefix(\"abort-current-script\",t,e,r);const c=n.patternToRegex(e);const s=n.patternToRegex(r);const a=document.currentScript;const i=getExceptionTokenFn();const f=new WeakMap;const u=Object.getOwnPropertyDescriptor(Node.prototype,\"textContent\").get;const p=t=>{let e=u.call(t);if(e.trim()!==\"\")return e;if(f.has(t))return f.get(t);const[,r,n]=/^data:([^,]*),(.+)$/.exec(t.src.trim())||[\"\",\"\",\"\"];try{switch(true){case r.endsWith(\";base64\"):e=self.atob(n);break;default:e=self.decodeURIComponent(n);break}}catch{}f.set(t,e);return e};const l=()=>{const t=document.currentScript;if(t instanceof HTMLScriptElement===false)return;if(t===a)return;if(r!==\"\"&&s.test(t.src)===false)return;if(n.logLevel>1&&r!==\"\")n.uboLog(o,`Matched src\\n${t.src}`);const e=p(t);if(c.test(e)===false)return;if(n.logLevel>1)n.uboLog(o,`Matched text\\n${e}`);n.uboLog(o,\"Aborted\");throw new ReferenceError(i)};let g=trapPropertyFn(t,{get:function(){l();return g},set:function(t){l();g=t}},{canThrow:true})}",
110
+ "dependencies": [
111
+ "get-exception-token.fn",
112
+ "safe-self.fn",
113
+ "trap-property-access.fn"
114
+ ]
115
+ },
116
+ {
117
+ "name": "abort-current-script.js",
118
+ "aliases": [
119
+ "abort-current-inline-script.js",
120
+ "acis.js",
121
+ "acs.js"
122
+ ],
123
+ "body": "function abortCurrentScript(...t){runAtHtmlElementFn(()=>{abortCurrentScriptFn(...t)})}",
124
+ "dependencies": [
125
+ "abort-current-script.fn",
126
+ "run-at-html-element.fn"
127
+ ]
128
+ },
129
+ {
130
+ "name": "set-attr.fn",
131
+ "aliases": [],
132
+ "body": "function setAttrFn(e=false,t,n=\"\",o=\"\",r=\"\",s={}){if(n===\"\")return;if(o===\"\")return;const i=safeSelf();const f=e===false&&/^\\[.+\\]$/.test(r)?r.slice(1,-1):\"\";const u=e=>f!==\"\"?e.getAttribute(f)||\"\":r;const c=()=>{let e;try{e=document.querySelectorAll(n)}catch{return false}for(const n of e){const e=n.getAttribute(o);const r=u(n);if(r===e)continue;if(r!==\"\"&&/^on/i.test(o))if(o.toLowerCase()in n)continue;n.setAttribute(o,r);i.uboLog(t,`${o}=\"${r}\"`)}return true};let l,a;const d=e=>{if(a!==void 0)return;let t=false;for(const n of e){if(n.addedNodes.length===0)continue;for(const e of n.addedNodes){if(e.nodeType!==1)continue;t=true;break}if(t)break}if(t===false)return;a=self.requestAnimationFrame(()=>{a=void 0;c()})};const b=()=>{if(c()===false)return;l=new MutationObserver(d);const e=document.documentElement;if(e instanceof self.Node===false)return;l.observe(e,{subtree:true,childList:true})};runAt(()=>{b()},s.runAt||\"idle\")}",
133
+ "dependencies": [
134
+ "run-at.fn",
135
+ "safe-self.fn"
136
+ ]
137
+ },
138
+ {
139
+ "name": "set-attr.js",
140
+ "aliases": [],
141
+ "body": "function setAttr(t=\"\",e=\"\",s=\"\"){const r=safeSelf();const f=r.makeLogPrefix(\"set-attr\",t,e,s);const n=[\"\",\"false\",\"true\"];if(n.includes(s.toLowerCase())===false)if(/^\\d+$/.test(s)){const t=parseInt(s,10);if(t>=32768)return;s=`${t}`}else if(/^\\[.+\\]$/.test(s)===false)return;const a=r.getExtraArgs(Array.from(arguments),3);setAttrFn(false,f,t,e,s,a)}",
142
+ "dependencies": [
143
+ "safe-self.fn",
144
+ "set-attr.fn"
145
+ ],
146
+ "executionWorld": "ISOLATED"
147
+ },
148
+ {
149
+ "name": "trusted-set-attr.js",
150
+ "aliases": [],
151
+ "body": "function trustedSetAttr(t=\"\",r=\"\",e=\"\"){const s=safeSelf();const n=s.makeLogPrefix(\"trusted-set-attr\",t,r,e);const o=s.getExtraArgs(Array.from(arguments),3);setAttrFn(true,n,t,r,e,o)}",
152
+ "dependencies": [
153
+ "safe-self.fn",
154
+ "set-attr.fn"
155
+ ],
156
+ "executionWorld": "ISOLATED",
157
+ "requiresTrust": true
158
+ },
159
+ {
160
+ "name": "remove-attr.js",
161
+ "aliases": [
162
+ "ra.js"
163
+ ],
164
+ "body": "function removeAttr(t=\"\",e=\"\",o=\"\"){if(typeof t!==\"string\")return;if(t===\"\")return;const r=safeSelf();const n=r.makeLogPrefix(\"remove-attr\",t,e,o);const s=r.String_split.call(t,/\\s*\\|\\s*/);const i=s.map(t=>`${e}[${CSS.escape(t)}]`).join(\",\");if(r.logLevel>1)r.uboLog(n,`Target selector:\\n\\t${i}`);const f=/\\basap\\b/.test(o);let l;const u=()=>{if(l!==void 0)return;l=onIdleFn(()=>{l=void 0;a()},{timeout:17})};const a=()=>{if(l!==void 0){offIdleFn(l);l=void 0}try{const t=document.querySelectorAll(i);for(const e of t)for(const t of s){if(e.hasAttribute(t)===false)continue;e.removeAttribute(t);r.uboLog(n,`Removed attribute '${t}'`)}}catch{}};const c=t=>{if(l!==void 0)return;let e=true;for(let o=0;o<t.length&&e;o++){const{type:r,addedNodes:n,removedNodes:s}=t[o];if(r===\"attributes\")e=false;for(let t=0;t<n.length&&e;t++)if(n[t].nodeType===1){e=false;break}for(let t=0;t<s.length&&e;t++)if(s[t].nodeType===1){e=false;break}}if(e)return;f?a():u()};const d=()=>{a();if(/\\bstay\\b/.test(o)===false)return;const t=new MutationObserver(c);t.observe(document,{attributes:true,attributeFilter:s,childList:true,subtree:true})};runAt(()=>{d()},r.String_split.call(o,/\\s+/))}",
165
+ "dependencies": [
166
+ "off-idle.fn",
167
+ "on-idle.fn",
168
+ "run-at.fn",
169
+ "safe-self.fn"
170
+ ]
171
+ },
172
+ {
173
+ "name": "trusted-create-html.js",
174
+ "aliases": [],
175
+ "body": "function trustedCreateHTML(e,t=\"\",r=\"\"){if(e===\"\")return;if(t===\"\")return;const n=safeSelf();const o=n.makeLogPrefix(\"trusted-create-html\",e,t,r);const s=n.getExtraArgs(Array.from(arguments),3);self.trustedCreateHTML=true;let u=self.frameElement;while(u){const e=u.ownerDocument;if(e===null)break;const t=e.defaultView;if(t===null)break;if(t.trustedCreateHTML)return;u=u.frameElement}const i=parseInt(r,10);const l=new DOMParser;const c=l.parseFromString(t,\"text/html\");const f=[];while(c.body.firstChild!==null)f.push(document.adoptNode(c.body.firstChild));if(f.length===0)return;const a=[];const d=()=>{for(const e of a){if(e.parentNode===null)continue;e.parentNode.removeChild(e)}n.uboLog(o,\"Node(s) removed\")};const m=(e,t)=>{for(const r of t){e.append(r);if(isNaN(i))continue;a.push(r)}};const h=()=>{const t=document.querySelectorAll(e);if(t.length===0)return false;const r=Math.min(t.length,s.limit||1)-1;for(let e=0;e<r;e++)m(t[e],f.map(e=>e.cloneNode(true)));m(t[r],f);n.uboLog(o,\"Node(s) appended\");if(a.length===0)return true;setTimeout(d,i);return true};const p=()=>{if(h())return;const t=new MutationObserver(()=>{if(h()===false)return;t.disconnect()});const r={childList:true,subtree:true};if(/[#.[]/.test(e)){r.attributes=true;if(e.includes(\"[\")===false){r.attributeFilter=[];if(e.includes(\"#\"))r.attributeFilter.push(\"id\");if(e.includes(\".\"))r.attributeFilter.push(\"class\")}}t.observe(document,r)};runAt(p,s.runAt||\"loading\")}",
176
+ "dependencies": [
177
+ "run-at.fn",
178
+ "safe-self.fn"
179
+ ],
180
+ "executionWorld": "ISOLATED",
181
+ "requiresTrust": true
182
+ },
183
+ {
184
+ "name": "urlskip.fn",
185
+ "aliases": [],
186
+ "body": "function urlSkip(e,t,n){try{let r=false;let i=e;for(const e of n){const t=i;const n=e.charCodeAt(0);if(n===35&&e===\"#\"){const e=t.indexOf(\"#\");i=e!==-1?t.slice(e+1):\"\";continue}if(n===38){const n=(parseInt(e.slice(1))||0)-1;if(n<0)return;const r=new URL(t);if(n>=r.searchParams.size)return;const s=Array.from(r.searchParams.keys());i=decodeURIComponent(s[n]);continue}if(n===43&&e===\"+https\"){const e=t.replace(/^https?:\\/\\//,\"\");if(/^[\\w-]:\\/\\//.test(e))return;i=`https://${e}`;continue}if(n===45){if(e===\"-base64\"){i=self.atob(t);continue}if(e===\"-safebase64\"){if(urlSkip.safeBase64Replacer===void 0){urlSkip.safeBase64Map={\"-\":\"+\",_:\"/\"};urlSkip.safeBase64Replacer=e=>urlSkip.safeBase64Map[e]}i=t.replace(/[-_]/g,urlSkip.safeBase64Replacer);i=self.atob(i);continue}if(e===\"-uricomponent\"){i=decodeURIComponent(t);continue}if(e===\"-blocked\"){r=true;continue}}if(n===47){const n=new RegExp(e.slice(1,-1));const r=n.exec(t);if(r===null)return;if(r.length<=1)return;i=r[1];continue}if(n===63){i=new URL(t).searchParams.get(e.slice(1));if(i===null)return;if(i.includes(\" \"))i=i.replace(/ /g,\"%20\");continue}return}const s=new URL(i);if(s.protocol!==\"https:\")if(s.protocol!==\"http:\")return;if(t&&r!==true)return;return i}catch{}}",
187
+ "dependencies": []
188
+ },
189
+ {
190
+ "name": "href-sanitizer.js",
191
+ "aliases": [
192
+ "urlskip.js"
193
+ ],
194
+ "body": "function hrefSanitizer(t=\"\",e=\"\"){if(typeof t!==\"string\")return;if(t===\"\")return;const r=safeSelf();const n=r.makeLogPrefix(\"href-sanitizer\",t,e);if(e===\"\")e=\"text\";const o=(t,e)=>{let r=[];try{r=document.querySelectorAll(`a[href=\"${t}\"`)}catch{}for(const t of r)t.setAttribute(\"href\",e);return r.length};const i=t=>{if(typeof t!==\"string\")return\"\";if(t===\"\")return\"\";if(/[\\x00-\\x20\\x7f]/.test(t))return\"\";try{const e=new URL(t,document.location);return e.href}catch{}return\"\"};const f=(t,e)=>{if(/^\\[.*\\]$/.test(e))return t.getAttribute(e.slice(1,-1).trim())||\"\";if(e===\"text\")return t.textContent.replace(/^[^\\x21-\\x7e]+/,\"\").replace(/[^\\x21-\\x7e]+$/,\"\");const r=e.replace(/(\\S)\\?/g,\"\\\\1 ?\").split(/\\s+/);const n=urlSkip(t.href,false,r);if(n===void 0)return;return n.replace(/ /g,\"%20\")};const c=()=>{let c=[];try{c=document.querySelectorAll(t)}catch{return false}for(const t of c){if(t.localName!==\"a\")continue;if(t.hasAttribute(\"href\")===false)continue;const c=t.getAttribute(\"href\");const s=f(t,e);const u=i(s);if(u===\"\")continue;if(u===c)continue;t.setAttribute(\"href\",u);const l=o(c,u);r.uboLog(n,`Sanitized ${l+1} links to\\n${u}`)}return true};let s,u;const l=t=>{if(u!==void 0)return;let e=false;for(const r of t){if(r.addedNodes.length===0)continue;for(const t of r.addedNodes){if(t.nodeType!==1)continue;e=true;break}if(e)break}if(e===false)return;u=onIdleFn(()=>{u=void 0;c()})};const a=()=>{if(c()===false)return;s=new MutationObserver(l);s.observe(document.body,{subtree:true,childList:true})};runAt(()=>{a()},\"interactive\")}",
195
+ "dependencies": [
196
+ "on-idle.fn",
197
+ "run-at.fn",
198
+ "safe-self.fn",
199
+ "urlskip.fn"
200
+ ],
201
+ "executionWorld": "ISOLATED"
202
+ },
203
+ {
204
+ "name": "arglist-parser.fn",
205
+ "aliases": [],
206
+ "body": "class ArglistParser{constructor(t=\",\",e=false){this.separatorChar=this.actualSeparatorChar=t;this.separatorCode=this.actualSeparatorCode=t.charCodeAt(0);this.mustQuote=e;this.quoteBeg=0;this.quoteEnd=0;this.argBeg=0;this.argEnd=0;this.separatorBeg=0;this.separatorEnd=0;this.transform=false;this.failed=false;this.reWhitespaceStart=/^\\s+/;this.reWhitespaceEnd=/(?:^|\\S)(\\s+)$/;this.reOddTrailingEscape=/(?:^|[^\\\\])(?:\\\\\\\\)*\\\\$/;this.reTrailingEscapeChars=/\\\\+$/}nextArg(t,e=0){const s=t.length;this.quoteBeg=e+this.leftWhitespaceCount(t.slice(e));this.failed=false;const r=t.charCodeAt(this.quoteBeg);if(r===34||r===39||r===96){this.indexOfNextArgSeparator(t,r);if(this.argEnd!==s){this.quoteEnd=this.argEnd+1;this.separatorBeg=this.separatorEnd=this.quoteEnd;this.separatorEnd+=this.leftWhitespaceCount(t.slice(this.quoteEnd));if(this.separatorEnd===s)return this;if(t.charCodeAt(this.separatorEnd)===this.separatorCode){this.separatorEnd+=1;return this}}}this.indexOfNextArgSeparator(t,this.separatorCode);this.separatorBeg=this.separatorEnd=this.argEnd;if(this.separatorBeg<s)this.separatorEnd+=1;this.argEnd-=this.rightWhitespaceCount(t.slice(0,this.separatorBeg));this.quoteEnd=this.argEnd;if(this.mustQuote)this.failed=true;return this}normalizeArg(t,e=\"\"){if(e===\"\")e=this.actualSeparatorChar;let s=\"\";let r=0;while((r=t.lastIndexOf(e))!==-1){s=t.slice(r)+s;t=t.slice(0,r);const e=this.reTrailingEscapeChars.exec(t);if(e===null)continue;const a=(e[0].length&1)!==0?e[0].slice(0,-1):e[0];s=a+s;t=t.slice(0,-e[0].length)}if(s===\"\")return t;return t+s}leftWhitespaceCount(t){const e=this.reWhitespaceStart.exec(t);return e===null?0:e[0].length}rightWhitespaceCount(t){const e=this.reWhitespaceEnd.exec(t);return e===null?0:e[1].length}indexOfNextArgSeparator(t,e){this.argBeg=this.argEnd=e!==this.separatorCode?this.quoteBeg+1:this.quoteBeg;this.transform=false;if(e!==this.actualSeparatorCode){this.actualSeparatorCode=e;this.actualSeparatorChar=String.fromCharCode(e)}while(this.argEnd<t.length){const e=t.indexOf(this.actualSeparatorChar,this.argEnd);if(e===-1)return this.argEnd=t.length;if(this.reOddTrailingEscape.test(t.slice(0,e))===false)return this.argEnd=e;this.transform=true;this.argEnd=e+1}}}",
207
+ "dependencies": []
208
+ },
209
+ {
210
+ "name": "jsonpath.fn",
211
+ "aliases": [],
212
+ "body": "class JSONPath{static create(t){const e=new JSONPath;e.compile(t);return e}static toJSON(t,e,...i){return(e||JSON.stringify)(t,...i).replace(/\\//g,\"\\\\/\")}static keys=Object.keys;static entries=Object.entries;static hasOwn=Object.hasOwn;static Regex=RegExp;get value(){return this.#t&&this.#t.rval}set value(t){if(this.#t===void 0)return;this.#t.rval=t}get valid(){return this.#t!==void 0}compile(t){this.#t=void 0;this.v2=t.startsWith(\"v2:\");if(this.v2)t=t.slice(3);const e=this.#e(t,0);if(e===void 0)return;if(e.i!==t.length){let i;if(t.startsWith(\"=\",e.i)){const s=this.#i.exec(t.slice(e.i));if(s){e.modify=s[1];i=s[2]}else i=t.slice(e.i+1)}else if(t.startsWith(\"+=\",e.i)){e.modify=\"+\";i=t.slice(e.i+2)}try{e.rval=JSON.parse(i)}catch{return}}e.v2=this.v2;this.#t=e}evaluate(t){if(this.valid===false)return[];this.#s={$:t};const e=this.#r(this.#t.steps,[]);this.#s=null;return e}apply(t){if(this.valid===false)return;const{rval:e}=this.#t;this.#s={$:t};const i=this.#r(this.#t.steps,[]);let s=i.length;if(s===0){this.#s=null;return}while(s--){const{obj:t,key:r}=this.#n(i[s]);if(t===void 0)continue;if(e!==void 0)this.#o(t,r);else if(Array.isArray(t)&&typeof r===\"number\")t.splice(r,1);else delete t[r]}const r=this.#s[\"$\"]??null;this.#s=null;return r}dump(){return JSON.stringify(this.#t)}toJSON(t,...e){return JSONPath.toJSON(t,null,...e)}get[Symbol.toStringTag](){return\"JSONPath\"}#a=0;#c=1;#h=2;#l=3;#u=4;#f=5;#p=/^[A-Za-z_][\\w]*|^\\*/;#d=/^\\s*([!=^$*]=|[<>]=?)\\s*(.+?)\\]/;#v=/^-?\\d+/;#i=/^=([a-z]+)\\((.+)\\)$/;#N=/^\\{(\\d+|\\d+,\\d+|\\d+,|,\\d+)\\};\\$/;#s;#t;#e(t,e){if(t.length===0)return;const i=[];let s=t.charCodeAt(e);if(s===36){i.push({mv:this.#c});e+=1}else if(s===64){i.push({mv:this.#h});e+=1}else i.push({mv:e===0?this.#c:this.#h});let r=this.#a;for(;;){if(e===t.length)break;s=t.charCodeAt(e);if(s===32){e+=1;continue}if(s===46){if(r!==this.#a)return;if(t.startsWith(\"..\",e)){r=this.#u;e+=2}else{r=this.#l;e+=1}continue}if(s===59){if(t.startsWith(\";$\",e)===false)return;i.push({mv:this.#f,min:1,max:1e6},{mv:this.#c});e+=2;r=this.#a;continue}if(s===123){const s=this.#N.exec(t.slice(e));if(s===null)return;const n=s[1].indexOf(\",\");let o,a;if(n===-1)o=a=parseInt(s[1]);else{o=parseInt(s[1].slice(0,n))||0;a=parseInt(s[1].slice(n+1))||1e6}i.push({mv:this.#f,min:o,max:a},{mv:this.#c});e+=s[0].length;r=this.#a;continue}if(s!==91){if(r===this.#a){const s=i.at(-1);if(s===void 0)return;const r=this.#y(t,s,e);if(r)e=r;break}const s=this.#m(t,e);if(s===void 0)return;i.push({mv:r,k:s.s});e=s.i;r=this.#a;continue}if(r===this.#l)return;if(t.startsWith(\"[?\",e)){const s=t.charCodeAt(e+2)===33?1:0;const n=e+2+s;const o=this.#e(t,n);if(o===void 0)return;if(t.startsWith(\"]\",o.i)===false)return;if(s)o.steps.at(-1).not=true;i.push({mv:r||this.#l,steps:o.steps});e=o.i+1;r=this.#a;continue}if(t.startsWith(\"[*]\",e)){r||=this.#l;i.push({mv:r,k:\"*\"});e+=3;r=this.#a;continue}const n=this.#E(t,e+1);if(n===void 0)return;r||=this.#l;i.push({mv:r,k:n.s});e=n.i+1;r=this.#a}if(i.length===0)return;if(r!==this.#a)return;return{steps:i,i:e}}#r(t,e){let i=[];if(Array.isArray(t)===false)return i;for(const s of t)switch(s.mv){case this.#c:i=[[\"$\"]];break;case this.#h:if(s.op){const{obj:t,key:i}=this.#n(e);if(t===void 0)return[];const r=this.#k(s,t,i);if(r!==true)break}i=[e];break;case this.#l:case this.#u:if(i.length===0)break;i=this.#g(i,s);break;case this.#f:{const{length:t}=i;if(t<s.min||t>s.max)return[];i=[];break}default:break}return i}#g(t,e){const i=[];for(const s of t){const{value:t}=this.#n(s);if(t===void 0)continue;if(e.steps){this.#b(s,e,t,i);continue}const r=this.#O(t,e.k);if(r)for(const n of r){const r=this.#k(e,t,n);if(r!==true)continue;i.push([...s,n])}if(e.mv!==this.#u)continue;for(const{obj:r,key:n,path:o}of this.#D(t,true)){const t=this.#O(r[n],e.k);if(t===void 0)continue;for(const a of t){const t=this.#k(e,r[n],a);if(t!==true)continue;i.push([...s,...o,a])}}}return i}#O(t,e){if(typeof t!==\"object\"||t===null)return;if(Array.isArray(e)){const i=[];for(const s of e){const e=this.#O(t,s);if(e===void 0)continue;i.push(...e)}return i}if(typeof e===\"number\"){if(Array.isArray(t)===false)return;return[e>=0?e:t.length+e]}if(e===\"*\"){if(Array.isArray(t))return t.keys();return JSONPath.keys(t)}if(e instanceof JSONPath.Regex){const i=[];for(const s of JSONPath.keys(t)){if(e.test(s)===false)continue;i.push(s)}return i}return[e]}#b(t,e,i,s){const r=e.mv===this.#u;const n=this.#t.v2||r||Array.isArray(i);for(const{path:o}of this.#D(i,r)){const i=n?[...t,...o]:t;const r=this.#r(e.steps,i);if(Boolean(r?.length)===false)continue;s.push(i);if(n===false)break}}#D(t,e){const i={next(){const t=this.stack.length;if(t===0){this.value=void 0;this.done=true;return this}const i=this.stack[t-1];const s=i.keys.next();if(s.done){this.stack.pop();this.path.pop();return this.next()}this.path[t-1]=s.value;this.value={obj:i.obj,key:s.value,path:this.path.slice()};const r=this.value.obj[this.value.key];if(e)if(Array.isArray(r))this.stack.push({obj:r,keys:r.keys()});else if(typeof r===\"object\"&&r!==null)this.stack.push({obj:r,keys:JSONPath.keys(r).values()});return this},path:[],value:void 0,done:false,stack:[],[Symbol.iterator](){return this}};if(Array.isArray(t))i.stack.push({obj:t,keys:t.keys()});else if(typeof t===\"object\"&&t!==null)i.stack.push({obj:t,keys:JSONPath.keys(t).values()});return i}#E(t,e){const i=[];let s=true;while(e<t.length){const r=t.charCodeAt(e);if(r===93)break;if(r===32){e+=1;continue}if(r===44){if(s)return;e+=1;s=true;continue}if(r===34||r===39){const n=this.#I(t,r,e+1);if(n===void 0)return;i.push(n.s);e=n.i;s=false;continue}if(r===45||r>=48&&r<=57){const r=this.#v.exec(t.slice(e));if(r===null)return;const n=parseInt(t.slice(e),10);i.push(n);e+=r[0].length;s=false;continue}if(this.v2)return;const n=this.#m(t,e);if(n===void 0)return;i.push(n.s);e=n.i}if(s)return;return{s:i.length===1?i[0]:i,i:e}}#m(t,e){if(t.charCodeAt(e)===47){const i=this.#I(t,47,e+1);if(i===void 0)return;let s;try{s=new JSONPath.Regex(i.s)}catch{return}return{s:s,i:i.i}}const i=this.#p.exec(t.slice(e));if(i===null)return;return{s:i[0],i:e+i[0].length}}#I(t,e,i){const s=t.length;const r=[];let n=i,o=i;for(;;){if(o===s)return;const i=t.charCodeAt(o);if(i===e){r.push(t.slice(n,o));o+=1;break}if(i===92&&o+1<s){const i=t.charCodeAt(o+1);if(i===e){r.push(t.slice(n,o));o+=1;n=o}}o+=1}return{s:r.join(\"\"),i:o}}#y(t,e,i){if(t.startsWith(\"=/\",i)){const s=this.#I(t,47,i+2);if(s===void 0)return i;const r=/^[i]/.exec(t.slice(s.i));try{e.rval=new JSONPath.Regex(s.s,r&&r[0]||void 0)}catch{return}e.op=\"re\";if(r)s.i+=r[0].length;return s.i}const s=this.#d.exec(t.slice(i));if(s===null)return;const r=s[1],n=s[2];if(n.charCodeAt(0)===39){const t=this.#I(n,39,1);if(t===void 0)return;e.rval=t.s;e.op=r}else try{e.rval=JSON.parse(n);e.op=r}catch{return}return i+s[0].length-1}#n(t){if(t.length===0)return{value:this.#s};const e=t.at(-1);let i=this.#s;for(let e=0,s=t.length-1;e<s;e++){i=i[t[e]];if(i instanceof Object===false)return{}}return{obj:i,key:e,value:i[e]}}#k(t,e,i){if(e===void 0||e===null)return;const s=e[i]!==void 0||JSONPath.hasOwn(e,i);if(t.op!==void 0&&s===false)return;const r=t.not!==true;const n=e[i];switch(t.op){case\"==\":return n===t.rval===r;case\"!=\":return n!==t.rval===r;case\"<\":return n<t.rval===r;case\"<=\":return n<=t.rval===r;case\">\":return n>t.rval===r;case\">=\":return n>=t.rval===r;case\"^=\":return`${n}`.startsWith(t.rval)===r;case\"$=\":return`${n}`.endsWith(t.rval)===r;case\"*=\":return`${n}`.includes(t.rval)===r;case\"re\":return t.rval.test(`${n}`);default:break}return s===r}#o(t,e){let{modify:i,rval:s}=this.#t;if(typeof s===\"string\")s=s.replace(\"${now}\",`${Date.now()}`);switch(i){case void 0:t[e]=s;break;case\"+\":{if(s instanceof Object===false)return;const i=t[e];if(i instanceof Object===false)return;if(Array.isArray(i))return;for(const[t,e]of JSONPath.entries(s))i[t]=e;break}case\"call\":{const i=s.slice();if(i.length<2)break;i.forEach((i,s,r)=>{if(i===\"${obj}\")r[s]=t;else if(i===\"${key}\")r[s]=e;else if(i===\"${val}\")r[s]=t[e]});const r=i[0]??self;r[i[1]](...i.slice(2));break}case\"repl\":{const i=t[e];if(typeof i!==\"string\")return;if(this.#t.re===void 0){this.#t.re=null;try{this.#t.re=s.regex!==void 0?new JSONPath.Regex(s.regex,s.flags):new JSONPath.Regex(s.pattern.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"))}catch{}}if(this.#t.re===null)return;t[e]=i.replace(this.#t.re,s.replacement);break}default:break}}}",
213
+ "dependencies": []
214
+ },
215
+ {
216
+ "name": "proxy-apply.fn",
217
+ "aliases": [],
218
+ "body": "function proxyApplyFn(t=\"\",p=\"\"){let o=globalThis;let n=t;for(;;){const t=n.indexOf(\".\");if(t===-1)break;o=o[n.slice(0,t)];if(o instanceof Object===false)return;n=n.slice(t+1)}const r=o[n];if(typeof r!==\"function\")return;if(proxyApplyFn.CtorContext===void 0){proxyApplyFn.ctorContexts=[];proxyApplyFn.CtorContext=class{constructor(...t){this.init(...t)}init(t,p){this.callFn=t;this.callArgs=p;return this}reflect(){const t=Reflect.construct(this.callFn,this.callArgs);this.callFn=this.callArgs=this.private=void 0;proxyApplyFn.ctorContexts.push(this);return t}static factory(...t){return proxyApplyFn.ctorContexts.length!==0?proxyApplyFn.ctorContexts.pop().init(...t):new proxyApplyFn.CtorContext(...t)}};proxyApplyFn.applyContexts=[];proxyApplyFn.ApplyContext=class{constructor(...t){this.init(...t)}init(t,p,o){this.callFn=t;this.thisArg=p;this.callArgs=o;return this}reflect(){const t=Reflect.apply(this.callFn,this.thisArg,this.callArgs);this.callFn=this.thisArg=this.callArgs=this.private=void 0;proxyApplyFn.applyContexts.push(this);return t}static factory(...t){return proxyApplyFn.applyContexts.length!==0?proxyApplyFn.applyContexts.pop().init(...t):new proxyApplyFn.ApplyContext(...t)}};proxyApplyFn.isCtor=new Map;proxyApplyFn.proxies=new WeakMap;if(proxyApplyFn.skipToString!==true){proxyApplyFn.nativeToString=Function.prototype.toString;const t=new Proxy(Function.prototype.toString,{apply(t,p){let o=p;for(;;){const t=proxyApplyFn.proxies.get(o);if(t===void 0)break;o=t}return proxyApplyFn.nativeToString.call(o)}});proxyApplyFn.proxies.set(t,proxyApplyFn.nativeToString);Function.prototype.toString=t}}if(proxyApplyFn.isCtor.has(t)===false)proxyApplyFn.isCtor.set(t,r.prototype?.constructor===r);const i={apply(t,o,n){return p(proxyApplyFn.ApplyContext.factory(t,o,n))}};if(proxyApplyFn.isCtor.get(t))i.construct=function(t,o){return p(proxyApplyFn.CtorContext.factory(t,o))};const l=new Proxy(r,i);proxyApplyFn.proxies.set(l,r);o[n]=l}",
219
+ "dependencies": []
220
+ },
221
+ {
222
+ "name": "proxy-apply-config.js",
223
+ "aliases": [],
224
+ "body": "function proxyApplyConfig(p=\"\"){try{p=JSON.parse(p)}catch{}if(typeof p!==\"object\")return;Object.assign(proxyApplyFn,p)}",
225
+ "dependencies": [
226
+ "proxy-apply.fn"
227
+ ]
228
+ },
229
+ {
230
+ "name": "edit-outbound-object.fn",
231
+ "aliases": [],
232
+ "body": "function editOutboundObjectFn(t=false,e=\"\",o=\"\"){if(e===\"\")return;const n=safeSelf();const u=n.makeLogPrefix(`${t?\"trusted-\":\"\"}edit-outbound-object`,e,o);const r=JSONPath.create(o);if(r.valid===false||r.value!==void 0&&t!==true)return n.uboLog(u,\"Bad JSONPath query\");proxyApplyFn(e,function(t){const e=t.reflect();const o=r.apply(e);if(o===void 0)return e;n.uboLog(u,\"Edited\");if(n.logLevel>1)n.uboLog(u,`After edit:\\n${n.JSON_stringify(o,null,2)}`);return o})}",
233
+ "dependencies": [
234
+ "jsonpath.fn",
235
+ "proxy-apply.fn",
236
+ "safe-self.fn"
237
+ ]
238
+ },
239
+ {
240
+ "name": "edit-outbound-object.js",
241
+ "aliases": [],
242
+ "body": "function editOutboundObject(t=\"\",e=\"\"){editOutboundObjectFn(false,t,e)}",
243
+ "dependencies": [
244
+ "edit-outbound-object.fn"
245
+ ]
246
+ },
247
+ {
248
+ "name": "trusted-edit-outbound-object.js",
249
+ "aliases": [],
250
+ "body": "function trustedEditOutboundObject(t=\"\",u=\"\"){editOutboundObjectFn(true,t,u)}",
251
+ "dependencies": [
252
+ "edit-outbound-object.fn"
253
+ ],
254
+ "requiresTrust": true
255
+ },
256
+ {
257
+ "name": "json-edit.js",
258
+ "aliases": [],
259
+ "body": "function jsonEdit(n=\"\"){editOutboundObjectFn(false,\"JSON.parse\",n)}",
260
+ "dependencies": [
261
+ "edit-outbound-object.fn"
262
+ ]
263
+ },
264
+ {
265
+ "name": "trusted-json-edit.js",
266
+ "aliases": [],
267
+ "body": "function trustedJsonEdit(t=\"\"){editOutboundObjectFn(true,\"JSON.parse\",t)}",
268
+ "dependencies": [
269
+ "edit-outbound-object.fn"
270
+ ],
271
+ "requiresTrust": true
272
+ },
273
+ {
274
+ "name": "edit-inbound-object.fn",
275
+ "aliases": [],
276
+ "body": "function editInboundObjectFn(t=false,e=\"\",r=\"\",n=\"\"){if(e===\"\")return;const i=safeSelf();const o=i.makeLogPrefix(`${t?\"trusted-\":\"\"}edit-inbound-object`,e,n);const f=JSONPath.create(n);if(f.valid===false||f.value!==void 0&&t!==true)return i.uboLog(o,\"Bad JSONPath query\");const l=parseInt(r,10);if(isNaN(l))return;const u=t=>{if(Array.isArray(t)===false)return;if(l>=0){if(t.length<=l)return;return l}if(t.length<-l)return;return t.length+l};const s=t=>{let e;try{e=i.JSON_parse(i.JSON_stringify(t))}catch{}if(typeof e!==\"object\"||e===null)return;const r=f.apply(e);if(r===void 0)return;i.uboLog(o,\"Edited\");if(i.logLevel>1)i.uboLog(o,`After edit:\\n${i.JSON_stringify(r,null,2)}`);return r};proxyApplyFn(e,function(t){const e=u(t.callArgs);if(e!==void 0){const r=s(t.callArgs[e]);if(r)t.callArgs[e]=r}return t.reflect()})}",
277
+ "dependencies": [
278
+ "jsonpath.fn",
279
+ "proxy-apply.fn",
280
+ "safe-self.fn"
281
+ ]
282
+ },
283
+ {
284
+ "name": "edit-inbound-object.js",
285
+ "aliases": [],
286
+ "body": "function editInboundObject(n=\"\",e=\"\",t=\"\"){editInboundObjectFn(false,n,e,t)}",
287
+ "dependencies": [
288
+ "edit-inbound-object.fn"
289
+ ]
290
+ },
291
+ {
292
+ "name": "trusted-edit-inbound-object.js",
293
+ "aliases": [],
294
+ "body": "function trustedEditInboundObject(t=\"\",n=\"\",d=\"\"){editInboundObjectFn(true,t,n,d)}",
295
+ "dependencies": [
296
+ "edit-inbound-object.fn"
297
+ ],
298
+ "requiresTrust": true
299
+ },
300
+ {
301
+ "name": "edit-this-object.fn",
302
+ "aliases": [],
303
+ "body": "function editThisObjectFn(t=false,e=\"\",r=\"\",i=\"\"){if(e===\"\")return;const n=safeSelf();const o=n.makeLogPrefix(`${t?\"trusted-\":\"\"}edit-this-object`,e,r);const f=JSONPath.create(r);if(f.valid===false||f.value!==void 0&&t!==true)return n.uboLog(o,\"Bad JSONPath query\");const u=t=>{const e=f.apply(t);if(e===void 0)return;n.uboLog(o,\"Edited\");if(n.logLevel<=1)return;n.uboLog(o,`After edit:\\n${n.JSON_stringify(e,null,2)}`)};proxyApplyFn(e,function(t){const{thisArg:e}=t;let r;if(i===\"after\")r=t.reflect();u(e);if(i!==\"after\")r=t.reflect();return r})}",
304
+ "dependencies": [
305
+ "jsonpath.fn",
306
+ "proxy-apply.fn",
307
+ "safe-self.fn"
308
+ ]
309
+ },
310
+ {
311
+ "name": "edit-this-object.js",
312
+ "aliases": [],
313
+ "body": "function editThisObject(...e){editThisObjectFn(false,...e)}",
314
+ "dependencies": [
315
+ "edit-this-object.fn"
316
+ ]
317
+ },
318
+ {
319
+ "name": "trusted-edit-this-object.js",
320
+ "aliases": [],
321
+ "body": "function trustedEditThisObject(...t){editThisObjectFn(true,...t)}",
322
+ "dependencies": [
323
+ "edit-this-object.fn"
324
+ ],
325
+ "requiresTrust": true
326
+ },
327
+ {
328
+ "name": "edit-object-on-getter.fn",
329
+ "aliases": [],
330
+ "body": "function editObjectOnGetterFn(t=false,e=\"\",n=\"\"){if(e===\"\")return;const o=safeSelf();const r=o.makeLogPrefix(`${t?\"trusted-\":\"\"}edit-object-on-getter`,e,n);const i=JSONPath.create(n);if(i.valid===false||i.value!==void 0&&t!==true)return o.uboLog(r,\"Bad JSONPath query\");const f=t=>{const e=i.apply(t);if(e===void 0)return;o.uboLog(r,\"Edited\");if(o.logLevel<=1)return;o.uboLog(r,`After edit:\\n${o.JSON_stringify(e,null,2)}`)};let u=trapPropertyFn(e,{get:function(){if(u instanceof Object)f(u);return u},set:function(t){u=t}})}",
331
+ "dependencies": [
332
+ "jsonpath.fn",
333
+ "safe-self.fn",
334
+ "trap-property-access.fn"
335
+ ]
336
+ },
337
+ {
338
+ "name": "edit-object-on-getter.js",
339
+ "aliases": [],
340
+ "body": "function editObjectOnGetter(...e){editObjectOnGetterFn(false,...e)}",
341
+ "dependencies": [
342
+ "edit-object-on-getter.fn"
343
+ ]
344
+ },
345
+ {
346
+ "name": "trusted-edit-object-on-getter.js",
347
+ "aliases": [],
348
+ "body": "function trustedEditObjectOnGetter(...t){editObjectOnGetterFn(true,...t)}",
349
+ "dependencies": [
350
+ "edit-object-on-getter.fn"
351
+ ],
352
+ "requiresTrust": true
353
+ },
354
+ {
355
+ "name": "edit-object-on-setter.fn",
356
+ "aliases": [],
357
+ "body": "function editObjectOnSetterFn(t=false,e=\"\",n=\"\"){if(e===\"\")return;const o=safeSelf();const r=o.makeLogPrefix(`${t?\"trusted-\":\"\"}edit-object-on-setter`,e,n);const i=JSONPath.create(n);if(i.valid===false||i.value!==void 0&&t!==true)return o.uboLog(r,\"Bad JSONPath query\");const f=t=>{const e=i.apply(t);if(e===void 0)return;o.uboLog(r,\"Edited\");if(o.logLevel<=1)return;o.uboLog(r,`After edit:\\n${o.JSON_stringify(e,null,2)}`)};let u=trapPropertyFn(e,{get:function(){return u},set:function(t){u=t;if(u instanceof Object)f(u)}});if(u instanceof Object)f(u)}",
358
+ "dependencies": [
359
+ "jsonpath.fn",
360
+ "safe-self.fn",
361
+ "trap-property-access.fn"
362
+ ]
363
+ },
364
+ {
365
+ "name": "edit-object-on-setter.js",
366
+ "aliases": [],
367
+ "body": "function editObjectOnSetter(...e){editObjectOnSetterFn(false,...e)}",
368
+ "dependencies": [
369
+ "edit-object-on-setter.fn"
370
+ ]
371
+ },
372
+ {
373
+ "name": "trusted-edit-object-on-setter.js",
374
+ "aliases": [],
375
+ "body": "function trustedEditObjectOnSetter(...t){editObjectOnSetterFn(true,...t)}",
376
+ "dependencies": [
377
+ "edit-object-on-setter.fn"
378
+ ],
379
+ "requiresTrust": true
380
+ },
381
+ {
382
+ "name": "edit-element-object.fn",
383
+ "aliases": [],
384
+ "body": "async function editElementObjectFn(e=false,t=\"\",o=\"\",n=\"\"){if(t===\"\")return;const a=safeSelf();const s=a.makeLogPrefix(`${e?\"trusted-\":\"\"}edit-element-object`,t,o,n);const i=JSONPath.create(o);if(i.valid===false||i.value!==void 0&&e!==true)return a.uboLog(s,\"Bad JSONPath query\");const c=e=>{for(const t of e){const e=i.apply(t);if(e===void 0)continue;a.uboLog(s,\"Edited\")}};const r=n!==\"\"?Date.now()+parseInt(n,10):0;do{const e=lookupElementsFn(t,r);if(Array.isArray(e))c(e);else if(e instanceof Promise){const t=await e;c(t)}await sleepFn()}while(Date.now()<r)}",
385
+ "dependencies": [
386
+ "jsonpath.fn",
387
+ "lookup-elements.fn",
388
+ "safe-self.fn",
389
+ "sleep.fn"
390
+ ]
391
+ },
392
+ {
393
+ "name": "edit-element-object.js",
394
+ "aliases": [],
395
+ "body": "function editElementObject(...e){editElementObjectFn(false,...e)}",
396
+ "dependencies": [
397
+ "edit-element-object.fn"
398
+ ]
399
+ },
400
+ {
401
+ "name": "trusted-edit-element-object.js",
402
+ "aliases": [],
403
+ "body": "function trustedEditElementObject(...t){editElementObjectFn(true,...t)}",
404
+ "dependencies": [
405
+ "edit-element-object.fn"
406
+ ],
407
+ "requiresTrust": true
408
+ },
409
+ {
410
+ "name": "json-edit-xhr-response.fn",
411
+ "aliases": [],
412
+ "body": "function jsonEditXhrResponseFn(e,t=\"\"){const s=safeSelf();const o=s.makeLogPrefix(`${e?\"trusted-\":\"\"}json-edit-xhr-response`,t);const r=new WeakMap;const n=JSONPath.create(t);if(n.valid===false||n.value!==void 0&&e!==true)return s.uboLog(o,\"Bad JSONPath query\");const p=s.getExtraArgs(Array.from(arguments),2);const i=parsePropertiesToMatchFn(p.propsToMatch,\"url\");self.XMLHttpRequest=class extends self.XMLHttpRequest{open(e,t,...n){const p={method:e,url:t};const a=i.size===0||matchObjectPropertiesFn(i,p);if(a){if(s.logLevel>1&&Array.isArray(a))s.uboLog(o,`Matched \"propsToMatch\":\\n\\t${a.join(\"\\n\\t\")}`);r.set(this,p)}return super.open(e,t,...n)}get response(){const e=super.response;const t=r.get(this);if(t===void 0)return e;const p=typeof e===\"string\"?e.length:void 0;if(t.lastResponseLength!==p){t.response=void 0;t.lastResponseLength=p}if(t.response!==void 0)return t.response;let i;if(typeof e===\"object\")i=e;else if(typeof e===\"string\")try{i=s.JSON_parse(e)}catch{}if(typeof i!==\"object\"||i===null)return t.response=e;const a=n.apply(i);if(a===void 0)return t.response=e;s.uboLog(o,\"Edited\");const c=typeof e===\"string\"?JSONPath.toJSON(a,s.JSON_stringify):a;return t.response=c}get responseText(){const e=this.response;return typeof e!==\"string\"?super.responseText:e}}}",
413
+ "dependencies": [
414
+ "jsonpath.fn",
415
+ "match-object-properties.fn",
416
+ "parse-properties-to-match.fn",
417
+ "safe-self.fn"
418
+ ]
419
+ },
420
+ {
421
+ "name": "json-edit-xhr-response.js",
422
+ "aliases": [],
423
+ "body": "function jsonEditXhrResponse(n=\"\",...s){jsonEditXhrResponseFn(false,n,...s)}",
424
+ "dependencies": [
425
+ "json-edit-xhr-response.fn"
426
+ ]
427
+ },
428
+ {
429
+ "name": "trusted-json-edit-xhr-response.js",
430
+ "aliases": [],
431
+ "body": "function trustedJsonEditXhrResponse(n=\"\",...s){jsonEditXhrResponseFn(true,n,...s)}",
432
+ "dependencies": [
433
+ "json-edit-xhr-response.fn"
434
+ ],
435
+ "requiresTrust": true
436
+ },
437
+ {
438
+ "name": "json-edit-xhr-request.fn",
439
+ "aliases": [],
440
+ "body": "function jsonEditXhrRequestFn(e,t=\"\"){const r=safeSelf();const s=r.makeLogPrefix(`${e?\"trusted-\":\"\"}json-edit-xhr-request`,t);const o=new WeakMap;const n=JSONPath.create(t);if(n.valid===false||n.value!==void 0&&e!==true)return r.uboLog(s,\"Bad JSONPath query\");const i=r.getExtraArgs(Array.from(arguments),2);const a=parsePropertiesToMatchFn(i.propsToMatch,\"url\");self.XMLHttpRequest=class extends self.XMLHttpRequest{open(e,t,...n){const i={method:e,url:t};const c=a.size===0||matchObjectPropertiesFn(a,i);if(c){if(r.logLevel>1&&Array.isArray(c))r.uboLog(s,`Matched \"propsToMatch\":\\n\\t${c.join(\"\\n\\t\")}`);o.set(this,i)}return super.open(e,t,...n)}send(e){const t=o.get(this);if(t)e=this.#e(e)||e;super.send(e)}#e(e){if(typeof e!==\"string\")return;let t;try{t=r.JSON_parse(e)}catch{}if(t instanceof Object===false)return;const o=n.apply(t);if(o===void 0)return;e=r.JSON_stringify(o);r.uboLog(s,\"Edited\");if(r.logLevel>1)r.uboLog(s,`After edit:\\n${e}`);return e}}}",
441
+ "dependencies": [
442
+ "jsonpath.fn",
443
+ "match-object-properties.fn",
444
+ "parse-properties-to-match.fn",
445
+ "safe-self.fn"
446
+ ]
447
+ },
448
+ {
449
+ "name": "json-edit-xhr-request.js",
450
+ "aliases": [],
451
+ "body": "function jsonEditXhrRequest(e=\"\",...n){jsonEditXhrRequestFn(false,e,...n)}",
452
+ "dependencies": [
453
+ "json-edit-xhr-request.fn"
454
+ ]
455
+ },
456
+ {
457
+ "name": "trusted-json-edit-xhr-request.js",
458
+ "aliases": [],
459
+ "body": "function trustedJsonEditXhrRequest(t=\"\",...e){jsonEditXhrRequestFn(true,t,...e)}",
460
+ "dependencies": [
461
+ "json-edit-xhr-request.fn"
462
+ ],
463
+ "requiresTrust": true
464
+ },
465
+ {
466
+ "name": "json-edit-fetch-response.fn",
467
+ "aliases": [],
468
+ "body": "function jsonEditFetchResponseFn(e,t=\"\"){const r=safeSelf();const o=r.makeLogPrefix(`${e?\"trusted-\":\"\"}json-edit-fetch-response`,t);const n=JSONPath.create(t);if(n.valid===false||n.value!==void 0&&e!==true)return r.uboLog(o,\"Bad JSONPath query\");const s=r.getExtraArgs(Array.from(arguments),2);const c=parsePropertiesToMatchFn(s.propsToMatch,\"url\");proxyApplyFn(\"fetch\",function(e){const t=e.callArgs;const s=e.reflect();if(c.size!==0){const e=collateFetchArgumentsFn(...t);const n=matchObjectPropertiesFn(c,e);if(n===void 0)return s;if(r.logLevel>1)r.uboLog(o,`Matched \"propsToMatch\":\\n\\t${n.join(\"\\n\\t\")}`)}return s.then(e=>{const t=e.clone();return t.json().then(t=>{if(typeof t!==\"object\")return e;const s=n.apply(t);if(s===void 0)return e;r.uboLog(o,\"Edited\");const c=Response.json(s,{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperties(c,{ok:{value:e.ok},redirected:{value:e.redirected},type:{value:e.type},url:{value:e.url}});return c}).catch(t=>{r.uboErr(o,\"Error:\",t);return e})}).catch(e=>{r.uboErr(o,\"Error:\",e);return s})})}",
469
+ "dependencies": [
470
+ "collate-fetch-arguments.fn",
471
+ "jsonpath.fn",
472
+ "match-object-properties.fn",
473
+ "parse-properties-to-match.fn",
474
+ "proxy-apply.fn",
475
+ "safe-self.fn"
476
+ ]
477
+ },
478
+ {
479
+ "name": "json-edit-fetch-response.js",
480
+ "aliases": [],
481
+ "body": "function jsonEditFetchResponse(e=\"\",...n){jsonEditFetchResponseFn(false,e,...n)}",
482
+ "dependencies": [
483
+ "json-edit-fetch-response.fn"
484
+ ]
485
+ },
486
+ {
487
+ "name": "trusted-json-edit-fetch-response.js",
488
+ "aliases": [],
489
+ "body": "function trustedJsonEditFetchResponse(e=\"\",...t){jsonEditFetchResponseFn(true,e,...t)}",
490
+ "dependencies": [
491
+ "json-edit-fetch-response.fn"
492
+ ],
493
+ "requiresTrust": true
494
+ },
495
+ {
496
+ "name": "json-edit-fetch-request.fn",
497
+ "aliases": [],
498
+ "body": "function jsonEditFetchRequestFn(t,e=\"\"){const o=safeSelf();const r=o.makeLogPrefix(`${t?\"trusted-\":\"\"}json-edit-fetch-request`,e);const n=JSONPath.create(e);if(n.valid===false||n.value!==void 0&&t!==true)return o.uboLog(r,\"Bad JSONPath query\");const s=o.getExtraArgs(Array.from(arguments),2);const c=parsePropertiesToMatchFn(s.propsToMatch,\"url\");const i=t=>{if(typeof t!==\"string\")return;let e;try{e=o.JSON_parse(t)}catch{}if(e instanceof Object===false)return;const r=n.apply(e);if(r===void 0)return;return o.JSON_stringify(r)};const f=t=>{const e=t.callArgs;const[n,s]=e;const f=s?.body;if(Boolean(f)===false)return t.reflect();const a=i(f);if(a===void 0||a===f)return t.reflect();if(c.size!==0){const e=collateFetchArgumentsFn(n,s);const i=matchObjectPropertiesFn(c,e);if(i===void 0)return t.reflect();if(o.logLevel>1)o.uboLog(r,`Matched \"propsToMatch\":\\n\\t${i.join(\"\\n\\t\")}`)}o.uboLog(r,\"Edited\");if(o.logLevel>1)o.uboLog(r,`After edit:\\n${a}`);s.body=a;return t.reflect()};proxyApplyFn(\"fetch\",f);proxyApplyFn(\"Request\",f)}",
499
+ "dependencies": [
500
+ "collate-fetch-arguments.fn",
501
+ "jsonpath.fn",
502
+ "match-object-properties.fn",
503
+ "parse-properties-to-match.fn",
504
+ "proxy-apply.fn",
505
+ "safe-self.fn"
506
+ ]
507
+ },
508
+ {
509
+ "name": "json-edit-fetch-request.js",
510
+ "aliases": [],
511
+ "body": "function jsonEditFetchRequest(e=\"\",...t){jsonEditFetchRequestFn(false,e,...t)}",
512
+ "dependencies": [
513
+ "json-edit-fetch-request.fn"
514
+ ]
515
+ },
516
+ {
517
+ "name": "trusted-json-edit-fetch-request.js",
518
+ "aliases": [],
519
+ "body": "function trustedJsonEditFetchRequest(t=\"\",...e){jsonEditFetchRequestFn(true,t,...e)}",
520
+ "dependencies": [
521
+ "json-edit-fetch-request.fn"
522
+ ],
523
+ "requiresTrust": true
524
+ },
525
+ {
526
+ "name": "jsonl-edit.fn",
527
+ "aliases": [],
528
+ "body": "function jsonlEditFn(n,t=\"\"){const o=safeSelf();const s=/\\r?\\n/.exec(t)?.[0]||\"\\n\";const c=t.split(\"\\n\");const e=[];for(const t of c){let s;try{s=o.JSON_parse(t)}catch{}if(typeof s!==\"object\"||s===null){e.push(t);continue}const c=n.apply(s);if(c===void 0){e.push(t);continue}const i=o.JSON_stringify(c);e.push(i)}return e.join(s)}",
529
+ "dependencies": [
530
+ "jsonpath.fn",
531
+ "safe-self.fn"
532
+ ]
533
+ },
534
+ {
535
+ "name": "jsonl-edit-xhr-response.fn",
536
+ "aliases": [],
537
+ "body": "function jsonlEditXhrResponseFn(e,s=\"\"){const t=safeSelf();const o=t.makeLogPrefix(`${e?\"trusted-\":\"\"}jsonl-edit-xhr-response`,s);const n=new WeakMap;const r=JSONPath.create(s);if(r.valid===false||r.value!==void 0&&e!==true)return t.uboLog(o,\"Bad JSONPath query\");const p=t.getExtraArgs(Array.from(arguments),2);const i=parsePropertiesToMatchFn(p.propsToMatch,\"url\");self.XMLHttpRequest=class extends self.XMLHttpRequest{open(e,s,...r){const p={method:e,url:s};const a=i.size===0||matchObjectPropertiesFn(i,p);if(a){if(t.logLevel>1&&Array.isArray(a))t.uboLog(o,`Matched \"propsToMatch\":\\n\\t${a.join(\"\\n\\t\")}`);n.set(this,p)}return super.open(e,s,...r)}get response(){const e=super.response;const s=n.get(this);if(s===void 0)return e;const p=typeof e===\"string\"?e.length:void 0;if(s.lastResponseLength!==p){s.response=void 0;s.lastResponseLength=p}if(s.response!==void 0)return s.response;if(typeof e!==\"string\")return s.response=e;const i=jsonlEditFn(r,e);if(i!==e)t.uboLog(o,\"Pruned\");return s.response=i}get responseText(){const e=this.response;return typeof e!==\"string\"?super.responseText:e}}}",
538
+ "dependencies": [
539
+ "jsonpath.fn",
540
+ "jsonl-edit.fn",
541
+ "match-object-properties.fn",
542
+ "parse-properties-to-match.fn",
543
+ "safe-self.fn"
544
+ ]
545
+ },
546
+ {
547
+ "name": "jsonl-edit-xhr-response.js",
548
+ "aliases": [],
549
+ "body": "function jsonlEditXhrResponse(n=\"\",...s){jsonlEditXhrResponseFn(false,n,...s)}",
550
+ "dependencies": [
551
+ "jsonl-edit-xhr-response.fn"
552
+ ]
553
+ },
554
+ {
555
+ "name": "trusted-jsonl-edit-xhr-response.js",
556
+ "aliases": [],
557
+ "body": "function trustedJsonlEditXhrResponse(n=\"\",...s){jsonlEditXhrResponseFn(true,n,...s)}",
558
+ "dependencies": [
559
+ "jsonl-edit-xhr-response.fn"
560
+ ],
561
+ "requiresTrust": true
562
+ },
563
+ {
564
+ "name": "jsonl-edit-fetch-response.fn",
565
+ "aliases": [],
566
+ "body": "function jsonlEditFetchResponseFn(e,t=\"\"){const r=safeSelf();const o=r.makeLogPrefix(`${e?\"trusted-\":\"\"}jsonl-edit-fetch-response`,t);const n=JSONPath.create(t);if(n.valid===false||n.value!==void 0&&e!==true)return r.uboLog(o,\"Bad JSONPath query\");const s=r.getExtraArgs(Array.from(arguments),2);const c=parsePropertiesToMatchFn(s.propsToMatch,\"url\");const u=t===\"\";proxyApplyFn(\"fetch\",function(e){const t=e.callArgs;const s=e.reflect();if(c.size!==0){const e=collateFetchArgumentsFn(...t);const n=matchObjectPropertiesFn(c,e);if(n===void 0)return s;if(r.logLevel>1)r.uboLog(o,`Matched \"propsToMatch\":\\n\\t${n.join(\"\\n\\t\")}`)}return s.then(e=>{const t=e.clone();return t.text().then(t=>{if(typeof t!==\"string\")return t;if(u){r.uboLog(o,t);return e}const s=jsonlEditFn(n,t);if(s===t)return e;r.uboLog(o,\"Pruned\");const c=new Response(s,{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperties(c,{ok:{value:e.ok},redirected:{value:e.redirected},type:{value:e.type},url:{value:e.url}});return c}).catch(t=>{r.uboErr(o,\"Error:\",t);return e})}).catch(e=>{r.uboErr(o,\"Error:\",e);return s})})}",
567
+ "dependencies": [
568
+ "collate-fetch-arguments.fn",
569
+ "jsonpath.fn",
570
+ "jsonl-edit.fn",
571
+ "match-object-properties.fn",
572
+ "parse-properties-to-match.fn",
573
+ "proxy-apply.fn",
574
+ "safe-self.fn"
575
+ ]
576
+ },
577
+ {
578
+ "name": "jsonl-edit-fetch-response.js",
579
+ "aliases": [],
580
+ "body": "function jsonlEditFetchResponse(e=\"\",...n){jsonlEditFetchResponseFn(false,e,...n)}",
581
+ "dependencies": [
582
+ "jsonl-edit-fetch-response.fn"
583
+ ]
584
+ },
585
+ {
586
+ "name": "trusted-jsonl-edit-fetch-response.js",
587
+ "aliases": [],
588
+ "body": "function trustedJsonlEditFetchResponse(e=\"\",...t){jsonlEditFetchResponseFn(true,e,...t)}",
589
+ "dependencies": [
590
+ "jsonl-edit-fetch-response.fn"
591
+ ],
592
+ "requiresTrust": true
593
+ },
594
+ {
595
+ "name": "matches-stack-trace.fn",
596
+ "aliases": [],
597
+ "body": "function matchesStackTraceFn(t,e=\"\"){const n=safeSelf();const c=getExceptionTokenFn();const i=new n.Error(c);const s=new URL(self.location.href);s.hash=\"\";const l=/(.*?@)?(\\S+)(:\\d+):\\d+\\)?$/;const o=[];for(let t of n.String_split.call(i.stack,/[\\n\\r]+/)){if(t.includes(c))continue;t=t.trim();const e=n.RegExp_exec.call(l,t);if(e===null)continue;let i=e[2];if(i.startsWith(\"(\"))i=i.slice(1);if(i===s.href)i=\"inlineScript\";else if(i.startsWith(\"<anonymous>\"))i=\"injectedScript\";let r=e[1]!==void 0?e[1].slice(0,-1):t.slice(0,e.index).trim();if(r.startsWith(\"at\"))r=r.slice(2).trim();let a=e[3];o.push(\" \"+`${r} ${i}${a}:1`.trim())}o[0]=`stackDepth:${o.length-1}`;const r=o.join(\"\\t\");const a=t.matchAll!==true&&n.testPattern(t,r);if(e===\"all\"||e===\"match\"&&a||e===\"nomatch\"&&!a)n.uboLog(r.replace(/\\t/g,\"\\n\"));return a}",
598
+ "dependencies": [
599
+ "get-exception-token.fn",
600
+ "safe-self.fn"
601
+ ]
602
+ },
603
+ {
604
+ "name": "abort-on-stack-trace.js",
605
+ "aliases": [
606
+ "aost.js"
607
+ ],
608
+ "body": "function abortOnStackTrace(e=\"\",t=\"\"){if(typeof e!==\"string\")return;const n=safeSelf();const r=n.initPattern(t,{canNegate:true});const c=n.getExtraArgs(Array.from(arguments),2);if(t===\"\")c.log=\"all\";const o=function(e,t){const c=t.indexOf(\".\");if(c===-1){let c=e[t];Object.defineProperty(e,t,{get:function(){const e=n.logLevel>1?\"all\":\"match\";if(matchesStackTraceFn(r,e))throw new ReferenceError(getExceptionTokenFn());return c},set:function(e){const t=n.logLevel>1?\"all\":\"match\";if(matchesStackTraceFn(r,t))throw new ReferenceError(getExceptionTokenFn());c=e}});return}const i=t.slice(0,c);let f=e[i];t=t.slice(c+1);if(f){o(f,t);return}const s=Object.getOwnPropertyDescriptor(e,i);if(s&&s.set!==void 0)return;Object.defineProperty(e,i,{get:function(){return f},set:function(e){f=e;if(e instanceof Object)o(e,t)}})};const i=window;o(i,e)}",
609
+ "dependencies": [
610
+ "get-exception-token.fn",
611
+ "matches-stack-trace.fn",
612
+ "safe-self.fn"
613
+ ]
614
+ },
615
+ {
616
+ "name": "object-find-owner.fn",
617
+ "aliases": [],
618
+ "body": "function objectFindOwnerFn(e,t,n=false){const f=safeSelf();let r=e;let s=t;for(;;){if(typeof r!==\"object\"||r===null)return false;const e=s.indexOf(\".\");if(e===-1){if(n===false)return f.Object_hasOwn(r,s);let e=false;if(s===\"*\")for(const t in r){if(f.Object_hasOwn(r,t)===false)continue;delete r[t];e=true}else if(f.Object_hasOwn(r,s)){delete r[s];e=true}return e}const t=s.slice(0,e);const i=s.slice(e+1);let c=false;if(t===\"[-]\"&&Array.isArray(r)){let e=r.length;while(e--){if(objectFindOwnerFn(r[e],i)===false)continue;r.splice(e,1);c=true}return c}if(t===\"{-}\"&&r instanceof Object){for(const e of Object.keys(r)){if(objectFindOwnerFn(r[e],i)===false)continue;delete r[e];c=true}return c}if(t===\"[]\"&&Array.isArray(r)||t===\"{}\"&&r instanceof Object||t===\"*\"&&r instanceof Object){for(const e of Object.keys(r)){if(objectFindOwnerFn(r[e],i,n)===false)continue;c=true}return c}if(f.Object_hasOwn(r,t)===false)return false;r=r[t];s=s.slice(e+1)}}",
619
+ "dependencies": [
620
+ "safe-self.fn"
621
+ ]
622
+ },
623
+ {
624
+ "name": "object-prune.fn",
625
+ "aliases": [],
626
+ "body": "function objectPruneFn(t,e,n,r={matchAll:true},c={}){if(typeof e!==\"string\")return;const o=safeSelf();const s=e!==\"\"?o.String_split.call(e,/ +/):[];const f=s.length!==0&&n!==\"\"?o.String_split.call(n,/ +/):[];if(r.matchAll!==true)if(matchesStackTraceFn(r,c.logstack)===false)return;if(objectPruneFn.mustProcess===void 0)objectPruneFn.mustProcess=(t,e)=>{for(const n of e)if(objectFindOwnerFn(t,n)===false)return false;return true};if(s.length===0)return;let i=\"nomatch\";if(objectPruneFn.mustProcess(t,f))for(const e of s)if(objectFindOwnerFn(t,e,true))i=\"match\";if(i===\"match\")return t}",
627
+ "dependencies": [
628
+ "matches-stack-trace.fn",
629
+ "object-find-owner.fn",
630
+ "safe-self.fn"
631
+ ]
632
+ },
633
+ {
634
+ "name": "trusted-prune-inbound-object.js",
635
+ "aliases": [],
636
+ "body": "function trustedPruneInboundObject(t=\"\",n=\"\",e=\"\",r=\"\"){if(t===\"\")return;let i=globalThis;let c=t;for(;;){const t=c.indexOf(\".\");if(t===-1)break;i=i[c.slice(0,t)];if(i instanceof Object===false)return;c=c.slice(t+1)}if(typeof i[c]!==\"function\")return;const f=parseInt(n);if(isNaN(f))return;if(f<1)return;const o=safeSelf();const s=o.getExtraArgs(Array.from(arguments),4);const a=[];if(e!==\"\")a.push(...o.String_split.call(e,/ +/));if(r!==\"\")a.push(...o.String_split.call(r,/ +/));const l=o.initPattern(s.stackToMatch||\"\",{canNegate:true});const u=t=>{for(const n of a)if(objectFindOwnerFn(t,n)===false)return false;return true};i[c]=new Proxy(i[c],{apply:function(t,n,i){const c=f<=i.length?i[f-1]:void 0;if(c instanceof Object&&u(c)){let t=c;if(s.dontOverwrite)try{t=o.JSON_parse(o.JSON_stringify(c))}catch{t=void 0}if(t!==void 0){const n=objectPruneFn(t,e,r,l,s);i[f-1]=n||t}}return Reflect.apply(t,n,i)}})}",
637
+ "dependencies": [
638
+ "object-find-owner.fn",
639
+ "object-prune.fn",
640
+ "safe-self.fn"
641
+ ],
642
+ "requiresTrust": true
643
+ },
644
+ {
645
+ "name": "trusted-prune-outbound-object.js",
646
+ "aliases": [],
647
+ "body": "function trustedPruneOutboundObject(t=\"\",n=\"\",e=\"\"){if(t===\"\")return;const r=safeSelf();const c=r.getExtraArgs(Array.from(arguments),3);proxyApplyFn(t,function(t){const r=t.reflect();if(r instanceof Object===false)return r;const o=objectPruneFn(r,n,e,{matchAll:true},c);return o||r})}",
648
+ "dependencies": [
649
+ "object-prune.fn",
650
+ "proxy-apply.fn",
651
+ "safe-self.fn"
652
+ ],
653
+ "requiresTrust": true
654
+ },
655
+ {
656
+ "name": "json-prune.js",
657
+ "aliases": [],
658
+ "body": "function jsonPrune(n=\"\",r=\"\",e=\"\"){const o=safeSelf();const t=o.makeLogPrefix(\"json-prune\",n,r,e);const u=o.initPattern(e,{canNegate:true});const i=o.getExtraArgs(Array.from(arguments),3);proxyApplyFn(\"JSON.parse\",function(e){const f=e.reflect();if(n===\"\")o.uboLog(t,o.JSON_stringify(f,null,2));const s=objectPruneFn(f,n,r,u,i);if(s===void 0)return f;o.uboLog(t,\"Pruned\");if(o.logLevel>1)o.uboLog(t,`After pruning:\\n${o.JSON_stringify(s,null,2)}`);return s})}",
659
+ "dependencies": [
660
+ "object-prune.fn",
661
+ "proxy-apply.fn",
662
+ "safe-self.fn"
663
+ ]
664
+ },
665
+ {
666
+ "name": "json-prune-fetch-response.js",
667
+ "aliases": [],
668
+ "body": "function jsonPruneFetchResponse(e=\"\",t=\"\"){const r=safeSelf();const o=r.makeLogPrefix(\"json-prune-fetch-response\",e,t);const n=r.getExtraArgs(Array.from(arguments),2);const s=parsePropertiesToMatchFn(n.propsToMatch,\"url\");const c=r.initPattern(n.stackToMatch||\"\",{canNegate:true});const u=e===\"\";const a=function(a,f,i){const l=Reflect.apply(a,f,i);if(s.size!==0){const e=collateFetchArgumentsFn(...i);const t=matchObjectPropertiesFn(s,e);if(t===void 0)return l;if(r.logLevel>1)r.uboLog(o,`Matched \"propsToMatch\":\\n\\t${t.join(\"\\n\\t\")}`)}return l.then(s=>{const a=s.clone();return a.json().then(a=>{if(typeof a!==\"object\")return s;if(u){r.uboLog(o,r.JSON_stringify(a,null,2));return s}const f=objectPruneFn(a,e,t,c,n);if(typeof f!==\"object\")return s;r.uboLog(o,\"Pruned\");const i=Response.json(f,{status:s.status,statusText:s.statusText,headers:s.headers});Object.defineProperties(i,{ok:{value:s.ok},redirected:{value:s.redirected},type:{value:s.type},url:{value:s.url}});return i}).catch(e=>{r.uboErr(o,\"Error:\",e);return s})}).catch(e=>{r.uboErr(o,\"Error:\",e);return l})};self.fetch=new Proxy(self.fetch,{apply:a})}",
669
+ "dependencies": [
670
+ "collate-fetch-arguments.fn",
671
+ "match-object-properties.fn",
672
+ "object-prune.fn",
673
+ "parse-properties-to-match.fn",
674
+ "safe-self.fn"
675
+ ]
676
+ },
677
+ {
678
+ "name": "json-prune-xhr-response.js",
679
+ "aliases": [],
680
+ "body": "function jsonPruneXhrResponse(e=\"\",t=\"\"){const s=safeSelf();const o=s.makeLogPrefix(\"json-prune-xhr-response\",e,t);const n=new WeakMap;const r=s.getExtraArgs(Array.from(arguments),2);const p=parsePropertiesToMatchFn(r.propsToMatch,\"url\");const c=s.initPattern(r.stackToMatch||\"\",{canNegate:true});self.XMLHttpRequest=class extends self.XMLHttpRequest{open(e,t,...c){const i={method:e,url:t};let a=\"match\";if(p.size!==0)if(matchObjectPropertiesFn(p,i)===void 0)a=\"nomatch\";if(a===\"match\"){if(s.logLevel>1)s.uboLog(o,`Matched optional \"propsToMatch\", \"${r.propsToMatch}\"`);n.set(this,i)}return super.open(e,t,...c)}get response(){const p=super.response;const i=n.get(this);if(i===void 0)return p;const a=typeof p===\"string\"?p.length:void 0;if(i.lastResponseLength!==a){i.response=void 0;i.lastResponseLength=a}if(i.response!==void 0)return i.response;let f;if(typeof p===\"object\")f=p;else if(typeof p===\"string\")try{f=s.JSON_parse(p)}catch{}if(typeof f!==\"object\")return i.response=p;const u=objectPruneFn(f,e,t,c,r);let h;if(typeof u===\"object\"){h=typeof p===\"string\"?s.JSON_stringify(u):u;s.uboLog(o,\"Pruned\")}else h=p;return i.response=h}get responseText(){const e=this.response;return typeof e!==\"string\"?super.responseText:e}}}",
681
+ "dependencies": [
682
+ "match-object-properties.fn",
683
+ "object-prune.fn",
684
+ "parse-properties-to-match.fn",
685
+ "safe-self.fn"
686
+ ]
687
+ },
688
+ {
689
+ "name": "evaldata-prune.js",
690
+ "aliases": [],
691
+ "body": "function evaldataPrune(n=\"\",e=\"\"){proxyApplyFn(\"eval\",function(t){const r=t.reflect();if(typeof r!==\"object\")return r;if(r===null)return null;const u=objectPruneFn(r,n,e);return u||r})}",
692
+ "dependencies": [
693
+ "object-prune.fn",
694
+ "proxy-apply.fn"
695
+ ]
696
+ },
697
+ {
698
+ "name": "noeval-if.js",
699
+ "aliases": [
700
+ "prevent-eval-if.js"
701
+ ],
702
+ "body": "function noEvalIf(e=\"\"){if(typeof e!==\"string\")return;const n=safeSelf();const t=n.makeLogPrefix(\"noeval-if\",e);const o=n.patternToRegex(e);proxyApplyFn(\"eval\",function(r){const{callArgs:f}=r;const l=String(f[0]);if(e!==\"\"&&o.test(l)){n.uboLog(t,\"Prevented:\\n\",l);return}if(e===\"\"||n.logLevel>1)n.uboLog(t,\"Not prevented:\\n\",l);return r.reflect()})}",
703
+ "dependencies": [
704
+ "proxy-apply.fn",
705
+ "safe-self.fn"
706
+ ]
707
+ },
708
+ {
709
+ "name": "prevent-addEventListener.js",
710
+ "aliases": [
711
+ "addEventListener-defuser.js",
712
+ "aeld.js"
713
+ ],
714
+ "body": "function preventAddEventListener(e=\"\",t=\"\"){const n=safeSelf();const r=n.getExtraArgs(Array.from(arguments),2);const o=n.makeLogPrefix(\"prevent-addEventListener\",e,t);const i=n.patternToRegex(e,void 0,true);const s=n.patternToRegex(t);const c=r.elements||void 0;const a=e=>{if(c===\"window\")return e===window;if(c===\"document\")return e===document;if(e&&e.matches&&e.matches(c))return true;const t=Array.from(document.querySelectorAll(c));return t.includes(e)};const u=e=>{if(e instanceof Window)return\"window\";if(e instanceof Document)return\"document\";if(e instanceof Element===false)return\"?\";const t=[];const n=String(e.id);if(n!==\"\")t.push(`#${CSS.escape(n)}`);for(let n=0;n<e.classList.length;n++)t.push(`.${CSS.escape(e.classList.item(n))}`);for(let n=0;n<e.attributes.length;n++){const r=e.attributes.item(n);if(r.name===\"id\")continue;if(r.name===\"class\")continue;t.push(`[${CSS.escape(r.name)}=\"${r.value}\"]`)}return t.join(\"\")};const d=(e,t,r)=>{const o=n.RegExp_test.call(i,t);const u=n.RegExp_test.call(s,r);const d=o||u;const f=o&&u;if(n.logLevel>1&&d)debugger;if(f&&c!==void 0)if(a(e)===false)return false;return f};const f=function(r){const{callArgs:i,thisArg:s}=r;let c,a;try{c=String(i[0]);if(typeof i[1]===\"function\")a=String(n.Function_toString(i[1]));else if(typeof i[1]===\"object\"&&i[1]!==null){if(typeof i[1].handleEvent===\"function\")a=String(n.Function_toString(i[1].handleEvent))}else a=String(i[1])}catch{}if(e===\"\"&&t===\"\")n.uboLog(o,`Called: ${c}\\n${a}\\n${u(s)}`);else if(d(s,c,a))return n.uboLog(o,`Prevented: ${c}\\n${a}\\n${u(s)}`);return r.reflect()};const l=e=>{const{addEventListener:t}=e;Object.defineProperty(e,\"addEventListener\",{set(){},get(){return t}})};runAt(()=>{proxyApplyFn(\"EventTarget.prototype.addEventListener\",f);if(r.protect)l(EventTarget.prototype);if(Object.hasOwn(document,\"addEventListener\")){proxyApplyFn(\"document.addEventListener\",f);if(r.protect)l(document)}if(Object.hasOwn(window,\"addEventListener\")){proxyApplyFn(\"window.addEventListener\",f);if(r.protect)l(window)}},r.runAt)}",
715
+ "dependencies": [
716
+ "proxy-apply.fn",
717
+ "run-at.fn",
718
+ "safe-self.fn"
719
+ ]
720
+ },
721
+ {
722
+ "name": "prevent-bab.js",
723
+ "aliases": [
724
+ "bab-defuser.js",
725
+ "nobab.js"
726
+ ],
727
+ "body": "function preventBab(){const e=safeSelf();const t=e.makeLogPrefix(\"prevent-bab\");const o=[[\"blockadblock\"],[\"babasbm\"],[/getItem\\('babn'\\)/],[\"getElementById\",\"String.fromCharCode\",\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\"charAt\",\"DOMContentLoaded\",\"AdBlock\",\"addEventListener\",\"doScroll\",\"fromCharCode\",\"<<2|r>>4\",\"sessionStorage\",\"clientWidth\",\"localStorage\",\"Math\",\"random\"]];const n=function(e){if(typeof e!==\"string\")return false;for(const t of o){let o=0;for(const n of t){const t=n instanceof RegExp?n.test(e):e.includes(n);if(t)o+=1}if(o/t.length>=.8)return true}return false};proxyApplyFn(\"eval\",function(o){const r=o.callArgs[0];if(!n(r))return o.reflect();e.uboLog(t,\"Prevented\");if(document.body)document.body.style.removeProperty(\"visibility\");const s=document.getElementById(\"babasbmsgx\");if(s)s.parentNode.removeChild(s)});proxyApplyFn(\"setTimeout\",function(o){const{callArgs:n}=o;const r=n[0];if(typeof r===\"string\"&&/\\.bab_elementid.$/.test(r)){n[0]=()=>{};e.uboLog(t,\"Prevented\")}return o.reflect()})}",
728
+ "dependencies": [
729
+ "proxy-apply.fn",
730
+ "safe-self.fn"
731
+ ]
732
+ },
733
+ {
734
+ "name": "prevent-clipboard-write.js",
735
+ "aliases": [],
736
+ "body": "function preventClipboardWrite(e=\"\"){const t=safeSelf();const n=t.makeLogPrefix(\"prevent-clipboard-write\");const r=t.initPattern(e);const o=t.getExtraArgs(Array.from(arguments),1);const c=e=>{const t=document;const n=t.createElement(\"div\");const r=t.createElement(\"span\");r.style=\"flex-grow:1;padding:0.5em 0 0.5em 0.5em;\";const{domAlert:c}=o;const i=/\\$\\{text\\}/.exec(c);if(i){const n=t.createElement(\"code\");n.style=\"background-color:#ddc;font-family:monospace;padding:0.25em;user-select:none;word-break:break-all\";n.textContent=e;r.append(c.slice(0,i.index),n,c.slice(i.index+i[0].length))}else r.append(c);const d=t.createElement(\"button\");d.style=\"padding:1em\";d.textContent=\"\\xd7\";d.addEventListener(\"click\",()=>{if(l===null)return;l.remove();l=null});n.append(r,d);n.style=\"background-color:beige;color:black;border:1px solid black;display:flex;font-size:medium;position:fixed;text-align:center;top:0;width:100%;z-index:2147483647\";t.documentElement.append(n);if(l)l.remove();l=n};let l=null;const i=e=>{if(typeof e!==\"string\")return;e=e.trim();if(t.testPattern(r,e)!==true)return;if(o.domAlert)c(e);t.uboLog(n,\"Prevented:\\n\\t\",e);return true};proxyApplyFn(\"navigator.clipboard.writeText\",function(e){const t=`${e.callArgs[0]}`;if(i(t))return;return e.reflect()});proxyApplyFn(\"document.execCommand\",function(e){const{callArgs:t}=e;if(t[0]===\"copy\"||t[0]===\"cut\"){const e=document.getSelection()?.toString();if(e&&i(e))return}return e.reflect()})}",
737
+ "dependencies": [
738
+ "proxy-apply.fn",
739
+ "safe-self.fn"
740
+ ],
741
+ "requiresTrust": true
742
+ },
743
+ {
744
+ "name": "prevent-dialog.js",
745
+ "aliases": [],
746
+ "body": "function preventDialog(e=\"\"){const o=safeSelf();const t=o.makeLogPrefix(\"prevent-dialog\",e);const n=()=>{i=void 0;const n=document.querySelectorAll(`dialog${e}`);for(const e of n){if(typeof e.close!==\"function\")continue;if(e.open===false)continue;e.close();o.uboLog(t,\"Closed\")}};let i;const r=new MutationObserver(()=>{if(i!==void 0)return;i=requestAnimationFrame(n)});r.observe(document,{attributes:true,childList:true,subtree:true})}",
747
+ "dependencies": [
748
+ "safe-self.fn"
749
+ ],
750
+ "executionWorld": "ISOLATED"
751
+ },
752
+ {
753
+ "name": "prevent-fetch.fn",
754
+ "aliases": [],
755
+ "body": "function preventFetchFn(e=false,t=\"\",n=\"\",r=\"\"){const s=safeSelf();const o=self.setTimeout;const c=`${e?\"trusted-\":\"\"}prevent-fetch`;const a=s.makeLogPrefix(c,t,n,r);const i=s.getExtraArgs(Array.from(arguments),4);const l=parsePropertiesToMatchFn(t,\"url\");const u={ok:[false,true],status:[403],statusText:[\"\",\"Not Found\"],type:[\"basic\",\"cors\",\"default\",\"error\",\"opaque\"]};const f={statusText:{value:\"OK\"}};const h={};if(/^\\{.*\\}$/.test(r))try{Object.entries(JSON.parse(r)).forEach(([t,n])=>{if(t===\"headers\"&&e){Object.assign(h,n);return}if(u[t]===void 0)return;if(u[t].includes(n)===false)return;f[t]={value:n}})}catch{}else if(r!==\"\")if(u.type.includes(r))f.type={value:r};proxyApplyFn(\"fetch\",function r(c){const{callArgs:u}=c;const p=collateFetchArgumentsFn(...u);if(s.logLevel>1||t===\"\"&&n===\"\"){const e=Array.from(Object.entries(p)).map(e=>`${e[0]}:${e[1]}`);s.uboLog(a,`Called: ${e.join(\"\\n\")}`)}if(t===\"\"&&n===\"\")return c.reflect();const g=matchObjectPropertiesFn(l,p);if(g===void 0||g.length===0)return c.reflect();return Promise.resolve(generateContentFn(e,n)).then(e=>{s.uboLog(a,`Prevented with response \"${e}\"`);const t=Object.assign({},h);if(t[\"content-length\"]===void 0)t[\"content-length\"]=e.length;const n=new Response(e,{headers:t});const r=Object.assign({url:{value:p.url}},f);s.Object_defineProperties(n,r);if(i.throttle)return new Promise(e=>{o(()=>{e(n)},i.throttle)});return n})})}",
756
+ "dependencies": [
757
+ "collate-fetch-arguments.fn",
758
+ "generate-content.fn",
759
+ "match-object-properties.fn",
760
+ "parse-properties-to-match.fn",
761
+ "proxy-apply.fn",
762
+ "safe-self.fn"
763
+ ]
764
+ },
765
+ {
766
+ "name": "prevent-fetch.js",
767
+ "aliases": [
768
+ "no-fetch-if.js"
769
+ ],
770
+ "body": "function preventFetch(...e){preventFetchFn(false,...e)}",
771
+ "dependencies": [
772
+ "prevent-fetch.fn"
773
+ ]
774
+ },
775
+ {
776
+ "name": "trusted-prevent-fetch.js",
777
+ "aliases": [],
778
+ "body": "function trustedPreventFetch(...e){preventFetchFn(true,...e)}",
779
+ "dependencies": [
780
+ "prevent-fetch.fn"
781
+ ],
782
+ "requiresTrust": true
783
+ },
784
+ {
785
+ "name": "freeze-element-property.js",
786
+ "aliases": [],
787
+ "body": "function freezeElementProperty(e=\"\",t=\"\",n=\"\"){const r=safeSelf();const o=r.makeLogPrefix(\"freeze-element-property\",e,t,n);const i=r.initPattern(n,{canNegate:true});const s=(()=>{if(Object.hasOwn(HTMLScriptElement.prototype,e))return HTMLScriptElement.prototype;if(Object.hasOwn(HTMLElement.prototype,e))return HTMLElement.prototype;if(Object.hasOwn(Element.prototype,e))return Element.prototype;if(Object.hasOwn(Node.prototype,e))return Node.prototype;return null})();if(s===null)return;const f=r.Object_getOwnPropertyDescriptor(s,e);if(f===void 0)return;const p=(e,n)=>{if(t!==\"\"){if(typeof e.matches!==\"function\")return false;if(e.matches(t)===false)return false}return r.testPattern(i,`${n}`)};Object.defineProperty(s,e,{get:function(){return f.get?f.get.call(this):f.value},set:function(e){if(p(this,e))r.uboLog(o,\"Assignment prevented\");else if(f.set)f.set.call(this,e);if(r.logLevel>1)r.uboLog(o,`Assigned:\\n${e}`);f.value=e}})}",
788
+ "dependencies": [
789
+ "safe-self.fn"
790
+ ]
791
+ },
792
+ {
793
+ "name": "prevent-innerHTML.js",
794
+ "aliases": [],
795
+ "body": "function preventInnerHTML(e=\"\",n=\"\"){freezeElementProperty(\"innerHTML\",e,n)}",
796
+ "dependencies": [
797
+ "freeze-element-property.js"
798
+ ]
799
+ },
800
+ {
801
+ "name": "prevent-navigation.js",
802
+ "aliases": [],
803
+ "body": "function preventNavigation(t=\"\"){const e=safeSelf();const n=e.makeLogPrefix(\"prevent-navigation\",t);const i=t===\"location.href\"?self.location.href:t;const a=e.initPattern(i,{canNegate:true});self.navigation.addEventListener(\"navigate\",i=>{if(i.userInitiated)return;const{url:o}=i.destination;if(t===\"\"){e.uboLog(n,`Navigation to ${o}`);return}if(e.testPattern(a,o)){i.preventDefault();e.uboLog(n,`Prevented navigation to ${o}`)}})}",
804
+ "dependencies": [
805
+ "safe-self.fn"
806
+ ],
807
+ "executionWorld": "ISOLATED"
808
+ },
809
+ {
810
+ "name": "range-parser.fn",
811
+ "aliases": [],
812
+ "body": "class RangeParser{constructor(i){this.not=i.charAt(0)===\"!\";if(this.not)i=i.slice(1);if(i===\"\")return;const t=i.indexOf(\"-\");if(t!==0)this.min=this.max=parseInt(i,10)||0;if(t!==-1)this.max=parseInt(i.slice(t+1),10)||Number.MAX_SAFE_INTEGER}unbound(){return this.min===void 0&&this.max===void 0}test(i){const t=Math.min(Math.max(Number(i)||0,0),Number.MAX_SAFE_INTEGER);if(this.min===this.max)return(this.min===void 0||t===this.min)!==this.not;if(this.min===void 0)return t<=this.max!==this.not;if(this.max===void 0)return t>=this.min!==this.not;return(t>=this.min&&t<=this.max)!==this.not}}",
813
+ "dependencies": []
814
+ },
815
+ {
816
+ "name": "prevent-setTimeout.js",
817
+ "aliases": [
818
+ "no-setTimeout-if.js",
819
+ "nostif.js",
820
+ "setTimeout-defuser.js"
821
+ ],
822
+ "body": "function preventSetTimeout(n=\"\",t=\"\"){const e=safeSelf();const o=e.makeLogPrefix(\"prevent-setTimeout\",n,t);const c=n.charAt(0)===\"!\";const r=e.patternToRegex(c?n.slice(1):n);const s=new RangeParser(t);proxyApplyFn(\"setTimeout\",function(t){const{callArgs:i}=t;const u=i[0]instanceof Function?e.String(e.Function_toString(i[0])):e.String(i[0]);const f=i[1];if(n===\"\"&&s.unbound()){e.uboLog(o,`Called:\\n${u}\\n${f}`);return t.reflect()}if(r.test(u)!==c&&s.test(f)){i[0]=function(){};e.uboLog(o,`Prevented:\\n${u}\\n${f}`)}return t.reflect()})}",
823
+ "dependencies": [
824
+ "proxy-apply.fn",
825
+ "range-parser.fn",
826
+ "safe-self.fn"
827
+ ]
828
+ },
829
+ {
830
+ "name": "prevent-setInterval.js",
831
+ "aliases": [
832
+ "no-setInterval-if.js",
833
+ "nosiif.js",
834
+ "setInterval-defuser.js"
835
+ ],
836
+ "body": "function preventSetInterval(n=\"\",t=\"\"){const e=safeSelf();const o=e.makeLogPrefix(\"prevent-setInterval\",n,t);const r=n.charAt(0)===\"!\";const c=e.patternToRegex(r?n.slice(1):n);const s=new RangeParser(t);proxyApplyFn(\"setInterval\",function(t){const{callArgs:i}=t;const a=i[0]instanceof Function?e.String(e.Function_toString(i[0])):e.String(i[0]);const l=i[1];if(n===\"\"&&s.unbound()){e.uboLog(o,`Called:\\n${a}\\n${l}`);return t.reflect()}if(c.test(a)!==r&&s.test(l)){i[0]=function(){};e.uboLog(o,`Prevented:\\n${a}\\n${l}`)}return t.reflect()})}",
837
+ "dependencies": [
838
+ "proxy-apply.fn",
839
+ "range-parser.fn",
840
+ "safe-self.fn"
841
+ ]
842
+ },
843
+ {
844
+ "name": "prevent-requestAnimationFrame.js",
845
+ "aliases": [
846
+ "no-requestAnimationFrame-if.js",
847
+ "norafif.js"
848
+ ],
849
+ "body": "function preventRequestAnimationFrame(n=\"\"){const e=safeSelf();const t=e.makeLogPrefix(\"prevent-requestAnimationFrame\",n);const o=n.charAt(0)===\"!\";const i=e.patternToRegex(o?n.slice(1):n);proxyApplyFn(\"requestAnimationFrame\",function(r){const{callArgs:c}=r;const s=c[0]instanceof Function?e.String(e.Function_toString(c[0])):e.String(c[0]);if(n===\"\")e.uboLog(t,`Called:\\n${s}`);else if(i.test(s)!==o){c[0]=function(){};e.uboLog(t,`Prevented:\\n${s}`)}return r.reflect()})}",
850
+ "dependencies": [
851
+ "proxy-apply.fn",
852
+ "safe-self.fn"
853
+ ]
854
+ },
855
+ {
856
+ "name": "prevent-xhr.fn",
857
+ "aliases": [],
858
+ "body": "function preventXhrFn(e=false,t=\"\",r=\"\"){if(typeof t!==\"string\")return;const n=safeSelf();const s=e?\"trusted-prevent-xhr\":\"prevent-xhr\";const o=n.makeLogPrefix(s,t,r);const a=new WeakMap;const p=parsePropertiesToMatchFn(t,\"url\");const l=scriptletGlobals.warOrigin;const c=(e,t)=>{try{e.dispatchEvent(new Event(t))}catch{}};proxyApplyFn(\"XMLHttpRequest.prototype.open\",function(e){const{thisArg:s,callArgs:c}=e;a.delete(s);const[u,i,...h]=c;if(l!==void 0&&i.startsWith(l))return e.reflect();const d={method:u,url:i};if(t===\"\"&&r===\"\"){n.uboLog(o,`Called: ${n.JSON_stringify(d,null,2)}`);return e.reflect()}if(matchObjectPropertiesFn(p,d)){const e=Object.assign(d,{xhr:s,defer:h.length===0||!!h[0],directive:r,headers:{date:\"\",\"content-type\":\"\",\"content-length\":\"\"},url:d.url,props:{response:{value:\"\"},responseText:{value:\"\"},responseXML:{value:null}}});a.set(s,e)}return e.reflect()});proxyApplyFn(\"XMLHttpRequest.prototype.send\",function(t){const{thisArg:s}=t;const p=a.get(s);if(p===void 0)return t.reflect();p.headers[\"date\"]=(new Date).toUTCString();let l=\"\";switch(s.responseType){case\"arraybuffer\":p.props.response.value=new ArrayBuffer(0);p.headers[\"content-type\"]=\"application/octet-stream\";break;case\"blob\":p.props.response.value=new Blob([]);p.headers[\"content-type\"]=\"application/octet-stream\";break;case\"document\":{const e=new DOMParser;const t=e.parseFromString(\"\",\"text/html\");p.props.response.value=t;p.props.responseXML.value=t;p.headers[\"content-type\"]=\"text/html\";break}case\"json\":p.props.response.value={};p.props.responseText.value=\"{}\";p.headers[\"content-type\"]=\"application/json\";break;default:if(r===\"\")break;l=generateContentFn(e,p.directive);if(l instanceof Promise)l=l.then(e=>{p.props.response.value=e;p.props.responseText.value=e});else{p.props.response.value=l;p.props.responseText.value=l}p.headers[\"content-type\"]=\"text/plain\";break}if(p.defer===false){p.headers[\"content-length\"]=`${p.props.response.value}`.length;Object.defineProperties(p.xhr,{readyState:{value:4},responseURL:{value:p.url},status:{value:200},statusText:{value:\"OK\"}});Object.defineProperties(p.xhr,p.props);return}Promise.resolve(l).then(()=>p).then(e=>{Object.defineProperties(e.xhr,{readyState:{value:1,configurable:true},responseURL:{value:p.url}});c(e.xhr,\"readystatechange\");return e}).then(e=>{p.headers[\"content-length\"]=`${e.props.response.value}`.length;Object.defineProperties(e.xhr,{readyState:{value:2,configurable:true},status:{value:200},statusText:{value:\"OK\"}});c(e.xhr,\"readystatechange\");return e}).then(e=>{Object.defineProperties(e.xhr,{readyState:{value:3,configurable:true}});Object.defineProperties(e.xhr,e.props);c(e.xhr,\"readystatechange\");return e}).then(e=>{Object.defineProperties(e.xhr,{readyState:{value:4}});c(e.xhr,\"readystatechange\");c(e.xhr,\"load\");c(e.xhr,\"loadend\");n.uboLog(o,`Prevented with response:\\n${e.xhr.response}`)})});proxyApplyFn(\"XMLHttpRequest.prototype.getResponseHeader\",function(e){const{thisArg:t}=e;const r=a.get(t);if(r===void 0||t.readyState<t.HEADERS_RECEIVED)return e.reflect();const n=`${e.callArgs[0]}`;const s=r.headers[n.toLowerCase()];if(s!==void 0&&s!==\"\")return s;return null});proxyApplyFn(\"XMLHttpRequest.prototype.getAllResponseHeaders\",function(e){const{thisArg:t}=e;const r=a.get(t);if(r===void 0||t.readyState<t.HEADERS_RECEIVED)return e.reflect();const n=[];for(const[e,t]of Object.entries(r.headers)){if(!t)continue;n.push(`${e}: ${t}`)}if(n.length!==0)n.push(\"\");return n.join(\"\\r\\n\")})}",
859
+ "dependencies": [
860
+ "generate-content.fn",
861
+ "match-object-properties.fn",
862
+ "parse-properties-to-match.fn",
863
+ "proxy-apply.fn",
864
+ "safe-self.fn"
865
+ ]
866
+ },
867
+ {
868
+ "name": "prevent-xhr.js",
869
+ "aliases": [
870
+ "no-xhr-if.js"
871
+ ],
872
+ "body": "function preventXhr(...e){preventXhrFn(false,...e)}",
873
+ "dependencies": [
874
+ "prevent-xhr.fn"
875
+ ]
876
+ },
877
+ {
878
+ "name": "trusted-prevent-xhr.js",
879
+ "aliases": [],
880
+ "body": "function trustedPreventXhr(...e){preventXhrFn(true,...e)}",
881
+ "dependencies": [
882
+ "prevent-xhr.fn"
883
+ ]
884
+ },
885
+ {
886
+ "name": "parse-replace.fn",
887
+ "aliases": [],
888
+ "body": "function parseReplaceFn(r){if(r.charCodeAt(0)!==47)return;const e=new ArglistParser(\"/\");e.nextArg(r,1);let n=r.slice(e.argBeg,e.argEnd);if(e.transform)n=e.normalizeArg(n);if(n===\"\")return;e.nextArg(r,e.separatorEnd);let a=r.slice(e.argBeg,e.argEnd);if(e.separatorEnd===e.separatorBeg)return;if(e.transform)a=e.normalizeArg(a);const t=r.slice(e.separatorEnd);try{return{re:new RegExp(n,t),replacement:a}}catch{}}",
889
+ "dependencies": [
890
+ "arglist-parser.fn"
891
+ ]
892
+ },
893
+ {
894
+ "name": "validate-constant.fn",
895
+ "aliases": [],
896
+ "body": "function validateConstantFn(e,t,s={}){const r=safeSelf();let n;if(t===\"undefined\")n=void 0;else if(t===\"false\")n=false;else if(t===\"true\")n=true;else if(t===\"null\")n=null;else if(t===\"''\"||t===\"\")n=\"\";else if(t===\"[]\"||t===\"emptyArr\")n=[];else if(t===\"{}\"||t===\"emptyObj\")n={};else if(t===\"noopFunc\")n=function(){};else if(t===\"trueFunc\")n=function(){return true};else if(t===\"falseFunc\")n=function(){return false};else if(t===\"throwFunc\")n=function(){throw\"\"};else if(/^-?\\d+$/.test(t)){n=parseInt(t);if(isNaN(t))return;if(Math.abs(t)>32767)return}else if(e){if(t.startsWith(\"json:\"))try{n=r.JSON_parse(t.slice(5))}catch{return}else if(t.startsWith(\"{\")&&t.endsWith(\"}\"))try{n=r.JSON_parse(t).value}catch{return}}else return;if(s.as!==void 0)if(s.as===\"function\")return()=>n;else if(s.as===\"callback\")return()=>()=>n;else if(s.as===\"resolved\")return Promise.resolve(n);else if(s.as===\"rejected\")return Promise.reject(n);return n}",
897
+ "dependencies": [
898
+ "safe-self.fn"
899
+ ]
900
+ },
901
+ {
902
+ "name": "set-constant.fn",
903
+ "aliases": [],
904
+ "body": "function setConstantFn(t=false,e=\"\",n=\"\"){if(e===\"\")return;const r=safeSelf();const i=r.makeLogPrefix(\"set-constant\",e,n);const o=r.getExtraArgs(Array.from(arguments),3);function u(e,n){const u=(()=>{const t=e.lastIndexOf(\".\");if(t===-1)return e;return e.slice(t+1)})();const f=t=>{r.Object_defineProperty(t,\"name\",{value:u});return new Proxy(t,{defineProperty(t,e){if(e!==\"toString\")return Reflect.defineProperty(...arguments);return true},deleteProperty(t,e){if(e!==\"toString\")return Reflect.deleteProperty(...arguments);return true},get(t,e){if(e===\"toString\")return function(){return`function ${u}() { [native code] }`}.bind(null);return Reflect.get(...arguments)}})};if(u===\"\")return;const c=document.currentScript;let s=validateConstantFn(t,n,o);if(n===\"noopFunc\"||n===\"trueFunc\"||n===\"falseFunc\")s=f(s);let l=false;const a=function(e){if(t)return false;if(l)return true;l=e!==void 0&&e!==null&&s!==void 0&&s!==null&&typeof e!==typeof s;if(l)r.uboLog(i,`Aborted because value set to ${e}`);return l};const d=function(t,e,n,o){if(o.init(n?t[e]:s)===false)return;const u=r.Object_getOwnPropertyDescriptor(t,e);let f,c;if(u instanceof r.Object){t[e]=s;if(u.get instanceof Function)f=u.get;if(u.set instanceof Function)c=u.set}try{r.Object_defineProperty(t,e,{configurable:n,get(){if(f!==void 0)f();return o.getter()},set(t){if(c!==void 0)c(t);o.setter(t)}});r.uboLog(i,\"Trap installed\")}catch(t){r.uboErr(i,t)}};const g=function(t,e){const n=e.indexOf(\".\");if(n===-1){d(t,e,false,{v:void 0,init:function(t){if(a(t))return false;this.v=t;return true},getter:function(){if(document.currentScript===c)return this.v;r.uboLog(i,\"Property read\");return s},setter:function(t){if(a(t)===false)return;s=t}});return}const o=e.slice(0,n);const u=t[o];e=e.slice(n+1);if(u instanceof r.Object||typeof u===\"object\"&&u!==null){g(u,e);return}d(t,o,true,{v:void 0,init:function(t){this.v=t;return true},getter:function(){return this.v},setter:function(t){this.v=t;if(t instanceof r.Object)g(t,e)}})};g(window,e)}runAt(()=>{u(e,n)},o.runAt)}",
905
+ "dependencies": [
906
+ "run-at.fn",
907
+ "safe-self.fn",
908
+ "validate-constant.fn"
909
+ ]
910
+ },
911
+ {
912
+ "name": "set-constant.js",
913
+ "aliases": [
914
+ "set.js"
915
+ ],
916
+ "body": "function setConstant(...n){setConstantFn(false,...n)}",
917
+ "dependencies": [
918
+ "set-constant.fn"
919
+ ]
920
+ },
921
+ {
922
+ "name": "trusted-set-constant.js",
923
+ "aliases": [
924
+ "trusted-set.js"
925
+ ],
926
+ "body": "function trustedSetConstant(...t){setConstantFn(true,...t)}",
927
+ "dependencies": [
928
+ "set-constant.fn"
929
+ ],
930
+ "requiresTrust": true
931
+ },
932
+ {
933
+ "name": "trusted-replace-argument.js",
934
+ "aliases": [],
935
+ "body": "function trustedReplaceArgument(t=\"\",e=\"\",r=\"\"){if(t===\"\")return;const n=safeSelf();const s=n.makeLogPrefix(\"trusted-replace-argument\",t,e,r);const i=parseInt(e,10)||0;const o=n.getExtraArgs(Array.from(arguments),3);let a;if(r.startsWith(\"repl:/\")){const t=parseReplaceFn(r.slice(5));if(t===void 0)return;a=t=>`${t}`.replace(a.re,a.replacement);Object.assign(a,t)}else if(r.startsWith(\"add:\")){const t=parseFloat(r.slice(4));if(isNaN(t))return;a=e=>Number(e)+t}else{const t=validateConstantFn(true,r,o);a=()=>t}const c=o.condition?n.patternToRegex(`${o.condition}`):/^/;const l=t=>{if(e===\"this\")return t.thisArg;const{callArgs:r}=t;const n=i>=0?i:r.length-i;if(n<0||n>=r.length)return;t.private={argpos:n};return r[n]};const f=(t,r)=>{if(e===\"this\"){if(r!==t.thisArg)t.thisArg=r}else if(t.private)t.callArgs[t.private.argpos]=r};proxyApplyFn(t,function(t){if(e===\"\"){n.uboLog(s,`Arguments:\\n${t.callArgs.join(\"\\n\")}`);return t.reflect()}const r=l(t);if(o.condition!==void 0)if(n.RegExp_test.call(c,r)===false)return t.reflect();const i=a(r);if(i!==r){f(t,i);n.uboLog(s,`Replaced argument:\\nBefore: ${JSON.stringify(r)}\\nAfter: ${i}`)}return t.reflect()})}",
936
+ "dependencies": [
937
+ "parse-replace.fn",
938
+ "proxy-apply.fn",
939
+ "safe-self.fn",
940
+ "validate-constant.fn"
941
+ ],
942
+ "requiresTrust": true
943
+ },
944
+ {
945
+ "name": "spoof-css.js",
946
+ "aliases": [],
947
+ "body": "function spoofCSS(e,...t){if(typeof e!==\"string\")return;if(e===\"\")return;const r=e=>e.replace(/-[a-z]/g,e=>e.charAt(1).toUpperCase());const n=new Map;const o=new Map;for(let e=0;e<t.length;e+=2){const s=r(t[e+0]);if(s===\"\")break;const c=t[e+1];if(typeof c!==\"string\")break;if(s.charCodeAt(0)===95)o.set(s,c);else n.set(s,c)}const s=safeSelf();const c=s.makeLogPrefix(\"spoof-css\",e,...t);const i=[\"cssText\",\"length\",\"parentRule\"];const a=(e,t)=>{const o=r(e);const i=n.has(o);const a=i?n.get(o):t;if(i)s.uboLog(c,`Spoofing ${e} to ${a}`);return a};const f=(e,t,r)=>{const n=e.bind(t);Object.defineProperty(n,\"name\",{value:r});Object.defineProperty(n,\"toString\",{value:()=>`function ${r}() { [native code] }`});return n};self.getComputedStyle=new Proxy(self.getComputedStyle,{apply:function(t,r,s){if(o.has(\"_debug\"))debugger;const c=Reflect.apply(t,r,s);const l=new WeakSet(document.querySelectorAll(e));if(l.has(s[0])===false)return c;const u=new Proxy(c,{get(e,t){if(typeof e[t]===\"function\"){if(t===\"getPropertyValue\")return f(function t(r){return a(r,e[r])},e,\"getPropertyValue\");return f(e[t],e,t)}if(i.includes(t))return Reflect.get(e,t);return a(t,Reflect.get(e,t))},getOwnPropertyDescriptor(e,t){if(n.has(t))return{configurable:true,enumerable:true,value:n.get(t),writable:true};return Reflect.getOwnPropertyDescriptor(e,t)}});return u},get(e,t){if(t===\"toString\")return e.toString.bind(e);return Reflect.get(e,t)}});Element.prototype.getBoundingClientRect=new Proxy(Element.prototype.getBoundingClientRect,{apply:function(t,r,s){if(o.has(\"_debug\"))debugger;const c=Reflect.apply(t,r,s);const i=new WeakSet(document.querySelectorAll(e));if(i.has(r)===false)return c;let{x:a,y:f,height:l,width:u}=c;if(o.has(\"_rectx\"))a=parseFloat(o.get(\"_rectx\"));if(o.has(\"_recty\"))f=parseFloat(o.get(\"_recty\"));if(o.has(\"_rectw\"))u=parseFloat(o.get(\"_rectw\"));else if(n.has(\"width\"))u=parseFloat(n.get(\"width\"));if(o.has(\"_recth\"))l=parseFloat(o.get(\"_recth\"));else if(n.has(\"height\"))l=parseFloat(n.get(\"height\"));return new self.DOMRect(a,f,u,l)},get(e,t){if(t===\"toString\")return e.toString.bind(e);return Reflect.get(e,t)}})}",
948
+ "dependencies": [
949
+ "safe-self.fn"
950
+ ]
951
+ },
952
+ {
953
+ "name": "get-safe-cookie-values.fn",
954
+ "aliases": [],
955
+ "body": "function getSafeCookieValuesFn(){return[\"accept\",\"reject\",\"accepted\",\"rejected\",\"notaccepted\",\"allow\",\"disallow\",\"deny\",\"allowed\",\"denied\",\"approved\",\"disapproved\",\"checked\",\"unchecked\",\"dismiss\",\"dismissed\",\"enable\",\"disable\",\"enabled\",\"disabled\",\"essential\",\"nonessential\",\"forbidden\",\"forever\",\"hide\",\"hidden\",\"necessary\",\"required\",\"ok\",\"on\",\"off\",\"true\",\"t\",\"false\",\"f\",\"yes\",\"y\",\"no\",\"n\",\"all\",\"none\",\"functional\",\"granted\",\"done\",\"decline\",\"declined\",\"closed\",\"next\",\"mandatory\",\"disagree\",\"agree\"]}",
956
+ "dependencies": []
957
+ },
958
+ {
959
+ "name": "get-all-cookies.fn",
960
+ "aliases": [],
961
+ "body": "function getAllCookiesFn(){const t=safeSelf();return t.String_split.call(document.cookie,/\\s*;\\s*/).map(t=>{const e=t.indexOf(\"=\");if(e===0)return;if(e===-1)return`${t.trim()}=`;const i=t.slice(0,e).trim();const n=t.slice(e+1).trim();return{key:i,value:n}}).filter(t=>t!==void 0)}",
962
+ "dependencies": [
963
+ "safe-self.fn"
964
+ ]
965
+ },
966
+ {
967
+ "name": "get-cookie.fn",
968
+ "aliases": [],
969
+ "body": "function getCookieFn(n=\"\"){const i=safeSelf();for(const o of i.String_split.call(document.cookie,/\\s*;\\s*/)){const i=o.indexOf(\"=\");if(i===-1)continue;if(o.slice(0,i)!==n)continue;return o.slice(i+1).trim()}}",
970
+ "dependencies": [
971
+ "safe-self.fn"
972
+ ]
973
+ },
974
+ {
975
+ "name": "set-cookie.fn",
976
+ "aliases": [],
977
+ "body": "function setCookieFn(e=false,o=\"\",n=\"\",t=\"\",i=\"\",s={}){if(e===false&&/[^!#$%&'*+\\-.0-9A-Z[\\]^_`a-z|~]/.test(o))o=encodeURIComponent(o);if(/[^ -:<-[\\]-~]/.test(n))n=encodeURIComponent(n);const c=getCookieFn(o);if(c!==void 0&&s.dontOverwrite)return;if(c===n&&s.reload)return;const f=[o,\"=\",n];if(t!==\"\")f.push(\"; expires=\",t);if(i===\"\")i=\"/\";else if(i===\"none\")i=\"\";if(i!==\"\"&&i!==\"/\")return;if(i===\"/\")f.push(\"; path=/\");if(e){if(s.domain){let e=s.domain;if(/^\\/.+\\//.test(e)){const o=new URL(document.baseURI);const n=new RegExp(e.slice(1,-1));const t=n.exec(o.hostname);e=t?t[0]:void 0}if(e)f.push(`; domain=${e}`)}f.push(\"; Secure\")}else if(/^__(Host|Secure)-/.test(o))f.push(\"; Secure\");try{document.cookie=f.join(\"\")}catch{}const r=getCookieFn(o)===n;if(r&&s.reload)window.location.reload();return r}",
978
+ "dependencies": [
979
+ "get-cookie.fn"
980
+ ]
981
+ },
982
+ {
983
+ "name": "set-cookie.js",
984
+ "aliases": [],
985
+ "body": "function setCookie(e=\"\",o=\"\",t=\"\"){if(e===\"\")return;const s=safeSelf();const n=s.makeLogPrefix(\"set-cookie\",e,o,t);const f=o.toLowerCase();const r=/^(\"?)(.+)\\1$/.exec(f);const c=r&&r[2]||f;const i=getSafeCookieValuesFn();if(i.includes(c)===false){if(/^-?\\d+$/.test(c)===false)return;const e=parseInt(o,10)||0;if(e<-32767||e>32767)return}const a=setCookieFn(false,e,o,\"\",t,s.getExtraArgs(Array.from(arguments),3));if(a)s.uboLog(n,\"Done\")}",
986
+ "dependencies": [
987
+ "get-safe-cookie-values.fn",
988
+ "safe-self.fn",
989
+ "set-cookie.fn"
990
+ ],
991
+ "executionWorld": "ISOLATED"
992
+ },
993
+ {
994
+ "name": "set-cookie-reload.js",
995
+ "aliases": [],
996
+ "body": "function setCookieReload(o,e,i,...t){setCookie(o,e,i,\"reload\",\"1\",...t)}",
997
+ "dependencies": [
998
+ "set-cookie.js"
999
+ ],
1000
+ "executionWorld": "ISOLATED"
1001
+ },
1002
+ {
1003
+ "name": "trusted-set-cookie.js",
1004
+ "aliases": [],
1005
+ "body": "function trustedSetCookie(e=\"\",t=\"\",r=\"\",n=\"\"){if(e===\"\")return;const o=safeSelf();const s=o.makeLogPrefix(\"set-cookie\",e,t,n);const l=new Date;if(t.includes(\"$now$\"))t=t.replaceAll(\"$now$\",l.getTime());if(t.includes(\"$currentDate$\"))t=t.replaceAll(\"$currentDate$\",l.toUTCString());if(t.includes(\"$currentISODate$\"))t=t.replaceAll(\"$currentISODate$\",l.toISOString());let a=\"\";if(r!==\"\"){if(r===\"1day\")l.setDate(l.getDate()+1);else if(r===\"1year\")l.setFullYear(l.getFullYear()+1);else{if(/^\\d+$/.test(r)===false)return;l.setSeconds(l.getSeconds()+parseInt(r,10))}a=l.toUTCString()}const i=setCookieFn(true,e,t,a,n,safeSelf().getExtraArgs(Array.from(arguments),4));if(i)o.uboLog(s,\"Done\")}",
1006
+ "dependencies": [
1007
+ "safe-self.fn",
1008
+ "set-cookie.fn"
1009
+ ],
1010
+ "executionWorld": "ISOLATED",
1011
+ "requiresTrust": true
1012
+ },
1013
+ {
1014
+ "name": "trusted-set-cookie-reload.js",
1015
+ "aliases": [],
1016
+ "body": "function trustedSetCookieReload(e,o,t,d,...i){trustedSetCookie(e,o,t,d,\"reload\",\"1\",...i)}",
1017
+ "dependencies": [
1018
+ "trusted-set-cookie.js"
1019
+ ],
1020
+ "executionWorld": "ISOLATED",
1021
+ "requiresTrust": true
1022
+ },
1023
+ {
1024
+ "name": "remove-cookie.js",
1025
+ "aliases": [
1026
+ "cookie-remover.js"
1027
+ ],
1028
+ "body": "function removeCookie(o=\"\"){if(typeof o!==\"string\")return;const e=safeSelf();const t=e.patternToRegex(o);const n=e.getExtraArgs(Array.from(arguments),1);const i=(o,e=500)=>{if(i.timer!==void 0)return;i.timer=setTimeout(()=>{i.timer=void 0;o()},e)};const c=new URL(document.baseURI);let s=n.domain;if(s&&/^\\/.+\\//.test(s)){const o=new RegExp(s.slice(1,-1));const e=o.exec(c.hostname);s=e?e[0]:void 0}const d=()=>{e.String_split.call(document.cookie,\";\").forEach(o=>{const e=o.indexOf(\"=\");if(e===-1)return;const n=o.slice(0,e).trim();if(t.test(n)===false)return;const i=n+\"=\";const d=`; domain=${c.hostname}`;const r=`; domain=.${c.hostname}`;let m,a;if(s){m=`; domain=${s}`;a=`; domain=.${s}`}else if(document.domain){const o=document.domain;if(o!==c.hostname)m=`; domain=.${o}`;if(o.startsWith(\"www.\"))a=`; domain=${o.replace(\"www\",\"\")}`}const f=\"; path=/\";const u=\"; Max-Age=-1000; expires=Thu, 01 Jan 1970 00:00:00 GMT\";document.cookie=i+u;document.cookie=i+d+u;document.cookie=i+r+u;document.cookie=i+f+u;document.cookie=i+d+f+u;document.cookie=i+r+f+u;if(m!==void 0)document.cookie=i+m+f+u;if(a!==void 0)document.cookie=i+a+f+u})};d();window.addEventListener(\"beforeunload\",d);if(typeof n.when!==\"string\")return;const r=[\"scroll\",\"keydown\"];const m=e.String_split.call(n.when,/\\s/);for(const o of m){if(r.includes(o)===false)continue;document.addEventListener(o,()=>{i(d)},{passive:true})}}",
1029
+ "dependencies": [
1030
+ "safe-self.fn"
1031
+ ],
1032
+ "executionWorld": "ISOLATED"
1033
+ },
1034
+ {
1035
+ "name": "get-all-local-storage.fn",
1036
+ "aliases": [],
1037
+ "body": "function getAllLocalStorageFn(t=\"localStorage\"){const e=self[t];const n=[];for(let t=0;t<e.length;t++){const n=e.key(t);const o=e.getItem(n);return{key:n,value:o}}return n}",
1038
+ "dependencies": []
1039
+ },
1040
+ {
1041
+ "name": "set-local-storage-item.fn",
1042
+ "aliases": [],
1043
+ "body": "function setLocalStorageItemFn(e=\"local\",t=false,n=\"\",o=\"\",l={}){if(n===\"\")return;if(o===\"emptyArr\")o=\"[]\";else if(o===\"emptyObj\")o=\"{}\";const r=[\"\",\"undefined\",\"null\",\"{}\",\"[]\",'\"\"',\"$remove$\",...getSafeCookieValuesFn()];if(t){if(o.includes(\"$now$\"))o=o.replaceAll(\"$now$\",Date.now());if(o.includes(\"$currentDate$\"))o=o.replaceAll(\"$currentDate$\",`${Date()}`);if(o.includes(\"$currentISODate$\"))o=o.replaceAll(\"$currentISODate$\",(new Date).toISOString())}else{const e=o.toLowerCase();const t=/^(\"?)(.+)\\1$/.exec(e);const n=t&&t[2]||e;if(r.includes(n)===false){if(/^-?\\d+$/.test(n)===false)return;const e=parseInt(n,10)||0;if(e<-32767||e>32767)return}}let s=false;try{const t=self[`${e}Storage`];if(o===\"$remove$\"){const e=safeSelf();const o=e.patternToRegex(n,void 0,true);const l=[];for(let e=0,n=t.length;e<n;e++){const n=t.key(e);if(o.test(n))l.push(n)}s=l.length!==0;for(const e of l)t.removeItem(e)}else{const e=t.getItem(n);const l=`${o}`;s=l!==e;if(s)t.setItem(n,l)}}catch{}if(s&&typeof l.reload===\"number\")setTimeout(()=>{window.location.reload()},l.reload)}",
1044
+ "dependencies": [
1045
+ "get-safe-cookie-values.fn",
1046
+ "safe-self.fn"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "name": "remove-cache-storage-item.fn",
1051
+ "aliases": [],
1052
+ "body": "function removeCacheStorageItem(e=\"\",t=\"\"){if(e===\"\")return;const o=safeSelf();const n=o.makeLogPrefix(\"remove-cache-storage-item\",e,t);const r=self.caches;if(r instanceof Object===false)return;const f=o.patternToRegex(e,void 0,true);const i=o.patternToRegex(t,void 0,true);r.keys().then(e=>{for(const s of e){if(f.test(s)===false)continue;if(t===\"\"){r.delete(s).then(e=>{if(o.logLevel>1)o.uboLog(n,`Deleting ${s}`);if(e!==true)return;o.uboLog(n,`Deleted ${s}: ${e}`)});continue}r.open(s).then(e=>{e.keys().then(t=>{for(const r of t){if(i.test(r.url)===false)continue;if(o.logLevel>1)o.uboLog(n,`Deleting ${s}/${r.url}`);e.delete(r).then(e=>{if(e!==true)return;o.uboLog(n,`Deleted ${s}/${r.url}: ${e}`)})}})})}})}",
1053
+ "dependencies": [
1054
+ "safe-self.fn"
1055
+ ],
1056
+ "executionWorld": "ISOLATED"
1057
+ },
1058
+ {
1059
+ "name": "set-local-storage-item.js",
1060
+ "aliases": [],
1061
+ "body": "function setLocalStorageItem(t=\"\",e=\"\"){const a=safeSelf();const o=a.getExtraArgs(Array.from(arguments),2);setLocalStorageItemFn(\"local\",false,t,e,o)}",
1062
+ "dependencies": [
1063
+ "safe-self.fn",
1064
+ "set-local-storage-item.fn"
1065
+ ],
1066
+ "executionWorld": "ISOLATED"
1067
+ },
1068
+ {
1069
+ "name": "set-session-storage-item.js",
1070
+ "aliases": [],
1071
+ "body": "function setSessionStorageItem(e=\"\",s=\"\"){const t=safeSelf();const o=t.getExtraArgs(Array.from(arguments),2);setLocalStorageItemFn(\"session\",false,e,s,o)}",
1072
+ "dependencies": [
1073
+ "safe-self.fn",
1074
+ "set-local-storage-item.fn"
1075
+ ],
1076
+ "executionWorld": "ISOLATED"
1077
+ },
1078
+ {
1079
+ "name": "trusted-set-local-storage-item.js",
1080
+ "aliases": [],
1081
+ "body": "function trustedSetLocalStorageItem(t=\"\",e=\"\"){const o=safeSelf();const r=o.getExtraArgs(Array.from(arguments),2);setLocalStorageItemFn(\"local\",true,t,e,r)}",
1082
+ "dependencies": [
1083
+ "safe-self.fn",
1084
+ "set-local-storage-item.fn"
1085
+ ],
1086
+ "executionWorld": "ISOLATED",
1087
+ "requiresTrust": true
1088
+ },
1089
+ {
1090
+ "name": "trusted-set-session-storage-item.js",
1091
+ "aliases": [],
1092
+ "body": "function trustedSetSessionStorageItem(t=\"\",e=\"\"){const s=safeSelf();const o=s.getExtraArgs(Array.from(arguments),2);setLocalStorageItemFn(\"session\",true,t,e,o)}",
1093
+ "dependencies": [
1094
+ "safe-self.fn",
1095
+ "set-local-storage-item.fn"
1096
+ ],
1097
+ "executionWorld": "ISOLATED",
1098
+ "requiresTrust": true
1099
+ },
1100
+ {
1101
+ "name": "replace-node-text.fn",
1102
+ "aliases": [],
1103
+ "body": "function replaceNodeTextFn(e=\"\",t=\"\",n=\"\"){const o=safeSelf();const r=o.makeLogPrefix(\"replace-node-text.fn\",...Array.from(arguments));const c=o.patternToRegex(e,\"i\",true);const s=o.patternToRegex(t,\"gms\");const i=o.getExtraArgs(Array.from(arguments),3);const u=i.includes||i.condition?o.patternToRegex(i.includes||i.condition,\"ms\"):null;const l=i.excludes?o.patternToRegex(i.excludes,\"ms\"):null;const f=(e=true)=>{if(e)x(g.takeRecords());g.disconnect();if(o.logLevel>1)o.uboLog(r,\"Quitting\")};const a=(()=>{const e={createScript:e=>e};const{trustedTypes:t}=self;if(t instanceof Object)if(typeof t.getPropertyType===\"function\")if(t.getPropertyType(\"script\",\"textContent\")===\"TrustedScript\")return t.createPolicy(getRandomTokenFn(),e);return e})();let d=i.sedCount||0;const m=e=>{const c=e.textContent;if(u){u.lastIndex=0;if(o.RegExp_test.call(u,c)===false)return true}if(l){l.lastIndex=0;if(o.RegExp_test.call(l,c))return true}s.lastIndex=0;if(o.RegExp_test.call(s,c)===false)return true;s.lastIndex=0;const i=t!==\"\"?c.replace(s,n):n;e.textContent=e.nodeName===\"SCRIPT\"?a.createScript(i):i;if(o.logLevel>1)o.uboLog(r,`Text before:\\n${c.trim()}`);o.uboLog(r,`Text after:\\n${i.trim()}`);return d===0||(d-=1)!==0};const x=e=>{for(const t of e)for(const e of t.addedNodes){if(c.test(e.nodeName)===false)continue;if(m(e))continue;f(false);return}};const g=new MutationObserver(x);g.observe(document,{childList:true,subtree:true});if(document.documentElement){const e=document.createTreeWalker(document.documentElement,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT);let t=0;for(;;){const n=e.nextNode();t+=1;if(n===null)break;if(c.test(n.nodeName)===false)continue;if(n===document.currentScript)continue;if(m(n))continue;f();break}o.uboLog(r,`${t} nodes present before installing mutation observer`)}if(i.stay)return;runAt(()=>{const e=i.quitAfter||0;if(e!==0)setTimeout(()=>{f()},e);else f()},\"interactive\")}",
1104
+ "dependencies": [
1105
+ "get-random-token.fn",
1106
+ "run-at.fn",
1107
+ "safe-self.fn"
1108
+ ]
1109
+ },
1110
+ {
1111
+ "name": "replace-fetch-response.fn",
1112
+ "aliases": [],
1113
+ "body": "function replaceFetchResponseFn(e=false,t=\"\",r=\"\",n=\"\"){if(e!==true)return;const s=safeSelf();const o=s.makeLogPrefix(\"replace-fetch-response\",t,r,n);if(t===\"*\")t=\".*\";const c=s.patternToRegex(t);const a=parsePropertiesToMatchFn(n,\"url\");const u=s.getExtraArgs(Array.from(arguments),4);const l=u.includes?s.patternToRegex(u.includes):null;self.fetch=new Proxy(self.fetch,{apply:function(e,n,u){const f=Reflect.apply(e,n,u);if(t===\"\")return f;if(a.size!==0){const e=collateFetchArgumentsFn(...u);const t=matchObjectPropertiesFn(a,e);if(t===void 0)return f;if(s.logLevel>1)s.uboLog(o,`Matched \"propsToMatch\":\\n\\t${t.join(\"\\n\\t\")}`)}return f.then(e=>{const t=e.clone();return t.text().then(t=>{if(l&&l.test(t)===false)return e;const n=t.replace(c,r);if(n===t)return e;s.uboLog(o,\"Replaced\");const a=new Response(n,{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperties(a,{ok:{value:e.ok},redirected:{value:e.redirected},type:{value:e.type},url:{value:e.url}});return a}).catch(t=>{s.uboErr(o,t);return e})}).catch(e=>{s.uboErr(o,e);return f})}})}",
1114
+ "dependencies": [
1115
+ "collate-fetch-arguments.fn",
1116
+ "match-object-properties.fn",
1117
+ "parse-properties-to-match.fn",
1118
+ "safe-self.fn"
1119
+ ]
1120
+ },
1121
+ {
1122
+ "name": "abort-on-property-read.js",
1123
+ "aliases": [
1124
+ "aopr.js"
1125
+ ],
1126
+ "body": "function abortOnPropertyRead(t=\"\"){if(typeof t!==\"string\")return;if(t===\"\")return;const e=safeSelf();const n=e.makeLogPrefix(\"abort-on-property-read\",t);const o=getExceptionTokenFn();const r=function(){e.uboLog(n,\"Aborted\");throw new ReferenceError(o)};const c=function(t,e){const n=e.indexOf(\".\");if(n===-1){const n=Object.getOwnPropertyDescriptor(t,e);if(!n||n.get!==r)Object.defineProperty(t,e,{get:r,set:function(){}});return}const o=e.slice(0,n);let i=t[o];e=e.slice(n+1);if(i){c(i,e);return}const f=Object.getOwnPropertyDescriptor(t,o);if(f&&f.set!==void 0)return;Object.defineProperty(t,o,{get:function(){return i},set:function(t){i=t;if(t instanceof Object)c(t,e)}})};const i=window;c(i,t)}",
1127
+ "dependencies": [
1128
+ "get-exception-token.fn",
1129
+ "safe-self.fn"
1130
+ ]
1131
+ },
1132
+ {
1133
+ "name": "abort-on-property-write.js",
1134
+ "aliases": [
1135
+ "aopw.js"
1136
+ ],
1137
+ "body": "function abortOnPropertyWrite(e=\"\"){if(typeof e!==\"string\")return;if(e===\"\")return;const t=safeSelf();const r=t.makeLogPrefix(\"abort-on-property-write\",e);const n=getExceptionTokenFn();let o=window;for(;;){const t=e.indexOf(\".\");if(t===-1)break;o=o[e.slice(0,t)];if(o instanceof Object===false)return;e=e.slice(t+1)}delete o[e];Object.defineProperty(o,e,{set:function(){t.uboLog(r,\"Aborted\");throw new ReferenceError(n)}})}",
1138
+ "dependencies": [
1139
+ "get-exception-token.fn",
1140
+ "safe-self.fn"
1141
+ ]
1142
+ },
1143
+ {
1144
+ "name": "adjust-setInterval.js",
1145
+ "aliases": [
1146
+ "nano-setInterval-booster.js",
1147
+ "nano-sib.js"
1148
+ ],
1149
+ "body": "function adjustSetInterval(t=\"\",e=\"\",n=\"\"){if(typeof t!==\"string\")return;const s=safeSelf();const a=s.patternToRegex(t);let i=e!==\"*\"?parseInt(e,10):-1;if(isNaN(i)||isFinite(i)===false)i=1e3;let l=parseFloat(n);l=isNaN(l)===false&&isFinite(l)?Math.min(Math.max(l,.001),50):.05;self.setInterval=new Proxy(self.setInterval,{apply:function(t,e,n){const[s,r]=n;if((i===-1||r===i)&&a.test(s.toString()))n[1]=r*l;return t.apply(e,n)}})}",
1150
+ "dependencies": [
1151
+ "safe-self.fn"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "name": "adjust-setTimeout.js",
1156
+ "aliases": [
1157
+ "nano-setTimeout-booster.js",
1158
+ "nano-stb.js"
1159
+ ],
1160
+ "body": "function adjustSetTimeout(t=\"\",e=\"\",i=\"\"){if(typeof t!==\"string\")return;const s=safeSelf();const n=s.patternToRegex(t);let a=e!==\"*\"?parseInt(e,10):-1;if(isNaN(a)||isFinite(a)===false)a=1e3;let o=parseFloat(i);o=isNaN(o)===false&&isFinite(o)?Math.min(Math.max(o,.001),50):.05;self.setTimeout=new Proxy(self.setTimeout,{apply:function(t,e,i){const[s,f]=i;if((a===-1||f===a)&&n.test(s.toString()))i[1]=f*o;return t.apply(e,i)}})}",
1161
+ "dependencies": [
1162
+ "safe-self.fn"
1163
+ ]
1164
+ },
1165
+ {
1166
+ "name": "prevent-refresh.js",
1167
+ "aliases": [
1168
+ "refresh-defuser.js"
1169
+ ],
1170
+ "body": "function preventRefresh(e=\"\"){if(typeof e!==\"string\")return;const t=safeSelf();const n=t.makeLogPrefix(\"prevent-refresh\",e);const o=e=>{window.stop();t.uboLog(n,`Prevented \"${e}\"`)};const r=()=>{const t=document.querySelector('meta[http-equiv=\"refresh\" i][content]');if(t===null)return;const n=t.getAttribute(\"content\")||\"\";const r=e===\"\"?Math.max(parseFloat(n)||0,0)*500:0;if(r===0)o(n);else setTimeout(()=>{o(n)},r)};self.addEventListener(\"load\",r,{capture:true,once:true})}",
1171
+ "dependencies": [
1172
+ "safe-self.fn"
1173
+ ],
1174
+ "executionWorld": "ISOLATED"
1175
+ },
1176
+ {
1177
+ "name": "remove-class.js",
1178
+ "aliases": [
1179
+ "rc.js"
1180
+ ],
1181
+ "body": "function removeClass(e=\"\",t=\"\",o=\"\"){if(typeof e!==\"string\")return;if(e===\"\")return;const s=safeSelf();const r=s.makeLogPrefix(\"remove-class\",e,t,o);const n=s.String_split.call(e,/\\s*\\|\\s*/);const l=n.map(e=>`${t}.${CSS.escape(e)}`).join(\",\");if(s.logLevel>1)s.uboLog(r,`Target selector:\\n\\t${l}`);const c=/\\bstay\\b/.test(o);let i;const a=()=>{i=void 0;try{const e=document.querySelectorAll(l);for(const t of e){t.classList.remove(...n);s.uboLog(r,\"Removed class(es)\")}}catch{}if(c)return;if(document.readyState!==\"complete\")return;f.disconnect()};const u=e=>{if(i!==void 0)return;let t=true;for(let o=0;o<e.length&&t;o++){const{type:s,addedNodes:r,removedNodes:n}=e[o];if(s===\"attributes\")t=false;for(let e=0;e<r.length&&t;e++)if(r[e].nodeType===1){t=false;break}for(let e=0;e<n.length&&t;e++)if(n[e].nodeType===1){t=false;break}}if(t)return;i=onIdleFn(a,{timeout:67})};const f=new MutationObserver(u);const d=()=>{a();f.observe(document,{attributes:true,attributeFilter:[\"class\"],childList:true,subtree:true})};runAt(()=>{d()},/\\bcomplete\\b/.test(o)?\"idle\":\"loading\")}",
1182
+ "dependencies": [
1183
+ "on-idle.fn",
1184
+ "run-at.fn",
1185
+ "safe-self.fn"
1186
+ ],
1187
+ "executionWorld": "ISOLATED"
1188
+ },
1189
+ {
1190
+ "name": "webrtc-if.js",
1191
+ "aliases": [],
1192
+ "body": "function webrtcIf(e=\"\"){if(typeof e!==\"string\")return;const t=safeSelf();const n=t.patternToRegex(e);const r=window.RTCPeerConnection?\"RTCPeerConnection\":window.webkitRTCPeerConnection?\"webkitRTCPeerConnection\":\"\";if(r===\"\")return;const o=console.log.bind(console);const s=new WeakSet;const c=function(e,t){if(s.has(e))return false;if(t instanceof Object===false)return true;if(Array.isArray(t.iceServers)===false)return true;for(const e of t.iceServers){const t=typeof e.urls===\"string\"?[e.urls]:e.urls;if(Array.isArray(t))for(const e of t)if(n.test(e))return true;if(typeof e.username===\"string\")if(n.test(e.username))return true;if(typeof e.credential===\"string\")if(n.test(e.credential))return true}s.add(e);return false};const i=window[r];const f=i.prototype;f.createDataChannel=new Proxy(f.createDataChannel,{apply:function(e,t,n){if(c(e,n[1])===false){o(\"uBO:\",n[1]);return Reflect.apply(e,t,n.slice(0,1))}return Reflect.apply(e,t,n)}});window[r]=new Proxy(i,{construct:function(e,t){if(c(e,t[0])===false){o(\"uBO:\",t[0]);return Reflect.construct(e)}return Reflect.construct(e,t)}})}",
1193
+ "dependencies": [
1194
+ "safe-self.fn"
1195
+ ]
1196
+ },
1197
+ {
1198
+ "name": "prevent-window-open.js",
1199
+ "aliases": [
1200
+ "nowoif.js",
1201
+ "no-window-open-if.js",
1202
+ "window.open-defuser.js"
1203
+ ],
1204
+ "body": "function noWindowOpenIf(e=\"\",t=\"\",o=\"\"){const n=safeSelf();const r=n.makeLogPrefix(\"no-window-open-if\",e,t,o);const s=e.startsWith(\"!\")===false;if(s===false)e=e.slice(1);const l=n.patternToRegex(e);const c=(parseFloat(t)||0)*1e3;const f=self.setTimeout;const i=function(e,t,o){const n=document.createElement(e);n[t]=o;n.style.setProperty(\"height\",\"1px\",\"important\");n.style.setProperty(\"position\",\"fixed\",\"important\");n.style.setProperty(\"top\",\"-1px\",\"important\");n.style.setProperty(\"width\",\"1px\",\"important\");document.body.appendChild(n);f(()=>{n.remove()},c);return n};const u=function(){};proxyApplyFn(\"open\",function p(a){if(e===\"debug\"&&n.logLevel!==0){debugger;return a.reflect()}const{callArgs:g}=a;const d=g.join(\" \");if(l.test(d)!==s){if(n.logLevel>1)n.uboLog(r,`Allowed (${g.join(\", \")})`);return a.reflect()}n.uboLog(r,`Prevented (${g.join(\", \")})`);if(t===\"\")return null;if(o===\"blank\"){g[0]=\"about:blank\";const e=a.reflect();f(()=>{e.close()},c);return e}const y=o===\"obj\"?i(\"object\",\"data\",...g):i(\"iframe\",\"src\",...g);let b=y.contentWindow;if(typeof b===\"object\"&&b!==null)Object.defineProperty(b,\"closed\",{value:false});else b=new Proxy(self,{get:function(e,t,...o){if(t===\"closed\")return false;const n=Reflect.get(e,t,...o);if(typeof n===\"function\")return u;return n},set:function(...e){return Reflect.set(...e)}});if(n.logLevel!==0)b=new Proxy(b,{get:function(e,t,...o){const s=Reflect.get(e,t,...o);n.uboLog(r,`popup / get ${t} === ${s}`);if(typeof s===\"function\")return(...t)=>s.call(e,...t);return s},set:function(e,t,o,...s){n.uboLog(r,`popup / set ${t} = ${o}`);return Reflect.set(e,t,o,...s)}});return b})}",
1205
+ "dependencies": [
1206
+ "proxy-apply.fn",
1207
+ "safe-self.fn"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "name": "close-window.js",
1212
+ "aliases": [
1213
+ "window-close-if.js"
1214
+ ],
1215
+ "body": "function closeWindow(o=\"\"){if(typeof o!==\"string\")return;const t=safeSelf();let e=\"\";if(/^\\/.*\\/$/.test(o))e=window.location.href;else if(o!==\"\")e=`${window.location.pathname}${window.location.search}`;try{const n=t.patternToRegex(o);if(n.test(e))window.close()}catch(o){console.log(o)}}",
1216
+ "dependencies": [
1217
+ "safe-self.fn"
1218
+ ],
1219
+ "executionWorld": "ISOLATED"
1220
+ },
1221
+ {
1222
+ "name": "window.name-defuser.js",
1223
+ "aliases": [],
1224
+ "body": "function windowNameDefuser(){if(window===window.top)window.name=\"\"}",
1225
+ "dependencies": []
1226
+ },
1227
+ {
1228
+ "name": "overlay-buster.js",
1229
+ "aliases": [],
1230
+ "body": "function overlayBuster(e){if(e===\"\"&&window!==window.top)return;var t;var n=3e4;var o=0;var i=50;var r=function(){var e=document.documentElement,d=document.body,a=Math.min(e.clientWidth,window.innerWidth),m=Math.min(e.clientHeight,window.innerHeight),u=Math.min(a,m)*.05,l=document.elementFromPoint(a/2,m/2),c,f;for(;;){if(l===null||l.parentNode===null||l===d)break;c=window.getComputedStyle(l);if(parseInt(c.zIndex,10)>=1e3||c.position===\"fixed\"){f=l.getBoundingClientRect();if(f.left<=u&&f.top<=u&&a-f.right<=u&&m-f.bottom<u){l.parentNode.removeChild(l);t=Date.now();l=document.elementFromPoint(a/2,m/2);d.style.setProperty(\"overflow\",\"auto\",\"important\");e.style.setProperty(\"overflow\",\"auto\",\"important\");continue}}l=l.parentNode}if(Date.now()-t<n){o=Math.min(o+i,1e3);setTimeout(r,o)}};var d=function(e){if(e)document.removeEventListener(e.type,d);t=Date.now();setTimeout(r,o)};if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",d);else d()}",
1231
+ "dependencies": []
1232
+ },
1233
+ {
1234
+ "name": "alert-buster.js",
1235
+ "aliases": [],
1236
+ "body": "function alertBuster(){window.alert=new Proxy(window.alert,{apply:function(t){console.info(t)},get(t,n){if(n===\"toString\")return t.toString.bind(t);return Reflect.get(t,n)}})}",
1237
+ "dependencies": []
1238
+ },
1239
+ {
1240
+ "name": "nowebrtc.js",
1241
+ "aliases": [],
1242
+ "body": "function noWebrtc(){var n=window.RTCPeerConnection?\"RTCPeerConnection\":window.webkitRTCPeerConnection?\"webkitRTCPeerConnection\":\"\";if(n===\"\")return;var e=console.log.bind(console);var o=function(n){e(\"Document tried to create an RTCPeerConnection: %o\",n)};const t=function(){};o.prototype={close:t,createDataChannel:t,createOffer:t,setRemoteDescription:t,toString:function(){return\"[object RTCPeerConnection]\"}};var i=window[n];window[n]=o.bind(window);if(i.prototype)i.prototype.createDataChannel=function(){return{close:function(){},send:function(){}}}.bind(null)}",
1243
+ "dependencies": []
1244
+ },
1245
+ {
1246
+ "name": "disable-newtab-links.js",
1247
+ "aliases": [],
1248
+ "body": "function disableNewtabLinks(){document.addEventListener(\"click\",e=>{let t=e.target;while(t!==null){if(t.localName===\"a\"&&t.hasAttribute(\"target\")){e.stopPropagation();e.preventDefault();break}t=t.parentNode}},{capture:true})}",
1249
+ "dependencies": []
1250
+ },
1251
+ {
1252
+ "name": "xml-prune.js",
1253
+ "aliases": [],
1254
+ "body": "function xmlPrune(e=\"\",t=\"\",r=\"\"){if(typeof e!==\"string\")return;if(e===\"\")return;const n=safeSelf();const s=n.makeLogPrefix(\"xml-prune\",e,t,r);const o=n.patternToRegex(r);const u=n.getExtraArgs(Array.from(arguments),3);const c=(e,t)=>{const r=/^xpath\\(.+\\)$/.test(t);if(r===false)return Array.from(e.querySelectorAll(t));const n=e.evaluate(t.slice(6,-1),e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);const s=[];for(let e=0;e<n.snapshotLength;e++){const t=n.snapshotItem(e);s.push(t)}return s};const i=r=>{try{if(t!==\"\"&&r.querySelector(t)===null)return r;if(u.logdoc){const e=new XMLSerializer;n.uboLog(s,`Document is\\n\\t${e.serializeToString(r)}`)}const o=c(r,e);if(o.length===0)return r;n.uboLog(s,`Removing ${o.length} items`);for(const e of o){if(e.nodeType===1)e.remove();else if(e.nodeType===2)e.ownerElement.removeAttribute(e.nodeName);n.uboLog(s,`${e.constructor.name}.${e.nodeName} removed`)}}catch(e){n.uboErr(s,`Error: ${e}`)}return r};const a=e=>{if((/^\\s*</.test(e)&&/>\\s*$/.test(e))===false)return e;try{const t=new DOMParser;const r=t.parseFromString(e,\"text/xml\");i(r);const n=new XMLSerializer;e=n.serializeToString(r)}catch{}return e};const l=e=>{if(typeof e===\"string\")return e;if(e instanceof Request)return e.url;return String(e)};self.fetch=new Proxy(self.fetch,{apply:function(e,t,r){const n=Reflect.apply(e,t,r);if(o.test(l(r[0]))===false)return n;return n.then(e=>{const t=e.clone();return t.text().then(t=>{const r=new Response(a(t),{status:e.status,statusText:e.statusText,headers:e.headers});Object.defineProperties(r,{ok:{value:e.ok},redirected:{value:e.redirected},type:{value:e.type},url:{value:e.url}});return r}).catch(()=>e)})}});self.XMLHttpRequest.prototype.open=new Proxy(self.XMLHttpRequest.prototype.open,{apply:async(e,t,r)=>{if(o.test(l(r[1]))===false)return Reflect.apply(e,t,r);t.addEventListener(\"readystatechange\",function(){if(t.readyState!==4)return;const e=t.responseType;if(e===\"document\"||e===\"\"&&t.responseXML instanceof XMLDocument){i(t.responseXML);const e=new XMLSerializer;const r=e.serializeToString(t.responseXML);Object.defineProperty(t,\"responseText\",{value:r});if(typeof t.response===\"string\")Object.defineProperty(t,\"response\",{value:r});return}if(e===\"text\"||e===\"\"&&typeof t.responseText===\"string\"){const e=t.responseText;const r=a(e);if(r===e)return;Object.defineProperty(t,\"response\",{value:r});Object.defineProperty(t,\"responseText\",{value:r});return}});return Reflect.apply(e,t,r)}})}",
1255
+ "dependencies": [
1256
+ "safe-self.fn"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "name": "m3u-prune.js",
1261
+ "aliases": [],
1262
+ "body": "function m3uPrune(t=\"\",e=\"\"){if(typeof t!==\"string\")return;const n=safeSelf();const s=n.makeLogPrefix(\"m3u-prune\",t,e);const r=[];const i=t=>{if(t===\"\")return/^/;const e=/^\\/(.+)\\/([gms]*)$/.exec(t);if(e!==null){let t=e[2]||\"\";if(t.includes(\"m\"))t+=\"s\";return new RegExp(e[1],t)}return new RegExp(t.replace(/[.+?^${}()|[\\]\\\\]/g,\"\\\\$&\").replace(/\\*+/g,\".*?\"))};const o=i(t);const l=i(e);const f=(t,e)=>{if(t[e].startsWith('#EXT-X-CUE:TYPE=\"SpliceOut\"')===false)return false;r.push(`\\t${t[e]}`);t[e]=void 0;e+=1;if(t[e].startsWith(\"#EXT-X-ASSET:CAID\")){r.push(`\\t${t[e]}`);t[e]=void 0;e+=1}if(t[e].startsWith(\"#EXT-X-SCTE35:\")){r.push(`\\t${t[e]}`);t[e]=void 0;e+=1}if(t[e].startsWith(\"#EXT-X-CUE-IN\")){r.push(`\\t${t[e]}`);t[e]=void 0;e+=1}if(t[e].startsWith(\"#EXT-X-SCTE35:\")){r.push(`\\t${t[e]}`);t[e]=void 0;e+=1}return true};const u=(t,e)=>{if(t[e].startsWith(\"#EXTINF\")===false)return false;if(o.test(t[e+1])===false)return false;r.push(\"Discarding\",`\\t${t[e]}, \\t${t[e+1]}`);t[e]=t[e+1]=void 0;e+=2;if(t[e].startsWith(\"#EXT-X-DISCONTINUITY\")){r.push(`\\t${t[e]}`);t[e]=void 0;e+=1}return true};const a=e=>{if(/^\\s*#EXTM3U/.test(e)===false)return e;if(t===\"\"){n.uboLog(` Content:\\n${e}`);return e}if(o.multiline){o.lastIndex=0;for(;;){const t=o.exec(e);if(t===null)break;let s=t[0];let i=e.slice(0,t.index);if(/^[\\n\\r]+/.test(s)===false&&/[\\n\\r]+$/.test(i)===false){const t=/[^\\n\\r]+$/.exec(i);if(t!==null){i=i.slice(0,t.index);s=t[0]+s}}let l=e.slice(t.index+t[0].length);if(/[\\n\\r]+$/.test(s)===false&&/^[\\n\\r]+/.test(l)===false){const t=/^[^\\n\\r]+/.exec(l);if(t!==null){l=l.slice(t.index);s+=s+t[0]}}e=i.trim()+\"\\n\"+l.trim();o.lastIndex=i.length+1;r.push(\"Discarding\",...n.String_split.call(s,/\\n+/).map(t=>`\\t${t}`));if(o.global===false)break}return e}const s=n.String_split.call(e,/\\n\\r|\\n|\\r/);for(let t=0;t<s.length;t++){if(s[t]===void 0)continue;if(f(s,t))continue;if(u(s,t))continue}return s.filter(t=>t!==void 0).join(\"\\n\")};const c=t=>{if(typeof t===\"string\")return t;if(t instanceof Request)return t.url;return String(t)};proxyApplyFn(\"fetch\",async function t(e){const i=e.callArgs;const o=e.reflect();if(l.test(c(i[0]))===false)return o;const f=await o;const u=f.clone();const p=await u.text();const d=a(p);if(d===p)return f;const h=new Response(d,{status:f.status,statusText:f.statusText,headers:f.headers});Object.defineProperties(h,{url:{value:f.url},type:{value:f.type}});if(r.length!==0){r.unshift(s);n.uboLog(r.join(\"\\n\"))}return h});self.XMLHttpRequest.prototype.open=new Proxy(self.XMLHttpRequest.prototype.open,{apply:async(t,e,i)=>{if(l.test(c(i[1]))===false)return Reflect.apply(t,e,i);e.addEventListener(\"readystatechange\",function(){if(e.readyState!==4)return;const t=e.responseType;if(t!==\"\"&&t!==\"text\")return;const i=e.responseText;const o=a(i);if(o===i)return;Object.defineProperty(e,\"response\",{value:o});Object.defineProperty(e,\"responseText\",{value:o});if(r.length!==0){r.unshift(s);n.uboLog(r.join(\"\\n\"))}});return Reflect.apply(t,e,i)}})}",
1263
+ "dependencies": [
1264
+ "proxy-apply.fn",
1265
+ "safe-self.fn"
1266
+ ]
1267
+ },
1268
+ {
1269
+ "name": "call-nothrow.js",
1270
+ "aliases": [],
1271
+ "body": "function callNothrow(t=\"\"){if(typeof t!==\"string\")return;if(t===\"\")return;const n=safeSelf();const e=n.String_split.call(t,\".\");let r=window,f;for(;;){f=e.shift();if(e.length===0)break;r=r[f];if(r instanceof Object===false)return}if(f===\"\")return;const i=r[f];if(typeof i!==\"function\")return;r[f]=new Proxy(i,{apply:function(...t){let n;try{n=Reflect.apply(...t)}catch{}return n}})}",
1272
+ "dependencies": [
1273
+ "safe-self.fn"
1274
+ ]
1275
+ },
1276
+ {
1277
+ "name": "remove-node-text.js",
1278
+ "aliases": [
1279
+ "rmnt.js"
1280
+ ],
1281
+ "body": "function removeNodeText(e,n,...o){replaceNodeTextFn(e,\"\",\"\",\"includes\",n||\"\",...o)}",
1282
+ "dependencies": [
1283
+ "replace-node-text.fn"
1284
+ ],
1285
+ "executionWorld": "ISOLATED"
1286
+ },
1287
+ {
1288
+ "name": "prevent-canvas.js",
1289
+ "aliases": [],
1290
+ "body": "function preventCanvas(t=\"\"){const e=safeSelf();const n=e.initPattern(t,{canNegate:true});const a=globalThis.HTMLCanvasElement.prototype;a.getContext=new Proxy(a.getContext,{apply(t,a,o){if(e.testPattern(n,o[0]))return null;return Reflect.apply(t,a,o)}})}",
1291
+ "dependencies": [
1292
+ "safe-self.fn"
1293
+ ]
1294
+ },
1295
+ {
1296
+ "name": "multiup.js",
1297
+ "aliases": [],
1298
+ "body": "function multiup(){const t=t=>{const e=t.target;if(e.matches(\"button[link]\")===false)return;const n=e.closest(\"form\");if(n===null)return;if(n!==e.parentElement)return;const r=(e.getAttribute(\"link\")||\"\").trim();if(r===\"\")return;t.preventDefault();t.stopPropagation();document.location.href=r};document.addEventListener(\"click\",t,{capture:true})}",
1299
+ "dependencies": [],
1300
+ "executionWorld": "ISOLATED"
1301
+ },
1302
+ {
1303
+ "name": "break-on-call.js",
1304
+ "aliases": [],
1305
+ "body": "function breakOnCall(n){proxyApplyFn(n,function(n){debugger;return n.reflect()})}",
1306
+ "dependencies": [
1307
+ "proxy-apply.fn"
1308
+ ]
1309
+ },
1310
+ {
1311
+ "name": "trusted-replace-node-text.js",
1312
+ "aliases": [
1313
+ "trusted-rpnt.js",
1314
+ "replace-node-text.js",
1315
+ "rpnt.js"
1316
+ ],
1317
+ "body": "function replaceNodeText(e,c,n,...o){replaceNodeTextFn(e,c,n,...o)}",
1318
+ "dependencies": [
1319
+ "replace-node-text.fn"
1320
+ ],
1321
+ "executionWorld": "ISOLATED",
1322
+ "requiresTrust": true
1323
+ },
1324
+ {
1325
+ "name": "trusted-replace-fetch-response.js",
1326
+ "aliases": [
1327
+ "trusted-rpfr.js"
1328
+ ],
1329
+ "body": "function trustedReplaceFetchResponse(...e){replaceFetchResponseFn(true,...e)}",
1330
+ "dependencies": [
1331
+ "replace-fetch-response.fn"
1332
+ ],
1333
+ "requiresTrust": true
1334
+ },
1335
+ {
1336
+ "name": "trusted-replace-xhr-response.js",
1337
+ "aliases": [],
1338
+ "body": "function trustedReplaceXhrResponse(e=\"\",s=\"\",t=\"\"){const n=safeSelf();const o=n.makeLogPrefix(\"trusted-replace-xhr-response\",e,s,t);const r=new WeakMap;if(e===\"*\")e=\".*\";const p=n.patternToRegex(e);const c=parsePropertiesToMatchFn(t,\"url\");const i=n.getExtraArgs(Array.from(arguments),3);const a=i.includes?n.patternToRegex(i.includes):null;self.XMLHttpRequest=class extends self.XMLHttpRequest{open(e,s,...t){const p=this;const i={method:e,url:s};let a=\"match\";if(c.size!==0)if(matchObjectPropertiesFn(c,i)===void 0)a=\"nomatch\";if(a===\"match\"){if(n.logLevel>1)n.uboLog(o,`Matched \"propsToMatch\"`);r.set(p,i)}return super.open(e,s,...t)}get response(){const e=super.response;const t=r.get(this);if(t===void 0)return e;const c=typeof e===\"string\"?e.length:void 0;if(t.lastResponseLength!==c){t.response=void 0;t.lastResponseLength=c}if(t.response!==void 0)return t.response;if(typeof e!==\"string\")return t.response=e;if(a&&a.test(e)===false)return t.response=e;const i=e;const f=i.replace(p,s);if(f!==i)n.uboLog(o,\"Match\");return t.response=f}get responseText(){const e=this.response;if(typeof e!==\"string\")return super.responseText;return e}}}",
1339
+ "dependencies": [
1340
+ "match-object-properties.fn",
1341
+ "parse-properties-to-match.fn",
1342
+ "safe-self.fn"
1343
+ ],
1344
+ "requiresTrust": true
1345
+ },
1346
+ {
1347
+ "name": "trusted-click-element.js",
1348
+ "aliases": [],
1349
+ "body": "function trustedClickElement(t=\"\",e=\"\",n=\"\"){const o=safeSelf();const i=o.makeLogPrefix(\"trusted-click-element\",t,e,n);if(e!==\"\"){const t=o.String_split.call(e,\",\").map(t=>{const e=t.indexOf(\":\");const n=e!==-1?t.slice(0,e):t;const i=n.startsWith(\"!\");const r=i?n.slice(1):n;const s=e!==-1?t.slice(e+1).trim():\"\";if(s===\"\")return;const c={not:i,type:r};const l=/^\\/(.+)\\/(i?)$/.exec(s);if(l!==null){c.re=new RegExp(l[1],l[2]||void 0);return c}const a=s.indexOf(\"=\");const f=a!==-1?s.slice(0,a).trim():s;const u=a!==-1?s.slice(a+1).trim():\"\";c.re=new RegExp(`^${o.escapeRegexChars(f)}=${o.escapeRegexChars(u)}`);return c}).filter(t=>t!==void 0);const n=t.some(t=>t.type===\"cookie\")?getAllCookiesFn():[];const i=t.some(t=>t.type===\"localStorage\")?getAllLocalStorageFn():[];const r=(t,e)=>{for(const{key:n,value:o}of t)if(e.test(`${n}=${o}`))return true;return false};for(const{not:e,type:o,re:s}of t)switch(o){case\"cookie\":if(r(n,s)===e)return;break;case\"localStorage\":if(r(i,s)===e)return;break}}const r=(()=>{const e=/^[;|]/.test(t)?o.String_split.call(t.slice(1),t.charAt(0)):o.String_split.call(t,\",\");return e.map(t=>{t=t.trim();if(/^\\d+$/.test(t))return parseInt(t,10);return t})})();if(r.length===0)return;const s=parseInt(n,10)||1;for(let t=r.length-1;t>0;t--){if(typeof r[t]!==\"string\")continue;if(typeof r[t-1]!==\"string\")continue;r.splice(t,0,s)}if(r.length===1&&n!==\"\")r.unshift(s);if(typeof r.at(-1)!==\"number\")r.push(11e3);const c=r.pop();const l=t=>new Promise(e=>{o.uboLog(i,`Waiting for ${t} ms`);l.timer=setTimeout(()=>{l.timer=void 0;e()},t)});const a=t=>{o.uboLog(i,`Waiting for ${t}`);return lookupElementsFn(t,Date.now()+c).then(e=>{if(e.length===0)return false;e[0].click();o.uboLog(i,`Clicked ${t}`);return true})};const f=async()=>{while(r.length!==0){const t=r.shift();if(t===void 0)break;if(typeof t===\"number\"){await l(t);if(t===1)continue;continue}if(t.startsWith(\"!\"))continue;const e=await a(t);if(e)continue;o.uboLog(i,`Timed out waiting on ${t}`);break}};runAtHtmlElementFn(f)}",
1350
+ "dependencies": [
1351
+ "get-all-cookies.fn",
1352
+ "get-all-local-storage.fn",
1353
+ "lookup-elements.fn",
1354
+ "run-at-html-element.fn",
1355
+ "safe-self.fn"
1356
+ ],
1357
+ "executionWorld": "ISOLATED",
1358
+ "requiresTrust": true
1359
+ },
1360
+ {
1361
+ "name": "trusted-replace-outbound-text.js",
1362
+ "aliases": [],
1363
+ "body": "function trustedReplaceOutboundText(e=\"\",t=\"\",o=\"\",...n){if(e===\"\")return;const r=safeSelf();const c=r.makeLogPrefix(\"trusted-replace-outbound-text\",e,t,o,...n);const s=r.patternToRegex(t);const u=o.startsWith(\"json:\")?r.JSON_parse(o.slice(5)):o;const a=r.getExtraArgs(n);const d=r.patternToRegex(a.condition||\"\");proxyApplyFn(e,function(e){const o=e.reflect();let n=o;if(a.encoding===\"base64\")try{n=self.atob(o)}catch{return o}if(t===\"\"){r.uboLog(c,\"Decoded outbound text:\\n\",n);return o}d.lastIndex=0;if(d.test(n)===false)return o;const i=n.replace(s,u);if(i===n)return o;r.uboLog(c,\"Matched and replaced\");if(r.logLevel>1)r.uboLog(c,\"Modified decoded outbound text:\\n\",i);let f=i;if(a.encoding===\"base64\")f=self.btoa(i);return f})}",
1364
+ "dependencies": [
1365
+ "proxy-apply.fn",
1366
+ "safe-self.fn"
1367
+ ],
1368
+ "requiresTrust": true
1369
+ },
1370
+ {
1371
+ "name": "trusted-suppress-native-method.js",
1372
+ "aliases": [],
1373
+ "body": "function trustedSuppressNativeMethod(e=\"\",t=\"\",r=\"\",n=\"\"){if(e===\"\")return;const l=safeSelf();const u=l.makeLogPrefix(\"trusted-suppress-native-method\",e,t,r,n);const a=l.String_split.call(t,/\\s*\\|\\s*/).map(e=>{if(/^\".*\"$/.test(e))return{type:\"pattern\",re:l.patternToRegex(e.slice(1,-1))};if(/^\\/.+\\/$/.test(e))return{type:\"pattern\",re:l.patternToRegex(e)};if(e===\"false\")return{type:\"exact\",value:false};if(e===\"true\")return{type:\"exact\",value:true};if(e===\"null\")return{type:\"exact\",value:null};if(e===\"undefined\")return{type:\"exact\",value:void 0}});const f=l.initPattern(n,{canNegate:true});proxyApplyFn(e,function(e){const{callArgs:n}=e;if(t===\"\"){l.uboLog(u,`Arguments:\\n${n.join(\"\\n\")}`);return e.reflect()}for(let t=0;t<a.length;t++){const r=a[t];if(r===void 0)continue;const u=t<n.length?n[t]:void 0;if(r.type===\"exact\")if(u!==r.value)return e.reflect();if(r.type===\"pattern\")if(l.RegExp_test.call(r.re,u)===false)return e.reflect()}if(f.matchAll!==true){const t=l.logLevel>1?\"all\":\"\";if(matchesStackTraceFn(f,t)===false)return e.reflect()}if(r===\"debug\"){debugger;return e.reflect()}l.uboLog(u,`Suppressed:\\n${n.join(\"\\n\")}`);if(r===\"abort\")throw new ReferenceError})}",
1374
+ "dependencies": [
1375
+ "matches-stack-trace.fn",
1376
+ "proxy-apply.fn",
1377
+ "safe-self.fn"
1378
+ ],
1379
+ "requiresTrust": true
1380
+ },
1381
+ {
1382
+ "name": "trusted-prevent-dom-bypass.js",
1383
+ "aliases": [],
1384
+ "body": "function trustedPreventDomBypass(e=\"\",n=\"\"){if(e===\"\")return;const t=safeSelf();const o=t.makeLogPrefix(\"trusted-prevent-dom-bypass\",e,n);proxyApplyFn(e,function(e){const c=new Set(e.callArgs.filter(e=>e instanceof HTMLElement));const i=e.reflect();if(c.length===0)return i;for(const e of c)try{if(`${e.contentWindow}`!==\"[object Window]\")continue;if(e.contentWindow.location.href!==\"about:blank\")if(e.contentWindow.location.href!==self.location.href)continue;if(n!==\"\"){let t=self,o=e.contentWindow;let c=n;for(;;){const e=c.indexOf(\".\");if(e===-1)break;const n=c.slice(0,e);t=t[n];o=o[n];c=c.slice(e+1)}o[c]=t[c]}else Object.defineProperty(e,\"contentWindow\",{value:self});t.uboLog(o,\"Bypass prevented\")}catch{}return i})}",
1385
+ "dependencies": [
1386
+ "proxy-apply.fn",
1387
+ "safe-self.fn"
1388
+ ],
1389
+ "requiresTrust": true
1390
+ },
1391
+ {
1392
+ "name": "trusted-override-element-method.js",
1393
+ "aliases": [],
1394
+ "body": "function trustedOverrideElementMethod(e=\"\",r=\"\",t=\"\"){if(e===\"\")return;const n=safeSelf();const o=n.makeLogPrefix(\"trusted-override-element-method\",e,r,t);const f=n.getExtraArgs(Array.from(arguments),3);proxyApplyFn(e,function(e){let i=r===\"\";if(i===false){const{thisArg:t}=e;try{i=t.closest(r)===t}catch{}}if(i===false)return e.reflect();n.uboLog(o,\"Overridden\");if(t===\"\")return;if(t===\"debug\"&&n.logLevel!==0)debugger;if(t===\"throw\")throw new ReferenceError;return validateConstantFn(true,t,f)})}",
1395
+ "dependencies": [
1396
+ "proxy-apply.fn",
1397
+ "safe-self.fn",
1398
+ "validate-constant.fn"
1399
+ ],
1400
+ "requiresTrust": true
1401
+ }
1402
+ ],
1403
+ "redirects": [
1404
+ {
1405
+ "name": "1x1.gif",
1406
+ "aliases": [
1407
+ "1x1-transparent.gif"
1408
+ ],
1409
+ "body": "R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",
1410
+ "contentType": "image/gif;base64"
1411
+ },
1412
+ {
1413
+ "name": "2x2.png",
1414
+ "aliases": [
1415
+ "2x2-transparent.png"
1416
+ ],
1417
+ "body": "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAC0lEQVQI12NgQAcAABIAAe+JVKQAAAAASUVORK5CYII=",
1418
+ "contentType": "image/png;base64"
1419
+ },
1420
+ {
1421
+ "name": "3x2.png",
1422
+ "aliases": [
1423
+ "3x2-transparent.png"
1424
+ ],
1425
+ "body": "iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAC0lEQVQI12NgwAUAABoAASRETuUAAAAASUVORK5CYII=",
1426
+ "contentType": "image/png;base64"
1427
+ },
1428
+ {
1429
+ "name": "32x32.png",
1430
+ "aliases": [
1431
+ "32x32-transparent.png"
1432
+ ],
1433
+ "body": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGklEQVRYw+3BAQEAAACCIP+vbkhAAQAAAO8GECAAAZf3V9cAAAAASUVORK5CYII=",
1434
+ "contentType": "image/png;base64"
1435
+ },
1436
+ {
1437
+ "name": "amazon_ads.js",
1438
+ "aliases": [
1439
+ "amazon-adsystem.com/aax2/amzn_ads.js"
1440
+ ],
1441
+ "body": "(function(){\"use strict\";if(t)return;var e=window;var a=function(){}.bind();var t={appendScriptTag:a,appendTargetingToAdServerUrl:a,appendTargetingToQueryString:a,clearTargetingFromGPTAsync:a,doAllTasks:a,doGetAdsAsync:a,doTask:a,detectIframeAndGetURL:a,getAds:a,getAdsAsync:a,getAdForSlot:a,getAdsCallback:a,getDisplayAds:a,getDisplayAdsAsync:a,getDisplayAdsCallback:a,getKeys:a,getReferrerURL:a,getScriptSource:a,getTargeting:a,getTokens:a,getValidMilliseconds:a,getVideoAds:a,getVideoAdsAsync:a,getVideoAdsCallback:a,handleCallBack:a,hasAds:a,renderAd:a,saveAds:a,setTargeting:a,setTargetingForGPTAsync:a,setTargetingForGPTSync:a,tryGetAdsAsync:a,updateAds:a};e.amznads=t;e.amzn_ads=e.amzn_ads||a;e.aax_write=e.aax_write||a;e.aax_render_ad=e.aax_render_ad||a})();",
1442
+ "contentType": "application/javascript"
1443
+ },
1444
+ {
1445
+ "name": "amazon_apstag.js",
1446
+ "aliases": [],
1447
+ "body": "(function(){\"use strict\";const t=window;const s=function(){}.bind();const n=t.apstag&&t.apstag._Q||[];const c={_Q:n,fetchBids:function(t,s){if(typeof s===\"function\")s([])},init:s,setDisplayBids:s,targetingKeys:s};t.apstag=c;n.push=function(t,s){try{switch(t){case\"f\":c.fetchBids(...s);break}}catch(t){console.trace(t)}};for(const t of n)n.push(t)})();",
1448
+ "contentType": "application/javascript"
1449
+ },
1450
+ {
1451
+ "name": "ampproject_v0.js",
1452
+ "aliases": [
1453
+ "ampproject.org/v0.js"
1454
+ ],
1455
+ "body": "(function(){\"use strict\";const t=document.head;if(!t)return;const n=document.createElement(\"style\");n.textContent=[\"body {\",\" animation: none !important;\",\" overflow: unset !important;\",\"}\"].join(\"\\n\");t.appendChild(n)})();",
1456
+ "contentType": "application/javascript"
1457
+ },
1458
+ {
1459
+ "name": "adthrive_abd.js",
1460
+ "aliases": [],
1461
+ "body": "(()=>{const e=new Date(Date.now()+3e4);document.cookie=`__adblocker=false; expires=${e.toUTCString()}; path=/`})();",
1462
+ "contentType": "application/javascript"
1463
+ },
1464
+ {
1465
+ "name": "chartbeat.js",
1466
+ "aliases": [
1467
+ "static.chartbeat.com/chartbeat.js"
1468
+ ],
1469
+ "body": "(function(){\"use strict\";const t=function(){};window.pSUPERFLY={activity:t,virtualPage:t};for(const t of document.querySelectorAll(\"style[id^=chartbeat-flicker-control]\"))t.remove()})();",
1470
+ "contentType": "application/javascript"
1471
+ },
1472
+ {
1473
+ "name": "click2load.html",
1474
+ "aliases": [],
1475
+ "body": "<!DOCTYPE html>\n<html id=\"ublock0-clicktoload\">\n \n<head>\n<meta charset=\"utf-8\">\n<title>uBlock Origin Click-to-Load</title>\n<link rel=\"stylesheet\" href=\"../css/themes/default.css\">\n<link rel=\"stylesheet\" href=\"../css/common.css\">\n<link rel=\"stylesheet\" href=\"../css/fa-icons.css\">\n<link rel=\"stylesheet\" href=\"../css/click2load.css\">\n</head>\n\n<body>\n\n<span class=\"logo\"><img src=\"../img/ublock.svg\"></span>\n<span id=\"clickToLoad\" data-i18n=\"clickToLoad\"></span>\n<div id=\"frameURL\"><span></span>&nbsp;<a class=\"fa-icon\" href=\"\" rel=\"noreferrer noopener\" target=\"_blank\">external-link</a></div>\n\n<script src=\"../js/fa-icons.js\" type=\"module\"></script>\n<script src=\"../js/vapi.js\"></script>\n<script src=\"../js/vapi-common.js\"></script>\n<script src=\"../js/vapi-client.js\"></script>\n<script src=\"../js/theme.js\" type=\"module\"></script>\n<script src=\"../js/i18n.js\" type=\"module\"></script>\n<script src=\"../js/click2load.js\" type=\"module\"></script>\n\n</body>\n</html>",
1476
+ "contentType": "text/html"
1477
+ },
1478
+ {
1479
+ "name": "doubleclick_instream_ad_status.js",
1480
+ "aliases": [
1481
+ "doubleclick.net/instream/ad_status.js"
1482
+ ],
1483
+ "body": "window.google_ad_status=1;",
1484
+ "contentType": "application/javascript"
1485
+ },
1486
+ {
1487
+ "name": "empty",
1488
+ "aliases": [],
1489
+ "body": "",
1490
+ "contentType": "text/plain"
1491
+ },
1492
+ {
1493
+ "name": "fingerprint2.js",
1494
+ "aliases": [],
1495
+ "body": "(function(){\"use strict\";const t=t=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16).slice(-t).padStart(t,\"0\");const n=`${t(8)}${t(8)}${t(8)}${t(8)}`;const e=function(){};e.get=function(t,n){if(!n)n=t;setTimeout(()=>{n([])},1)};e.getPromise=function(){return Promise.resolve([])};e.getV18=function(){return n};e.x64hash128=function(){return n};e.prototype={get:function(t,e){if(!e)e=t;setTimeout(()=>{e(n,[])},1)}};self.Fingerprint2=self.Fingerprint=e})();",
1496
+ "contentType": "application/javascript"
1497
+ },
1498
+ {
1499
+ "name": "fingerprint3.js",
1500
+ "aliases": [],
1501
+ "body": "(function(){\"use strict\";const t=(()=>{let t=\"\";for(let r=0;r<8;r++)t+=(Math.random()*65536+4096|0).toString(16).slice(-4);return t})();const r=class{static hashComponents(){return t}static load(){return Promise.resolve(new r)}get(){return Promise.resolve({visitorId:t})}};window.FingerprintJS=r})();",
1502
+ "contentType": "application/javascript"
1503
+ },
1504
+ {
1505
+ "name": "google-analytics_analytics.js",
1506
+ "aliases": [
1507
+ "google-analytics.com/analytics.js",
1508
+ "googletagmanager_gtm.js",
1509
+ "googletagmanager.com/gtm.js"
1510
+ ],
1511
+ "body": "(function(){\"use strict\";const n=function(){};const t=function(){};const e=t.prototype;e.get=n;e.set=n;e.send=n;const c=window;const o=c.GoogleAnalyticsObject||\"ga\";const i=c[o];const f=function(){const n=arguments.length;if(n===0)return;const t=Array.from(arguments);let e;let c=t[n-1];if(c instanceof Object&&c.hitCallback instanceof Function)e=c.hitCallback;else if(c instanceof Function)e=()=>{c(f.create())};else{const n=t.indexOf(\"hitCallback\");if(n!==-1&&t[n+1]instanceof Function)e=t[n+1]}if(e instanceof Function===false)return;try{e()}catch(n){}};f.create=function(){return new t};f.getByName=function(){return new t};f.getAll=function(){return[new t]};f.remove=n;f.loaded=true;c[o]=f;const s=c.dataLayer;if(s instanceof Object){if(s.hide instanceof Object&&typeof s.hide.end===\"function\"){s.hide.end();s.hide.end=()=>{}}if(typeof s.push===\"function\"){const n=function(n){if(n instanceof Object===false)return;if(typeof n.eventCallback!==\"function\")return;setTimeout(n.eventCallback,1);n.eventCallback=()=>{}};s.push=new Proxy(s.push,{apply:function(t,e,c){n(c[0]);return Reflect.apply(t,e,c)}});if(Array.isArray(s)){const t=s.slice();for(const e of t)n(e)}}}if(i instanceof Function&&Array.isArray(i.q)){const n=i.q.slice();i.q.length=0;for(const t of n)f(...t)}})();",
1512
+ "contentType": "application/javascript"
1513
+ },
1514
+ {
1515
+ "name": "google-analytics_cx_api.js",
1516
+ "aliases": [
1517
+ "google-analytics.com/cx/api.js"
1518
+ ],
1519
+ "body": "(function(){\"use strict\";const o=function(){};window.cxApi={chooseVariation:function(){return 0},getChosenVariation:o,setAllowHash:o,setChosenVariation:o,setCookiePath:o,setDomainName:o}})();",
1520
+ "contentType": "application/javascript"
1521
+ },
1522
+ {
1523
+ "name": "google-analytics_ga.js",
1524
+ "aliases": [
1525
+ "google-analytics.com/ga.js"
1526
+ ],
1527
+ "body": "(function(){\"use strict\";const t=function(){};const e=function(){};e.prototype.Na=t;e.prototype.O=t;e.prototype.Sa=t;e.prototype.Ta=t;e.prototype.Va=t;e.prototype._createAsyncTracker=t;e.prototype._getAsyncTracker=t;e.prototype._getPlugin=t;e.prototype.push=function(t){if(typeof t===\"function\"){t();return}if(Array.isArray(t)===false)return;if(typeof t[0]===\"string\"&&/(^|\\.)_link$/.test(t[0])&&typeof t[1]===\"string\")try{window.location.assign(t[1])}catch(t){}if(t[0]===\"_set\"&&t[1]===\"hitCallback\"&&typeof t[2]===\"function\")t[2]()};const o=(function(){const e={};const o=[\"_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic\",\"_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic\",\"_cookiePathCopy _deleteCustomVar _getName _setAccount\",\"_getAccount _getClientInfo _getDetectFlash _getDetectTitle\",\"_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion\",\"_getVisitorCustomVar _initData _linkByPost\",\"_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey\",\"_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey\",\"_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo\",\"_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar\",\"_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath\",\"_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode\",\"_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout\",\"_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime\",\"_trackPageview _trackSocial _trackTiming _trackTrans\",\"_visitCode\"].join(\" \").split(/\\s+/);for(const r of o)e[r]=t;e._getLinkerUrl=function(t){return t};e._link=function(t){if(typeof t!==\"string\")return;try{window.location.assign(t)}catch(t){}};return e})();const r=function(){};r.prototype._anonymizeIP=t;r.prototype._createTracker=t;r.prototype._forceSSL=t;r.prototype._getPlugin=t;r.prototype._getTracker=function(){return o};r.prototype._getTrackerByName=function(){return o};r.prototype._getTrackers=t;r.prototype.aa=t;r.prototype.ab=t;r.prototype.hb=t;r.prototype.la=t;r.prototype.oa=t;r.prototype.pa=t;r.prototype.u=t;const n=new r;window._gat=n;const a=new e;(function(){const t=window._gaq||[];if(Array.isArray(t))while(t[0])a.push(t.shift())})();window._gaq=a.qf=a})();",
1528
+ "contentType": "application/javascript"
1529
+ },
1530
+ {
1531
+ "name": "google-analytics_inpage_linkid.js",
1532
+ "aliases": [
1533
+ "google-analytics.com/inpage_linkid.js"
1534
+ ],
1535
+ "body": "(function(){\"use strict\";window._gaq=window._gaq||{push:function(){}}})();",
1536
+ "contentType": "application/javascript"
1537
+ },
1538
+ {
1539
+ "name": "google-ima.js",
1540
+ "aliases": [
1541
+ "google-ima3"
1542
+ ],
1543
+ "body": "\"use strict\";if(!window.google||!window.google.ima||!window.google.ima.VERSION){const e=\"3.764.0\";const t={};class r{constructor(e){const t=document.createElement(\"div\");t.style.setProperty(\"display\",\"none\",\"important\");t.style.setProperty(\"visibility\",\"collapse\",\"important\");e.appendChild(t)}destroy(){}initialize(){}}class s{constructor(){this.c=true;this.f={};this.i=false;this.l=\"\";this.p=\"\";this.r=0;this.t=\"\";this.v=\"\"}getCompanionBackfill(){}getDisableCustomPlaybackForIOS10Plus(){return this.i}getFeatureFlags(){return this.f}getLocale(){return this.l}getNumRedirects(){return this.r}getPlayerType(){return this.t}getPlayerVersion(){return this.v}getPpid(){return this.p}isCookiesEnabled(){return this.c}setAutoPlayAdBreaks(){}setCompanionBackfill(){}setCookiesEnabled(e){this.c=!!e}setDisableCustomPlaybackForIOS10Plus(e){this.i=!!e}setFeatureFlags(e){this.f=e}setLocale(e){this.l=e}setNumRedirects(e){this.r=e}setPlayerType(e){this.t=e}setPlayerVersion(e){this.v=e}setPpid(e){this.p=e}setSessionId(){}setVpaidAllowed(){}setVpaidMode(){}getDisableFlashAds(){}setDisableFlashAds(){}}s.CompanionBackfillMode={ALWAYS:\"always\",ON_MASTER_AD:\"on_master_ad\"};s.VpaidMode={DISABLED:0,ENABLED:1,INSECURE:2};class n{constructor(){this.listeners=new Map}_dispatch(e){let t=this.listeners.get(e.type);t=t?Array.from(t.values()):[];for(const r of t)try{r(e)}catch(e){console.error(e)}}addEventListener(e,t,r,s){if(!Array.isArray(e))e=[e];for(const r of e){if(!this.listeners.has(r))this.listeners.set(r,new Map);this.listeners.get(r).set(t,t.bind(s||this))}}removeEventListener(e,t){if(!Array.isArray(e))e=[e];for(const r of e){const e=this.listeners.get(r);if(e)e.delete(t)}}}class i extends n{constructor(){super();this.settings=new s}contentComplete(){}destroy(){}getSettings(){return this.settings}getVersion(){return e}requestAds(e,r){requestAnimationFrame(()=>{const{ADS_MANAGER_LOADED:s}=T.Type;const n=new t.AdsManagerLoadedEvent(s,e,r);this._dispatch(n)});const s=new t.AdError(\"adPlayError\",1205,1205,\"The browser prevented playback initiated without user interaction.\",e,r);requestAnimationFrame(()=>{this._dispatch(new t.AdErrorEvent(s))})}}class a extends n{constructor(){super();this.volume=1;this._enablePreloading=false}collapse(){}configureAdsManager(){}destroy(){}discardAdBreak(){}expand(){}focus(){}getAdSkippableState(){return false}getCuePoints(){return[0]}getCurrentAd(){return c}getCurrentAdCuePoints(){return[]}getRemainingTime(){return 0}getVolume(){return this.volume}init(){if(this._enablePreloading)this._dispatch(new t.AdEvent(p.Type.LOADED))}isCustomClickTrackingUsed(){return false}isCustomPlaybackUsed(){return false}pause(){}requestNextAdBreak(){}resize(){}resume(){}setVolume(e){this.volume=e}skip(){}start(){requestAnimationFrame(()=>{for(const e of[p.Type.LOADED,p.Type.STARTED,p.Type.CONTENT_PAUSE_REQUESTED,p.Type.AD_BUFFERING,p.Type.FIRST_QUARTILE,p.Type.MIDPOINT,p.Type.THIRD_QUARTILE,p.Type.COMPLETE,p.Type.ALL_ADS_COMPLETED,p.Type.CONTENT_RESUME_REQUESTED])try{this._dispatch(new t.AdEvent(e))}catch(e){console.error(e)}})}stop(){}updateAdsRenderingSettings(){}}class o{}class d{setAdWillAutoPlay(){}setAdWillPlayMuted(){}setContinuousPlayback(){}}class u{getAdPosition(){return 1}getIsBumper(){return false}getMaxDuration(){return-1}getPodIndex(){return 1}getTimeOffset(){return 0}getTotalAds(){return 1}}class l{constructor(){this._pi=new u}getAdId(){return\"\"}getAdPodInfo(){return this._pi}getAdSystem(){return\"\"}getAdvertiserName(){return\"\"}getApiFramework(){return null}getCompanionAds(){return[]}getContentType(){return\"\"}getCreativeAdId(){return\"\"}getCreativeId(){return\"\"}getDealId(){return\"\"}getDescription(){return\"\"}getDuration(){return 8.5}getHeight(){return 0}getMediaUrl(){return null}getMinSuggestedDuration(){return-2}getSkipTimeOffset(){return-1}getSurveyUrl(){return null}getTitle(){return\"\"}getTraffickingParameters(){return{}}getTraffickingParametersString(){return\"\"}getUiElements(){return[\"\"]}getUniversalAdIdRegistry(){return\"unknown\"}getUniversalAdIds(){return[new R]}getUniversalAdIdValue(){return\"unknown\"}getVastMediaBitrate(){return 0}getVastMediaHeight(){return 0}getVastMediaWidth(){return 0}getWidth(){return 0}getWrapperAdIds(){return[\"\"]}getWrapperAdSystems(){return[\"\"]}getWrapperCreativeIds(){return[\"\"]}isLinear(){return true}isSkippable(){return true}}class g{getAdSlotId(){return\"\"}getContent(){return\"\"}getContentType(){return\"\"}getHeight(){return 1}getWidth(){return 1}}class A{constructor(e,t,r,s,n,i){this.errorCode=t;this.message=s;this.type=e;this.adsRequest=n;this.userRequestContext=i;this.vastErrorCode=r}getErrorCode(){return this.errorCode}getInnerError(){return null}getMessage(){return this.message}getType(){return this.type}getVastErrorCode(){return this.vastErrorCode}toString(){return`AdError ${this.errorCode}: ${this.message}`}}A.ErrorCode={};A.Type={};const E=()=>{try{for(const e of Object.values(window.vidible._getContexts())){const t=e.getPlayer();if(!t)continue;const r=t.div;if(!r)continue;if(r.innerHTML.includes(\"www.engadget.com\"))return true}}catch{}return false};const c=E()?void 0:new l;class p{constructor(e){this.type=e}getAd(){return c}getAdData(){return{}}}p.Type={AD_BREAK_READY:\"adBreakReady\",AD_BUFFERING:\"adBuffering\",AD_CAN_PLAY:\"adCanPlay\",AD_METADATA:\"adMetadata\",AD_PROGRESS:\"adProgress\",ALL_ADS_COMPLETED:\"allAdsCompleted\",CLICK:\"click\",COMPLETE:\"complete\",CONTENT_PAUSE_REQUESTED:\"contentPauseRequested\",CONTENT_RESUME_REQUESTED:\"contentResumeRequested\",DURATION_CHANGE:\"durationChange\",EXPANDED_CHANGED:\"expandedChanged\",FIRST_QUARTILE:\"firstQuartile\",IMPRESSION:\"impression\",INTERACTION:\"interaction\",LINEAR_CHANGE:\"linearChange\",LINEAR_CHANGED:\"linearChanged\",LOADED:\"loaded\",LOG:\"log\",MIDPOINT:\"midpoint\",PAUSED:\"pause\",RESUMED:\"resume\",SKIPPABLE_STATE_CHANGED:\"skippableStateChanged\",SKIPPED:\"skip\",STARTED:\"start\",THIRD_QUARTILE:\"thirdQuartile\",USER_CLOSE:\"userClose\",VIDEO_CLICKED:\"videoClicked\",VIDEO_ICON_CLICKED:\"videoIconClicked\",VIEWABLE_IMPRESSION:\"viewable_impression\",VOLUME_CHANGED:\"volumeChange\",VOLUME_MUTED:\"mute\"};class h{constructor(e){this.type=\"adError\";this.error=e}getError(){return this.error}getUserRequestContext(){return this.error?.userRequestContext||{}}}h.Type={AD_ERROR:\"adError\"};const C=new a;class T{constructor(e,t,r){this.type=e;this.adsRequest=t;this.userRequestContext=r}getAdsManager(e,t){if(t&&t.enablePreloading)C._enablePreloading=true;return C}getUserRequestContext(){return this.userRequestContext||{}}}T.Type={ADS_MANAGER_LOADED:\"adsManagerLoaded\"};class I{}I.Type={CUSTOM_CONTENT_LOADED:\"deprecated-event\"};class D{}D.CreativeType={ALL:\"All\",FLASH:\"Flash\",IMAGE:\"Image\"};D.ResourceType={ALL:\"All\",HTML:\"Html\",IFRAME:\"IFrame\",STATIC:\"Static\"};D.SizeCriteria={IGNORE:\"IgnoreSize\",SELECT_EXACT_MATCH:\"SelectExactMatch\",SELECT_NEAR_MATCH:\"SelectNearMatch\"};class m{getCuePoints(){return[]}}class y{}class R{getAdIdRegistry(){return\"\"}getAdIdValue(){return\"\"}}Object.assign(t,{AdCuePoints:m,AdDisplayContainer:r,AdError:A,AdErrorEvent:h,AdEvent:p,AdPodInfo:u,AdProgressData:y,AdsLoader:i,AdsManager:C,AdsManagerLoadedEvent:T,AdsRenderingSettings:o,AdsRequest:d,CompanionAd:g,CompanionAdSelectionSettings:D,CustomContentLoadedEvent:I,gptProxyInstance:{},ImaSdkSettings:s,OmidAccessMode:{DOMAIN:\"domain\",FULL:\"full\",LIMITED:\"limited\"},OmidVerificationVendor:{1:\"OTHER\",2:\"GOOGLE\",GOOGLE:2,OTHER:1},settings:new s,UiElements:{AD_ATTRIBUTION:\"adAttribution\",COUNTDOWN:\"countdown\"},UniversalAdIdInfo:R,VERSION:e,ViewMode:{FULLSCREEN:\"fullscreen\",NORMAL:\"normal\"}});if(!window.google)window.google={};window.google.ima=t}\n/*\nad.doubleclick.net bid.g.doubleclick.net ggpht.com google.co.uk google.com\ngoogleads.g.doubleclick.net googleads4.g.doubleclick.net googleadservices.com\ngooglesyndication.com googleusercontent.com gstatic.com gvt1.com prod.google.com\npubads.g.doubleclick.net s0.2mdn.net static.doubleclick.net\nsurveys.g.doubleclick.net youtube.com ytimg.com\n*/",
1544
+ "contentType": "application/javascript"
1545
+ },
1546
+ {
1547
+ "name": "googlesyndication_adsbygoogle.js",
1548
+ "aliases": [
1549
+ "googlesyndication.com/adsbygoogle.js",
1550
+ "googlesyndication-adsbygoogle"
1551
+ ],
1552
+ "body": "(function(){self.adsbygoogle=self.adsbygoogle||{loaded:true,push:function(){}};let t=1;const e=e=>{const a=document.createElement(\"iframe\");a.id=`aswift_${t}`;a.setAttribute(\"name\",a.id);t+=1;e.dataset.adsbygoogleStatus=\"loading\";e.dataset.adStatus=\"loading\";e.appendChild(a);a.addEventListener(\"load\",()=>{e.dataset.adsbygoogleStatus=\"done\";e.dataset.adStatus=\"filled\";a.dataset.loadComplete=\"true\"},{once:true});a.contentWindow.location=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCiAgICA8aGVhZD48dGl0bGU+PC90aXRsZT48L2hlYWQ+DQogICAgPGJvZHk+PC9ib2R5Pg0KPC9odG1sPg==\"};const a=()=>{const t=document.querySelectorAll(\".adsbygoogle:not([data-ad-status][data-adsbygoogle-status])\");for(const a of t)e(a)};a();let o=new MutationObserver(()=>{if(a.timer!==void 0)return;a.timer=self.requestAnimationFrame(()=>{a.timer=void 0;a()})});o.observe(document,{attributes:true,attributeFilter:[\"class\"],childList:true,subtree:true});setTimeout(()=>{o.disconnect();o=void 0},2e4)})();\n/*\npagead2.googlesyndication.com/pagead/js/adsbygoogle.js,adsbygoogle-placeholder,adsbygoogleStatus,google_ad_channel,google_ad_client,google_ad_format,google_ad_frequency_hint,google_ad_height,google_ad_host,google_ad_host_channel,google_ad_modifications,google_ad_region,google_ad_resizable,google_ad_resize,google_ad_section,google_ad_semantic_area,google_ad_width,google_adbreak_test,google_ads_frame,google_ads_iframe,google_adtest,google_admob_interstitial_slot,google_admob_rewarded_slot,google_admob_ads_only,google-adsense-platform-account,google_adsense_settings,google_ama_config,google-ama-order-assurance,google_ama_settings,google_ama_state,google_apltlad,google_audio_sense,google-auto-placed-read-aloud-player-reserved,google_debug_params,google_full_width_responsive,google_full_width_responsive_allowed,google_image_requests,google_js_errors,google_js_reporting_queue,google_loader_features_used,google_llp,google_logging_queue,google_max_ad_content_rating,google_measure_js_timing,google_ml_rank,google_overlays,google_override_format,google_package,google_page_url,google_persistent_state_async,google_pgb_reactive,google_placement_id,google_prev_ad_formats_by_region,google_prev_ad_slotnames_by_region,google_reactive_ad_format,google_reactive_ads_global_state,google_resizing_height,google_resizing_width,google_responsive_auto_format,google_responsive_dummy_ad,google_responsive_formats,google_restrict_data_processing,google_rum_task_id_counter,google_safe_for_responsive_override,google_shadow_mode,google_srt,google_tag_for_under_age_of_consent,google_tag_origin,google_tag_partner,google_traffic_source,google_unique_id,googletag\n*/",
1553
+ "contentType": "application/javascript"
1554
+ },
1555
+ {
1556
+ "name": "googletagservices_gpt.js",
1557
+ "aliases": [
1558
+ "googletagservices.com/gpt.js",
1559
+ "googletagservices-gpt"
1560
+ ],
1561
+ "body": "(function(){\"use strict\";const e=function(){}.bind();const t=function(){return this};const n=function(){return null};const i=function(){return[]};const o=function(){return\"\"};const r={addEventListener:t,enableSyncLoading:e,setRefreshUnfilledSlots:e};const s={addEventListener:t,setContent:e};const a=function(){};let c=a.prototype;c.display=e;c.get=n;c.set=t;c.setClickUrl=t;c.setTagForChildDirectedTreatment=t;c.setTargeting=t;c.updateTargetingFromMap=t;const g={addEventListener:t,clear:e,clearCategoryExclusions:t,clearTagForChildDirectedTreatment:t,clearTargeting:t,collapseEmptyDivs:e,defineOutOfPagePassback:function(){return new a},definePassback:function(){return new a},disableInitialLoad:e,display:e,enableAsyncRendering:e,enableLazyLoad:e,enableSingleRequest:e,enableSyncRendering:e,enableVideoAds:e,get:n,getAttributeKeys:i,getTargeting:i,getTargetingKeys:i,getSlots:i,refresh:e,removeEventListener:e,set:t,setCategoryExclusion:t,setCentering:e,setCookieOptions:t,setForceSafeFrame:t,setLocation:t,setPublisherProvidedId:t,setPrivacySettings:t,setRequestNonPersonalizedAds:t,setSafeFrameConfig:t,setTagForChildDirectedTreatment:t,setTargeting:t,setVideoContent:t,updateCorrelator:e};const d=function(){};c=d.prototype;c.addSize=t;c.build=n;const l=function(){};c=l.prototype;c.addService=t;c.clearCategoryExclusions=t;c.clearTargeting=t;c.defineSizeMapping=t;c.get=n;c.getAdUnitPath=i;c.getAttributeKeys=i;c.getCategoryExclusions=i;c.getDomId=o;c.getResponseInformation=n;c.getSlotElementId=o;c.getSlotId=t;c.getTargeting=i;c.getTargetingKeys=i;c.set=t;c.setCategoryExclusion=t;c.setClickUrl=t;c.setCollapseEmptyDiv=t;c.setTargeting=t;c.updateTargetingFromMap=t;const u=window.googletag||{};const f=u.cmd||[];u.apiReady=true;u.cmd=[];u.cmd.push=function(e){try{e()}catch(e){}return 1};u.companionAds=function(){return r};u.content=function(){return s};u.defineOutOfPageSlot=function(){return new l};u.defineSlot=function(){return new l};u.destroySlots=e;u.disablePublisherConsole=e;u.display=e;u.enableServices=e;u.getVersion=o;u.pubads=function(){return g};u.pubadsReady=true;u.setAdIframeTitle=e;u.sizeMapping=function(){return new d};window.googletag=u;while(f.length!==0)u.cmd.push(f.shift())})();",
1562
+ "contentType": "application/javascript"
1563
+ },
1564
+ {
1565
+ "name": "hd-main.js",
1566
+ "aliases": [],
1567
+ "body": "(function(){\"use strict\";const e={};const d=function(){};const f=[\"$j\",\"Ad\",\"Bd\",\"Cd\",\"Dd\",\"Ed\",\"Fd\",\"Gd\",\"Hd\",\"Id\",\"Jd\",\"Nj\",\"Oc\",\"Pc\",\"Pe\",\"Qc\",\"Qe\",\"Rc\",\"Re\",\"Ri\",\"Sc\",\"Tc\",\"Uc\",\"Vc\",\"Wc\",\"Wg\",\"Xc\",\"Xg\",\"Yc\",\"Yd\",\"ad\",\"ae\",\"bd\",\"bf\",\"cd\",\"dd\",\"ed\",\"ef\",\"ek\",\"fd\",\"fg\",\"fh\",\"fk\",\"gd\",\"hd\",\"ig\",\"ij\",\"jd\",\"kd\",\"ke\",\"ld\",\"md\",\"mi\",\"nd\",\"od\",\"oh\",\"pd\",\"pf\",\"qd\",\"rd\",\"sd\",\"td\",\"ud\",\"vd\",\"wd\",\"wg\",\"xd\",\"xh\",\"yd\",\"zd\",\"$d\",\"$e\",\"$k\",\"Ae\",\"Af\",\"Aj\",\"Be\",\"Ce\",\"De\",\"Ee\",\"Ek\",\"Eo\",\"Ep\",\"Fe\",\"Fo\",\"Ge\",\"Gh\",\"Hk\",\"Ie\",\"Ip\",\"Je\",\"Ke\",\"Kk\",\"Kq\",\"Le\",\"Lh\",\"Lk\",\"Me\",\"Mm\",\"Ne\",\"Oe\",\"Pe\",\"Qe\",\"Re\",\"Rp\",\"Se\",\"Te\",\"Ue\",\"Ve\",\"Vp\",\"We\",\"Xd\",\"Xe\",\"Yd\",\"Ye\",\"Zd\",\"Ze\",\"Zf\",\"Zk\",\"ae\",\"af\",\"al\",\"be\",\"bf\",\"bg\",\"ce\",\"cp\",\"df\",\"di\",\"ee\",\"ef\",\"fe\",\"ff\",\"gf\",\"gm\",\"he\",\"hf\",\"ie\",\"je\",\"jf\",\"ke\",\"kf\",\"kl\",\"le\",\"lf\",\"lk\",\"mf\",\"mg\",\"mn\",\"nf\",\"oe\",\"of\",\"pe\",\"pf\",\"pg\",\"qe\",\"qf\",\"re\",\"rf\",\"se\",\"sf\",\"te\",\"tf\",\"ti\",\"ue\",\"uf\",\"ve\",\"vf\",\"we\",\"wf\",\"wg\",\"wi\",\"xe\",\"ye\",\"yf\",\"yk\",\"yl\",\"ze\",\"zf\",\"zk\"];for(let c=0;c<f.length;c++)e[f[c]]=d;window.L=window.J=e})();",
1568
+ "contentType": "application/javascript"
1569
+ },
1570
+ {
1571
+ "name": "nitropay_ads.js",
1572
+ "aliases": [],
1573
+ "body": "(function(){if(window.nitroAds)return;const n=function(){}.bind();const i={createAd:n,queue:[]};window.nitroAds=i})();",
1574
+ "contentType": "application/javascript"
1575
+ },
1576
+ {
1577
+ "name": "nobab2.js",
1578
+ "aliases": [],
1579
+ "body": "(function(){\"use strict\";const t=document.currentScript;if(t===null)return;const n=t.src;if(typeof n!==\"string\")return;const e=new RegExp(\"^https?://[\\\\w-]+\\\\.(\"+[\"adclixx\\\\.net\",\"adnetasia\\\\.com\",\"adtrackers\\\\.net\",\"bannertrack\\\\.net\"].join(\"|\")+\")/.\");if(e.test(n)===false)return;window.nH7eXzOsG=858})();",
1580
+ "contentType": "application/javascript"
1581
+ },
1582
+ {
1583
+ "name": "noeval.js",
1584
+ "aliases": [],
1585
+ "body": "(function(){\"use strict\";const n=console.log.bind(console);window.eval=new Proxy(window.eval,{apply:function(o,e,t){n(`Document tried to eval... ${t[0]}\\n`)}})})();",
1586
+ "contentType": "application/javascript"
1587
+ },
1588
+ {
1589
+ "name": "noeval-silent.js",
1590
+ "aliases": [
1591
+ "silent-noeval.js"
1592
+ ],
1593
+ "body": "(function(){\"use strict\";window.eval=new Proxy(window.eval,{apply:function(){}})})();",
1594
+ "contentType": "application/javascript"
1595
+ },
1596
+ {
1597
+ "name": "nofab.js",
1598
+ "aliases": [
1599
+ "fuckadblock.js-3.2.0"
1600
+ ],
1601
+ "body": "(function(){\"use strict\";const o=function(){};const t=function(){};t.prototype.check=o;t.prototype.clearEvent=o;t.prototype.emitEvent=o;t.prototype.on=function(o,t){if(!o)t();return this};t.prototype.onDetected=function(){return this};t.prototype.onNotDetected=function(o){o();return this};t.prototype.setOption=o;t.prototype.options={set:o,get:o};const e=new t;const n={get:function(){return t},set:function(){}};const c={get:function(){return e},set:function(){}};if(window.hasOwnProperty(\"FuckAdBlock\"))window.FuckAdBlock=t;else Object.defineProperty(window,\"FuckAdBlock\",n);if(window.hasOwnProperty(\"BlockAdBlock\"))window.BlockAdBlock=t;else Object.defineProperty(window,\"BlockAdBlock\",n);if(window.hasOwnProperty(\"SniffAdBlock\"))window.SniffAdBlock=t;else Object.defineProperty(window,\"SniffAdBlock\",n);if(window.hasOwnProperty(\"fuckAdBlock\"))window.fuckAdBlock=e;else Object.defineProperty(window,\"fuckAdBlock\",c);if(window.hasOwnProperty(\"blockAdBlock\"))window.blockAdBlock=e;else Object.defineProperty(window,\"blockAdBlock\",c);if(window.hasOwnProperty(\"sniffAdBlock\"))window.sniffAdBlock=e;else Object.defineProperty(window,\"sniffAdBlock\",c)})();",
1602
+ "contentType": "application/javascript"
1603
+ },
1604
+ {
1605
+ "name": "noop-0.1s.mp3",
1606
+ "aliases": [
1607
+ "noopmp3-0.1s",
1608
+ "abp-resource:blank-mp3"
1609
+ ],
1610
+ "body": "SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjQwLjEwMQAAAAAAAAAAAAAA//tUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAGAAADAABgYGBgYGBgYGBgYGBgYGBggICAgICAgICAgICAgICAgICgoKCgoKCgoKCgoKCgoKCgwMDAwMDAwMDAwMDAwMDAwMDg4ODg4ODg4ODg4ODg4ODg4P////////////////////8AAAAATGF2YzU2LjYwAAAAAAAAAAAAAAAAJAAAAAAAAAAAAwDNZKlY//sUZAAP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAETEFNRTMuOTkuNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZB4P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZDwP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZFoP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZHgP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZJYP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
1611
+ "contentType": "audio/mp3;base64"
1612
+ },
1613
+ {
1614
+ "name": "noop-0.5s.mp3",
1615
+ "aliases": [],
1616
+ "body": "SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//tUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAWAAAJAAAgICAgKioqKio1NTU1QEBAQEBKSkpKVVVVVVVgYGBgampqamp1dXV1gICAgICKioqKlZWVlZWgoKCgoKqqqqq1tbW1tcDAwMDKysrKytXV1dXg4ODg4Orq6ur19fX19f////8AAAAATGF2YzU4LjU0AAAAAAAAAAAAAAAAJAMAAAAAAAAACQDI0dkC//sUZAAP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAETEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZB4P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZDwP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZFoP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZHgP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZJYP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZLQP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZNIP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUZOGP8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
1617
+ "contentType": "audio/mp3;base64"
1618
+ },
1619
+ {
1620
+ "name": "noop-1s.mp4",
1621
+ "aliases": [
1622
+ "noopmp4-1s",
1623
+ "abp-resource:blank-mp4"
1624
+ ],
1625
+ "body": "AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",
1626
+ "contentType": "video/mp4;base64"
1627
+ },
1628
+ {
1629
+ "name": "noop.css",
1630
+ "aliases": [],
1631
+ "body": "/* */",
1632
+ "contentType": "text/plain"
1633
+ },
1634
+ {
1635
+ "name": "noop.html",
1636
+ "aliases": [
1637
+ "noopframe"
1638
+ ],
1639
+ "body": "<!DOCTYPE html>\n<html>\n <head><title></title></head>\n <body></body>\n</html>",
1640
+ "contentType": "text/html"
1641
+ },
1642
+ {
1643
+ "name": "noop.js",
1644
+ "aliases": [
1645
+ "noopjs",
1646
+ "abp-resource:blank-js"
1647
+ ],
1648
+ "body": "(function(){\"use strict\"})();",
1649
+ "contentType": "application/javascript"
1650
+ },
1651
+ {
1652
+ "name": "noop.json",
1653
+ "aliases": [
1654
+ "noopjson"
1655
+ ],
1656
+ "body": "{}",
1657
+ "contentType": "text/plain"
1658
+ },
1659
+ {
1660
+ "name": "noop.txt",
1661
+ "aliases": [
1662
+ "nooptext"
1663
+ ],
1664
+ "body": "",
1665
+ "contentType": "text/plain"
1666
+ },
1667
+ {
1668
+ "name": "noop-vast2.xml",
1669
+ "aliases": [
1670
+ "noopvast-2.0"
1671
+ ],
1672
+ "body": "<VAST version=\"2.0\"></VAST>",
1673
+ "contentType": "text/plain"
1674
+ },
1675
+ {
1676
+ "name": "noop-vast3.xml",
1677
+ "aliases": [
1678
+ "noopvast-3.0"
1679
+ ],
1680
+ "body": "<VAST version=\"3.0\"></VAST>",
1681
+ "contentType": "text/plain"
1682
+ },
1683
+ {
1684
+ "name": "noop-vast4.xml",
1685
+ "aliases": [
1686
+ "noopvast-4.0"
1687
+ ],
1688
+ "body": "<VAST version=\"4.0\"></VAST>",
1689
+ "contentType": "text/plain"
1690
+ },
1691
+ {
1692
+ "name": "noop-vmap1.xml",
1693
+ "aliases": [
1694
+ "noop-vmap1.0.xml",
1695
+ "noopvmap-1.0"
1696
+ ],
1697
+ "body": "<vmap:VMAP xmlns:vmap=\"http://www.iab.net/videosuite/vmap\" version=\"1.0\"></vmap:VMAP>",
1698
+ "contentType": "text/plain"
1699
+ },
1700
+ {
1701
+ "name": "outbrain-widget.js",
1702
+ "aliases": [
1703
+ "widgets.outbrain.com/outbrain.js"
1704
+ ],
1705
+ "body": "(function(){\"use strict\";const e=function(){};const r={};const c=[\"callClick\",\"callLoadMore\",\"callRecs\",\"callUserZapping\",\"callWhatIs\",\"cancelRecommendation\",\"cancelRecs\",\"closeCard\",\"closeModal\",\"closeTbx\",\"errorInjectionHandler\",\"getCountOfRecs\",\"getStat\",\"imageError\",\"manualVideoClicked\",\"onOdbReturn\",\"onVideoClick\",\"pagerLoad\",\"recClicked\",\"refreshSpecificWidget\",\"renderSpaWidgets\",\"refreshWidget\",\"reloadWidget\",\"researchWidget\",\"returnedError\",\"returnedHtmlData\",\"returnedIrdData\",\"returnedJsonData\",\"scrollLoad\",\"showDescription\",\"showRecInIframe\",\"userZappingMessage\",\"zappingFormAction\"];r.extern={video:{getVideoRecs:e,videoClicked:e}};c.forEach(function(c){r.extern[c]=e});window.OBR=window.OBR||r})();",
1706
+ "contentType": "application/javascript"
1707
+ },
1708
+ {
1709
+ "name": "piano-analytics.js",
1710
+ "aliases": [],
1711
+ "body": "self.pa={getVisitorId(){},sendEvent(){}};",
1712
+ "contentType": "application/javascript"
1713
+ },
1714
+ {
1715
+ "name": "popads.js",
1716
+ "aliases": [
1717
+ "popads.net.js",
1718
+ "prevent-popads-net.js"
1719
+ ],
1720
+ "body": "(function(){\"use strict\";const n=String.fromCharCode(Date.now()%26+97)+Math.floor(Math.random()*982451653+982451653).toString(36);const o=window.onerror;window.onerror=function(e,t,r,i,d){if(typeof e===\"string\"&&e.indexOf(n)!==-1)return true;if(o instanceof Function)return o(e,t,r,i,d)}.bind();const e=function(){throw new ReferenceError(n)};delete window.PopAds;delete window.popns;Object.defineProperties(window,{PopAds:{set:e},popns:{set:e}})})();",
1721
+ "contentType": "application/javascript"
1722
+ },
1723
+ {
1724
+ "name": "popads-dummy.js",
1725
+ "aliases": [],
1726
+ "body": "(function(){\"use strict\";delete window.PopAds;delete window.popns;Object.defineProperties(window,{PopAds:{value:{}},popns:{value:{}}})})();",
1727
+ "contentType": "application/javascript"
1728
+ },
1729
+ {
1730
+ "name": "prebid-ads.js",
1731
+ "aliases": [],
1732
+ "body": "(function(){\"use strict\";window.canRunAds=true;window.isAdBlockActive=false})();",
1733
+ "contentType": "application/javascript"
1734
+ },
1735
+ {
1736
+ "name": "scorecardresearch_beacon.js",
1737
+ "aliases": [
1738
+ "scorecardresearch.com/beacon.js"
1739
+ ],
1740
+ "body": "(function(){\"use strict\";window.COMSCORE={purge:function(){window._comscore=[]},beacon:function(){}}})();",
1741
+ "contentType": "application/javascript"
1742
+ },
1743
+ {
1744
+ "name": "sensors-analytics.js",
1745
+ "aliases": [],
1746
+ "body": "(function(){\"use strict\";const t=function(){};window.sensorsDataAnalytic201505={init:t,quick:t,register:t,track:t}})();",
1747
+ "contentType": "application/javascript"
1748
+ },
1749
+ {
1750
+ "name": "MIME_TYPE_STUB.flv",
1751
+ "aliases": [],
1752
+ "body": "RkxWAQEAAAAJAAAAABIAALgAAAAAAAAAAgAKb25NZXRhRGF0YQgAAAAIAAhkdXJhdGlvbgAAAAAAAAAAAAAFd2lkdGgAP/AAAAAAAAAABmhlaWdodAA/8AAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAaGoAAAAAAAAJZnJhbWVyYXRlAEBZAAAAAAAAAAx2aWRlb2NvZGVjaWQAQAAAAAAAAAAAB2VuY29kZXICAA1MYXZmNTcuNDEuMTAwAAhmaWxlc2l6ZQBAaoAAAAAAAAAACQAAAMM=",
1753
+ "contentType": "video/flv;base64;base64"
1754
+ },
1755
+ {
1756
+ "name": "MIME_TYPE_STUB.gif",
1757
+ "aliases": [],
1758
+ "body": "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
1759
+ "contentType": "image/gif;base64;base64"
1760
+ },
1761
+ {
1762
+ "name": "MIME_TYPE_STUB.html",
1763
+ "aliases": [],
1764
+ "body": "<!DOCTYPE html>",
1765
+ "contentType": "text/html"
1766
+ },
1767
+ {
1768
+ "name": "MIME_TYPE_STUB.ico",
1769
+ "aliases": [],
1770
+ "body": "AAABAAEAAQEAAAEAGAAwAAAAFgAAACgAAAABAAAAAgAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAA==",
1771
+ "contentType": "image/vnd.microsoft.icon;base64;base64"
1772
+ },
1773
+ {
1774
+ "name": "MIME_TYPE_STUB.jpg",
1775
+ "aliases": [],
1776
+ "body": "/9j/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/yQALCAABAAEBAREA/8wABgAQEAX/2gAIAQEAAD8A0s8g/9k=",
1777
+ "contentType": "image/jpeg;base64;base64"
1778
+ },
1779
+ {
1780
+ "name": "MIME_TYPE_STUB.js",
1781
+ "aliases": [],
1782
+ "body": "",
1783
+ "contentType": "application/javascript"
1784
+ },
1785
+ {
1786
+ "name": "MIME_TYPE_STUB.json",
1787
+ "aliases": [],
1788
+ "body": "0",
1789
+ "contentType": "application/json"
1790
+ },
1791
+ {
1792
+ "name": "MIME_TYPE_STUB.mp3",
1793
+ "aliases": [],
1794
+ "body": "/+MYxAAAAANIAAAAAExBTUUzLjk4LjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
1795
+ "contentType": "audio/mpeg;base64;base64"
1796
+ },
1797
+ {
1798
+ "name": "MIME_TYPE_STUB.mp4",
1799
+ "aliases": [],
1800
+ "body": "AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE=",
1801
+ "contentType": "video/mp4;base64;base64"
1802
+ },
1803
+ {
1804
+ "name": "MIME_TYPE_STUB.pdf",
1805
+ "aliases": [],
1806
+ "body": "JVBERi0xLgoxIDAgb2JqPDwvUGFnZXMgMiAwIFI+PmVuZG9iagoyIDAgb2JqPDwvS2lkc1szIDAgUl0vQ291bnQgMT4+ZW5kb2JqCjMgMCBvYmo8PC9QYXJlbnQgMiAwIFI+PmVuZG9iagp0cmFpbGVyIDw8L1Jvb3QgMSAwIFI+Pg==",
1807
+ "contentType": "application/pdf;base64;base64"
1808
+ },
1809
+ {
1810
+ "name": "MIME_TYPE_STUB.png",
1811
+ "aliases": [],
1812
+ "body": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==",
1813
+ "contentType": "image/png;base64;base64"
1814
+ },
1815
+ {
1816
+ "name": "MIME_TYPE_STUB.svg",
1817
+ "aliases": [],
1818
+ "body": "https://raw.githubusercontent.com/mathiasbynens/small/master/svg.svg",
1819
+ "contentType": "image/svg+xml"
1820
+ },
1821
+ {
1822
+ "name": "MIME_TYPE_STUB.txt",
1823
+ "aliases": [],
1824
+ "body": "",
1825
+ "contentType": "text/plain"
1826
+ },
1827
+ {
1828
+ "name": "MIME_TYPE_STUB.wav",
1829
+ "aliases": [],
1830
+ "body": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
1831
+ "contentType": "audio/wav;base64;base64"
1832
+ },
1833
+ {
1834
+ "name": "MIME_TYPE_STUB.webm",
1835
+ "aliases": [],
1836
+ "body": "GkXfo0AgQoaBAUL3gQFC8oEEQvOBCEKCQAR3ZWJtQoeBAkKFgQIYU4BnQI0VSalmQCgq17FAAw9CQE2AQAZ3aGFtbXlXQUAGd2hhbW15RIlACECPQAAAAAAAFlSua0AxrkAu14EBY8WBAZyBACK1nEADdW5khkAFVl9WUDglhohAA1ZQOIOBAeBABrCBCLqBCB9DtnVAIueBAKNAHIEAAIAwAQCdASoIAAgAAUAmJaQAA3AA/vz0AAA=",
1837
+ "contentType": "video/webm;base64;base64"
1838
+ },
1839
+ {
1840
+ "name": "MIME_TYPE_STUB.webp",
1841
+ "aliases": [],
1842
+ "body": "UklGRhIAAABXRUJQVlA4TAYAAAAvQWxvAGs=",
1843
+ "contentType": "image/webp;base64;base64"
1844
+ },
1845
+ {
1846
+ "name": "MIME_TYPE_STUB.wmv",
1847
+ "aliases": [],
1848
+ "body": "MCaydY5mzxGm2QCqAGLObOUBAAAAAAAABQAAAAECodyrjEepzxGO5ADADCBTZWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcCAAAAAAAAAIA+1d6xnQEAAAAAAAAAAMAF2QEAAAAAAAAAAAAAAAAcDAAAAAAAAAIAAACADAAAgAwAAEANAwC1A79fLqnPEY7jAMAMIFNlLgAAAAAAAAAR0tOruqnPEY7mAMAMIFNlBgAAAAAAQKTQ0gfj0hGX8ACgyV6oUGQAAAAAAAAAAQAoAFcATQAvAEUAbgBjAG8AZABpAG4AZwBTAGUAdAB0AGkAbgBnAHMAAAAAABwATABhAHYAZgA1ADcALgA0ADEALgAxADAAMAAAAJEH3Le3qc8RjuYAwAwgU2WBAAAAAAAAAMDvGbxNW88RqP0AgF9cRCsAV/sgVVvPEaj9AIBfXEQrAAAAAAAAAAAzAAAAAAAAAAEAAAAAAAEAAAABAAAAAigAKAAAAAEAAAABAAAAAQAYAE1QNDMDAAAAAAAAAAAAAAAAAAAAAAAAAEBS0YYdMdARo6QAoMkDSPZMAAAAAAAAAEFS0YYdMdARo6QAoMkDSPYBAAAAAQAKAG0AcwBtAHAAZQBnADQAdgAzAAAAAAAEAE1QNDM2JrJ1jmbPEabZAKoAYs5sMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQ==",
1849
+ "contentType": "video/wmv;base64;base64"
1850
+ }
1851
+ ]
1852
+ }