-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcontent_guard.js
More file actions
1 lines (1 loc) · 23.4 KB
/
content_guard.js
File metadata and controls
1 lines (1 loc) · 23.4 KB
1
var E={BUILD_TIME:"2026-04-15T11:19:19.000Z",VERSION:"1.28.3",PROD:"1",PROD_API:"1",BETA:"0",userscript_domains:'["google.com","translate.googleapis.com","api-edge.cognitive.microsofttranslator.com","edge.microsoft.com","transmart.qq.com","translate.yandex.net","tmt.tencentcloudapi.com","www2.deepl.com","w.deepl.com","immersive-translate.owenyoung.com","generativelanguage.googleapis.com","chat.openai.com","bing.com","www.bing.com","open.volcengineapi.com","fanyi.baidu.com","api.fanyi.baidu.com","api.interpreter.caiyunai.com","api-free.deepl.com","api.deepl.com","api.openl.club","openapi.youdao.com","translate.volcengine.com","api.niutrans.com","immersivetranslate.com","imtintl.com","test-api2.immersivetranslate.com","api2.immersivetranslate.com","api2.imtintl.com","config.immersivetranslate.com","config.imtintl.com","app.immersivetranslate.com","dash.immersivetranslate.com","api.immersivetranslate.com","immersive-translate.deno.dev","www.googleapis.com","www.google-analytics.com","translate-pa.googleapis.com","api.cognitive.microsofttranslator.com","api.groq.com","api.x.ai","api.papago-chrome.com","api.openai.com","api.interpreter.caiyunai.com","api.cognitive.microsofttranslator.com","aidemo.youdao.com","dict.youdao.com","openai.azure.com","mt.aliyuncs.com","subhub.weixin.so","api.anthropic.com","localhost","127.0.0.1","ai.immersivetranslate.com","test-ai.immersivetranslate.com","ai.imtintl.com","openrouter.ai","dashscope.aliyuncs.com","api.deepseek.com","aip.baidubce.com","ark.cn-beijing.volces.com","hunyuan.tencentcloudapi.com","public-beta-api.siliconflow.cn","api.siliconflow.cn","open.bigmodel.cn","store.immersivetranslate.com","qianfan.baidubce.com","aigw1.immersivetranslate.com","aigw1.imtintl.com"]',INSTALL_FROM:"chrome_store",LOCAL_HTTPS:"0",MOCK:"0",DEBUG:"0"};var ve=Object.create,q=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,ne=Object.getOwnPropertyNames,Ce=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty,Pe=(e,t)=>function(){return t||(0,e[ne(e)[0]])((t={exports:{}}).exports,t),t.exports},ke=(e,t)=>{for(var s in t)q(e,s,{get:t[s],enumerable:!0})},H=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of ne(t))!Re.call(e,c)&&c!==s&&q(e,c,{get:()=>t[c],enumerable:!(a=Me(t,c))||a.enumerable});return e},Oe=(e,t,s)=>(H(e,t,"default"),s&&H(s,t,"default")),oe=(e,t,s)=>(s=e!=null?ve(Ce(e)):{},H(t||!e||!e.__esModule?q(s,"default",{value:e,enumerable:!0}):s,e)),se=Pe({"../esmd/npm/webextension-polyfill@0.10.0/node_modules/.pnpm/webextension-polyfill@0.10.0/node_modules/webextension-polyfill/dist/browser-polyfill.js"(e,t){(function(s,a){if(typeof define=="function"&&define.amd)define("webextension-polyfill",["module"],a);else if(typeof e<"u")a(t);else{var c={exports:{}};a(c),s.browser=c.exports}})(typeof globalThis<"u"?globalThis:typeof self<"u"?self:e,function(s){"use strict";if(!globalThis.chrome?.runtime?.id)throw new Error("This script should only be loaded in a browser extension.");if(typeof globalThis.browser>"u"||Object.getPrototypeOf(globalThis.browser)!==Object.prototype){let a="The message port closed before a response was received.",c=A=>{let T={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(Object.keys(T).length===0)throw new Error("api-metadata.json has not been included in browser-polyfill");class C extends WeakMap{constructor(o,l=void 0){super(l),this.createItem=o}get(o){return this.has(o)||this.set(o,this.createItem(o)),super.get(o)}}let b=n=>n&&typeof n=="object"&&typeof n.then=="function",g=(n,o)=>(...l)=>{A.runtime.lastError?n.reject(new Error(A.runtime.lastError.message)):o.singleCallbackArg||l.length<=1&&o.singleCallbackArg!==!1?n.resolve(l[0]):n.resolve(l)},I=n=>n==1?"argument":"arguments",v=(n,o)=>function(m,...x){if(x.length<o.minArgs)throw new Error(`Expected at least ${o.minArgs} ${I(o.minArgs)} for ${n}(), got ${x.length}`);if(x.length>o.maxArgs)throw new Error(`Expected at most ${o.maxArgs} ${I(o.maxArgs)} for ${n}(), got ${x.length}`);return new Promise((_,S)=>{if(o.fallbackToNoCallback)try{m[n](...x,g({resolve:_,reject:S},o))}catch{m[n](...x),o.fallbackToNoCallback=!1,o.noCallback=!0,_()}else o.noCallback?(m[n](...x),_()):m[n](...x,g({resolve:_,reject:S},o))})},k=(n,o,l)=>new Proxy(o,{apply(m,x,_){return l.call(x,n,..._)}}),M=Function.call.bind(Object.prototype.hasOwnProperty),h=(n,o={},l={})=>{let m=Object.create(null),x={has(S,i){return i in n||i in m},get(S,i,y){if(i in m)return m[i];if(!(i in n))return;let f=n[i];if(typeof f=="function")if(typeof o[i]=="function")f=k(n,n[i],o[i]);else if(M(l,i)){let w=v(i,l[i]);f=k(n,n[i],w)}else f=f.bind(n);else if(typeof f=="object"&&f!==null&&(M(o,i)||M(l,i)))f=h(f,o[i],l[i]);else if(M(l,"*"))f=h(f,o[i],l["*"]);else return Object.defineProperty(m,i,{configurable:!0,enumerable:!0,get(){return n[i]},set(w){n[i]=w}}),f;return m[i]=f,f},set(S,i,y,f){return i in m?m[i]=y:n[i]=y,!0},defineProperty(S,i,y){return Reflect.defineProperty(m,i,y)},deleteProperty(S,i){return Reflect.deleteProperty(m,i)}},_=Object.create(n);return new Proxy(_,x)},R=n=>({addListener(o,l,...m){o.addListener(n.get(l),...m)},hasListener(o,l){return o.hasListener(n.get(l))},removeListener(o,l){o.removeListener(n.get(l))}}),d=new C(n=>typeof n!="function"?n:function(l){let m=h(l,{},{getContent:{minArgs:0,maxArgs:0}});n(m)}),O=new C(n=>typeof n!="function"?n:function(l,m,x){let _=!1,S,i=new Promise(L=>{S=function(P){_=!0,L(P)}}),y;try{y=n(l,m,S)}catch(L){y=Promise.reject(L)}let f=y!==!0&&b(y);if(y!==!0&&!f&&!_)return!1;let w=L=>{L.then(P=>{x(P)},P=>{let V;P&&(P instanceof Error||typeof P.message=="string")?V=P.message:V="An unexpected error occurred",x({__mozWebExtensionPolyfillReject__:!0,message:V})}).catch(P=>{})};return w(f?y:i),!0}),N=({reject:n,resolve:o},l)=>{A.runtime.lastError?A.runtime.lastError.message===a?o():n(new Error(A.runtime.lastError.message)):l&&l.__mozWebExtensionPolyfillReject__?n(new Error(l.message)):o(l)},te=(n,o,l,...m)=>{if(m.length<o.minArgs)throw new Error(`Expected at least ${o.minArgs} ${I(o.minArgs)} for ${n}(), got ${m.length}`);if(m.length>o.maxArgs)throw new Error(`Expected at most ${o.maxArgs} ${I(o.maxArgs)} for ${n}(), got ${m.length}`);return new Promise((x,_)=>{let S=N.bind(null,{resolve:x,reject:_});m.push(S),l.sendMessage(...m)})},ye={devtools:{network:{onRequestFinished:R(d)}},runtime:{onMessage:R(O),onMessageExternal:R(O),sendMessage:te.bind(null,"sendMessage",{minArgs:1,maxArgs:3})},tabs:{sendMessage:te.bind(null,"sendMessage",{minArgs:2,maxArgs:3})}},K={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return T.privacy={network:{"*":K},services:{"*":K},websites:{"*":K}},h(A,ye,T)};s.exports=c(chrome)}else s.exports=globalThis.browser})}}),ae={};ke(ae,{default:()=>F});var Ne=oe(se());Oe(ae,oe(se()));var{default:re,...we}=Ne,F=re!==void 0?re:we;globalThis.immersiveTranslateBrowserAPI=F;function D(){return typeof process>"u"&&typeof Deno<"u"?Deno.env.toObject():E}var st=D();var at=D().PROD==="1",it=D().PROD!=="1";var Le="";function G(){return Le||globalThis.navigator.userAgent}function De(){let e=G();return e.includes("ImtFxiOS")||e.includes("ImtiOS")}function Be(){let e=G();return e.includes("ImtFxAndroid")||e.includes("ImtFxAOS")}function ie(){if(!Be())return!1;let e=G();return e.endsWith("official_cn")||e.includes("mainlandStore")}function le(){return De()?G().includes("mainland"):!1}var j="DENO",U="CHROME",Y="FIREFOX";function Fe(e){let t;try{let s=navigator?.userAgent||"";/firefox/i.test(s)||typeof InstallTrigger<"u"?t=Y:/deno/i.test(s)?t=j:/chrome/i.test(s)&&(t=U)}catch{}return e===U&&t===U||e===Y&&t===Y||e===j&&t===j}function ce(e=!1){let t=D();return ie()||le()?!0:!e&&t.region_plugin?t.region_plugin==="mainland":Fe(U)&&t.IMMERSIVE_TRANSLATE_CN_CHROME==="1"}var r="immersiveTranslate";var p="immersive-translate",me="imt";var Rt=r+"DeeplGlobalState",Pt=r+"BingGlobalState",kt=r+"YandexGlobalState",Ot=r+"BaiduQianfanGlobalConfigStorageKey",Nt=r+"SiliconCloudGlobalConfigStorageKey",wt=r+"IMT_COMMON_JWT_TOKEN",Lt=r+"ZhipuGlobalConfigStorageKey";var Dt=r+"GoogleAccessToken",Bt=r+"AuthFlow",Ft=p+"-config-latest.json",Gt=r+"AuthState",Ut=r+"IframeMessage",Wt=r+"WaitForRateLimit",$t=r+"YoutubeIframePlayer",Kt=r+"DocumentMessageAsk",Vt=r+"DocumentMessageTellThirdParty",Ht=r+"DocumentMessageThirdPartyTell",qt=r+"DocumentMessagePluginReady",jt=r+"DocumentMessageEventUpload",Yt=r+"DocumentMessageTypeStopJsSDK",zt=r+"DocumentMessageHandler",Jt=r+"DocumentSetFloatBallActive",Xt=`${r}Share`,Qt=`${r}ShowFloatBallGuide`,Zt=`${r}ShowPopupModalGuide`,er=r+"DocumentMessageTempEnableSubtitleChanged",tr=r+"DocumentMessageUpdateQuickButtonAiSubtitle",rr=`${r}ToggleMouseHoverTranslateDirectly`,nr=`${r}ReqDraft`,or=`${r}ResDraft`,sr=`${r}Container`,ar=`${r}SpecifiedContainer`;var ir=`${r}PageTranslatedStatus`,lr=`${r}MangaTranslatedStatus`,cr=`${r}PageUrlChanged`,mr=r+"LastUseMouseHoverTime",gr=r+"LastUseInputTime",ur=r+"LastUseManualTranslatePageTime",pr=`${r}PopupReceiveMessage`,dr=`${r}SidePanelReceiveMessage`,fr=r+"DocumentMessageEventTogglePopup",Ar=`${r}Mark`,xr=`${r}Root`,br=`${r}Walked`,hr=`data-${p}-walked`,Tr=`${r}Paragraph`,Er=`data-${p}-paragraph`,_r=`data-${p}-translation-element-mark`,Sr=`${r}TranslationElementMark`;var yr=`${r}TranslatedMark`,Ir=`${p}-input-injected-css`,vr=`${r}LoadingId`,Mr=`data-${p}-loading-id`,Cr=`${r}ErrorId`,Rr=`data-${p}-error-id`,Pr=`${r}AtomicBlockMark`,kr=`${r}ExcludeMark`,Or=`data-${p}-exclude-mark`,Nr=`${r}StayOriginalMark`,wr=`${r}PreWhitespaceMark`,Lr=`${r}InlineMark`,Dr=`${r}BlockMark`,Br=`${r}Left`,Fr=`${r}Right`,Gr=`${r}Width`,Ur=`${r}Height`,Wr=`${r}Top`,$r=`${r}FontSize`;var Kr=`${r}GlobalStyleMark`;var Vr=`${p}-target-wrapper`,Hr=`${p}-pdf-target-container`,qr=`${p}-target-inner`,jr=`${p}-source-wrapper`,Yr=`${p}-target-translation-block-wrapper`,zr=`${p}-root-translation-theme`,Jr=`${r}RootTranslationTheme`,Xr=`${p}-page-theme`,Qr=`${r}PageTheme`,Zr=`${p}-target-translation-vertical-block-wrapper`,en=`${p}-target-translation-pdf-block-wrapper`,tn=`${p}-target-translation-pre-whitespace`,rn=`${p}-target-translation-inline-wrapper`;var nn=[{name:"touch",shortcuts:[{command:"touchShortcutsToggleTranslatePage",type:"finger"},{command:"touchShortcutsToggleTranslationMask",type:"finger"},{command:"touchShortcutsToggleTranslatePageOnlyTranslation",type:"finger"},{command:"touchShortcutsToggleTranslateTouchElement",type:"finger"},{command:"touchShortcutsInputTranslate",type:"finger"}]},{name:"main",shortcuts:["toggleTranslatePage","translateInputBox","toggleSidePanel","openAiWritingModal"]},{name:"mouse",shortcuts:[{command:"mouseHoverHoldKey",type:"mouseHoverHoldKey"},"toggleMouseHoverTranslateDirectly"]},{name:"others",shortcuts:["toggleTranslationMask","toggleTranslateToThePageEndImmediately","toggleTranslateTheMainPage","toggleOnlyTransation","toggleTranslateTheWholePage","toggleVideoSubtitlePreTranslation"]},{name:"shortcutsForTranslationServices",shortcuts:ce()?[{command:"translateWithCustom1",type:"translateWithCustom"},{command:"translateWithCustom2",type:"translateWithCustom"},{command:"translateWithCustom3",type:"translateWithCustom"}]:["translateWithDeepL","translateWithGoogle","translateWithOpenAI","translateWithBing","translateWithTransmart","translateWithGemini","translateWithClaude",{command:"translateWithCustom1",type:"translateWithCustom"},{command:"translateWithCustom2",type:"translateWithCustom"},{command:"translateWithCustom3",type:"translateWithCustom"}]}];var on={type:r+"ChildFrameToRootFrameIdentifier"};var sn=50*1e4,an=`[${me}-ctx-divider]`,ln=`${me}_context_preview`;var cn=`${r}_selection_update_params`,mn=`data-${p}-subtitle-type`,gn=`data-${p}-ai-subtitle-url`,un=`data-${p}-has-subtitle`;var Ge=["google","bing","siliconcloud","zhipu"],Ue=["deepseek","openai","claude","gemini","zhipu-pro","deepl","qwen-pro"];var We=["openai","claude","gemini"],pn=[...Ge,...Ue,...We];var dn=p+"-large-cache";function ge(e,t){let s="";try{s=new URL(e).hostname}catch{return!1}return s?(s=s.toLowerCase(),t.some(a=>{let c=a.toLowerCase();return s===c||s.endsWith(`.${c}`)})):!1}function ue(e){try{return new URL(e).pathname.toLowerCase().includes("/cdn-cgi/challenge-platform/")}catch{return!1}}function W(e,t){return e<=1||t<=1}var B="*";function $(e){if(!e||e==="null")return B;try{let t=new URL(e);return!t.protocol||!t.hostname?B:t.origin}catch{return B}}function pe(e){if(!e)return B;try{return $(new URL(e).origin)}catch{return B}}function de(e,t){return e===t}function fe(){return{"top-frame":0,"iframe-visible":0,"iframe-timeout-fallback":0,"blocked-domain":0,"iframe-postmessage-failed":0,"iframe-response-invisible":0,other:0}}function Ae(e){switch(e){case"top-frame":case"iframe-visible":case"iframe-timeout-fallback":case"blocked-domain":case"iframe-postmessage-failed":case"iframe-response-invisible":return e;default:return"other"}}function xe(e,t){return e[t]+=1,e[t]}var $e=["pubmatic.com","openx.net","rubiconproject.com","indexww.com","bidswitch.net","doubleclick.net","googlesyndication.com","adnxs.com","criteo.com","taboola.com","outbrain.com","moatads.com","inmobi.com","3lift.com","lijit.com","media.net","amazon-adsystem.com","richaudience.com","smilewanted.com","presage.io","js.stripe.com","imasdk.googleapis.com"],Ee=`${r}#ask#iframe-visibility-check`,X=`${r}#tell#iframe-visibility-response`,be=2e3,z=250,Ke=globalThis.process?.env?.CONTENT_GUARD_DEBUG==="1",he=fe(),Ve="__imtContentGuardStats",_e=Math.random().toString(36).slice(2,8),Q=globalThis.location.href,He=(()=>{try{let e=new URL(Q),t=e.pathname.length>30?e.pathname.slice(0,30)+"...":e.pathname;return`${e.hostname}${t}`}catch{return Q.slice(0,50)}})(),Cn={href:Q,frameId:_e,frameUrlShort:He,inIframe:ee(),referrer:globalThis.document.referrer||""};function u(e,t){if(Ke)try{}catch{}}function Z(e,t){let s=Ae(e),a=xe(he,s);try{globalThis[Ve]={...he}}catch{}}function ee(){try{return globalThis.self!==globalThis.top}catch{return!0}}function qe(e){let t=ge(e,$e);return t&&u("blocked domain",{url:e}),t}function je(e){return ue(e)?(u("blocked challenge page",{url:e}),"cloudflare-challenge-page"):qe(e)?"blocked-domain":null}function Se(e="unknown"){let t=globalThis.immersiveTranslateBrowserAPI.runtime.getURL("content_main.js");Z(e),u("load content_main",{reason:e}),import(t).then(s=>{s.runContentMain()})}function Te(e){let t=e.getBoundingClientRect(),s=e.clientWidth,a=e.clientHeight,c=t.bottom>0&&t.right>0&&t.top<globalThis.innerHeight&&t.left<globalThis.innerWidth;return{width:s,height:a,rectWidth:t.width,rectHeight:t.height,offsetWidth:e.offsetWidth,offsetHeight:e.offsetHeight,visibleByViewport:c}}function Ye(){u("setup reporter");function e(a){let c=document.querySelectorAll("iframe");for(let A of c)if(A.contentWindow===a)return A;return null}function t(a,c,A,T,C,b){u("check iframe",{src:a.src||"(empty)",childFrameId:b});let g=$(A),I=!1,v=(h,R,d)=>{I||(I=!0,u(R,{childFrameId:b,visible:h,...d}),c.postMessage({type:X,checkId:T,token:C,visible:h},g))},k=(h,R)=>{let d=Date.now();u("start invisible grace period",{childFrameId:b,initialReason:h,graceMs:be,intervalMs:z,...R});let O=()=>{if(I)return;if(!a.isConnected){v(!1,"iframe disconnected during grace period",{initialReason:h});return}let N=Te(a);if(u("grace period recheck",{childFrameId:b,initialReason:h,elapsedMs:Date.now()-d,...N}),!W(N.width,N.height)&&N.visibleByViewport){v(!0,"grace period became visible",{initialReason:h,elapsedMs:Date.now()-d,...N});return}if(Date.now()-d>=be){v(!1,"grace period expired, reply invisible",{initialReason:h,elapsedMs:Date.now()-d,...N});return}globalThis.setTimeout(O,z)};globalThis.setTimeout(O,z)},M=Te(a);if(u("check iframe size",{childFrameId:b,...M}),W(M.width,M.height)){k("iframe size <= 1",M);return}if(typeof IntersectionObserver<"u"){let h=new IntersectionObserver(R=>{h.disconnect();let d=R[0],O=d?d.isIntersecting||d.intersectionRatio>0:!1;if(u("observer result",{visible:O,ratio:d?.intersectionRatio,isIntersecting:d?.isIntersecting,checkId:T,childFrameId:b}),O){v(!0,"observer result visible",{ratio:d?.intersectionRatio,isIntersecting:d?.isIntersecting});return}k("observer result invisible",{ratio:d?.intersectionRatio,isIntersecting:d?.isIntersecting,...M})},{threshold:[0,.01]});h.observe(a)}else v(!0,"no IntersectionObserver, reply visible",{checkId:T})}let s=a=>{if(a.data?.type!==Ee||!a.source)return;a.stopImmediatePropagation();let c=a.data.checkId,A=a.data.token,T=a.data.frameId||"unknown",C=$(a.origin);u("received visibility check",{checkId:c,childFrameId:T});let b=e(a.source);if(!b){u("iframe not found, reply visible",{childFrameId:T}),a.source.postMessage({type:X,checkId:c,token:A,visible:!0},C);return}t(b,a.source,a.origin,c,A,T)};globalThis.addEventListener("message",s,{capture:!0})}function ze(){let e=!1;try{globalThis.parent.location.href,e=!0}catch{e=!1}try{let g=globalThis.frameElement;if(g instanceof HTMLIFrameElement){let I=g.getBoundingClientRect(),v=g.clientWidth,k=g.clientHeight;if(u("same-origin frameElement size",{width:v,height:k,rectWidth:I.width,rectHeight:I.height,offsetWidth:g.offsetWidth,offsetHeight:g.offsetHeight}),W(v,k)){u("same-origin size <= 1, skip load");return}}}catch{u("frameElement access blocked (cross-origin)")}let t=!1,s=!1,a=g=>{t||(t=!0,Se(g))},c=Math.random().toString(36).slice(2),A=Math.random().toString(36).slice(2),T=pe(globalThis.document.referrer),C=setTimeout(()=>{s||(globalThis.removeEventListener("message",b,{capture:!0}),u("timeout fallback load",{checkId:c,href:globalThis.location.href,parentAccessible:e}),a("iframe-timeout-fallback"))},2e3),b=g=>{g.data?.type===X&&de(g.source,globalThis.parent)&&(T!=="*"&&g.origin!==T||g.data.checkId===c&&g.data.token===A&&(g.stopImmediatePropagation(),s=!0,clearTimeout(C),globalThis.removeEventListener("message",b,{capture:!0}),u("received visibility response",{visible:g.data.visible,checkId:c}),g.data.visible?a("iframe-visible"):(Z("iframe-response-invisible"),u("response invisible, skip load"))))};globalThis.addEventListener("message",b,{capture:!0}),setTimeout(()=>{try{u("send visibility check",{checkId:c,parentAccessible:e}),globalThis.parent.postMessage({type:Ee,checkId:c,token:A,frameId:_e},T)}catch{u("postMessage failed, fallback load"),clearTimeout(C),globalThis.removeEventListener("message",b,{capture:!0}),a("iframe-postmessage-failed")}},50)}u("init",{inIframe:ee()});Ye();var J=je(globalThis.location.href);J?(Z(J,{href:globalThis.location.href}),u("guard blocked current page, skip load (but reporter active)",{reason:J})):ee()?(u("in iframe: start check"),ze()):(u("top frame: load"),Se("top-frame"));