UNPKG

@eyeo/snippets

Version:

eye/o snippets for Ads blocker

28 lines 40 kB
(environment, ...filters) => { /*! * This file is part of eyeo's Anti-Circumvention Snippets module (@eyeo/snippets), * Copyright (C) 2006-present eyeo GmbH * * @eyeo/snippets is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * @eyeo/snippets is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with @eyeo/snippets. If not, see <http://www.gnu.org/licenses/>. */ const e=Proxy,{apply:t,bind:r,call:n}=Function,o=n.bind(t),s=n.bind(r),i=n.bind(n),a={get:(e,t)=>s(n,e[t])},c=t=>new e(t,a),l=(t,r)=>new e(t,{apply:(e,t,n)=>o(r,t,n)}),u={get:(e,t)=>s(e[t],e)},p=t=>new e(t,u),{assign:f,defineProperties:d,freeze:h,getOwnPropertyDescriptor:g,getOwnPropertyDescriptors:w,getPrototypeOf:y}=p(Object),{hasOwnProperty:m}=c({}),{species:v}=Symbol,b={get(e,t){const r=e[t];class n extends r{}const o=w(r.prototype);delete o.constructor,h(d(n.prototype,o));const s=w(r);return delete s.length,delete s.prototype,s[v]={value:n},h(d(n,s))}},E=t=>new e(t,b),S="undefined"!=typeof environment?environment:{};"undefined"==typeof globalThis&&(window.globalThis=window);const{apply:T,ownKeys:$}=p(Reflect),x="world"in S,k=x&&"ISOLATED"===S.world,M=x&&"MAIN"===S.world,R="object"==typeof chrome&&!!chrome.runtime,j="object"==typeof browser&&!!browser.runtime,L=!M&&(k||R||j),A=e=>L?e:O(e,I(e)),{create:O,defineProperties:P,defineProperty:C,freeze:N,getOwnPropertyDescriptor:W,getOwnPropertyDescriptors:I}=p(Object),D=p(globalThis),F=L?globalThis:E(globalThis),{Map:H,RegExp:z,Set:B,WeakMap:U,WeakSet:q}=F,V=(e,t,r=null)=>{const n=$(t);for(const o of $(e)){if(n.includes(o))continue;const s=W(e,o);if(r&&"value"in s){const{value:e}=s;"function"==typeof e&&(s.value=r(e))}C(t,o,s)}},G=e=>{const t=F[e];class r extends t{}const{toString:n,valueOf:o}=t.prototype;P(r.prototype,{toString:{value:n},valueOf:{value:o}});const s=e.toLowerCase(),i=e=>function(){const t=T(e,this,arguments);return typeof t===s?new r(t):t};return V(t,r,i),V(t.prototype,r.prototype,i),r},X=N({frozen:new U,hidden:new q,iframePropertiesToAbort:{read:new B,write:new B},abortedIframes:new U}),J=new z("^[A-Z]"),_=L&&(R&&chrome||j&&browser)||void 0;var K=new Proxy(new H([["chrome",_],["browser",_],["isExtensionContext",L],["variables",X],["console",A(console)],["document",globalThis.document],["JSON",A(JSON)],["Map",H],["Math",A(Math)],["Number",L?Number:G("Number")],["RegExp",z],["Set",B],["String",L?String:G("String")],["WeakMap",U],["WeakSet",q],["MouseEvent",MouseEvent]]),{get(e,t){if(e.has(t))return e.get(t);let r=globalThis[t];return"function"==typeof r&&(r=(J.test(t)?F:D)[t]),e.set(t,r),r},has:(e,t)=>e.has(t)});const Y={WeakSet:WeakSet,WeakMap:WeakMap,WeakValue:class{has(){return!1}set(){}}},{apply:Z}=Reflect;const{Map:Q,WeakMap:ee,WeakSet:te,setTimeout:re}=K;let ne=!0,oe=e=>{e.clear(),ne=!ne};var se=function(e){const{WeakSet:t,WeakMap:r,WeakValue:n}=this||Y,o=new t,s=new r,i=new n;return function(t){if(o.has(t))return t;if(s.has(t))return s.get(t);if(i.has(t))return i.get(t);const r=Z(e,this,arguments);return o.add(r),r!==t&&("object"==typeof t&&t?s:i).set(t,r),r}}.bind({WeakMap:ee,WeakSet:te,WeakValue:class extends Q{set(e,t){return ne&&(ne=!ne,re(oe,0,this)),super.set(e,t)}}});const{concat:ie,includes:ae,join:ce,reduce:le,unshift:ue}=c([]),pe=E(globalThis),{Map:fe,WeakMap:de}=pe,he=new fe,ge=t=>{const r=(e=>{const t=[];let r=e;for(;r;){if(he.has(r))ue(t,he.get(r));else{const e=w(r);he.set(r,e),ue(t,e)}r=y(r)}return ue(t,{}),o(f,null,t)})("function"==typeof t?t.prototype:t),n={get(e,t){if(t in r){const{value:n,get:o}=r[t];if(o)return i(o,e);if("function"==typeof n)return s(n,e)}return e[t]},set(e,t,n){if(t in r){const{set:o}=r[t];if(o)return i(o,e,n),!0}return e[t]=n,!0}};return t=>new e(t,n)},{isExtensionContext:we,Array:ye,Number:me,String:ve,Object:be}=K,{isArray:Ee}=ye,{getOwnPropertyDescriptor:Se,setPrototypeOf:Te}=be,{toString:$e}=be.prototype,{slice:xe}=ve.prototype,{get:ke}=Se(Node.prototype,"nodeType"),Me=we?{}:{Attr:ge(Attr),CanvasRenderingContext2D:ge(CanvasRenderingContext2D),CSSStyleDeclaration:ge(CSSStyleDeclaration),Document:ge(Document),Element:ge(Element),HTMLCanvasElement:ge(HTMLCanvasElement),HTMLElement:ge(HTMLElement),HTMLImageElement:ge(HTMLImageElement),HTMLScriptElement:ge(HTMLScriptElement),MutationRecord:ge(MutationRecord),Node:ge(Node),ShadowRoot:ge(ShadowRoot),get CSS2Properties(){return Me.CSSStyleDeclaration}},Re=(e,t)=>{if("Element"!==t&&t in Me)return Me[t](e);if(Ee(e))return Te(e,ye.prototype);const r=(e=>i(xe,i($e,e),8,-1))(e);if(r in Me)return Me[r](e);if(r in K)return Te(e,K[r].prototype);if("nodeType"in e)switch(i(ke,e)){case 1:if(!(t in Me))throw new Error("unknown hint "+t);return Me[t](e);case 2:return Me.Attr(e);case 3:return Me.Node(e);case 9:return Me.Document(e)}throw new Error("unknown brand "+r)};var je=we?e=>e===window||e===globalThis?K:e:se(((e,t="Element")=>{if(e===window||e===globalThis)return K;switch(typeof e){case"object":return e&&Re(e,t);case"string":return new ve(e);case"number":return new me(e);default:throw new Error("unsupported value")}}));const Le={get(e,t){const r=e;for(;!m(e,t);)e=y(e);const{get:n,set:s}=g(e,t);return function(){return arguments.length?o(s,r,arguments):i(n,r)}}},Ae=t=>new e(t,Le);let{Math:Oe,setInterval:Pe,performance:Ce}=je(window);const Ne={mark(){},end(){},toString:()=>"{mark(){},end(){}}"};let We=!0;function Ie(e,t=10){if(We)return Ne;function r(){let e=je([]);for(let{name:t,duration:r}of Ce.getEntriesByType("measure"))e.push({name:t,duration:r});e.length&&Ce.clearMeasures()}return Ie[e]||(Ie[e]=Pe(r,Oe.round(6e4/Oe.min(60,t)))),{mark(){Ce.mark(e)},end(t=!1){Ce.measure(e,e);const n=Ce.getEntriesByName(e,"measure"),o=n.length>0?n[n.length-1]:null;console.log("PROFILER:",o),Ce.clearMarks(e),t&&(clearInterval(Ie[e]),delete Ie[e],r())}}}let De=!1;function Fe(){return De}const{console:He}=je(window),ze=()=>{};function Be(...e){let{mark:t,end:r}=Ie("log");if(Fe()){const t=["%c DEBUG","font-weight: bold;"],r=e.indexOf("error"),n=e.indexOf("warn"),o=e.indexOf("success"),s=e.indexOf("info");-1!==r?(t[0]+=" - ERROR",t[1]+="color: red; border:2px solid red",je(e).splice(r,1)):-1!==n?(t[0]+=" - WARNING",t[1]+="color: orange; border:2px solid orange ",je(e).splice(n,1)):-1!==o?(t[0]+=" - SUCCESS",t[1]+="color: green; border:2px solid green",je(e).splice(o,1)):-1!==s&&(t[1]+="color: black;",je(e).splice(s,1)),je(e).unshift(...t)}t(),He.log(...e),r()}function Ue(e){return s(Fe()?Be:ze,null,e)}let{Array:qe,Math:Ve,RegExp:Ge}=je(window);function Xe(e){let{length:t}=e;if(t>1&&"/"===e[0]){let r="/"===e[t-1];if(r||t>2&&je(e).endsWith("/i")){let t=[je(e).slice(1,r?-1:-2)];return r||t.push("i"),new Ge(...t)}}return new Ge(je(e).replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))}function Je(){return je(Ve.floor(2116316160*Ve.random()+60466176)).toString(36)}function _e(e){return je(qe.from(e)).map((e=>`'${e}'`)).join(" ")}let{parseFloat:Ke,variables:Ye,Array:Ze,Error:Qe,Map:et,Object:tt,ReferenceError:rt,Set:nt,WeakMap:ot}=je(window),{onerror:st}=Ae(window),it=Node.prototype,at=Element.prototype,ct=null;function lt(e,t,r,n=!0){let o=je(t),s=o.indexOf(".");if(-1==s){let o=tt.getOwnPropertyDescriptor(e,t);if(o&&!o.configurable)return;let s=tt.assign({},r,{configurable:n});if(!o&&!s.get&&s.set){let r=e[t];s.get=()=>r}return void tt.defineProperty(e,t,s)}let i=o.slice(0,s).toString();t=o.slice(s+1).toString();let a=e[i];!a||"object"!=typeof a&&"function"!=typeof a||lt(a,t,r);let c=tt.getOwnPropertyDescriptor(e,i);if(c&&!c.configurable)return;ct||(ct=new ot),ct.has(e)||ct.set(e,new et);let l=ct.get(e);if(l.has(i))return void l.get(i).set(t,r);let u=new et([[t,r]]);l.set(i,u),tt.defineProperty(e,i,{get:()=>a,set(e){if(a=e,a&&("object"==typeof a||"function"==typeof a))for(let[e,t]of u)lt(a,e,t)},configurable:n})}function ut(e){let t=st();st(((...r)=>{let n=r.length&&r[0];return!("string"!=typeof n||!je(n).includes(e))||("function"==typeof t?o(t,this,r):void 0)}))}function pt(e,t,r,n="",o=!0){let s=Ue(e);if(!r)return void s("error","no property to abort on read");let i=Je();s("info",`aborting on ${r} access`),lt(t,r,{get:function(){throw s("success",`${r} access aborted`,`\nFILTER: ${e} ${n}`),new rt(i)},set(){}},o),ut(i)}function ft(e,t,r,n="",o=!0){let s=Ue(e);if(!r)return void s("error","no property to abort on write");let i=Je();s("info",`aborting when setting ${r}`),lt(t,r,{set:function(){throw s("success",`setting ${r} aborted`,`\nFILTER: ${e} ${n}`),new rt(i)}},o),ut(i)}function dt(e,t=!1,r=!1){let n=Ye.abortedIframes,s=Ye.iframePropertiesToAbort;const a=_e(e);for(let o of Ze.from(window.frames))if(n.has(o))for(let s of e)t&&n.get(o).read.add({property:s,formattedProperties:a}),r&&n.get(o).write.add({property:s,formattedProperties:a});for(let n of e)t&&s.read.add({property:n,formattedProperties:a}),r&&s.write.add({property:n,formattedProperties:a});function c(){for(let e of Ze.from(window.frames)){n.has(e)||n.set(e,{read:new nt(s.read),write:new nt(s.write)});let t=n.get(e).read;if(t.size>0){let r=Ze.from(t);t.clear();for(let{property:t,formattedProperties:n}of r)pt("abort-on-iframe-property-read",e,t,n)}let r=n.get(e).write;if(r.size>0){let t=Ze.from(r);r.clear();for(let{property:r,formattedProperties:n}of t)ft("abort-on-iframe-property-write",e,r,n)}}}c(),n.has(document)||(n.set(document,!0),function(e){let t;function r(e,t){for(let r of t){lt(e,r,n(e,r))}}function n(t,r){let n=t[r];return{get:()=>function(...t){let r;return r=o(n,this,t),e&&e(),r}}}function s(t,r){let n=tt.getOwnPropertyDescriptor(t,r),{set:o}=n||{};return{set(t){let r;return r=i(o,this,t),e&&e(),r}}}r(it,["appendChild","insertBefore","replaceChild"]),r(at,["append","prepend","replaceWith","after","before","insertAdjacentElement","insertAdjacentHTML"]),t=s(at,"innerHTML"),lt(at,"innerHTML",t),t=s(at,"outerHTML"),lt(at,"outerHTML",t)}(c))}let{Object:ht}=window;function gt(e,t){if(!(e instanceof ht))return;let r=e,n=je(t).split(".");if(0===n.length)return;for(let e=0;e<n.length-1;e++){let t=n[e];if(!m(r,t))return;if(r=r[t],!(r instanceof ht))return}let o=n[n.length-1];return m(r,o)?[r,o]:void 0}const wt=je(/^\d+$/);function yt(e){switch(e){case"false":return!1;case"true":return!0;case"null":return null;case"noopFunc":return()=>{};case"trueFunc":return()=>!0;case"falseFunc":return()=>!1;case"emptyArray":return[];case"emptyObj":return{};case"undefined":return;case"":return e;default:if(wt.test(e))return Ke(e);throw new Qe(`[override-property-read snippet]: Value "${e}" is not valid.`)}}let{HTMLScriptElement:mt,Object:vt,ReferenceError:bt}=je(window),Et=vt.getPrototypeOf(mt);const{Error:St,Object:Tt,Array:$t,Map:xt}=je(window);let kt=null;function Mt(e,t,r){let n=e;for(const e of r){if(!n||!m(n,e))return!1;n=n[e]}if("string"==typeof n||"number"==typeof n){const e=n.toString();return t.test(e)}return!1}const{Array:Rt,Blob:jt,Error:Lt,Object:At,Reflect:Ot}=je(window),Pt=[];let{Error:Ct,URL:Nt}=je(window),{cookie:Wt}=Ae(document);const{Map:It,Object:Dt,Reflect:Ft,WeakMap:Ht}=je(window),zt=window.EventTarget.prototype.addEventListener,Bt=window.EventTarget.prototype.removeEventListener,Ut=new Ht;let qt=[];let{console:Vt,document:Gt,getComputedStyle:Xt,isExtensionContext:Jt,variables:_t,Array:Kt,MutationObserver:Yt,Object:Zt,XPathEvaluator:Qt,XPathExpression:er,XPathResult:tr}=je(window);const{querySelectorAll:rr}=Gt,nr=rr&&s(rr,Gt);function or(e,t=!1){return ar(e,nr.bind(Gt),Gt,t)}function sr(e,t,r,n){const o=t.getAttribute("xlink:href")||t.getAttribute("href");if(o){const i=nr(o)[0];if(!i&&Fe())return Vt.log("No elements found matching",o),!1;if(!(s=e)||0===s.length||s.every((e=>""===e.trim()))){const e=n.length>0?n:[];return r.push({element:i,rootParents:[...e,t]}),!1}const a=i.querySelectorAll.bind(i);return{nextBoundElement:i,nestedSelectorsString:e.join("^^"),next$$:a}}var s}function ir(e,t){const r=function(e,t=!1){try{const r=navigator.userAgent.includes("Firefox")?e.openOrClosedShadowRoot:browser.dom.openOrClosedShadowRoot(e);return null===r&&Fe()&&!t&&Vt.log("Shadow root not found or not added in element yet",e),r}catch(r){return Fe()&&!t&&Vt.log("Error while accessing shadow root",e,r),null}}(t);if(r){const{querySelectorAll:n}=r,o=n&&s(n,r).bind(r);return{nextBoundElement:t,nestedSelectorsString:":host "+e.join("^^"),next$$:o}}return!1}function ar(e,t,r,n,o=[]){if(e.includes("^^")){const[s,i,...a]=e.split("^^");let c,l;switch(i){case"svg":l=sr;break;case"sh":l=ir;break;default:return Fe()&&Vt.log(i," is not supported. Supported commands are: \n^^sh^^\n^^svg^^"),[]}c=""===s.trim()?[r]:t(s);const u=[];for(const e of c){const t=l(a,e,u,o);if(!t)continue;const{next$$:r,nestedSelectorsString:s,nextBoundElement:i}=t,c=ar(s,r,i,n,[...o,e]);c&&u.push(...c)}return u}const s=t(e);return n?[...s].map((e=>({element:e,rootParents:o.length>0?o:[]}))):s}const{assign:cr,setPrototypeOf:lr}=Zt;class ur extends er{evaluate(...e){return lr(o(super.evaluate,this,e),tr.prototype)}}class pr extends Qt{createExpression(...e){return lr(o(super.createExpression,this,e),ur.prototype)}}function fr(e){if(_t.hidden.has(e))return!1;!function(e){Jt&&"function"==typeof checkElement&&checkElement(e)}(e),_t.hidden.add(e);let{style:t}=je(e),r=je(t,"CSSStyleDeclaration"),n=je([]),{debugCSSProperties:o}=S;for(let[e,t]of o||[["display","none"]])r.setProperty(e,t,"important"),n.push([e,r.getPropertyValue(e)]);return new Yt((()=>{for(let[e,t]of n){let n=r.getPropertyValue(e),o=r.getPropertyPriority(e);n==t&&"important"==o||r.setProperty(e,t,"important")}})).observe(e,{attributes:!0,attributeFilter:["style"]}),!0}function dr(e){let t=e;if(t.startsWith("xpath(")&&t.endsWith(")")){let t=function(e){let t=e;if(t.startsWith("xpath(")&&t.endsWith(")")){let e=t.slice(6,-1),r=(new pr).createExpression(e,null),n=tr.ORDERED_NODE_SNAPSHOT_TYPE;return e=>{if(!e)return;let t=r.evaluate(Gt,n,null),{snapshotLength:o}=t;for(let r=0;r<o;r++)e(t.snapshotItem(r))}}return t=>or(e).forEach(t)}(e);return()=>{let e=je([]);return t((t=>e.push(t))),e}}return()=>Kt.from(or(e))}let{ELEMENT_NODE:hr,TEXT_NODE:gr,prototype:wr}=Node,{prototype:yr}=Element,{prototype:mr}=HTMLElement,{console:vr,variables:br,DOMParser:Er,Error:Sr,MutationObserver:Tr,Object:$r,ReferenceError:xr}=je(window),{getOwnPropertyDescriptor:kr}=$r;const{CanvasRenderingContext2D:Mr,document:Rr,Map:jr,MutationObserver:Lr,Object:Ar,Set:Or,WeakSet:Pr}=je(window);let Cr,Nr=new Or,Wr=new Pr;function Ir(e,t,r,n){Nr.add({canvasElement:e,rule:t,functionName:r,text:n})}je(window);const{Map:Dr,MutationObserver:Fr,Object:Hr,Set:zr,WeakSet:Br}=je(window);let Ur=Element.prototype,{attachShadow:qr}=Ur,Vr=new Br,Gr=new Dr,Xr=null;const{Array:Jr,Error:_r,JSON:Kr,Map:Yr,Object:Zr,Response:Qr}=je(window);let en=null;let{Array:tn,Error:rn,JSON:nn,Map:on,Object:sn,Response:an,URL:cn}=je(window),ln=null;let{Error:un}=je(window);let{Error:pn,Map:fn,Object:dn,console:hn}=je(window),{toString:gn}=Function.prototype,wn=EventTarget.prototype,{addEventListener:yn}=wn,mn=null;let{fetch:vn}=je(window),bn=!1;const En=[],Sn=[],Tn=()=>{bn||(window.fetch=l(vn,((...e)=>{let[t]=e;if(En.length>0&&"string"==typeof t){let r;try{r=new URL(t)}catch(e){if(!(e instanceof TypeError))throw e;r=new URL(t,je(document).location)}En.forEach((e=>e(r))),e[0]=r.href}return o(vn,self,e).then((e=>{let t=e;return Sn.forEach((e=>{t=e(t)})),t}))})),bn=!0)};let $n,{Map:xn,Object:kn,RegExp:Mn,Response:Rn}=je(window);let jn,Ln,{RegExp:An,XMLHttpRequest:On,WeakMap:Pn}=je(window);let Cn,{delete:Nn,has:Wn}=c(URLSearchParams.prototype);const In={"abort-current-inline-script":function(e,t=null){const r=_e(arguments),n=Ue("abort-current-inline-script"),{mark:o,end:s}=Ie("abort-current-inline-script"),a=t?Xe(t):null,c=Je(),l=je(document).currentScript;let u=window;const p=je(e).split("."),f=je(p).pop();for(let e of je(p))if(u=u[e],!u||"object"!=typeof u&&"function"!=typeof u)return void n("warn",p," is not found");const{get:d,set:h}=vt.getOwnPropertyDescriptor(u,f)||{};let g=u[f];void 0===g&&n("warn","The property",f,"doesn't exist yet. Check typos.");const w=()=>{const e=je(document).currentScript;if(e instanceof Et&&""==je(e,"HTMLScriptElement").src&&e!=l&&(!a||a.test(je(e).textContent)))throw n("success",p," is aborted \n",e,"\nFILTER: abort-current-inline-script",r),new bt(c)},y={get(){return w(),d?i(d,this):g},set(e){w(),h?i(h,this,e):g=e}};o(),lt(u,f,y),s(),ut(c)},"abort-on-iframe-property-read":function(...e){const{mark:t,end:r}=Ie("abort-on-iframe-property-read");t(),dt(e,!0,!1),r()},"abort-on-iframe-property-write":function(...e){const{mark:t,end:r}=Ie("abort-on-iframe-property-write");t(),dt(e,!1,!0),r()},"abort-on-property-read":function(e,t){const r=!("false"===t),n=_e(arguments),{mark:o,end:s}=Ie("abort-on-property-read");o(),pt("abort-on-property-read",window,e,n,r),s()},"abort-on-property-write":function(e,t){const r=_e(arguments),{mark:n,end:o}=Ie("abort-on-property-write"),s=!("false"===t);n(),ft("abort-on-property-write",window,e,r,s),o()},"array-override":function(e,t,r="false",n){if(!e)throw new St("[array-override snippet]: Missing method to override.");if(!t)throw new St("[array-override snippet]: Missing needle.");kt||(kt=new xt);let s=Ue("array-override");const{mark:i,end:a}=Ie("array-override"),c=_e(arguments);if("push"!==e||kt.has("push"))if("includes"!==e||kt.has("includes")){if("forEach"===e&&!kt.has("forEach")){i();const{forEach:e}=$t.prototype;kt.set("forEach",je([])),Tt.defineProperty(window.Array.prototype,"forEach",{value:l(e,(function(t,r){const n=kt.get("forEach");return o(e,this,[function(e,i,a){for(const{needleRegex:t,pathSegments:r}of n)if(r.length||"string"!=typeof e&&"number"!=typeof e){if(r.length&&"object"==typeof e&&null!==e&&Mt(e,t,r))return void s("success",`Array.forEach skipped callback for object containing needle: ${t}\nFILTER: array-override ${c}`)}else{const r=e.toString();if(r.match&&r.match(t))return void s("success",`Array.forEach skipped callback for item matching needle: ${t}\nFILTER: array-override ${c}`)}return o(t,r||this,[e,i,a])},r])}))}),s("info","Wrapped Array.prototype.forEach"),a()}}else{i();const{includes:e}=$t.prototype;kt.set("includes",je([])),Tt.defineProperty(window.Array.prototype,"includes",{value:l(e,(function(t){const r=kt.get("includes");for(const{needleRegex:e,retVal:n,pathSegments:o}of r)if(o.length||"string"!=typeof t&&"number"!=typeof t){if(o.length&&"object"==typeof t&&null!==t&&Mt(t,e,o))return s("success",`Array.includes returned ${n} for object containing ${e}\nFILTER: array-override ${c}`),n}else if(t.toString().match&&t.toString().match(e))return s("success",`Array.includes returned ${n} for ${e}\nFILTER: array-override ${c}`),n;return o(e,this,arguments)}))}),s("info","Wrapped Array.prototype.includes"),a()}else{i();const{push:e}=$t.prototype;kt.set("push",je([])),Tt.defineProperty(window.Array.prototype,"push",{value:l(e,(function(t){const r=kt.get("push");for(const{needleRegex:e,pathSegments:n}of r)if(n.length||"string"!=typeof t&&"number"!=typeof t){if(n.length&&"object"==typeof t&&null!==t&&Mt(t,e,n))return void s("success",`Array.push is ignored for object containing needle: ${e}\nFILTER: array-override ${c}`)}else{const r=t.toString();if(r.match&&r.match(e))return void s("success",`Array.push is ignored for needle: ${e}\nFILTER: array-override ${c}`)}return o(e,this,arguments)}))}),s("info","Wrapped Array.prototype.push"),a()}const u=Xe(t);let p=[];n&&(p=n.split("."));const f=kt.get(e),d="true"===r;f.push({needleRegex:u,retVal:d,pathSegments:p}),kt.set(e,f)},"blob-override":function(e,t="",r=null){if(!e)throw new Lt("[blob-override snippet]: Missing parameter search.");const n=Ue("blob-override"),o=_e(arguments),{mark:s,end:i}=Ie("blob-override");if(s(),Pt.push({match:Xe(e),replaceWith:t,needle:r?Xe(r):null,formattedArgs:o}),Pt.length>1)return;const a=jt;function c(e,t={}){Rt.isArray(e)&&(e=je(e).map((e=>{if("string"!=typeof e)return e;let t=je(e);for(const e of je(Pt))e.needle&&!e.needle.test(t)||!e.match.test(t)||(t=t.replace(e.match,e.replaceWith),n("success",`Replaced: ${e.match}${e.replaceWith},\nFILTER: blob-override ${e.formattedArgs}`));return t})));const r=Ot.construct(a,[e,t]);return At.setPrototypeOf(r,c.prototype),r}c.prototype=a.prototype,At.setPrototypeOf(c,a),window.Blob=c,n("info","Wrapped Blob constructor in context "),i()},"cookie-remover":function(e,t=!1){if(!e)throw new Ct("[cookie-remover snippet]: No cookie to remove.");const r=_e(arguments);let n=Ue("cookie-remover");const{mark:o,end:s}=Ie("cookie-remover");let i=Xe(e);if(!je(/^http|^about/).test(location.protocol))return void n("warn","Snippet only works for http or https and about.");function a(){return je(Wt()).split(";").filter((e=>i.test(je(e).split("=")[0])))}const c=()=>{n("info","Parsing cookies for matches"),o();for(const e of je(a())){let t=je(location.hostname);!t&&je(location.ancestorOrigins)&&je(location.ancestorOrigins[0])&&(t=new Nt(je(location.ancestorOrigins[0])).hostname);const o=je(e).split("=")[0],s="expires=Thu, 01 Jan 1970 00:00:00 GMT",i="path=/",a=t.split(".");for(let e=a.length;e>0;e--){const t=a.slice(a.length-e).join(".");Wt(`${je(o).trim()}=;${s};${i};domain=${t}`),Wt(`${je(o).trim()}=;${s};${i};domain=.${t}`),n("success",`Set expiration date on ${o}`,"\nFILTER: cookie-remover",r)}}s()};if(c(),t){let e=a();setInterval((()=>{let t=a();if(t!==e)try{c()}finally{e=t}}),1e3)}},profile:function(){We=!1},debug:function(){De=!0},"event-override":function(e,t,r=null){const n=_e(arguments),s={eventType:e,mode:t,needle:r?Xe(r):null,formattedArgs:n};if(qt.includes(s)||qt.push(s),qt.length>1)return;let a=Ue("[event-override]");const{mark:c,end:u}=Ie("event-override"),p=Dt.getOwnPropertyDescriptor(window.EventTarget.prototype,"addEventListener");p.configurable&&Dt.defineProperty(window.EventTarget.prototype,"addEventListener",{...p,value:l(zt,(function(e,t,r){c();const n=qt.filter((t=>t.eventType===e));if(!n.length||e!==n[0].eventType)return u(),o(zt,this,arguments);const s=n.find((e=>"disable"===e.mode&&(!e.needle||e.needle.test(t.toString()))));if(s)return a("success",`Disabling ${s.eventType} event, \nFILTER: event-override ${s.formattedArgs}`),void u();const l=n.filter((e=>"trusted"===e.mode&&(!e.needle||e.needle.test(t.toString()))));if("function"!=typeof t&&(!t||"function"!=typeof t.handleEvent)||!l.length||e!==l[0].eventType)return u(),o(zt,this,arguments);const p=function(e){const r=new Proxy(e,{get(t,r){if("isTrusted"===r)return a("success",`Providing trusted value for ${e.type} event`),!0;const n=Ft.get(t,r);return"function"==typeof n?function(...e){return o(n,t,e)}:n}});return"function"==typeof t?i(t,this,r):i(t.handleEvent,t,r)};return p.originalListener=t,Ut.has(t)||Ut.set(t,new It),Ut.get(t).set(e,p),a("info",`\nWrapping event listener for ${e}`),u(),o(zt,this,[e,p,r])}))});const f=Dt.getOwnPropertyDescriptor(window.EventTarget.prototype,"removeEventListener");f.configurable&&Dt.defineProperty(window.EventTarget.prototype,"removeEventListener",{...f,value:l(Bt,(function(e,t,r){if(t&&Ut.has(t)&&Ut.get(t).has(e)){const n=Ut.get(t).get(e);return Ut.get(t).delete(e),o(Bt,this,[e,n,r])}return o(Bt,this,arguments)}))}),a("info","Initialized event-override snippet")},"freeze-element":function(e,t="",...r){let n,s,a=!1,c=!1,l=je(r).filter((e=>!h(e))),u=je(r).filter((e=>h(e))).map(Xe),p=Je(),f=dr(e);!function(){let r=je(t).split("+");1===r.length&&""===r[0]&&(r=[]);for(let t of r)switch(t){case"subtree":a=!0;break;case"abort":c=!0;break;default:throw new Sr("[freeze] Unknown option passed to the snippet. [selector]: "+e+" [option]: "+t)}}();let d={selector:e,shouldAbort:c,rid:p,exceptionSelectors:l,regexExceptions:u,changeId:0};function h(e){return e.length>=2&&"/"==e[0]&&"/"==e[e.length-1]}function g(){s=f(),w(s,!1)}function w(e,t=!0){for(let r of e)br.frozen.has(r)||(br.frozen.set(r,d),!t&&a&&new Tr((e=>{for(let t of je(e))w(je(t,"MutationRecord").addedNodes)})).observe(r,{childList:!0,subtree:!0}),a&&je(r).nodeType===hr&&w(je(r).childNodes))}function y(e,...t){Be(`[freeze][${e}] `,...t)}function m(e,t,r,n){let o=n.selector,s=n.changeId,i="string"==typeof e,a=n.shouldAbort?"aborting":"watching";switch(vr.groupCollapsed(`[freeze][${s}] ${a}: ${o}`),r){case"appendChild":case"append":case"prepend":case"insertBefore":case"replaceChild":case"insertAdjacentElement":case"insertAdjacentHTML":case"insertAdjacentText":case"innerHTML":case"outerHTML":y(s,i?"text: ":"node: ",e),y(s,"added to node: ",t);break;case"replaceWith":case"after":case"before":y(s,i?"text: ":"node: ",e),y(s,"added to node: ",je(t).parentNode);break;case"textContent":case"innerText":case"nodeValue":y(s,"content of node: ",t),y(s,"changed to: ",e)}y(s,`using the function "${r}"`),vr.groupEnd(),n.changeId++}function v(e,t){if(t)for(let r of t)if(r.test(e))return!0;return!1}function b(e){throw new xr(e)}function E(e,t,r,n){let o=new Er,{body:s}=je(o.parseFromString(e,"text/html")),i=S(je(s).childNodes,t,r,n);return je(i).map((e=>{switch(je(e).nodeType){case hr:return je(e).outerHTML;case gr:return je(e).textContent;default:return""}})).join("")}function S(e,t,r,n){let o=je([]);for(let s of e)T(s,t,r,n)&&o.push(s);return o}function T(e,t,r,n){let o=n.shouldAbort,s=n.regexExceptions,i=n.exceptionSelectors,a=n.rid;if("string"==typeof e){let i=e;return!!v(i,s)||(Fe()&&m(i,t,r,n),o&&b(a),Fe())}let c=e;switch(je(c).nodeType){case hr:return!!function(e,t){if(t){let r=je(e);for(let e of t)if(r.matches(e))return!0}return!1}(c,i)||(o&&(Fe()&&m(c,t,r,n),b(a)),!!Fe()&&(fr(c),m(c,t,r,n),!0));case gr:return!!v(je(c).textContent,s)||(Fe()&&m(c,t,r,n),o&&b(a),!1);default:return!0}}function $(e,t,r,n){let s=kr(e,t)||{},a=s.get&&i(s.get,e)||s.value;if(a)return{get:()=>function(...e){if(r(this)){let r=n(this);if(r){let n=e[0];if(!T(n,this,t,r))return n}}return o(a,this,e)}}}function x(e,t,r,n){let s=kr(e,t)||{},a=s.get&&i(s.get,e)||s.value;if(a)return{get:()=>function(...e){if(!r(this))return o(a,this,e);let s=n(this);if(!s)return o(a,this,e);let i=S(e,this,t,s);return i.length>0?o(a,this,i):void 0}}}function k(e,t,r,n){let s=kr(e,t)||{},a=s.get&&i(s.get,e)||s.value;if(a)return{get:()=>function(...e){let[s,c]=e,l="afterbegin"===s||"beforeend"===s;if(r(this,l)){let e=n(this,l);if(e){let r,n=l?this:je(this).parentNode;switch(t){case"insertAdjacentElement":if(!T(c,n,t,e))return c;break;case"insertAdjacentHTML":return r=E(c,n,t,e),r?i(a,this,s,r):void 0;case"insertAdjacentText":if(!T(c,n,t,e))return}}}return o(a,this,e)}}}function M(e,t,r,n){let o=kr(e,t)||{},{set:s}=o;if(s)return{set(e){if(!r(this))return i(s,this,e);let o=n(this);if(!o)return i(s,this,e);let a=E(e,this,t,o);return a?i(s,this,a):void 0}}}function R(e,t,r,n){let o=kr(e,t)||{},{set:s}=o;if(s)return{set(e){if(!r(this))return i(s,this,e);let o=n(this);return o?T(e,this,t,o)?i(s,this,e):void 0:i(s,this,e)}}}br.frozen.has(document)||(br.frozen.set(document,!0),function(){let e;function t(e){return e&&br.frozen.has(e)}function r(e){try{return e&&(br.frozen.has(e)||br.frozen.has(je(e).parentNode))}catch(e){return!1}}function n(e,t){try{return e&&(br.frozen.has(e)&&t||br.frozen.has(je(e).parentNode)&&!t)}catch(e){return!1}}function o(e){return br.frozen.get(e)}function s(e){try{if(br.frozen.has(e))return br.frozen.get(e);let t=je(e).parentNode;return br.frozen.get(t)}catch(e){}}function i(e,t){try{if(br.frozen.has(e)&&t)return br.frozen.get(e);let r=je(e).parentNode;return br.frozen.get(r)}catch(e){}}e=$(wr,"appendChild",t,o),lt(wr,"appendChild",e),e=$(wr,"insertBefore",t,o),lt(wr,"insertBefore",e),e=$(wr,"replaceChild",t,o),lt(wr,"replaceChild",e),e=x(yr,"append",t,o),lt(yr,"append",e),e=x(yr,"prepend",t,o),lt(yr,"prepend",e),e=x(yr,"replaceWith",r,s),lt(yr,"replaceWith",e),e=x(yr,"after",r,s),lt(yr,"after",e),e=x(yr,"before",r,s),lt(yr,"before",e),e=k(yr,"insertAdjacentElement",n,i),lt(yr,"insertAdjacentElement",e),e=k(yr,"insertAdjacentHTML",n,i),lt(yr,"insertAdjacentHTML",e),e=k(yr,"insertAdjacentText",n,i),lt(yr,"insertAdjacentText",e),e=M(yr,"innerHTML",t,o),lt(yr,"innerHTML",e),e=M(yr,"outerHTML",r,s),lt(yr,"outerHTML",e),e=R(wr,"textContent",t,o),lt(wr,"textContent",e),e=R(mr,"innerText",t,o),lt(mr,"innerText",e),e=R(wr,"nodeValue",t,o),lt(wr,"nodeValue",e)}()),n=new Tr(g),n.observe(document,{childList:!0,subtree:!0}),g()},"hide-if-canvas-contains":function(e,t="canvas"){const r=Ue("hide-if-canvas-contains"),n=_e(arguments),{mark:s,end:i}=Ie("hide-if-canvas-contains");if(!e)return void r("error","The parameter 'search' is required");if(!Cr){s();const c=Mr.prototype;function u(e){const t=c[e];Ar.defineProperty(window.CanvasRenderingContext2D.prototype,e,{value:l(t,(function(n,...s){for(const[t,o]of Cr)if(t.test(n)){const t=this.canvas;let s=je(t).closest(o.selector);s&&!Wr.has(s)?(fr(s),Wr.add(s),r("success","Matched: ",s,`\nFILTER: hide-if-canvas-contains ${o.formattedArguments}`)):Ir(t,o,e,n)}return o(t,this,[n,...s])}))})}r("info","CanvasRenderingContext2D proxied"),u("fillText"),u("strokeText"),Cr=new jr;new Lr((e=>{for(let t of je(e))"childList"===t.type&&Nr.forEach((({canvasElement:e,rule:t,functionName:r,text:n})=>{let o=je(e).closest(t.selector);o&&!Wr.has(o)&&(fr(o),Wr.add(o),Nr.delete({canvasElement:e,rule:t,functionName:r,text:n}),Ue("hide-if-canvas-contains")("success","Matched: ",o,`\nFILTER: hide-if-canvas-contains ${t.formattedArguments}`))}))})).observe(Rr,{childList:!0,subtree:!0}),i()}const a=Xe(e);Cr.set(a,{selector:t,formattedArguments:n})},"hide-if-shadow-contains":function(e,t="*"){const r=_e(arguments);let n=`${e}\\${t}`;Gr.has(n)||Gr.set(n,[Xe(e),t,ze],r);const s=Ue("hide-if-shadow-contains"),{mark:i,end:a}=Ie("hide-if-shadow-contains");Xr||(Xr=new Fr((e=>{i();let t=new zr;for(let{target:n}of je(e)){let e=je(n).parentNode;for(;e;)[n,e]=[e,je(n).parentNode];if(!Vr.has(n)&&!t.has(n)){t.add(n);for(let[e,t,o]of Gr.values())if(e.test(je(n).textContent)){let e=je(n.host).closest(t);e&&(o(),je(n).appendChild(document.createElement("style")).textContent=":host {display: none !important}",fr(e),Vr.add(n),s("success","Hiding: ",e,`\nFILTER: hide-if-shadow-contains ${r}`)),a()}}}})),Hr.defineProperty(Ur,"attachShadow",{value:l(qr,(function(){let e=o(qr,this,arguments);return s("info","attachShadow is called for: ",e),Xr.observe(e,{childList:!0,characterData:!0,subtree:!0}),e}))}))},"json-override":function(e,t,r="",n=""){if(!e)throw new _r("[json-override snippet]: Missing paths to override.");if(void 0===t)throw new _r("[json-override snippet]: No value to override with.");if(!en){let i=Ue("json-override");const{mark:a,end:c}=Ie("json-override");function u(e,t){for(let{formattedArgs:r,prune:n,needle:o,filter:s,value:i}of en.values())if(!s||s.test(t)){if(je(o).some((t=>!gt(e,t))))return e;for(let t of n)t.includes("{}")||t.includes("[]")?p(e,t,i,r):f(e,t,i,r)}return e}function p(e,t,r,n){let o=je(t).split("."),s=e;for(let e=0;e<o.length;e++){let a=o[e];if("[]"===a)return void(Jr.isArray(s)&&(i("info",`Iterating over array at: ${a}`),je(s).forEach((t=>{null!=t&&p(t,o.slice(e+1).join("."),r,n)}))));if("{}"===a)return void(s&&"object"==typeof s&&(i("info",`Iterating over object at: ${a}`),Zr.keys(s).forEach((t=>{let i=s[t];null!=i&&p(i,o.slice(e+1).join("."),r,n)}))));if(!s||"object"!=typeof s||!m(s,a))return;e===o.length-1?(i("success",`Found ${t}, replaced it with ${r}`,`\nFILTER: json-override ${n}`),s[a]=yt(r)):s=s[a]}}function f(e,t,r,n){let o=gt(e,t);void 0!==o&&(i("success",`Found ${t}, replaced it with ${r}`,`\nFILTER: json-override ${n}`),o[0][o[1]]=yt(r))}a();let{parse:d}=Kr;en=new Yr,Zr.defineProperty(window.JSON,"parse",{value:l(d,(function(e){return u(o(d,this,arguments),e)}))}),i("info","Wrapped JSON.parse for override");let{json:h}=Qr.prototype;Zr.defineProperty(window.Response.prototype,"json",{value:l(h,(function(e){return o(h,this,arguments).then((t=>u(t,e)))}))}),i("info","Wrapped Response.json for override"),c()}const s=_e(arguments);en.set(e,{formattedArgs:s,prune:je(e).split(/ +/),needle:r.length?je(r).split(/ +/):[],filter:n?Xe(n):null,value:t})},"json-prune":function(e,t="",r=""){if(!e)throw new rn("Missing paths to prune");if(!ln){let s=Ue("json-prune");const{mark:i,end:a}=Ie("json-prune");function c(e){for(let{prune:t,needle:r,stackNeedle:n,formattedArgs:o}of ln.values()){if(je(r).length>0&&je(r).some((t=>!gt(e,t))))return e;if(je(n)&&je(n).length>0&&!f(n))return e;for(let r of t)r.includes("{}")||r.includes("[]")?u(e,r,o):p(e,r,o)}return e}function u(e,t,r){let n=je(t).split("."),o=e;for(let e=0;e<n.length;e++){let i=n[e];if("[]"===i)return void(tn.isArray(o)&&(s("info",`Iterating over array at: ${i}`),je(o).forEach((t=>u(t,n.slice(e+1).join("."),r)))));if("{}"===i)return void("object"==typeof o&&null!==o&&(s("info",`Iterating over object at: ${i}`),sn.keys(o).forEach((t=>u(o[t],n.slice(e+1).join("."),r)))));if(!o||"object"!=typeof o||!m(o,i))return;e===n.length-1?(s("success",`Found ${t} and deleted, \nFILTER: json-prune ${r}`),delete o[i]):o=o[i]}}function p(e,t,r){let n=gt(e,t);void 0!==n&&(s("success",`Found ${t} and deleted`,`\nFILTER: json-prune ${r}`),delete n[0][n[1]])}function f(e){if(!e)return!1;const t=Je(),r=new rn(t),n=new cn(self.location.href);n.hash="";const o=/(.*?@)?(\S+)(:\d+):\d+\)?$/,i=[];for(let e of r.stack.split(/[\n\r]+/)){if(je(e).includes(t))continue;e=je(e).trim();const r=je(o).exec(e);if(null===r)continue;let s=r[2];je(s).startsWith("(")&&(s=je(s).slice(1)),s===n.href?s="inlineScript":je(s).startsWith("<anonymous>")&&(s="injectedScript");let a=r[1]?je(r[1]).slice(0,-1):je(e).slice(0,je(r).index).trim();je(a).startsWith("at")&&(a=je(a).slice(2).trim());let c=r[3];je(i).push(" "+`${a} ${s}${c}:1`.trim())}i[0]="stackDepth:"+(i.length-1);const a=je(i).join("\n");for(let t of e){if(Xe(t).test(a))return s("info",`Found needle in stack trace: ${t}`),!0;s("info",`Needle ${t} not found in stack trace: ${a}`)}}i();let{parse:d}=nn;ln=new on,sn.defineProperty(window.JSON,"parse",{value:l(d,(function(){return c(o(d,this,arguments))}))}),s("info","Wrapped JSON.parse for prune");let{json:h}=an.prototype;sn.defineProperty(window.Response.prototype,"json",{value:l(h,(function(){return o(h,this,arguments).then((e=>c(e)))}))}),s("info","Wrapped Response.json for prune"),a()}const n=_e(arguments);ln.set(e,{formattedArgs:n,prune:je(e).split(/ +/),needle:t.length?je(t).split(/ +/):[],stackNeedle:r.length?je(r).split(/ +/):[]})},"override-property-read":function(e,t,r){if(!e)throw new un("[override-property-read snippet]: No property to override.");if(void 0===t)throw new un("[override-property-read snippet]: No value to override with.");const n=_e(arguments);let o=Ue("override-property-read");const{mark:s,end:i}=Ie("override-property-read");let a=yt(t);o("info",`Overriding ${e}.`);const c=!("false"===r);s(),lt(window,e,{get:()=>(o("success",`${e} override done.`,"\nFILTER: override-property-read",n),a),set(){}},c),i()},"prevent-listener":function(e,t,r){if(!e)throw new pn("[prevent-listener snippet]: No event type.");if(!mn){mn=new fn;let e=Ue("[prevent]");const{mark:t,end:r}=Ie("prevent-listener");dn.defineProperty(wn,"addEventListener",{value:l(yn,(function(n,s){t();for(let{evt:t,handlers:r,selectors:o}of mn.values()){if(!t.test(n))continue;let a=this instanceof Element;for(let l=0;l<r.length;l++){const u=r[l],p=o[l];if(!p||a&&je(this).matches(p)){if(u){const t=function(){try{const e=String("function"==typeof s?s:s.handleEvent);return u.test(e)}catch(t){return e("error","Error while trying to stringify listener: ",t),!1}};if(!function(){try{const e=i(gn,"function"==typeof s?s:s.handleEvent);return u.test(e)}catch(t){return e("error","Error while trying to stringify listener: ",t),!1}}()&&!t())continue}return void(Fe()&&(hn.groupCollapsed("DEBUG [prevent] was successful",`\nFILTER: prevent-listener ${c}`),e("success",`type: ${n} matching ${t}`),e("success","handler:",s),u&&e("success",`matching ${u}`),p&&e("success","on element: ",this,` matching ${p}`),e("success","was prevented from being added"),hn.groupEnd()))}}}return r(),o(yn,this,arguments)}))}),e("info","Wrapped addEventListener")}const n=_e(arguments);mn.has(e)||mn.set(e,{evt:Xe(e),handlers:[],selectors:[],formattedArgs:n});let{handlers:s,selectors:a,formattedArgs:c}=mn.get(e);s.push(t?Xe(t):null),a.push(r)},"replace-fetch-response":function(e,t="",r=null){const n=_e(arguments),o=Ue("replace-fetch-response"),{mark:s,end:i}=Ie("replace-fetch-response");if(!e)return void o("error","The parameter 'search' is required");if(!$n){const e=e=>{s();return je(e).clone().text().then((t=>{let r=je(t);for(const[e,{replacement:n,needle:s,formattedArgs:i}]of $n){if(s){if(!Xe(s).test(r)){Fe()&&(console.groupCollapsed(`DEBUG [replace-fetch-response] warn: '${s}' not found in fetch response`),o("warn",`${r}`),console.groupEnd());continue}Fe()&&(console.groupCollapsed(`DEBUG [replace-fetch-response] success: '${s}' found in fetch response`),o("info",`${r}`),console.groupEnd())}r=r.replace(e,n),Fe()&&r.toString()!==t.toString()&&(console.groupCollapsed(`DEBUG [replace-fetch-response] success: '${e}' replaced with '${n}' in fetch response`,`\nFILTER: replace-fetch-response ${i}`),o("success",`${r}`),console.groupEnd())}if(r.toString()===t.toString())return e;const n=new Rn(r.toString(),{status:e.status,statusText:e.statusText,headers:e.headers});return kn.defineProperties(n,{ok:{value:e.ok},redirected:{value:e.redirected},type:{value:e.type},url:{value:e.url}}),i(),n}))};$n=new xn,o("info","Network API proxied"),a=e,Sn.push(a),Tn()}var a;const c=Xe(e),l=new Mn(c,"g");$n.set(l,{replacement:t,needle:r,formattedArgs:n})},"replace-xhr-response":function(e,t="",r=null){const n=_e(arguments),o=Ue("replace-xhr-response"),{mark:s,end:i}=Ie("replace-xhr-response");if(!e)return void o("error","The parameter 'pattern' is required");jn||(jn=new Pn,Ln=new Map,o("info","XMLHttpRequest proxied"),window.XMLHttpRequest=class extends On{open(e,t,...r){const n={method:e,url:t};return jn.set(this,n),super.open(e,t,...r)}send(...e){return super.send(...e)}get response(){const e=super.response,t=jn.get(this);if(void 0===t)return e;s();const r="string"==typeof e?e.length:void 0;if(t.lastResponseLength!==r&&(t.response=void 0,t.lastResponseLength=r),void 0!==t.response)return t.response;if("string"!=typeof e)return t.response=e;let n=e;for(const[t,{replacement:r,needle:s,formattedArgs:i}]of Ln){if(s){if(!Xe(s).test(n)){Fe()&&(console.groupCollapsed(`DEBUG [replace-xhr-response] warn: '${s}' not found in XHR response`),o("warn",n),console.groupEnd());continue}Fe()&&(console.groupCollapsed(`DEBUG [replace-xhr-response] success: '${s}' found in XHR response`),o("info",n),console.groupEnd())}n=je(n).replace(t,r).toString(),Fe()&&e.toString()!==n.toString()&&(console.groupCollapsed(`DEBUG [replace-xhr-response] success: '${t}' replaced with '${r}' in XHR response`,`\nFILTER: replace-xhr-response ${i}`),o("success",n),console.groupEnd())}return i(),t.response=n.toString()}get responseText(){const e=this.response;return"string"!=typeof e?super.responseText:e}});const a=Xe(e),c=new An(a,"g");Ln.set(c,{replacement:t,needle:r,formattedArgs:n})},"strip-fetch-query-parameter":function(e,t=null){const r=_e(arguments),n=Ue("strip-fetch-query-parameter"),{mark:o,end:s}=Ie("strip-fetch-query-parameter"),i=e=>{o();for(let[t,r]of Cn.entries()){const{reg:o,args:s}=r;o&&!o.test(e)||Wn(e.searchParams,t)&&(n("success",`${t} has been stripped from url ${e}`,`\nFILTER: strip-fetch-query-parameter ${s}`),Nn(e.searchParams,t))}s()};var a;Cn||(Cn=new Map,a=i,En.push(a),Tn()),Cn.set(e,{reg:t&&Xe(t),args:r})},trace:function(...e){o(Be,null,e)}}; const snippets=In; let context; for (const [name, ...args] of filters) { if (snippets.hasOwnProperty(name)) { try { context = snippets[name].apply(context, args); } catch (error) { console.error(error); } } } context = void 0; }