@directo/adunit 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/background.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={d:(t,n)=>{for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{initializeAdUnit:()=>Mw,isAdUnitMessage:()=>Tw});var n={};e.r(n),e.d(n,{debug:()=>Cd,error:()=>Rd,fatal:()=>Ad,fmt:()=>zd,info:()=>Id,trace:()=>Td,warn:()=>Md});var a={};e.r(a),e.d(a,{count:()=>Dd,distribution:()=>Ld,gauge:()=>Pd});var o={};e.r(o),e.d(o,{BrowserClient:()=>sr,MULTIPLEXED_TRANSPORT_EXTRA_KEY:()=>Ou,OpenFeatureIntegrationHook:()=>hw,SDK_VERSION:()=>u,SEMANTIC_ATTRIBUTE_SENTRY_OP:()=>Qe,SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN:()=>et,SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE:()=>Xe,SEMANTIC_ATTRIBUTE_SENTRY_SOURCE:()=>Ke,Scope:()=>Ie,WINDOW:()=>er,addBreadcrumb:()=>jr,addEventProcessor:()=>On,addIntegration:()=>bo,breadcrumbsIntegration:()=>Vr,browserApiErrorsIntegration:()=>Yr,browserProfilingIntegration:()=>uw,browserSessionIntegration:()=>Zr,browserTracingIntegration:()=>wb,buildLaunchDarklyFlagUsedHandler:()=>dw,captureConsoleIntegration:()=>Lu,captureEvent:()=>_n,captureException:()=>wn,captureFeedback:()=>Hi,captureMessage:()=>vn,captureSession:()=>Nn,chromeStackLineParser:()=>vi,close:()=>Mn,consoleLoggingIntegration:()=>Uu,contextLinesIntegration:()=>km,continueTrace:()=>Qu,createConsolaReporter:()=>ll,createLangChainCallbackHandler:()=>hp,createTransport:()=>js,createUserFeedbackEnvelope:()=>nm,dedupeIntegration:()=>Co,defaultRequestInstrumentationOptions:()=>eb,defaultStackLineParsers:()=>Mi,defaultStackParser:()=>Ri,diagnoseSdkConnectivity:()=>ww,endSession:()=>Pn,eventFiltersIntegration:()=>_o,eventFromException:()=>Gs,eventFromMessage:()=>Ks,exceptionFromError:()=>Bs,extraErrorDataIntegration:()=>gp,featureFlagsIntegration:()=>jp,feedbackAsyncIntegration:()=>Ru,feedbackIntegration:()=>Au,feedbackSyncIntegration:()=>Au,flush:()=>In,forceLoad:()=>Bi,functionToStringIntegration:()=>To,geckoStackLineParser:()=>Si,getActiveSpan:()=>Zt,getClient:()=>Be,getCurrentScope:()=>Le,getDefaultIntegrations:()=>Fi,getFeedback:()=>sc,getGlobalScope:()=>$e,getIsolationScope:()=>Ne,getReplay:()=>iy,getRootSpan:()=>Xt,getSpanDescendants:()=>Kt,getSpanStatusFromHttpCode:()=>xt,getTraceData:()=>Sp,globalHandlersIntegration:()=>si,graphqlClientIntegration:()=>xm,growthbookIntegration:()=>yw,httpClientIntegration:()=>um,httpContextIntegration:()=>li,inboundFiltersIntegration:()=>jo,init:()=>Ui,instrumentAnthropicAiClient:()=>Lp,instrumentGoogleGenAIClient:()=>Jp,instrumentLangGraph:()=>Zp,instrumentOpenAiClient:()=>md,instrumentOutgoingRequests:()=>tb,instrumentSupabaseClient:()=>jd,isEnabled:()=>An,isInitialized:()=>Rn,lastEventId:()=>Cn,launchDarklyIntegration:()=>pw,lazyLoadIntegration:()=>Mu,linkedErrorsIntegration:()=>gi,logger:()=>n,makeBrowserOfflineTransport:()=>Pb,makeFetchTransport:()=>$i,makeMultiplexedTransport:()=>Pu,metrics:()=>a,moduleMetadataIntegration:()=>Bd,onLoad:()=>qi,openFeatureIntegration:()=>mw,opera10StackLineParser:()=>Ti,opera11StackLineParser:()=>Ii,parameterize:()=>xd,registerSpanErrorInstrumentation:()=>Hd,registerWebWorker:()=>jw,replayCanvasIntegration:()=>Ny,replayIntegration:()=>oy,reportPageLoaded:()=>Tb,reportingObserverIntegration:()=>rm,rewriteFramesIntegration:()=>Yd,sendFeedback:()=>Ki,setActiveSpanInBrowser:()=>Cb,setContext:()=>jn,setCurrentClient:()=>Ao,setExtra:()=>xn,setExtras:()=>Sn,setHttpStatus:()=>zt,setMeasurement:()=>Hu,setTag:()=>En,setTags:()=>zn,setUser:()=>Tn,showReportDialog:()=>am,spanToBaggageHeader:()=>rn,spanToJSON:()=>Ht,spanToTraceHeader:()=>Ft,spotlightBrowserIntegration:()=>lw,startBrowserTracingNavigationSpan:()=>_b,startBrowserTracingPageLoadSpan:()=>vb,startInactiveSpan:()=>Zu,startNewTrace:()=>nl,startSession:()=>Dn,startSpan:()=>Ku,startSpanManual:()=>Xu,statsigIntegration:()=>bw,supabaseIntegration:()=>Sd,suppressTracing:()=>tl,thirdPartyErrorFilterIntegration:()=>Gd,uiProfiler:()=>tm,unleashIntegration:()=>gw,updateSpanName:()=>en,webWorkerIntegration:()=>vw,winjsStackLineParser:()=>zi,withActiveSpan:()=>el,withIsolationScope:()=>Ue,withScope:()=>Fe,zodErrorsIntegration:()=>em});class s extends Error{source;constructor(e,t){super(e),this.name="ApiError",this.source=t}}class r extends s{constructor(e){super(`Fetch error: ${e.message}`,e)}}class i extends s{status;statusText;response;constructor(e){const{status:t,statusText:n}=e;super(`Status error (${t}): ${n}`),this.status=t,this.statusText=n,this.response=e}}class c extends s{response;constructor(e,t){const[n,a]="string"==typeof t?[t,void 0]:[t.message,t];super(`Response body error: ${n}`,a),this.response=e}}const u="10.29.0",l=globalThis;function p(){return d(l),l}function d(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||u,t[u]=t[u]||{}}function m(e,t,n=l){const a=n.__SENTRY__=n.__SENTRY__||{},o=a[u]=a[u]||{};return o[e]||(o[e]=t())}const h="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,g=Object.prototype.toString;function f(e){switch(g.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return z(e,Error)}}function k(e,t){return g.call(e)===`[object ${t}]`}function y(e){return k(e,"ErrorEvent")}function b(e){return k(e,"DOMError")}function w(e){return k(e,"String")}function v(e){return"object"==typeof e&&null!==e&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function _(e){return null===e||v(e)||"object"!=typeof e&&"function"!=typeof e}function j(e){return k(e,"Object")}function S(e){return"undefined"!=typeof Event&&z(e,Event)}function x(e){return Boolean(e?.then&&"function"==typeof e.then)}function z(e,t){try{return e instanceof t}catch{return!1}}function E(e){return!("object"!=typeof e||null===e||!(e.__isVue||e._isVue||e.__v_isVNode))}function T(e){return"undefined"!=typeof Request&&z(e,Request)}const C=l,I=80;function M(e,t={}){if(!e)return"<unknown>";try{let n=e;const a=5,o=[];let s=0,r=0;const i=" > ",c=i.length;let u;const l=Array.isArray(t)?t:t.keyAttrs,p=!Array.isArray(t)&&t.maxStringLength||I;for(;n&&s++<a&&(u=R(n,l),!("html"===u||s>1&&r+o.length*c+u.length>=p));)o.push(u),r+=u.length,n=n.parentNode;return o.reverse().join(i)}catch{return"<unknown>"}}function R(e,t){const n=e,a=[];if(!n?.tagName)return"";if(C.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}a.push(n.tagName.toLowerCase());const o=t?.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(o?.length)o.forEach(e=>{a.push(`[${e[0]}="${e[1]}"]`)});else{n.id&&a.push(`#${n.id}`);const e=n.className;if(e&&w(e)){const t=e.split(/\s+/);for(const e of t)a.push(`.${e}`)}}const s=["aria-label","type","name","title","alt"];for(const e of s){const t=n.getAttribute(e);t&&a.push(`[${e}="${t}"]`)}return a.join("")}function A(){try{return C.document.location.href}catch{return""}}function O(e){if(!C.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}const D=["debug","info","warn","error","log","assert","trace"],P={};function L(e){if(!("console"in l))return e();const t=l.console,n={},a=Object.keys(P);a.forEach(e=>{const a=P[e];n[e]=t[e],t[e]=a});try{return e()}finally{a.forEach(e=>{t[e]=n[e]})}}function N(){return F().enabled}function $(e,...t){h&&N()&&L(()=>{l.console[e](`Sentry Logger [${e}]:`,...t)})}function F(){return h?m("loggerSettings",()=>({enabled:!1})):{enabled:!1}}const U={enable:function(){F().enabled=!0},disable:function(){F().enabled=!1},isEnabled:N,log:function(...e){$("log",...e)},warn:function(...e){$("warn",...e)},error:function(...e){$("error",...e)}};function B(e,t,n){if(!(t in e))return;const a=e[t];if("function"!=typeof a)return;const o=n(a);"function"==typeof o&&H(o,a);try{e[t]=o}catch{h&&U.log(`Failed to replace method "${t}" in object`,e)}}function q(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{h&&U.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function H(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,q(e,"__sentry_original__",t)}catch{}}function W(e){return e.__sentry_original__}function V(e){if(f(e))return{message:e.message,name:e.name,stack:e.stack,...Y(e)};if(S(e)){const t={type:e.type,target:J(e.target),currentTarget:J(e.currentTarget),...Y(e)};return"undefined"!=typeof CustomEvent&&z(e,CustomEvent)&&(t.detail=e.detail),t}return e}function J(e){try{return"undefined"!=typeof Element&&z(e,Element)?M(e):Object.prototype.toString.call(e)}catch{return"<unknown>"}}function Y(e){if("object"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}const G=50,K="?",X=/\(error: (.*)\)/,Z=/captureMessage|captureException/;function Q(...e){const t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,a=0)=>{const o=[],s=e.split("\n");for(let e=n;e<s.length;e++){let n=s[e];n.length>1024&&(n=n.slice(0,1024));const r=X.test(n)?n.replace(X,"$1"):n;if(!r.match(/\S*Error: /)){for(const e of t){const t=e(r);if(t){o.push(t);break}}if(o.length>=G+a)break}}return function(e){if(!e.length)return[];const t=Array.from(e);return/sentryWrapped/.test(ee(t).function||"")&&t.pop(),t.reverse(),Z.test(ee(t).function||"")&&(t.pop(),Z.test(ee(t).function||"")&&t.pop()),t.slice(0,G).map(e=>({...e,filename:e.filename||ee(t).filename,function:e.function||K}))}(o.slice(a))}}function ee(e){return e[e.length-1]||{}}const te="<anonymous>";function ne(e){try{return e&&"function"==typeof e&&e.name||te}catch{return te}}function ae(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach(t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)}),e}catch{return}}}function oe(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function se(e,t=0){return"string"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function re(e,t){let n=e;const a=n.length;if(a<=150)return n;t>a&&(t=a);let o=Math.max(t-60,0);o<5&&(o=0);let s=Math.min(o+140,a);return s>a-5&&(s=a),s===a&&(o=Math.max(s-140,0)),n=n.slice(o,s),o>0&&(n=`'{snip} ${n}`),s<a&&(n+=" {snip}"),n}function ie(e,t){if(!Array.isArray(e))return"";const n=[];for(let t=0;t<e.length;t++){const a=e[t];try{E(a)?n.push(oe(a)):n.push(String(a))}catch{n.push("[value cannot be serialized]")}}return n.join(t)}function ce(e,t,n=!1){return!!w(e)&&(k(t,"RegExp")?t.test(e):!!w(t)&&(n?e===t:e.includes(t)))}function ue(e,t=[],n=!1){return t.some(t=>ce(e,t,n))}let le;function pe(e=function(){const e=l;return e.crypto||e.msCrypto}()){try{if(e?.randomUUID)return e.randomUUID().replace(/-/g,"")}catch{}return le||(le=[1e7]+1e3+4e3+8e3+1e11),le.replace(/[018]/g,e=>(e^(16*Math.random()&15)>>e/4).toString(16))}function de(e){return e.exception?.values?.[0]}function me(e){const{message:t,event_id:n}=e;if(t)return t;const a=de(e);return a?a.type&&a.value?`${a.type}: ${a.value}`:a.type||a.value||n||"<unknown>":n||"<unknown>"}function he(e,t,n){const a=e.exception=e.exception||{},o=a.values=a.values||[],s=o[0]=o[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function ge(e,t){const n=de(e);if(!n)return;const a=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...a,...t},t&&"data"in t){const e={...a?.data,...t.data};n.mechanism.data=e}}function fe(e){if(function(e){try{return e.__sentry_captured__}catch{}}(e))return!0;try{q(e,"__sentry_captured__",!0)}catch{}return!1}const ke=1e3;function ye(){return Date.now()/ke}let be,we;function ve(){return(be??(be=function(){const{performance:e}=l;if(!e?.now||!e.timeOrigin)return ye;const t=e.timeOrigin;return()=>(t+e.now())/ke}()))()}function _e(){return we||(we=function(){const{performance:e}=l;if(!e?.now)return[void 0,"none"];const t=36e5,n=e.now(),a=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-a):t,s=o<t,r=e.timing?.navigationStart,i="number"==typeof r?Math.abs(r+n-a):t;return s||i<t?o<=i?[e.timeOrigin,"timeOrigin"]:[r,"navigationStart"]:[a,"dateNow"]}()),we[0]}function je(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||ve(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:pe()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function Se(e,t,n=2){if(!t||"object"!=typeof t||n<=0)return t;if(e&&0===Object.keys(t).length)return e;const a={...e};for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(a[e]=Se(a[e],t[e],n-1));return a}function xe(){return pe()}function ze(){return pe().substring(16)}const Ee="_sentrySpan";function Te(e,t){t?q(e,Ee,t):delete e[Ee]}function Ce(e){return e[Ee]}class Ie{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:xe(),sampleRand:Math.random()}}clone(){const e=new Ie;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._attributes={...this._attributes},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,Te(e,Ce(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&je(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this.setTags({[e]:t})}setAttributes(e){return this._attributes={...this._attributes,...e},this._notifyScopeListeners(),this}setAttribute(e,t){return this.setAttributes({[e]:t})}removeAttribute(e){return e in this._attributes&&(delete this._attributes[e],this._notifyScopeListeners()),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t="function"==typeof e?e(this):e,n=t instanceof Ie?t.getScopeData():j(t)?e:void 0,{tags:a,attributes:o,extra:s,user:r,contexts:i,level:c,fingerprint:u=[],propagationContext:l}=n||{};return this._tags={...this._tags,...a},this._attributes={...this._attributes,...o},this._extra={...this._extra,...s},this._contexts={...this._contexts,...i},r&&Object.keys(r).length&&(this._user=r),c&&(this._level=c),u.length&&(this._fingerprint=u),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,Te(this,void 0),this._attachments=[],this.setPropagationContext({traceId:xe(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n="number"==typeof t?t:100;if(n<=0)return this;const a={timestamp:ye(),...e,message:e.message?se(e.message,2048):e.message};return this._breadcrumbs.push(a),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ce(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Se(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t?.event_id||pe();if(!this._client)return h&&U.warn("No client configured on scope - will not capture exception!"),n;const a=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:a,...t,event_id:n},this),n}captureMessage(e,t,n){const a=n?.event_id||pe();if(!this._client)return h&&U.warn("No client configured on scope - will not capture message!"),a;const o=n?.syntheticException??new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...n,event_id:a},this),a}captureEvent(e,t){const n=t?.event_id||pe();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(h&&U.warn("No client configured on scope - will not capture event!"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}class Me{constructor(e,t){let n,a;n=e||new Ie,a=t||new Ie,this._stack=[{scope:n}],this._isolationScope=a}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return x(n)?n.then(e=>(this._popScope(),e),e=>{throw this._popScope(),e}):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1||!this._stack.pop())}}function Re(){const e=d(p());return e.stack=e.stack||new Me(m("defaultCurrentScope",()=>new Ie),m("defaultIsolationScope",()=>new Ie))}function Ae(e){return Re().withScope(e)}function Oe(e,t){const n=Re();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function De(e){return Re().withScope(()=>e(Re().getIsolationScope()))}function Pe(e){const t=d(e);return t.acs?t.acs:{withIsolationScope:De,withScope:Ae,withSetScope:Oe,withSetIsolationScope:(e,t)=>De(t),getCurrentScope:()=>Re().getScope(),getIsolationScope:()=>Re().getIsolationScope()}}function Le(){return Pe(p()).getCurrentScope()}function Ne(){return Pe(p()).getIsolationScope()}function $e(){return m("globalScope",()=>new Ie)}function Fe(...e){const t=Pe(p());if(2===e.length){const[n,a]=e;return n?t.withSetScope(n,a):t.withScope(a)}return t.withScope(e[0])}function Ue(...e){const t=Pe(p());if(2===e.length){const[n,a]=e;return n?t.withSetIsolationScope(n,a):t.withIsolationScope(a)}return t.withIsolationScope(e[0])}function Be(){return Le().getClient()}function qe(e){const t=e.getPropagationContext(),{traceId:n,parentSpanId:a,propagationSpanId:o}=t,s={trace_id:n,span_id:o||ze()};return a&&(s.parent_span_id=a),s}const He="production";function We(e){return new Je(t=>{t(e)})}function Ve(e){return new Je((t,n)=>{n(e)})}class Je{constructor(e){this._state=0,this._handlers=[],this._runExecutor(e)}then(e,t){return new Je((n,a)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){a(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){a(e)}else a(e)}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(e){return new Je((t,n)=>{let a,o;return this.then(t=>{o=!1,a=t,e&&e()},t=>{o=!0,a=t,e&&e()}).then(()=>{o?n(a):t(a)})})}_executeHandlers(){if(0===this._state)return;const e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||(1===this._state&&e[1](this._value),2===this._state&&e[2](this._value),e[0]=!0)})}_runExecutor(e){const t=(e,t)=>{0===this._state&&(x(t)?t.then(n,a):(this._state=e,this._value=t,this._executeHandlers()))},n=e=>{t(1,e)},a=e=>{t(2,e)};try{e(n,a)}catch(e){a(e)}}}function Ye(e,t,n,a=0){try{const o=Ge(t,n,e,a);return x(o)?o:We(o)}catch(e){return Ve(e)}}function Ge(e,t,n,a){const o=n[a];if(!e||!o)return e;const s=o({...e},t);return h&&null===s&&U.log(`Event processor "${o.id||"?"}" dropped event`),x(s)?s.then(e=>Ge(e,t,n,a+1)):Ge(s,t,n,a+1)}const Ke="sentry.source",Xe="sentry.sample_rate",Ze="sentry.previous_trace_sample_rate",Qe="sentry.op",et="sentry.origin",tt="sentry.idle_span_finish_reason",nt="sentry.measurement_unit",at="sentry.measurement_value",ot="sentry.custom_span_name",st="sentry.profile_id",rt="sentry.exclusive_time",it="sentry.link.type",ct="sentry-",ut=/^sentry-/,lt=8192;function pt(e){const t=function(e){if(e&&(w(e)||Array.isArray(e)))return Array.isArray(e)?e.reduce((e,t)=>{const n=mt(t);return Object.entries(n).forEach(([t,n])=>{e[t]=n}),e},{}):mt(e)}(e);if(!t)return;const n=Object.entries(t).reduce((e,[t,n])=>(t.match(ut)&&(e[t.slice(ct.length)]=n),e),{});return Object.keys(n).length>0?n:void 0}function dt(e){if(e)return function(e){if(0!==Object.keys(e).length)return Object.entries(e).reduce((e,[t,n],a)=>{const o=`${encodeURIComponent(t)}=${encodeURIComponent(n)}`,s=0===a?o:`${e},${o}`;return s.length>lt?(h&&U.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`),e):s},"")}(Object.entries(e).reduce((e,[t,n])=>(n&&(e[`${ct}${t}`]=n),e),{}))}function mt(e){return e.split(",").map(e=>{const t=e.indexOf("=");return-1===t?[]:[e.slice(0,t),e.slice(t+1)].map(e=>{try{return decodeURIComponent(e.trim())}catch{return}})}).reduce((e,[t,n])=>(t&&n&&(e[t]=n),e),{})}const ht=/^o(\d+)\./,gt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function ft(e,t=!1){const{host:n,path:a,pass:o,port:s,projectId:r,protocol:i,publicKey:c}=e;return`${i}://${c}${t&&o?`:${o}`:""}@${n}${s?`:${s}`:""}/${a?`${a}/`:a}${r}`}function kt(e){const t=gt.exec(e);if(!t)return void L(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});const[n,a,o="",s="",r="",i=""]=t.slice(1);let c="",u=i;const l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){const e=u.match(/^\d+/);e&&(u=e[0])}return yt({host:s,pass:o,path:c,projectId:u,port:r,protocol:n,publicKey:a})}function yt(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function bt(e){const t=e.getOptions(),{host:n}=e.getDsn()||{};let a;return t.orgId?a=String(t.orgId):n&&(a=function(e){const t=e.match(ht);return t?.[1]}(n)),a}function wt(e){const t="string"==typeof e?kt(e):yt(e);if(t&&function(e){if(!h)return!0;const{port:t,projectId:n,protocol:a}=e;return!(["protocol","publicKey","host","projectId"].find(t=>!e[t]&&(U.error(`Invalid Sentry Dsn: ${t} missing`),!0))||(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(a)?t&&isNaN(parseInt(t,10))&&(U.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(U.error(`Invalid Sentry Dsn: Invalid protocol ${a}`),1):(U.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}function vt(e){if("boolean"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const t=e||Be()?.getOptions();return!(!t||null==t.tracesSampleRate&&!t.tracesSampler)}const _t=0,jt=1,St=2;function xt(e){if(e<400&&e>=100)return{code:jt};if(e>=400&&e<500)switch(e){case 401:return{code:St,message:"unauthenticated"};case 403:return{code:St,message:"permission_denied"};case 404:return{code:St,message:"not_found"};case 409:return{code:St,message:"already_exists"};case 413:return{code:St,message:"failed_precondition"};case 429:return{code:St,message:"resource_exhausted"};case 499:return{code:St,message:"cancelled"};default:return{code:St,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:St,message:"unimplemented"};case 503:return{code:St,message:"unavailable"};case 504:return{code:St,message:"deadline_exceeded"};default:return{code:St,message:"internal_error"}}return{code:St,message:"internal_error"}}function zt(e,t){e.setAttribute("http.response.status_code",t);const n=xt(t);"unknown_error"!==n.message&&e.setStatus(n)}const Et="_sentryScope",Tt="_sentryIsolationScope";function Ct(e){if(e){if("object"==typeof e&&"deref"in e&&"function"==typeof e.deref)try{return e.deref()}catch{return}return e}}function It(e){const t=e;return{scope:t[Et],isolationScope:Ct(t[Tt])}}function Mt(e){if("boolean"==typeof e)return Number(e);const t="string"==typeof e?parseFloat(e):e;return"number"!=typeof t||isNaN(t)||t<0||t>1?void 0:t}const Rt=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function At(e,t){const n=function(e){if(!e)return;const t=e.match(Rt);if(!t)return;let n;return"1"===t[3]?n=!0:"0"===t[3]&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}(e),a=pt(t);if(!n?.traceId)return{traceId:xe(),sampleRand:Math.random()};const o=function(e,t){const n=Mt(t?.sample_rand);if(void 0!==n)return n;const a=Mt(t?.sample_rate);return a&&void 0!==e?.parentSampled?e.parentSampled?Math.random()*a:a+Math.random()*(1-a):Math.random()}(n,a);a&&(a.sample_rand=o.toString());const{traceId:s,parentSpanId:r,parentSampled:i}=n;return{traceId:s,parentSpanId:r,sampled:i,dsc:a||{},sampleRand:o}}function Ot(e=xe(),t=ze(),n){let a="";return void 0!==n&&(a=n?"-1":"-0"),`${e}-${t}${a}`}function Dt(e=xe(),t=ze(),n){return`00-${e}-${t}-${n?"01":"00"}`}const Pt=1;let Lt=!1;function Nt(e){const{spanId:t,traceId:n}=e.spanContext(),{data:a,op:o,parent_span_id:s,status:r,origin:i,links:c}=Ht(e);return{parent_span_id:s,span_id:t,trace_id:n,data:a,op:o,status:r,origin:i,links:c}}function $t(e){const{spanId:t,traceId:n,isRemote:a}=e.spanContext(),o=a?t:Ht(e).parent_span_id,s=It(e).scope;return{parent_span_id:o,span_id:a?s?.getPropagationContext().propagationSpanId||ze():t,trace_id:n}}function Ft(e){const{traceId:t,spanId:n}=e.spanContext();return Ot(t,n,Wt(e))}function Ut(e){return e&&e.length>0?e.map(({context:{spanId:e,traceId:t,traceFlags:n,...a},attributes:o})=>({span_id:e,trace_id:t,sampled:n===Pt,attributes:o,...a})):void 0}function Bt(e){return"number"==typeof e?qt(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?qt(e.getTime()):ve()}function qt(e){return e>9999999999?e/1e3:e}function Ht(e){if(function(e){return"function"==typeof e.getSpanJSON}(e))return e.getSpanJSON();const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:a,startTime:o,name:s,endTime:r,status:i,links:c}=e;return{span_id:t,trace_id:n,data:a,description:s,parent_span_id:"parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0,start_timestamp:Bt(o),timestamp:Bt(r)||void 0,status:Vt(i),op:a[Qe],origin:a[et],links:Ut(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function Wt(e){const{traceFlags:t}=e.spanContext();return t===Pt}function Vt(e){if(e&&e.code!==_t)return e.code===jt?"ok":e.message||"internal_error"}const Jt="_sentryChildSpans",Yt="_sentryRootSpan";function Gt(e,t){const n=e[Yt]||e;q(t,Yt,n),e[Jt]?e[Jt].add(t):q(e,Jt,new Set([t]))}function Kt(e){const t=new Set;return function e(n){if(!t.has(n)&&Wt(n)){t.add(n);const a=n[Jt]?Array.from(n[Jt]):[];for(const t of a)e(t)}}(e),Array.from(t)}function Xt(e){return e[Yt]||e}function Zt(){const e=Pe(p());return e.getActiveSpan?e.getActiveSpan():Ce(Le())}function Qt(){Lt||(L(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),Lt=!0)}function en(e,t){e.updateName(t),e.setAttributes({[Ke]:"custom",[ot]:t})}const tn="_frozenDsc";function nn(e,t){q(e,tn,t)}function an(e,t){const n=t.getOptions(),{publicKey:a}=t.getDsn()||{},o={environment:n.environment||He,release:n.release,public_key:a,trace_id:e,org_id:bt(t)};return t.emit("createDsc",o),o}function on(e,t){const n=t.getPropagationContext();return n.dsc||an(n.traceId,e)}function sn(e){const t=Be();if(!t)return{};const n=Xt(e),a=Ht(n),o=a.data,s=n.spanContext().traceState,r=s?.get("sentry.sample_rate")??o[Xe]??o[Ze];function i(e){return"number"!=typeof r&&"string"!=typeof r||(e.sample_rate=`${r}`),e}const c=n[tn];if(c)return i(c);const u=s?.get("sentry.dsc"),l=u&&pt(u);if(l)return i(l);const p=an(e.spanContext().traceId,t),d=o[Ke],m=a.description;return"url"!==d&&m&&(p.transaction=m),vt()&&(p.sampled=String(Wt(n)),p.sample_rand=s?.get("sentry.sample_rand")??It(n).scope?.getPropagationContext().sampleRand.toString()),i(p),t.emit("createDsc",p,n),p}function rn(e){return dt(sn(e))}function cn(e,t){const{extra:n,tags:a,user:o,contexts:s,level:r,sdkProcessingMetadata:i,breadcrumbs:c,fingerprint:u,eventProcessors:l,attachments:p,propagationContext:d,transactionName:m,span:h}=t;un(e,"extra",n),un(e,"tags",a),un(e,"user",o),un(e,"contexts",s),e.sdkProcessingMetadata=Se(e.sdkProcessingMetadata,i,2),r&&(e.level=r),m&&(e.transactionName=m),h&&(e.span=h),c.length&&(e.breadcrumbs=[...e.breadcrumbs,...c]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),l.length&&(e.eventProcessors=[...e.eventProcessors,...l]),p.length&&(e.attachments=[...e.attachments,...p]),e.propagationContext={...e.propagationContext,...d}}function un(e,t,n){e[t]=Se(e[t],n,1)}let ln,pn,dn,mn;function hn(e){const t=l._sentryDebugIds,n=l._debugIds;if(!t&&!n)return{};const a=t?Object.keys(t):[],o=n?Object.keys(n):[];if(mn&&a.length===pn&&o.length===dn)return mn;pn=a.length,dn=o.length,mn={},ln||(ln={});const s=(t,n)=>{for(const a of t){const t=n[a],o=ln?.[a];if(o&&mn&&t)mn[o[0]]=t,ln&&(ln[a]=[o[0],t]);else if(t){const n=e(a);for(let e=n.length-1;e>=0;e--){const o=n[e],s=o?.filename;if(s&&mn&&ln){mn[s]=t,ln[a]=[s,t];break}}}}};return t&&s(a,t),n&&s(o,n),mn}function gn(e,t=100,n=1/0){try{return kn("",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function fn(e,t=3,n=102400){const a=gn(e,t);return o=a,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(o))>n?fn(e,t-1,n):a;var o}function kn(e,t,n=1/0,a=1/0,o=function(){const e=new WeakSet;return[function(t){return!!e.has(t)||(e.add(t),!1)},function(t){e.delete(t)}]}()){const[s,r]=o;if(null==t||["boolean","string"].includes(typeof t)||"number"==typeof t&&Number.isFinite(t))return t;const i=function(e,t){try{if("domain"===e&&t&&"object"==typeof t&&t._events)return"[Domain]";if("domainEmitter"===e)return"[DomainEmitter]";if("undefined"!=typeof global&&t===global)return"[Global]";if("undefined"!=typeof window&&t===window)return"[Window]";if("undefined"!=typeof document&&t===document)return"[Document]";if(E(t))return oe(t);if(j(n=t)&&"nativeEvent"in n&&"preventDefault"in n&&"stopPropagation"in n)return"[SyntheticEvent]";if("number"==typeof t&&!Number.isFinite(t))return`[${t}]`;if("function"==typeof t)return`[Function: ${ne(t)}]`;if("symbol"==typeof t)return`[${String(t)}]`;if("bigint"==typeof t)return`[BigInt: ${String(t)}]`;const a=function(e){const t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}(t);return/^HTML(\w*)Element$/.test(a)?`[HTMLElement: ${a}]`:`[object ${a}]`}catch(e){return`**non-serializable** (${e})`}var n}(e,t);if(!i.startsWith("[object "))return i;if(t.__sentry_skip_normalization__)return t;const c="number"==typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:n;if(0===c)return i.replace("object ","");if(s(t))return"[Circular ~]";const u=t;if(u&&"function"==typeof u.toJSON)try{return kn("",u.toJSON(),c-1,a,o)}catch{}const l=Array.isArray(t)?[]:{};let p=0;const d=V(t);for(const e in d){if(!Object.prototype.hasOwnProperty.call(d,e))continue;if(p>=a){l[e]="[MaxProperties ~]";break}const t=d[e];l[e]=kn(e,t,c-1,a,o),p++}return r(t),l}function yn(e,t,n,a,o,s){const{normalizeDepth:r=3,normalizeMaxBreadth:i=1e3}=e,c={...t,event_id:t.event_id||n.event_id||pe(),timestamp:t.timestamp||ye()},u=n.integrations||e.integrations.map(e=>e.name);!function(e,t){const{environment:n,release:a,dist:o,maxValueLength:s}=t;e.environment=e.environment||n||He,!e.release&&a&&(e.release=a),!e.dist&&o&&(e.dist=o);const r=e.request;r?.url&&s&&(r.url=se(r.url,s)),s&&e.exception?.values?.forEach(e=>{e.value&&(e.value=se(e.value,s))})}(c,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(c,u),o&&o.emit("applyFrameMetadata",t),void 0===t.type&&function(e,t){const n=hn(t);e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.filename&&(e.debug_id=n[e.filename])})})}(c,e.stackParser);const l=function(e,t){if(!t)return e;const n=e?e.clone():new Ie;return n.update(t),n}(a,n.captureContext);n.mechanism&&ge(c,n.mechanism);const p=o?o.getEventProcessors():[],d=$e().getScopeData();s&&cn(d,s.getScopeData()),l&&cn(d,l.getScopeData());const m=[...n.attachments||[],...d.attachments];return m.length&&(n.attachments=m),function(e,t){const{fingerprint:n,span:a,breadcrumbs:o,sdkProcessingMetadata:s}=t;!function(e,t){const{extra:n,tags:a,user:o,contexts:s,level:r,transactionName:i}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(a).length&&(e.tags={...a,...e.tags}),Object.keys(o).length&&(e.user={...o,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),r&&(e.level=r),i&&"transaction"!==e.type&&(e.transaction=i)}(e,t),a&&function(e,t){e.contexts={trace:$t(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:sn(t),...e.sdkProcessingMetadata};const n=Ht(Xt(t)).description;n&&!e.transaction&&"transaction"===e.type&&(e.transaction=n)}(e,a),function(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,o),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,s)}(c,d),Ye([...p,...d.eventProcessors],c,n).then(e=>(e&&function(e){const t={};if(e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)})}),0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach(([e,t])=>{n.push({type:"sourcemap",code_file:e,debug_id:t})})}(e),"number"==typeof r&&r>0?function(e,t,n){if(!e)return null;const a={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(e=>({...e,...e.data&&{data:gn(e.data,t,n)}}))},...e.user&&{user:gn(e.user,t,n)},...e.contexts&&{contexts:gn(e.contexts,t,n)},...e.extra&&{extra:gn(e.extra,t,n)}};return e.contexts?.trace&&a.contexts&&(a.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(a.contexts.trace.data=gn(e.contexts.trace.data,t,n))),e.spans&&(a.spans=e.spans.map(e=>({...e,...e.data&&{data:gn(e.data,t,n)}}))),e.contexts?.flags&&a.contexts&&(a.contexts.flags=gn(e.contexts.flags,3,n)),a}(e,r,i):e))}const bn=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function wn(e,t){return Le().captureException(e,function(e){if(e)return function(e){return e instanceof Ie||"function"==typeof e}(e)||function(e){return Object.keys(e).some(e=>bn.includes(e))}(e)?{captureContext:e}:e}(t))}function vn(e,t){const n="string"==typeof t?t:void 0,a="string"!=typeof t?{captureContext:t}:void 0;return Le().captureMessage(e,n,a)}function _n(e,t){return Le().captureEvent(e,t)}function jn(e,t){Ne().setContext(e,t)}function Sn(e){Ne().setExtras(e)}function xn(e,t){Ne().setExtra(e,t)}function zn(e){Ne().setTags(e)}function En(e,t){Ne().setTag(e,t)}function Tn(e){Ne().setUser(e)}function Cn(){return Ne().lastEventId()}async function In(e){const t=Be();return t?t.flush(e):(h&&U.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}async function Mn(e){const t=Be();return t?t.close(e):(h&&U.warn("Cannot flush events and disable SDK. No client defined."),Promise.resolve(!1))}function Rn(){return!!Be()}function An(){const e=Be();return!1!==e?.getOptions().enabled&&!!e?.getTransport()}function On(e){Ne().addEventProcessor(e)}function Dn(e){const t=Ne(),n=Le(),{userAgent:a}=l.navigator||{},o=function(e){const t=ve(),n={sid:pe(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return{sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"==typeof e.did||"string"==typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}(n)};return e&&je(n,e),n}({user:n.getUser()||t.getUser(),...a&&{userAgent:a},...e}),s=t.getSession();return"ok"===s?.status&&je(s,{status:"exited"}),Pn(),t.setSession(o),o}function Pn(){const e=Ne(),t=Le().getSession()||e.getSession();t&&function(e){let t={};"ok"===e.status&&(t={status:"exited"}),je(e,t)}(t),Ln(),e.setSession()}function Ln(){const e=Ne(),t=Be(),n=e.getSession();n&&t&&t.captureSession(n)}function Nn(e=!1){e?Pn():Ln()}function $n(e){throw new Error(`Non-never value at runtime: ${e}`)}function Fn(e,t,n,a){void 0===n?e.searchParams[a](t,"undefined"):null===n?e.searchParams[a](t,"null"):"boolean"==typeof n?e.searchParams[a](t,n?"true":"false"):"number"==typeof n?e.searchParams[a](t,n.toString(10)):"string"==typeof n?e.searchParams[a](t,n):"object"==typeof n?e.searchParams[a](t,JSON.stringify(n)):$n(n)}async function Un(e,t){try{return await fetch(e,t)}catch(e){if(e instanceof TypeError)throw new r(e);throw e}}class Bn{body;constructor(e){this.body=e}static Json(e){return new Bn({type:"json",json:e})}static B64Json(e){return new Bn({type:"b64json",json:e})}static String(e){return new Bn({type:"string",string:e})}getContentType(){switch(this.body.type){case"json":return"application/json";case"b64json":case"string":return"text/plain";default:$n(this.body)}}getSerialized(){switch(this.body.type){case"json":return JSON.stringify(this.body.json);case"b64json":return e=JSON.stringify(this.body.json),function(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let n="",a=0;for(;a+2<e.length;a+=3){const o=e[a]<<16|e[a+1]<<8|e[a+2];n+=t[o>>>18&63]+t[o>>>12&63]+t[o>>>6&63]+t[63&o]}if(a<e.length){const o=e[a]<<16|(a+1<e.length?e[a+1]:0)<<8;n+=t[o>>>18&63]+t[o>>>12&63]+(a+1<e.length?t[o>>>6&63]:"=")+"="}return n}((new TextEncoder).encode(e));case"string":return this.body.string;default:$n(this.body)}var e}}function qn(e){return new Promise(t=>{setTimeout(t,e)})}function Hn(e,{backoffMultiplier:t=1,retryAfter:n=null}={}){if(n){const e=function(e){const t=function(e){const t=function(e){const t=e.trim();return/^[+-]?\d+$/.test(t)?parseInt(t,10):null}(e);return null===t||t<0?null:t}(e);if(null!==t)return 1e3*t;const n=Date.parse(e);return isNaN(n)?null:n-Date.now()}(n);if(null!==e)return Math.max(Math.min(e,1e4),500)}return Math.min(500*Math.pow(2,e),1e4)*t*(1+.1*(2*Math.random()-1))}class Wn{name="JsonBodyParser";async parse(e){try{return e.json()}catch(t){throw new c(e,t instanceof Error?t:"Failed to parse JSON")}}checkContentType(e){return e?.includes("application/json")??!1}}class Vn{name="VoidBodyParser";async parse(e){}checkContentType(e){return!0}}async function Jn(e,t,n,a,o){if(e.status>=200&&e.status<300){const{parser:n,ignoreContentTypeHeader:a=!1}=t??{},o=e.headers.get("Content-Type");if(!a&&!n.checkContentType(o))throw new c(e,`Did not expect Content-Type "${o}" for parser ${n.name}`);return t.parser.parse(e)}if(n>=5)throw new i(e);if(401===e.status&&o)return o(n+1);if(429===e.status||503===e.status){const t=Hn(n+2,{backoffMultiplier:2,retryAfter:e.headers.get("Retry-After")});return await qn(t),a(n+3)}if(e.status>=400&&e.status<=499)throw new i(e);{const e=Hn(n);return await qn(e),a(n+1)}}class Yn{rootUrl;appVersion;truesignEndpoint;tsToken=null;injectInto;partnerKey;constructor(e,t){this.truesignEndpoint=t?.truesignEndpoint,this.rootUrl=e,this.injectInto=t.injectInto??"query",this.appVersion=t.appVersion,this.partnerKey=t.partnerKey}async createTSToken(){try{const e={signal:AbortSignal.timeout(1e3)},t=await fetch(`https://edge.truesign.ai/v2/${this.truesignEndpoint}`,{...e}),n=await t.json();return this.tsToken=n.token,this.tsToken||"no-token"}catch(e){return console.error("Unable to request authentication token",e),this.tsToken="unauthenticated",this.tsToken}}async getTsToken(){return this.tsToken?this.tsToken:await this.createTSToken()}buildUrl(e){return new URL(`${this.rootUrl}${e}`)}async applyQueryParams(e,t){return function(e,t){const n=new URL(e);for(const[e,a]of Object.entries(t))if(Array.isArray(a)){n.searchParams.delete(e);for(const t of a)Fn(n,e,t,"append")}else Fn(n,e,a,"set");return n}(e,{...t,..."query"===this.injectInto?{...this.truesignEndpoint?{tsToken:await this.getTsToken()}:{},...this.partnerKey?{partnerKey:this.partnerKey}:{},appVersion:this.appVersion}:{}})}async applyHeaders(e){const t=new Headers(e);return"headers"===this.injectInto&&(this.truesignEndpoint&&t.set("X-TS-Token",await this.getTsToken()),this.partnerKey&&t.set("X-Partner-Key",this.partnerKey),t.set("X-App-Version",this.appVersion)),t}async get(e,{params:t={},request:n={},parser:a=new Wn,ignoreContentTypeHeader:o}={}){const s=this.buildUrl(e),r=await this.applyQueryParams(s,t),i=await this.applyHeaders(n?.headers);return this._get(r,0,{...n,headers:i},{parser:a,ignoreContentTypeHeader:o})}async _get(e,t,n,a){try{return Jn(await Un(e,{...n,body:void 0,method:"GET"}),a,t,t=>this._get(e,t,n,a),this.truesignEndpoint?async t=>{await this.createTSToken();const o=await this.applyQueryParams(e),s=await this.applyHeaders(n.headers);return this._get(o,t,{...n,headers:s},a)}:null)}catch(t){throw console.error(`Error on get ${e.origin}${e.pathname}`,t),t}}async post(e,{params:t={},body:n=null,request:a={},parser:o=new Vn,ignoreContentTypeHeader:s}={}){const r=this.buildUrl(e),i=await this.applyQueryParams(r,t),c=await this.applyHeaders(a?.headers);n&&!c.has("Content-Type")&&c.set("Content-Type",n.getContentType());const u=n?n.getSerialized():null;return this._post(i,u,0,{...a,headers:c},{parser:o,ignoreContentTypeHeader:s})}async _post(e,t,n,a,o){try{return Jn(await Un(e,{...a,body:t,method:"POST"}),o,n,n=>this._post(e,t,n,a,o),this.truesignEndpoint?async n=>{await this.createTSToken();const s=await this.applyQueryParams(e),r=await this.applyHeaders(a.headers);return this._post(s,t,n,{...a,headers:r},o)}:null)}catch(t){throw console.error(`Error on post ${e.origin}${e.pathname}`,t),t}}}class Gn{apiService=null;rootUrl;options;constructor(e,t){this.rootUrl=e,this.options=t,this.apiService=null}initialize(e){if(this.apiService)throw new Error("APIService already initialized");this.apiService=new Yn(this.rootUrl,{...this.options,...e})}get(){if(!this.apiService)throw new Error("APIService not initialized");return this.apiService}}const Kn=new Gn("https://api.getdirecto.com",{truesignEndpoint:"1558123949",injectInto:"headers"});Kn.get.bind(Kn);const Xn=new Gn("https://events.getdirecto.com",{truesignEndpoint:"80298941"}),Zn=Xn.get.bind(Xn),Qn=new Gn("https://vio-wrapper-api-cd-6981968610.europe-west4.run.app",{truesignEndpoint:"1678801807",injectInto:"headers"}),ea=Qn.get.bind(Qn),ta=new Gn("https://rateshops.getdirecto.com",{truesignEndpoint:"1010119886",injectInto:"headers"});ta.get.bind(ta);const na=new Gn("https://htmlql-6981968610.europe-west4.run.app",{truesignEndpoint:"465050282"});na.get.bind(na);const aa="DIRECTO_CORE_BACKGROUND_CONFIG",oa="local";let sa=null;const ra=e=>{sa=e,chrome.storage[oa].set({[aa]:e})};function ia(e,t=2){const n="0".repeat(t)+e;return n.slice(n.length-t,n.length)}class ca{year;month;day;constructor(e,t,n){this.year=e,this.month=t,this.day=n}static unsafe_new(e,t,n){if(isNaN(e)||isNaN(t)||isNaN(n))throw new Error(`Invalid date: ${e}-${t}-${n}`);const a=new ca(e,t,n),o=a.unsafe_toDate();if(isNaN(o.getTime())||o.getFullYear()!==e||o.getMonth()+1!==t||o.getDate()!==n)throw new Error(`Invalid date: ${e}-${t}-${n}`);return a}static new(e,t,n){try{return ca.unsafe_new(e,t,n)}catch{return null}}static today(){return ca.unsafe_fromDate(new Date)}static unsafe_fromRaw(e){return ca.unsafe_new(e.year,e.month,e.day)}static fromRaw(e){return ca.new(e.year,e.month,e.day)}static unsafe_fromDate(e){if(isNaN(e.getTime()))throw new Error("Invalid Date object");return ca.unsafe_new(e.getFullYear(),e.getMonth()+1,e.getDate())}static fromDate(e){try{return ca.unsafe_fromDate(e)}catch{return null}}static tryFromSlashDDMMYY(e){const t=e.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yy>\d{2})$/);if(!t)return null;const{dd:n,mm:a,yy:o}=t.groups;return ca.new(2e3+parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromSlashDMY(e){const t=e.match(/^(?<d>\d{1,2})\/(?<m>\d{1,2})\/(?<y>\d{1,2})$/);if(!t)return null;const{d:n,m:a,y:o}=t.groups;return ca.new(2e3+parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromDashYYYYMMDD(e){const t=e.match(/^(?<yyyy>\d{4})-(?<mm>\d{2})-(?<dd>\d{2})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ca.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}static tryFromDashDDMMYYYY(e){const t=e.match(/^(?<dd>\d{2})-(?<mm>\d{2})-(?<yyyy>\d{4})$/);if(!t)return null;const{dd:n,mm:a,yyyy:o}=t.groups;return ca.new(parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromSlashDDMMYYYY(e){const t=e.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yyyy>\d{4})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ca.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}static tryFromSlashMMDDYYYY(e){const t=e.match(/^(?<mm>\d{2})\/(?<dd>\d{2})\/(?<yyyy>\d{4})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ca.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}toDashYYYYMMDD(){return`${ia(this.year,4)}-${ia(this.month)}-${ia(this.day)}`}unsafe_toDate(){return function(e,t,n){const a=new Date;return a.setFullYear(e,t,n),a.setHours(0,0,0,0),a}(this.year,this.month-1,this.day)}}const ua="userUUID",la="local";async function pa(){let{[ua]:e}=await chrome.storage[la].get(ua);return e||(e=crypto.randomUUID(),await chrome.storage[la].set({[ua]:e})),e}async function da(){if(void 0!==chrome.identity?.getProfileUserInfo){const e=await chrome.identity.getProfileUserInfo({accountStatus:chrome.identity.AccountStatus.ANY});return{id:e.id||await pa(),email:e.email}}return{id:await pa(),email:""}}const ma="directoSessionInfo",ha="session";async function ga(){const{[ma]:e}=await chrome.storage[ha].get(ma),t=Date.now();if(e?.sessionId&&e.lastTimestamp&&t-e.lastTimestamp<144e5)return chrome.storage[ha].set({[ma]:{...e,lastTimestamp:t}}),e.sessionId;const n=`${(await da()).id}-${a=new Date(t),`${a.getUTCFullYear()}${ia(a.getUTCMonth())+1}${ia(a.getUTCDate())}-${ia(a.getUTCHours())}${ia(a.getUTCMinutes())}`}`;var a;return chrome.storage[ha].set({[ma]:{sessionId:n,lastTimestamp:t}}),n}function fa(e){switch(e){case"local":return chrome.storage.local;case"session":return chrome.storage.session;default:$n(e)}}function ka(e,t,n={}){const{area:a="local"}=n,o=fa(a);o.get(e,n=>{const a=n[e]||[],s=new Set(a);s.add(t),o.set({[e]:Array.from(s.values())})})}function ya(e,t,n={}){return new Promise(a=>{const{dropIfPresent:o=!1,area:s="local"}=n,r=fa(s);r.get(e,n=>{const s=n[e]||[],i=new Set(s),c=i.has(t);c&&o&&(i.delete(t),r.set({[e]:Array.from(i.values())})),a(c)})})}function ba(e,t,n,a={}){const{area:o="local"}=a,s=fa(o);s.get(e,a=>{const o=a[e]||[],r=new Map(o);r.set(t,n),s.set({[e]:Array.from(r.entries())})})}function wa(e,t,n={}){const{dropIfPresent:a=!1,area:o="local"}=n;return new Promise(n=>{const s=fa(o);s.get(e,o=>{const r=o[e]||[],i=new Map(r),c=i.get(t);c&&a&&setTimeout(()=>{i.delete(t),s.set({[e]:Array.from(i.entries())})},5e3),n(c)})})}const va="crossSellWasChecked",_a="session",ja=({crossSellId:e,tabId:t})=>`${e}-${t}`;function Sa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xa,za,Ea=function(){if(za)return xa;za=1;const e=2147483647,t=36,n=/^xn--/,a=/[^\0-\x7F]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},r=Math.floor,i=String.fromCharCode;function c(e){throw new RangeError(s[e])}function u(e,t){const n=e.split("@");let a="";n.length>1&&(a=n[0]+"@",e=n[1]);const s=function(e,t){const n=[];let a=e.length;for(;a--;)n[a]=t(e[a]);return n}((e=e.replace(o,".")).split("."),t).join(".");return a+s}function l(e){const t=[];let n=0;const a=e.length;for(;n<a;){const o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<a){const a=e.charCodeAt(n++);56320==(64512&a)?t.push(((1023&o)<<10)+(1023&a)+65536):(t.push(o),n--)}else t.push(o)}return t}const p=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:t},d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},m=function(e,n,a){let o=0;for(e=a?r(e/700):e>>1,e+=r(e/n);e>455;o+=t)e=r(e/35);return r(o+36*e/(e+38))},h=function(n){const a=[],o=n.length;let s=0,i=128,u=72,l=n.lastIndexOf("-");l<0&&(l=0);for(let e=0;e<l;++e)n.charCodeAt(e)>=128&&c("not-basic"),a.push(n.charCodeAt(e));for(let d=l>0?l+1:0;d<o;){const l=s;for(let a=1,i=t;;i+=t){d>=o&&c("invalid-input");const l=p(n.charCodeAt(d++));l>=t&&c("invalid-input"),l>r((e-s)/a)&&c("overflow"),s+=l*a;const m=i<=u?1:i>=u+26?26:i-u;if(l<m)break;const h=t-m;a>r(e/h)&&c("overflow"),a*=h}const h=a.length+1;u=m(s-l,h,0==l),r(s/h)>e-i&&c("overflow"),i+=r(s/h),s%=h,a.splice(s++,0,i)}return String.fromCodePoint(...a)},g=function(n){const a=[],o=(n=l(n)).length;let s=128,u=0,p=72;for(const e of n)e<128&&a.push(i(e));const h=a.length;let g=h;for(h&&a.push("-");g<o;){let o=e;for(const e of n)e>=s&&e<o&&(o=e);const l=g+1;o-s>r((e-u)/l)&&c("overflow"),u+=(o-s)*l,s=o;for(const o of n)if(o<s&&++u>e&&c("overflow"),o===s){let e=u;for(let n=t;;n+=t){const o=n<=p?1:n>=p+26?26:n-p;if(e<o)break;const s=e-o,c=t-o;a.push(i(d(o+s%c,0))),e=r(s/c)}a.push(i(d(e,0))),p=m(u,l,g===h),u=0,++g}++u,++s}return a.join("")};return xa={version:"2.3.1",ucs2:{decode:l,encode:e=>String.fromCodePoint(...e)},decode:h,encode:g,toASCII:function(e){return u(e,function(e){return a.test(e)?"xn--"+g(e):e})},toUnicode:function(e){return u(e,function(e){return n.test(e)?h(e.slice(4).toLowerCase()):e})}},xa}();const Ta=Sa(Ea),Ca=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","aws","axa","azure","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merck","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","nab","nagoya","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"].reduce((e,t)=>{const n=t.replace(/^(\*\.|\!)/,""),a=Ta.toASCII(n),o=t.charAt(0);if(e.has(a))throw new Error(`Multiple rules found for ${t} (${a})`);return e.set(a,{rule:t,suffix:n,punySuffix:a,wildcard:"*"===o,exception:"!"===o}),e},new Map),Ia={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},Ma=e=>e&&(e=>{if("string"!=typeof e)throw new TypeError("Domain name must be a string.");let t=e.slice(0).toLowerCase();"."===t.charAt(t.length-1)&&(t=t.slice(0,t.length-1));const n=(e=>{const t=Ta.toASCII(e);if(t.length<1)return"DOMAIN_TOO_SHORT";if(t.length>255)return"DOMAIN_TOO_LONG";const n=t.split(".");let a;for(let e=0;e<n.length;++e){if(a=n[e],!a.length)return"LABEL_TOO_SHORT";if(a.length>63)return"LABEL_TOO_LONG";if("-"===a.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===a.charAt(a.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(a))return"LABEL_INVALID_CHARS"}})(t);if(n)return{input:e,error:{message:Ia[n],code:n}};const a={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:!1},o=t.split(".");if("local"===o[o.length-1])return a;const s=()=>(/xn--/.test(t)&&(a.domain&&(a.domain=Ta.toASCII(a.domain)),a.subdomain&&(a.subdomain=Ta.toASCII(a.subdomain))),a),r=(e=>{const t=Ta.toASCII(e).split(".");for(let e=0;e<t.length;e++){const n=t.slice(e).join("."),a=Ca.get(n);if(a)return a}return null})(t);if(!r)return o.length<2?a:(a.tld=o.pop(),a.sld=o.pop(),a.domain=[a.sld,a.tld].join("."),o.length&&(a.subdomain=o.pop()),s());a.listed=!0;const i=r.suffix.split("."),c=o.slice(0,o.length-i.length);return r.exception&&c.push(i.shift()),a.tld=i.join("."),!c.length||(r.wildcard&&(i.unshift(c.pop()),a.tld=i.join(".")),!c.length)||(a.sld=c.pop(),a.domain=[a.sld,a.tld].join("."),c.length&&(a.subdomain=c.join("."))),s()})(e).domain||null;function Ra(e){let t=e.trim();return/^(?:f|ht)tps?\:\/\//.test(t)||(t="http://"+t),new URL(t)}function Aa(e){const t=Ma(e);return null!==t?t:(e=e.replace(/^www\./,"")).split(".").slice(-2).join(".")}function Oa(e){return e.hostname.replace(/^www\./,"")}function Da(e,t){return"VRBO"===t?e.replace(/\D/g,""):e}const Pa="directoUserId",La="directoUserEmail",Na="local";let $a="";async function Fa(){if($a)return $a;const{[Pa]:e}=await chrome.storage[Na].get(Pa);return $a=e||"",$a}let Ua="";async function Ba(){if(Ua)return Ua;const{[La]:e}=await chrome.storage[Na].get(La);return Ua=e||"",Ua}const qa="directoAllowedHostnames";function Ha(e){return`outclickId-${e}`}function Wa(e){return`directoDomains-${e}`}new Set(["getdirecto.com","doubleclick.net","anrdoezrs.net","jdoqocy.com","tkqlhce.com","tradedoubler.com","effiliation.com","prf.hn","tatrck.com","tradetracker.net"]);const Va={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let Ja;const Ya=new Uint8Array(16),Ga=[];for(let e=0;e<256;++e)Ga.push((e+256).toString(16).slice(1));const Ka=function(e,t,n){if(Va.randomUUID&&!t&&!e)return Va.randomUUID();const a=(e=e||{}).random??e.rng?.()??function(){if(!Ja){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ja=crypto.getRandomValues.bind(crypto)}return Ja(Ya)}();if(a.length<16)throw new Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){if((n=n||0)<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=a[e];return t}return function(e,t=0){return(Ga[e[t+0]]+Ga[e[t+1]]+Ga[e[t+2]]+Ga[e[t+3]]+"-"+Ga[e[t+4]]+Ga[e[t+5]]+"-"+Ga[e[t+6]]+Ga[e[t+7]]+"-"+Ga[e[t+8]]+Ga[e[t+9]]+"-"+Ga[e[t+10]]+Ga[e[t+11]]+Ga[e[t+12]]+Ga[e[t+13]]+Ga[e[t+14]]+Ga[e[t+15]]).toLowerCase()}(a)};async function Xa(e,t){try{const a=Ka();null!==e.targetTabId&&async function(e,t){await chrome.storage.session.set({[Ha(e)]:t})}(e.targetTabId,a),n=e.targetUrl,ka(qa,Aa(Ra(n).hostname));const o=function(e){try{const t=Oa(new URL(e));return/^airbnb\.[.a-z]{2,7}/i.exec(t)?"AIRBNB":/^(secure\.)?booking\.com/i.exec(t)?"BOOKING":/^vrbo\.com/i.exec(t)||/^abritel\.fr/i.exec(t)?"VRBO":/^expedia\.[.a-z]{2,7}/i.exec(t)?"EXPEDIA":/google\.[a-z.]{2,7}\/(search\?|travel\/flights\?)/i.exec(e)?"GOOGLE":null}catch(e){return console.error("Error in getPlatform",e),null}}(e.sourceUrl),s=null!==e.sourceTabId?`${e.sessionId}-${e.sourceTabId}`:null,r={cta:e.cta,platform:o,session_id:e.sessionId,user_id:await Fa(),user_email:await Ba(),listing_id:e.sourceId,source_url:e.sourceUrl,target_url:e.targetUrl,source_tab_id:s,outclick_id:a,...t};await Zn().post("/v2/outclick",{body:Bn.B64Json(r)})}catch(e){console.error(e)}var n}const Za="userLocale";let Qa=null;async function eo(){const{[Za]:e}=await chrome.storage.local.get(Za);return Qa=e??null,Qa}function to(){return Qa=Qa||function(){let e;return e=null!=navigator.languages?navigator.languages[0]:navigator.language,e=e.split("-")[0]||e||"en",e}(),Qa}function no(e,t,n){const{destination:a,checkin:o,checkout:s,adults:r,children:i}=n,c=a.name.trim().replace(/[, ]+/g,",").replace(/ñ/g,"n").toLocaleLowerCase(),u=`/${["hotels",void 0!==a.placeId?`${c}-p${a.placeId}`:c,o.toDashYYYYMMDD(),s.toDashYYYYMMDD(),`${r}adults`,`${i}children${"-0".repeat(i)}`].join("/")}`,l=new URL("/in","https://www.kayak.com");return l.searchParams.append("a","kan_317594_592750"),t&&(l.searchParams.append("encoder","27_1"),l.searchParams.append("enc_pid","deeplinks"),l.searchParams.append("enc_cid",t)),e&&l.searchParams.append(t?"enc_lid":"p",e),l.searchParams.append("url",u),l.toString()}eo();const ao=5e3,oo="tempTabHasBeenOpenedForDomain",so="session",ro="session",io="directoDisplayPricesCache",co="session",uo="directoInfoCache",lo="growthbookFeatures",po="session",mo="session",ho="directoListingPriceCache",go=[];function fo(e){const t=e.defaultIntegrations||[],n=e.integrations;let a;if(t.forEach(e=>{e.isDefaultInstance=!0}),Array.isArray(n))a=[...t,...n];else if("function"==typeof n){const e=n(t);a=Array.isArray(e)?e:[e]}else a=t;return function(e){const t={};return e.forEach(e=>{const{name:n}=e,a=t[n];a&&!a.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)}),Object.values(t)}(a)}function ko(e,t){for(const n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function yo(e,t,n){if(n[t.name])h&&U.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,go.includes(t.name)||"function"!=typeof t.setupOnce||(t.setupOnce(),go.push(t.name)),t.setup&&"function"==typeof t.setup&&t.setup(e),"function"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on("preprocessEvent",(t,a)=>n(t,a,e))}if("function"==typeof t.processEvent){const n=t.processEvent.bind(t),a=Object.assign((t,a)=>n(t,a,e),{id:t.name});e.addEventProcessor(a)}h&&U.log(`Integration installed: ${t.name}`)}}function bo(e){const t=Be();t?t.addIntegration(e):h&&U.warn(`Cannot add integration "${e.name}" because no SDK Client is available.`)}function wo(e){const t=[];e.message&&t.push(e.message);try{const n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}const vo=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,'can\'t redefine non-configurable property "solana"',"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],_o=(e={})=>{let t;return{name:"EventFilters",setup(n){const a=n.getOptions();t=So(e,a)},processEvent(n,a,o){if(!t){const n=o.getOptions();t=So(e,n)}return function(e,t){if(e.type){if("transaction"===e.type&&function(e,t){if(!t?.length)return!1;const n=e.transaction;return!!n&&ue(n,t)}(e,t.ignoreTransactions))return h&&U.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${me(e)}`),!0}else{if(function(e,t){return!!t?.length&&wo(e).some(e=>ue(e,t))}(e,t.ignoreErrors))return h&&U.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${me(e)}`),!0;if(function(e){return!!e.exception?.values?.length&&(!e.message&&!e.exception.values.some(e=>e.stacktrace||e.type&&"Error"!==e.type||e.value))}(e))return h&&U.warn(`Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${me(e)}`),!0;if(function(e,t){if(!t?.length)return!1;const n=xo(e);return!!n&&ue(n,t)}(e,t.denyUrls))return h&&U.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${me(e)}.\nUrl: ${xo(e)}`),!0;if(!function(e,t){if(!t?.length)return!0;const n=xo(e);return!n||ue(n,t)}(e,t.allowUrls))return h&&U.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${me(e)}.\nUrl: ${xo(e)}`),!0}return!1}(n,t)?null:n}}},jo=(e={})=>({..._o(e),name:"InboundFilters"});function So(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:vo],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function xo(e){try{const t=[...e.exception?.values??[]].reverse().find(e=>void 0===e.mechanism?.parent_id&&e.stacktrace?.frames?.length),n=t?.stacktrace?.frames;return n?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&"<anonymous>"!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(n):null}catch{return h&&U.error(`Cannot extract url for event ${me(e)}`),null}}let zo;const Eo=new WeakMap,To=()=>({name:"FunctionToString",setupOnce(){zo=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=W(this),n=Eo.has(Be())&&void 0!==t?t:this;return zo.apply(n,e)}}catch{}},setup(e){Eo.set(e,!0)}}),Co=()=>{let e;return{name:"Dedupe",processEvent(t){if(t.type)return t;try{if(function(e,t){return!!t&&(!!function(e,t){const n=e.message,a=t.message;return!(!n&&!a)&&(!(n&&!a||!n&&a)&&(n===a&&(!!Mo(e,t)&&!!Io(e,t))))}(e,t)||!!function(e,t){const n=Ro(t),a=Ro(e);return!(!n||!a)&&(n.type===a.type&&n.value===a.value&&(!!Mo(e,t)&&!!Io(e,t)))}(e,t))}(t,e))return h&&U.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return e=t}}};function Io(e,t){let n=ae(e),a=ae(t);if(!n&&!a)return!0;if(n&&!a||!n&&a)return!1;if(a.length!==n.length)return!1;for(let e=0;e<a.length;e++){const t=a[e],o=n[e];if(t.filename!==o.filename||t.lineno!==o.lineno||t.colno!==o.colno||t.function!==o.function)return!1}return!0}function Mo(e,t){let n=e.fingerprint,a=t.fingerprint;if(!n&&!a)return!0;if(n&&!a||!n&&a)return!1;try{return!(n.join("")!==a.join(""))}catch{return!1}}function Ro(e){return e.exception?.values?.[0]}function Ao(e){Le().setClient(e)}const Oo="7";function Do(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function Po(e,t,n){return t||`${function(e){return`${Do(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){const n={sentry_version:Oo};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}(e,n)}`}function Lo(e,t=[]){return[e,t]}function No(e,t){const[n,a]=e;return[n,[...a,t]]}function $o(e,t){const n=e[1];for(const e of n)if(t(e,e[0].type))return!0;return!1}function Fo(e,t){return $o(e,(e,n)=>t.includes(n))}function Uo(e){const t=d(l);return t.encodePolyfill?t.encodePolyfill(e):(new TextEncoder).encode(e)}function Bo(e){const[t,n]=e;let a=JSON.stringify(t);function o(e){"string"==typeof a?a="string"==typeof e?a+e:[Uo(a),e]:a.push("string"==typeof e?Uo(e):e)}for(const e of n){const[t,n]=e;if(o(`\n${JSON.stringify(t)}\n`),"string"==typeof n||n instanceof Uint8Array)o(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(gn(n))}o(e)}}return"string"==typeof a?a:function(e){const t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(a)}function qo(e){return[{type:"span"},e]}function Ho(e){const t="string"==typeof e.data?Uo(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}const Wo={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item",metric:"metric",trace_metric:"metric"};function Vo(e){return Wo[e]}function Jo(e){if(!e?.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function Yo(e,t,n,a){const o=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&a&&{dsn:ft(a)},...o&&{trace:o}}}function Go(e){U.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function Ko(e,t){if(!t?.length||!e.description)return!1;for(const n of t){if(Zo(n)){if(ce(e.description,n))return h&&Go(e),!0;continue}if(!n.name&&!n.op)continue;const t=!n.name||ce(e.description,n.name),a=!n.op||e.op&&ce(e.op,n.op);if(t&&a)return h&&Go(e),!0}return!1}function Xo(e,t){const n=t.parent_span_id,a=t.span_id;if(n)for(const t of e)t.parent_span_id===a&&(t.parent_span_id=n)}function Zo(e){return"string"==typeof e||e instanceof RegExp}function Qo(e,t){return t?Fe(t,()=>{const n=Zt(),a=n?$t(n):qe(t);return[n?sn(n):on(e,t),a]}):[void 0,void 0]}const es={trace:1,debug:5,info:9,warn:13,error:17,fatal:21},ts=100;function ns(e,t,n,a=!0){!n||e[t]&&!a||(e[t]=n)}function as(e,t){const n=is(),a=rs(e);void 0===a?n.set(e,[t]):a.length>=ts?(ss(e,a),n.set(e,[t])):n.set(e,[...a,t])}function os(e,t=Le(),n=as){const a=t?.getClient()??Be();if(!a)return void(h&&U.warn("No client available to capture log."));const{release:o,environment:s,enableLogs:r=!1,beforeSendLog:i}=a.getOptions();if(!r)return void(h&&U.warn("logging option not enabled, log will not be captured."));const[,c]=Qo(a,t),u={...e.attributes},{user:{id:l,email:p,username:d}}=function(e){const t=$e().getScopeData();return cn(t,Ne().getScopeData()),cn(t,e.getScopeData()),t}(t);ns(u,"user.id",l,!1),ns(u,"user.email",p,!1),ns(u,"user.name",d,!1),ns(u,"sentry.release",o),ns(u,"sentry.environment",s);const{name:m,version:g}=a.getSdkMetadata()?.sdk??{};ns(u,"sentry.sdk.name",m),ns(u,"sentry.sdk.version",g);const f=a.getIntegrationByName("Replay"),k=f?.getReplayId(!0);ns(u,"sentry.replay_id",k),k&&"buffer"===f?.getRecordingMode()&&ns(u,"sentry._internal.replay_is_buffering",!0);const y=e.message;if(v(y)){const{__sentry_template_string__:e,__sentry_template_values__:t=[]}=y;t?.length&&(u["sentry.message.template"]=e),t.forEach((e,t)=>{u[`sentry.message.parameter.${t}`]=e})}const b=Ce(t);ns(u,"sentry.trace.parent_span_id",b?.spanContext().spanId);const w={...e,attributes:u};a.emit("beforeCaptureLog",w);const _=i?L(()=>i(w)):w;if(!_)return a.recordDroppedEvent("before_send","log_item",1),void(h&&U.warn("beforeSendLog returned null, log will not be captured."));const{level:j,message:S,attributes:x={},severityNumber:z}=_;n(a,{timestamp:ve(),level:j,body:S,trace_id:c?.trace_id,severity_number:z??es[j],attributes:Object.keys(x).reduce((e,t)=>(e[t]=function(e){switch(typeof e){case"number":return Number.isInteger(e)?{value:e,type:"integer"}:{value:e,type:"double"};case"boolean":return{value:e,type:"boolean"};case"string":return{value:e,type:"string"};default:{let t="";try{t=JSON.stringify(e)??""}catch{}return{value:t,type:"string"}}}}(x[t]),e),{})}),a.emit("afterCaptureLog",_)}function ss(e,t){const n=t??rs(e)??[];if(0===n.length)return;const a=e.getOptions(),o=function(e,t,n,a){const o={};return t?.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&a&&(o.dsn=ft(a)),Lo(o,[(s=e,[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}])]);var s}(n,a._metadata,a.tunnel,e.getDsn());is().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(o)}function rs(e){return is().get(e)}function is(){return m("clientToLogBufferMap",()=>new WeakMap)}const cs=1e3;function us(e){switch(typeof e){case"number":return Number.isInteger(e)?{value:e,type:"integer"}:{value:e,type:"double"};case"boolean":return{value:e,type:"boolean"};case"string":return{value:e,type:"string"};default:{let t="";try{t=JSON.stringify(e)??""}catch{}return{value:t,type:"string"}}}}function ls(e,t,n,a=!0){!n||!a&&t in e||(e[t]=n)}function ps(e,t){const n=gs(),a=hs(e);void 0===a?n.set(e,[t]):a.length>=cs?(ms(e,a),n.set(e,[t])):n.set(e,[...a,t])}function ds(e,t){const n=t?.scope??Le(),a=t?.captureSerializedMetric??ps,o=n?.getClient()??Be();if(!o)return void(h&&U.warn("No client available to capture metric."));const{_experiments:s,enableMetrics:r,beforeSendMetric:i}=o.getOptions();if(!(r??s?.enableMetrics??1))return void(h&&U.warn("metrics option not enabled, metric will not be captured."));const c=function(e,t,n){const{release:a,environment:o}=t.getOptions(),s={...e.attributes},{user:{id:r,email:i,username:c}}=function(e){const t=$e().getScopeData();return cn(t,Ne().getScopeData()),cn(t,e.getScopeData()),t}(n);ls(s,"user.id",r,!1),ls(s,"user.email",i,!1),ls(s,"user.name",c,!1),ls(s,"sentry.release",a),ls(s,"sentry.environment",o);const{name:u,version:l}=t.getSdkMetadata()?.sdk??{};ls(s,"sentry.sdk.name",u),ls(s,"sentry.sdk.version",l);const p=t.getIntegrationByName("Replay"),d=p?.getReplayId(!0);return ls(s,"sentry.replay_id",d),d&&"buffer"===p?.getRecordingMode()&&ls(s,"sentry._internal.replay_is_buffering",!0),{...e,attributes:s}}(e,o,n);o.emit("processMetric",c);const u=i||s?.beforeSendMetric,l=u?u(c):c;if(!l)return void(h&&U.log("`beforeSendMetric` returned `null`, will not send metric."));const p=function(e,t,n){const a={};for(const t in e.attributes)void 0!==e.attributes[t]&&(a[t]=us(e.attributes[t]));const[,o]=Qo(t,n),s=Ce(n),r=s?s.spanContext().traceId:o?.trace_id,i=s?s.spanContext().spanId:void 0;return{timestamp:ve(),trace_id:r??"",span_id:i,name:e.name,type:e.type,unit:e.unit,value:e.value,attributes:a}}(l,o,n);h&&U.log("[Metric]",p),a(o,p),o.emit("afterCaptureMetric",l)}function ms(e,t){const n=t??hs(e)??[];if(0===n.length)return;const a=e.getOptions(),o=function(e,t,n,a){const o={};return t?.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&a&&(o.dsn=ft(a)),Lo(o,[(s=e,[{type:"trace_metric",item_count:s.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:s}])]);var s}(n,a._metadata,a.tunnel,e.getDsn());gs().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(o)}function hs(e){return gs().get(e)}function gs(){return m("clientToMetricBufferMap",()=>new WeakMap)}const fs=Symbol.for("SentryBufferFullError");function ks(e=100){const t=new Set;function n(e){t.delete(e)}return{get $(){return Array.from(t)},add:function(a){if(!(t.size<e))return Ve(fs);const o=a();return t.add(o),o.then(()=>n(o),()=>n(o)),o},drain:function(e){if(!t.size)return We(!0);const n=Promise.allSettled(Array.from(t)).then(()=>!0);if(!e)return n;const a=[n,new Promise(t=>setTimeout(()=>t(!1),e))];return Promise.race(a)}}}const ys=6e4;function bs(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const a=Date.parse(`${e}`);return isNaN(a)?ys:a-t}function ws(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}function vs(e,{statusCode:t,headers:n},a=Date.now()){const o={...e},s=n?.["x-sentry-rate-limits"],r=n?.["retry-after"];if(s)for(const e of s.trim().split(",")){const[t,n,,,s]=e.split(":",5),r=parseInt(t,10),i=1e3*(isNaN(r)?60:r);if(n)for(const e of n.split(";"))"metric_bucket"===e&&s&&!s.split(";").includes("custom")||(o[e]=a+i);else o.all=a+i}else r?o.all=a+bs(r,a):429===t&&(o.all=a+6e4);return o}const _s=64;function js(e,t,n=ks(e.bufferSize||_s)){let a={};return{send:function(o){const s=[];if($o(o,(t,n)=>{const o=Vo(n);ws(a,o)?e.recordDroppedEvent("ratelimit_backoff",o):s.push(t)}),0===s.length)return Promise.resolve({});const r=Lo(o[0],s),i=t=>{$o(r,(n,a)=>{e.recordDroppedEvent(t,Vo(a))})};return n.add(()=>t({body:Bo(r)}).then(e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&h&&U.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),a=vs(a,e),e),e=>{throw i("network_error"),h&&U.error("Encountered error running transport request:",e),e})).then(e=>e,e=>{if(e===fs)return h&&U.error("Skipped sending event because buffer is full."),i("queue_overflow"),Promise.resolve({});throw e})},flush:e=>n.drain(e)}}const Ss="Not capturing exception because it's already been captured.",xs="Discarded session because of missing or non-string release",zs=Symbol.for("SentryInternalError"),Es=Symbol.for("SentryDoNotSendEventError");function Ts(e){return{message:e,[zs]:!0}}function Cs(e){return{message:e,[Es]:!0}}function Is(e){return!!e&&"object"==typeof e&&zs in e}function Ms(e){return!!e&&"object"==typeof e&&Es in e}function Rs(e,t,n,a,o){let s,r=0,i=!1;e.on(n,()=>{r=0,clearTimeout(s),i=!1}),e.on(t,t=>{r+=a(t),r>=8e5?o(e):i||(i=!0,s=setTimeout(()=>{o(e)},5e3))}),e.on("flush",()=>{o(e)})}class As{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=ks(e.transportOptions?.bufferSize??_s),e.dsn?this._dsn=wt(e.dsn):h&&U.warn("No DSN provided, client will not send events."),this._dsn){const t=Po(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&Rs(this,"afterCaptureLog","flushLogs",Ns,ss),(this._options.enableMetrics??this._options._experiments?.enableMetrics??1)&&Rs(this,"afterCaptureMetric","flushMetrics",Ls,ms)}captureException(e,t,n){const a=pe();if(fe(e))return h&&U.log(Ss),a;const o={event_id:a,...t};return this._process(()=>this.eventFromException(e,o).then(e=>this._captureEvent(e,o,n)).then(e=>e),"error"),o.event_id}captureMessage(e,t,n,a){const o={event_id:pe(),...n},s=v(e)?e:String(e),r=_(e),i=r?this.eventFromMessage(s,t,o):this.eventFromException(e,o);return this._process(()=>i.then(e=>this._captureEvent(e,o,a)),r?"unknown":"error"),o.event_id}captureEvent(e,t,n){const a=pe();if(t?.originalException&&fe(t.originalException))return h&&U.log(Ss),a;const o={event_id:a,...t},s=e.sdkProcessingMetadata||{},r=s.capturedSpanScope,i=s.capturedSpanIsolationScope,c=Os(e.type);return this._process(()=>this._captureEvent(e,o,r||n,i),c),o.event_id}captureSession(e){this.sendSession(e),je(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(e){const t=this._transport;if(!t)return!0;this.emit("flush");const n=await this._isClientDoneProcessing(e),a=await t.flush(e);return n&&a}async close(e){const t=await this.flush(e);return this.getOptions().enabled=!1,this.emit("close"),t}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];yo(this,e,this._integrations),t||ko(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let n=function(e,t,n,a){const o=Jo(n),s=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){if(!t)return e;const n=e.sdk||{};e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0}}(e,n?.sdk);const r=Yo(e,o,a,t);return delete e.sdkProcessingMetadata,Lo(r,[[{type:s},e]])}(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=No(n,Ho(e));this.sendEnvelope(n).then(t=>this.emit("afterSendEvent",e,t))}sendSession(e){const{release:t,environment:n=He}=this._options;if("aggregates"in e){const a=e.attrs||{};if(!a.release&&!t)return void(h&&U.warn(xs));a.release=a.release||t,a.environment=a.environment||n,e.attrs=a}else{if(!e.release&&!t)return void(h&&U.warn(xs));e.release=e.release||t,e.environment=e.environment||n}this.emit("beforeSendSession",e);const a=function(e,t,n,a){const o=Jo(n);return Lo({sent_at:(new Date).toISOString(),...o&&{sdk:o},...!!a&&t&&{dsn:ft(t)}},["aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(a)}recordDroppedEvent(e,t,n=1){if(this._options.sendClientReports){const a=`${e}:${t}`;h&&U.log(`Recording outcome: "${a}"${n>1?` (${n} times)`:""}`),this._outcomes[a]=(this._outcomes[a]||0)+n}}on(e,t){const n=this._hooks[e]=this._hooks[e]||new Set,a=(...e)=>t(...e);return n.add(a),()=>{n.delete(a)}}emit(e,...t){const n=this._hooks[e];n&&n.forEach(e=>e(...t))}async sendEnvelope(e){if(this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport)try{return await this._transport.send(e)}catch(e){return h&&U.error("Error while sending envelope:",e),{}}return h&&U.error("Transport disabled"),{}}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach(t=>{t&&yo(e,t,n)}),n}(this,e),ko(this,e)}_updateSessionFromEvent(e,t){let n="fatal"===t.level,a=!1;const o=t.exception?.values;if(o){a=!0,n=!1;for(const e of o)if(!1===e.mechanism?.handled){n=!0;break}}const s="ok"===e.status;(s&&0===e.errors||s&&n)&&(je(e,{...n&&{status:"crashed"},errors:e.errors||Number(a||n)}),this.captureSession(e))}async _isClientDoneProcessing(e){let t=0;for(;!e||t<e;){if(await new Promise(e=>setTimeout(e,1)),!this._numProcessing)return!0;t++}return!1}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n,a){const o=this.getOptions(),s=Object.keys(this._integrations);return!t.integrations&&s?.length&&(t.integrations=s),this.emit("preprocessEvent",e,t),e.type||a.setLastEventId(e.event_id||t.event_id),yn(o,e,t,n,this,a).then(e=>{if(null===e)return e;this.emit("postprocessEvent",e,t),e.contexts={trace:qe(n),...e.contexts};const a=on(this,n);return e.sdkProcessingMetadata={dynamicSamplingContext:a,...e.sdkProcessingMetadata},e})}_captureEvent(e,t={},n=Le(),a=Ne()){return h&&Ds(e)&&U.log(`Captured error event \`${wo(e)[0]||"<unknown>"}\``),this._processEvent(e,t,n,a).then(e=>e.event_id,e=>{h&&(Ms(e)?U.log(e.message):Is(e)?U.warn(e.message):U.warn(e))})}_processEvent(e,t,n,a){const o=this.getOptions(),{sampleRate:s}=o,r=Ps(e),i=Ds(e),c=`before send for type \`${e.type||"error"}\``,u=void 0===s?void 0:Mt(s);if(i&&"number"==typeof u&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),Ve(Cs(`Discarding event because it's not included in the random sample (sampling rate = ${s})`));const l=Os(e.type);return this._prepareEvent(e,t,n,a).then(e=>{if(null===e)throw this.recordDroppedEvent("event_processor",l),Cs("An event processor returned `null`, will not send event.");if(t.data&&!0===t.data.__sentry__)return e;const n=function(e,t,n,a){const{beforeSend:o,beforeSendTransaction:s,beforeSendSpan:r,ignoreSpans:i}=t;let c=n;if(Ds(c)&&o)return o(c,a);if(Ps(c)){if(r||i){const t=function(e){const{trace_id:t,parent_span_id:n,span_id:a,status:o,origin:s,data:r,op:i}=e.contexts?.trace??{};return{data:r??{},description:e.transaction,op:i,parent_span_id:n,span_id:a??"",start_timestamp:e.start_timestamp??0,status:o,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:r?.[st],exclusive_time:r?.[rt],measurements:e.measurements,is_segment:!0}}(c);if(i?.length&&Ko(t,i))return null;if(r){const e=r(t);e?c=Se(n,{type:"transaction",timestamp:(u=e).timestamp,start_timestamp:u.start_timestamp,transaction:u.description,contexts:{trace:{trace_id:u.trace_id,span_id:u.span_id,parent_span_id:u.parent_span_id,op:u.op,status:u.status,origin:u.origin,data:{...u.data,...u.profile_id&&{[st]:u.profile_id},...u.exclusive_time&&{[rt]:u.exclusive_time}}}},measurements:u.measurements}):Qt()}if(c.spans){const t=[],n=c.spans;for(const e of n)if(i?.length&&Ko(e,i))Xo(n,e);else if(r){const n=r(e);n?t.push(n):(Qt(),t.push(e))}else t.push(e);const a=c.spans.length-t.length;a&&e.recordDroppedEvent("before_send","span",a),c.spans=t}}if(s){if(c.spans){const e=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return s(c,a)}}var u;return c}(this,o,e,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if(x(e))return e.then(e=>{if(!j(e)&&null!==e)throw Ts(n);return e},e=>{throw Ts(`${t} rejected with ${e}`)});if(!j(e)&&null!==e)throw Ts(n);return e}(n,c)}).then(o=>{if(null===o){if(this.recordDroppedEvent("before_send",l),r){const t=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",t)}throw Cs(`${c} returned \`null\`, will not send event.`)}const s=n.getSession()||a.getSession();if(i&&s&&this._updateSessionFromEvent(s,o),r){const e=(o.sdkProcessingMetadata?.spanCountBeforeProcessing||0)-(o.spans?o.spans.length:0);e>0&&this.recordDroppedEvent("before_send","span",e)}const u=o.transaction_info;if(r&&u&&o.transaction!==e.transaction){const e="custom";o.transaction_info={...u,source:e}}return this.sendEvent(o,t),o}).then(null,e=>{if(Ms(e)||Is(e))throw e;throw this.captureException(e,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:e}),Ts(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)})}_process(e,t){this._numProcessing++,this._promiseBuffer.add(e).then(e=>(this._numProcessing--,e),e=>(this._numProcessing--,e===fs&&this.recordDroppedEvent("queue_overflow",t),e))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([e,t])=>{const[n,a]=e.split(":");return{reason:n,category:a,quantity:t}})}_flushOutcomes(){h&&U.log("Flushing outcomes...");const e=this._clearOutcomes();if(0===e.length)return void(h&&U.log("No outcomes to send"));if(!this._dsn)return void(h&&U.log("No dsn provided, will not send outcomes"));h&&U.log("Sending outcomes:",e);const t=(n=e,Lo((a=this._options.tunnel&&ft(this._dsn))?{dsn:a}:{},[[{type:"client_report"},{timestamp:ye(),discarded_events:n}]]));var n,a;this.sendEnvelope(t)}}function Os(e){return"replay_event"===e?"replay":e||"error"}function Ds(e){return void 0===e.type}function Ps(e){return"transaction"===e.type}function Ls(e){let t=0;return e.name&&(t+=2*e.name.length),t+=8,t+$s(e.attributes)}function Ns(e){let t=0;return e.message&&(t+=2*e.message.length),t+$s(e.attributes)}function $s(e){if(!e)return 0;let t=0;return Object.values(e).forEach(e=>{Array.isArray(e)?t+=e.length*Fs(e[0]):_(e)?t+=Fs(e):t+=100}),t}function Fs(e){return"string"==typeof e?2*e.length:"number"==typeof e?8:"boolean"==typeof e?4:0}function Us(e){"aggregates"in e?void 0===e.attrs?.ip_address&&(e.attrs={...e.attrs,ip_address:"{{auto}}"}):void 0===e.ipAddress&&(e.ipAddress="{{auto}}")}function Bs(e,t){const n=Hs(e,t),a={type:Js(t),value:Ys(t)};return n.length&&(a.stacktrace={frames:n}),void 0===a.type&&""===a.value&&(a.value="Unrecoverable error caught"),a}function qs(e,t){return{exception:{values:[Bs(e,t)]}}}function Hs(e,t){const n=t.stacktrace||t.stack||"",a=function(e){return e&&Ws.test(e.message)?1:0}(t),o=function(e){return"number"==typeof e.framesToPop?e.framesToPop:0}(t);try{return e(n,a,o)}catch{}return[]}const Ws=/Minified React error #\d+;/i;function Vs(e){return"undefined"!=typeof WebAssembly&&void 0!==WebAssembly.Exception&&e instanceof WebAssembly.Exception}function Js(e){const t=e?.name;return!t&&Vs(e)?e.message&&Array.isArray(e.message)&&2==e.message.length?e.message[0]:"WebAssembly.Exception":t}function Ys(e){const t=e?.message;return Vs(e)?Array.isArray(e.message)&&2==e.message.length?e.message[1]:"wasm exception":t?t.error&&"string"==typeof t.error.message?t.error.message:t:"No error message"}function Gs(e,t,n,a){const o=Xs(e,t,n?.syntheticException||void 0,a);return ge(o),o.level="error",n?.event_id&&(o.event_id=n.event_id),We(o)}function Ks(e,t,n="info",a,o){const s=Zs(e,t,a?.syntheticException||void 0,o);return s.level=n,a?.event_id&&(s.event_id=a.event_id),We(s)}function Xs(e,t,n,a,o){let s;if(y(t)&&t.error)return qs(e,t.error);if(b(t)||k(t,"DOMException")){const o=t;if("stack"in t)s=qs(e,t);else{const t=o.name||(b(o)?"DOMError":"DOMException"),r=o.message?`${t}: ${o.message}`:t;s=Zs(e,r,n,a),he(s,r)}return"code"in o&&(s.tags={...s.tags,"DOMException.code":`${o.code}`}),s}return f(t)?qs(e,t):j(t)||S(t)?(s=function(e,t,n,a){const o=Be(),s=o?.getOptions().normalizeDepth,r=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}}(t),i={__serialized__:fn(t,s)};if(r)return{exception:{values:[Bs(e,r)]},extra:i};const c={exception:{values:[{type:S(t)?t.constructor.name:a?"UnhandledRejection":"Error",value:Qs(t,{isUnhandledRejection:a})}]},extra:i};if(n){const t=Hs(e,n);t.length&&(c.exception.values[0].stacktrace={frames:t})}return c}(e,t,n,o),ge(s,{synthetic:!0}),s):(s=Zs(e,t,n,a),he(s,`${t}`,void 0),ge(s,{synthetic:!0}),s)}function Zs(e,t,n,a){const o={};if(a&&n){const a=Hs(e,n);a.length&&(o.exception={values:[{value:t,stacktrace:{frames:a}}]}),ge(o,{synthetic:!0})}if(v(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return o.logentry={message:e,params:n},o}return o.message=t,o}function Qs(e,{isUnhandledRejection:t}){const n=function(e){const t=Object.keys(V(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}(e),a=t?"promise rejection":"exception";return y(e)?`Event \`ErrorEvent\` captured as ${a} with message \`${e.message}\``:S(e)?`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}(e)}\` (type=${e.type}) captured as ${a}`:`Object captured as ${a} with keys: ${n}`}const er=l;let tr=0;function nr(){return tr>0}function ar(e,t={}){if(!function(e){return"function"==typeof e}(e))return e;try{const t=e.__sentry_wrapped__;if(t)return"function"==typeof t?t:e;if(W(e))return e}catch{return e}const n=function(...n){try{const a=n.map(e=>ar(e,t));return e.apply(this,a)}catch(e){throw tr++,setTimeout(()=>{tr--}),Fe(a=>{a.addEventProcessor(e=>(t.mechanism&&(he(e,void 0,void 0),ge(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),wn(e)}),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}catch{}H(n,e),q(e,"__sentry_wrapped__",n);try{Object.getOwnPropertyDescriptor(n,"name").configurable&&Object.defineProperty(n,"name",{get:()=>e.name})}catch{}return n}function or(){const e=A(),{referrer:t}=er.document||{},{userAgent:n}=er.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}class sr extends As{constructor(e){const t=(n=e,{release:"string"==typeof __SENTRY_RELEASE__?__SENTRY_RELEASE__:er.SENTRY_RELEASE?.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...n});var n;!function(e,t,n=[t],a="npm"){const o=e._metadata||{};o.sdk||(o.sdk={name:`sentry.javascript.${t}`,packages:n.map(e=>({name:`${a}:@sentry/${e}`,version:u})),version:u}),e._metadata=o}(t,"browser",["browser"],er.SENTRY_SDK_SOURCE||"npm"),t._metadata?.sdk&&(t._metadata.sdk.settings={infer_ip:t.sendDefaultPii?"auto":"never",...t._metadata.sdk.settings}),super(t);const{sendDefaultPii:a,sendClientReports:o,enableLogs:s,_experiments:r,enableMetrics:i}=this._options,c=i??r?.enableMetrics??!0;er.document&&(o||s||c)&&er.document.addEventListener("visibilitychange",()=>{"hidden"===er.document.visibilityState&&(o&&this._flushOutcomes(),s&&ss(this),c&&ms(this))}),a&&this.on("beforeSendSession",Us)}eventFromException(e,t){return Gs(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",n){return Ks(this._options.stackParser,e,t,n,this._options.attachStacktrace)}_prepareEvent(e,t,n,a){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n,a)}}const rr={},ir={};function cr(e,t){rr[e]=rr[e]||[],rr[e].push(t)}function ur(e,t){if(!ir[e]){ir[e]=!0;try{t()}catch(t){h&&U.error(`Error while instrumenting ${e}`,t)}}}function lr(e,t){const n=e&&rr[e];if(n)for(const a of n)try{a(t)}catch(t){h&&U.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${ne(a)}\nError:`,t)}}function pr(e){const t="console";cr(t,e),ur(t,dr)}function dr(){"console"in l&&D.forEach(function(e){e in l.console&&B(l.console,e,function(t){return P[e]=t,function(...t){lr("console",{args:t,level:e});const n=P[e];n?.apply(l.console,t)}})})}const mr=l;function hr(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function gr(){if("string"==typeof EdgeRuntime)return!0;if(!function(){if(!("fetch"in mr))return!1;try{return new Headers,new Request("data:,"),new Response,!0}catch{return!1}}())return!1;if(hr(mr.fetch))return!0;let e=!1;const t=mr.document;if(t&&"function"==typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow?.fetch&&(e=hr(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){h&&U.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return e}function fr(e,t){const n="fetch";cr(n,e),ur(n,()=>kr(void 0,t))}function kr(e,t=!1){t&&!gr()||B(l,"fetch",function(t){return function(...n){const a=new Error,{method:o,url:s}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){const[t,n]=e;return{url:wr(t),method:br(n,"method")?String(n.method).toUpperCase():"GET"}}const t=e[0];return{url:wr(t),method:br(t,"method")?String(t.method).toUpperCase():"GET"}}(n),r={args:n,fetchData:{method:o,url:s},startTimestamp:1e3*ve(),virtualError:a,headers:vr(n)};return e||lr("fetch",{...r}),t.apply(l,n).then(async t=>(e?e(t):lr("fetch",{...r,endTimestamp:1e3*ve(),response:t}),t),e=>{if(lr("fetch",{...r,endTimestamp:1e3*ve(),error:e}),f(e)&&void 0===e.stack&&(e.stack=a.stack,q(e,"framesToPop",1)),e instanceof TypeError&&("Failed to fetch"===e.message||"Load failed"===e.message||"NetworkError when attempting to fetch resource."===e.message))try{const t=new URL(r.fetchData.url);e.message=`${e.message} (${t.host})`}catch{}throw e})}})}function yr(e){let t;try{t=e.clone()}catch{return}!async function(e,t){if(e?.body){const n=e.body,a=n.getReader(),o=setTimeout(()=>{n.cancel().then(null,()=>{})},9e4);let s=!0;for(;s;){let e;try{e=setTimeout(()=>{n.cancel().then(null,()=>{})},5e3);const{done:o}=await a.read();clearTimeout(e),o&&(t(),s=!1)}catch{s=!1}finally{clearTimeout(e)}}clearTimeout(o),a.releaseLock(),n.cancel().then(null,()=>{})}}(t,()=>{lr("fetch-body-resolved",{endTimestamp:1e3*ve(),response:e})})}function br(e,t){return!!e&&"object"==typeof e&&!!e[t]}function wr(e){return"string"==typeof e?e:e?br(e,"url")?e.url:e.toString?e.toString():"":""}function vr(e){const[t,n]=e;try{if("object"==typeof n&&null!==n&&"headers"in n&&n.headers)return new Headers(n.headers);if(T(t))return new Headers(t.headers)}catch{}}const _r=100;function jr(e,t){const n=Be(),a=Ne();if(!n)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:s=_r}=n.getOptions();if(s<=0)return;const r={timestamp:ye(),...e},i=o?L(()=>o(r,t)):r;null!==i&&(n.emit&&n.emit("beforeAddBreadcrumb",i,t),a.addBreadcrumb(i,s))}function Sr(e){return"warn"===e?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}function xr(e){return void 0===e?void 0:e>=400&&e<500?"warning":e>=500?"error":void 0}const zr="thismessage:/";function Er(e){return"isRelative"in e}function Tr(e,t){const n=e.indexOf("://")<=0&&0!==e.indexOf("//"),a=t??(n?zr:void 0);try{if("canParse"in URL&&!URL.canParse(e,a))return;const t=new URL(e,a);return n?{isRelative:n,pathname:t.pathname,search:t.search,hash:t.hash}:t}catch{}}function Cr(e){if(Er(e))return e.pathname;const t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function Ir(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",a=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:a,relative:t[5]+n+a}}function Mr(e){return e.split(/[?#]/,1)[0]}const Rr=l;let Ar,Or,Dr;function Pr(e){cr("dom",e),ur("dom",Lr)}function Lr(){if(!Rr.document)return;const e=lr.bind(null,"dom"),t=Nr(e,!0);Rr.document.addEventListener("click",t,!1),Rr.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(t=>{const n=Rr,a=n[t]?.prototype;a?.hasOwnProperty?.("addEventListener")&&(B(a,"addEventListener",function(t){return function(n,a,o){if("click"===n||"keypress"==n)try{const a=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},s=a[n]=a[n]||{refCount:0};if(!s.handler){const a=Nr(e);s.handler=a,t.call(this,n,a,o)}s.refCount++}catch{}return t.call(this,n,a,o)}}),B(a,"removeEventListener",function(e){return function(t,n,a){if("click"===t||"keypress"==t)try{const n=this.__sentry_instrumentation_handlers__||{},o=n[t];o&&(o.refCount--,o.refCount<=0&&(e.call(this,t,o.handler,a),o.handler=void 0,delete n[t]),0===Object.keys(n).length&&delete this.__sentry_instrumentation_handlers__)}catch{}return e.call(this,t,n,a)}}))})}function Nr(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const a=function(e){try{return e.target}catch{return null}}(n);if(function(e,t){return"keypress"===e&&(!t?.tagName||"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&!t.isContentEditable)}(n.type,a))return;q(n,"_sentryCaptured",!0),a&&!a._sentryId&&q(a,"_sentryId",pe());const o="keypress"===n.type?"input":n.type;(function(e){if(e.type!==Or)return!1;try{if(!e.target||e.target._sentryId!==Dr)return!1}catch{}return!0})(n)||(e({event:n,name:o,global:t}),Or=n.type,Dr=a?a._sentryId:void 0),clearTimeout(Ar),Ar=Rr.setTimeout(()=>{Dr=void 0,Or=void 0},1e3)}}const $r="__sentry_xhr_v3__";function Fr(e){cr("xhr",e),ur("xhr",Ur)}function Ur(){if(!Rr.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const a=new Error,o=1e3*ve(),s=w(n[0])?n[0].toUpperCase():void 0,r=function(e){if(w(e))return e;try{return e.toString()}catch{}}(n[1]);if(!s||!r)return e.apply(t,n);t[$r]={method:s,url:r,request_headers:{}},"POST"===s&&r.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const i=()=>{const e=t[$r];if(e&&4===t.readyState){try{e.status_code=t.status}catch{}lr("xhr",{endTimestamp:1e3*ve(),startTimestamp:o,xhr:t,virtualError:a})}};return"onreadystatechange"in t&&"function"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(i(),e.apply(t,n))}):t.addEventListener("readystatechange",i),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[a,o]=n,s=t[$r];return s&&w(a)&&w(o)&&(s.request_headers[a.toLowerCase()]=o),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const a=t[$r];return a?(void 0!==n[0]&&(a.body=n[0]),lr("xhr",{startTimestamp:1e3*ve(),xhr:t}),e.apply(t,n)):e.apply(t,n)}})}let Br;function qr(e){const t="history";cr(t,e),ur(t,Hr)}function Hr(){function e(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const a=Br,o=function(e){try{return new URL(e,Rr.location.origin).toString()}catch{return e}}(String(n));if(Br=o,a===o)return e.apply(this,t);lr("history",{from:a,to:o})}return e.apply(this,t)}}Rr.addEventListener("popstate",()=>{const e=Rr.location.href,t=Br;Br=e,t!==e&&lr("history",{from:t,to:e})}),"history"in mr&&mr.history&&(B(Rr.history,"pushState",e),B(Rr.history,"replaceState",e))}const Wr="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Vr=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:"Breadcrumbs",setup(e){t.console&&pr(function(e){return function(t){if(Be()!==e)return;const n={category:"console",data:{arguments:t.args,logger:"console"},level:Sr(t.level),message:ie(t.args," ")};if("assert"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${ie(t.args.slice(1)," ")||"console.assert"}`,n.data.arguments=t.args.slice(1)}jr(n,{input:t.args,level:t.level})}}(e)),t.dom&&Pr(function(e,t){return function(n){if(Be()!==e)return;let a,o,s="object"==typeof t?t.serializeAttribute:void 0,r="object"==typeof t&&"number"==typeof t.maxStringLength?t.maxStringLength:void 0;r&&r>1024&&(Wr&&U.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${r} was configured. Sentry will use 1024 instead.`),r=1024),"string"==typeof s&&(s=[s]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;a=M(t,{keyAttrs:s,maxStringLength:r}),o=O(t)}catch{a="<unknown>"}if(0===a.length)return;const i={category:`ui.${n.name}`,message:a};o&&(i.data={"ui.component_name":o}),jr(i,{event:n.event,name:n.name,global:n.global})}}(e,t.dom)),t.xhr&&Fr(function(e){return function(t){if(Be()!==e)return;const{startTimestamp:n,endTimestamp:a}=t,o=t.xhr[$r];if(!n||!a||!o)return;const{method:s,url:r,status_code:i,body:c}=o,u={method:s,url:r,status_code:i},l={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:a},p={category:"xhr",data:u,type:"http",level:xr(i)};e.emit("beforeOutgoingRequestBreadcrumb",p,l),jr(p,l)}}(e)),t.fetch&&fr(function(e){return function(t){if(Be()!==e)return;const{startTimestamp:n,endTimestamp:a}=t;if(a&&(!t.fetchData.url.match(/sentry_key/)||"POST"!==t.fetchData.method))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,s={data:t.error,input:t.args,startTimestamp:n,endTimestamp:a},r={category:"fetch",data:o,level:"error",type:"http"};e.emit("beforeOutgoingRequestBreadcrumb",r,s),jr(r,s)}else{const o=t.response,s={...t.fetchData,status_code:o?.status};t.fetchData.request_body_size,t.fetchData.response_body_size;const r={input:t.args,response:o,startTimestamp:n,endTimestamp:a},i={category:"fetch",data:s,type:"http",level:xr(s.status_code)};e.emit("beforeOutgoingRequestBreadcrumb",i,r),jr(i,r)}}}(e)),t.history&&qr(function(e){return function(t){if(Be()!==e)return;let n=t.from,a=t.to;const o=Ir(er.location.href);let s=n?Ir(n):void 0;const r=Ir(a);s?.path||(s=o),o.protocol===r.protocol&&o.host===r.host&&(a=r.relative),o.protocol===s.protocol&&o.host===s.host&&(n=s.relative),jr({category:"navigation",data:{from:n,to:a}})}}(e)),t.sentry&&e.on("beforeSendEvent",function(e){return function(t){Be()===e&&jr({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:me(t)},{event:t})}}(e))}}},Jr=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],Yr=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:"BrowserApiErrors",setupOnce(){t.setTimeout&&B(er,"setTimeout",Gr),t.setInterval&&B(er,"setInterval",Gr),t.requestAnimationFrame&&B(er,"requestAnimationFrame",Kr),t.XMLHttpRequest&&"XMLHttpRequest"in er&&B(XMLHttpRequest.prototype,"send",Xr);const e=t.eventTarget;e&&(Array.isArray(e)?e:Jr).forEach(e=>function(e,t){const n=er,a=n[e]?.prototype;a?.hasOwnProperty?.("addEventListener")&&(B(a,"addEventListener",function(n){return function(a,o,s){try{"function"==typeof o.handleEvent&&(o.handleEvent=ar(o.handleEvent,{mechanism:{data:{handler:ne(o),target:e},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return t.unregisterOriginalCallbacks&&function(e,t,n){e&&"object"==typeof e&&"removeEventListener"in e&&"function"==typeof e.removeEventListener&&e.removeEventListener(t,n)}(this,a,o),n.apply(this,[a,ar(o,{mechanism:{data:{handler:ne(o),target:e},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),s])}}),B(a,"removeEventListener",function(e){return function(t,n,a){try{const o=n.__sentry_wrapped__;o&&e.call(this,t,o,a)}catch{}return e.call(this,t,n,a)}}))}(e,t))}}};function Gr(e){return function(...t){const n=t[0];return t[0]=ar(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${ne(e)}`}}),e.apply(this,t)}}function Kr(e){return function(t){return e.apply(this,[ar(t,{mechanism:{data:{handler:ne(e)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function Xr(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(e=>{e in n&&"function"==typeof n[e]&&B(n,e,function(t){const n={mechanism:{data:{handler:ne(t)},handled:!1,type:`auto.browser.browserapierrors.xhr.${e}`}},a=W(t);return a&&(n.mechanism.data.handler=ne(a)),ar(t,n)})}),e.apply(this,t)}}const Zr=()=>({name:"BrowserSession",setupOnce(){void 0!==er.document?(Dn({ignoreDuration:!0}),Nn(),qr(({from:e,to:t})=>{void 0!==e&&e!==t&&(Dn({ignoreDuration:!0}),Nn())})):Wr&&U.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.")}});let Qr=null;function ei(e){const t="error";cr(t,e),ur(t,ti)}function ti(){Qr=l.onerror,l.onerror=function(e,t,n,a,o){return lr("error",{column:a,error:o,line:n,msg:e,url:t}),!!Qr&&Qr.apply(this,arguments)},l.onerror.__SENTRY_INSTRUMENTED__=!0}let ni=null;function ai(e){const t="unhandledrejection";cr(t,e),ur(t,oi)}function oi(){ni=l.onunhandledrejection,l.onunhandledrejection=function(e){return lr("unhandledrejection",e),!ni||ni.apply(this,arguments)},l.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const si=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:"GlobalHandlers",setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(function(e){ei(t=>{const{stackParser:n,attachStacktrace:a}=ui();if(Be()!==e||nr())return;const{msg:o,url:s,line:r,column:i,error:c}=t,u=function(e,t,n,a){const o=e.exception=e.exception||{},s=o.values=o.values||[],r=s[0]=s[0]||{},i=r.stacktrace=r.stacktrace||{},c=i.frames=i.frames||[],u=a,l=n,p=function(e){if(w(e)&&0!==e.length){if(e.startsWith("data:")){const t=e.match(/^data:([^;]+)/);return`<data:${t?t[1]:"text/javascript"}${e.includes("base64,")?",base64":""}>`}return e}}(t)??A();return 0===c.length&&c.push({colno:u,filename:p,function:K,in_app:!0,lineno:l}),e}(Xs(n,c||o,void 0,a,!1),s,r,i);u.level="error",_n(u,{originalException:c,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})})}(e),ci("onerror")),t.onunhandledrejection&&(function(e){ai(t=>{const{stackParser:n,attachStacktrace:a}=ui();if(Be()!==e||nr())return;const o=ri(t),s=_(o)?ii(o):Xs(n,o,void 0,a,!0);s.level="error",_n(s,{originalException:o,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})})}(e),ci("onunhandledrejection"))}}};function ri(e){if(_(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch{}return e}function ii(e){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function ci(e){Wr&&U.log(`Global Handler attached: ${e}`)}function ui(){const e=Be();return e?.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const li=()=>({name:"HttpContext",preprocessEvent(e){if(!er.navigator&&!er.location&&!er.document)return;const t=or(),n={...t.headers,...e.request?.headers};e.request={...t,...e.request,headers:n}}});function pi(e,t,n,a,o,s){if(!o.exception?.values||!s||!z(s.originalException,Error))return;const r=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;r&&(o.exception.values=di(e,t,a,s.originalException,n,o.exception.values,r,0))}function di(e,t,n,a,o,s,r,i){if(s.length>=n+1)return s;let c=[...s];if(z(a[o],Error)){mi(r,i);const s=e(t,a[o]),u=c.length;hi(s,o,u,i),c=di(e,t,n,a[o],o,[s,...c],s,u)}return Array.isArray(a.errors)&&a.errors.forEach((a,s)=>{if(z(a,Error)){mi(r,i);const u=e(t,a),l=c.length;hi(u,`errors[${s}]`,l,i),c=di(e,t,n,a,o,[u,...c],u,l)}}),c}function mi(e,t){e.mechanism={handled:!0,type:"auto.core.linked_errors",...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function hi(e,t,n,a){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:a}}const gi=(e={})=>{const t=e.limit||5,n=e.key||"cause";return{name:"LinkedErrors",preprocessEvent(e,a,o){pi(Bs,o.getOptions().stackParser,n,t,e,a)}}};function fi(e,t,n,a){const o={filename:e,function:"<anonymous>"===t?K:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==a&&(o.colno=a),o}const ki=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,yi=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,bi=/\((\S*)(?::(\d+))(?::(\d+))\)/,wi=/at (.+?) ?\(data:(.+?),/,vi=[30,e=>{const t=e.match(wi);if(t)return{filename:`<data:${t[2]}>`,function:t[1]};const n=ki.exec(e);if(n){const[,e,t,a]=n;return fi(e,K,+t,+a)}const a=yi.exec(e);if(a){if(a[2]&&0===a[2].indexOf("eval")){const e=bi.exec(a[2]);e&&(a[2]=e[1],a[3]=e[2],a[4]=e[3])}const[e,t]=Ai(a[1]||K,a[2]);return fi(t,e,a[3]?+a[3]:void 0,a[4]?+a[4]:void 0)}}],_i=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ji=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Si=[50,e=>{const t=_i.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=ji.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||K;return[n,e]=Ai(n,e),fi(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],xi=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,zi=[40,e=>{const t=xi.exec(e);return t?fi(t[2],t[1]||K,+t[3],t[4]?+t[4]:void 0):void 0}],Ei=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,Ti=[10,e=>{const t=Ei.exec(e);return t?fi(t[2],t[3]||K,+t[1]):void 0}],Ci=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Ii=[20,e=>{const t=Ci.exec(e);return t?fi(t[5],t[3]||t[4]||K,+t[1],+t[2]):void 0}],Mi=[vi,Si],Ri=Q(...Mi),Ai=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),a=-1!==e.indexOf("safari-web-extension");return n||a?[-1!==e.indexOf("@")?e.split("@")[0]:K,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Oi="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Di={};function Pi(e){const t=Di[e];if(t)return t;let n=Rr[e];if(hr(n))return Di[e]=n.bind(Rr);const a=Rr.document;if(a&&"function"==typeof a.createElement)try{const t=a.createElement("iframe");t.hidden=!0,a.head.appendChild(t);const o=t.contentWindow;o?.[e]&&(n=o[e]),a.head.removeChild(t)}catch(t){Oi&&U.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?Di[e]=n.bind(Rr):n}function Li(...e){return Pi("setTimeout")(...e)}const Ni=40;function $i(e,t=Pi("fetch")){let n=0,a=0;return js(e,async function(o){const s=o.body.length;n+=s,a++;const r={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:e.headers,keepalive:n<=6e4&&a<15,...e.fetchOptions};try{const n=await t(e.url,r);return{statusCode:n.status,headers:{"x-sentry-rate-limits":n.headers.get("X-Sentry-Rate-Limits"),"retry-after":n.headers.get("Retry-After")}}}catch(e){throw Di.fetch=void 0,e}finally{n-=s,a--}},ks(e.bufferSize||Ni))}function Fi(e){return[jo(),To(),Yr(),Vr(),si(),gi(),Co(),li(),Zr()]}function Ui(e={}){const t=!e.skipBrowserExtensionCheck&&!!function(){if(void 0===er.window)return!1;const e=er;if(e.nw)return!1;const t=e.chrome||e.browser;if(!t?.runtime?.id)return!1;const n=A();return!(er===er.top&&["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"].some(e=>n.startsWith(`${e}://`)))}()&&(Wr&&L(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0);let n=null==e.defaultIntegrations?Fi():e.defaultIntegrations;const a={...e,enabled:!t&&e.enabled,stackParser:(o=e.stackParser||Ri,Array.isArray(o)?Q(...o):o),integrations:fo({integrations:e.integrations,defaultIntegrations:n}),transport:e.transport||$i};var o;return function(e,t){!0===t.debug&&(h?U.enable():L(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Le().update(t.initialScope);const n=new e(t);return Ao(n),n.init(),n}(sr,a)}function Bi(){}function qi(e){e()}function Hi(e,t={},n=Le()){const{message:a,name:o,email:s,url:r,source:i,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:o,message:a,url:r,source:i,associated_event_id:c}},type:"feedback",level:"info",tags:u},p=n?.getClient()||Be();return p&&p.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}function Wi(){return"undefined"!=typeof window&&(!(("undefined"==typeof __SENTRY_BROWSER_BUNDLE__||!__SENTRY_BROWSER_BUNDLE__)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0))||function(){const e=l.process;return"renderer"===e?.type}())}const Vi=l,Ji=Vi.document,Yi=Vi.navigator,Gi="Report a Bug",Ki=(e,t={includeReplay:!0})=>{if(!e.message)throw new Error("Unable to submit feedback with empty message");const n=Be();if(!n)throw new Error("No client setup, cannot send feedback.");e.tags&&Object.keys(e.tags).length&&Le().setTags(e.tags);const a=Hi({source:"api",url:A(),...e},t);return new Promise((e,t)=>{const o=setTimeout(()=>t("Unable to determine if Feedback was correctly sent."),3e4),s=n.on("afterSendEvent",(n,r)=>{if(n.event_id===a)return clearTimeout(o),s(),r?.statusCode&&r.statusCode>=200&&r.statusCode<300?e(a):t(403===r?.statusCode?"Unable to send feedback. This could be because this domain is not in your list of allowed domains.":"Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.")})})},Xi="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function Zi(e,t){return{...e,...t,tags:{...e.tags,...t.tags},onFormOpen:()=>{t.onFormOpen?.(),e.onFormOpen?.()},onFormClose:()=>{t.onFormClose?.(),e.onFormClose?.()},onSubmitSuccess:(n,a)=>{t.onSubmitSuccess?.(n,a),e.onSubmitSuccess?.(n,a)},onSubmitError:n=>{t.onSubmitError?.(n),e.onSubmitError?.(n)},onFormSubmitted:()=>{t.onFormSubmitted?.(),e.onFormSubmitted?.()},themeDark:{...e.themeDark,...t.themeDark},themeLight:{...e.themeLight,...t.themeLight}}}function Qi(e,t){return Object.entries(t).forEach(([t,n])=>{e.setAttributeNS(null,t,n)}),e}const ec="rgba(88, 74, 192, 1)",tc={foreground:"#2b2233",background:"#ffffff",accentForeground:"white",accentBackground:ec,successColor:"#268d75",errorColor:"#df3338",border:"1.5px solid rgba(41, 35, 47, 0.13)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(95%)"},nc={foreground:"#ebe6ef",background:"#29232f",accentForeground:"white",accentBackground:ec,successColor:"#2da98c",errorColor:"#f55459",border:"1.5px solid rgba(235, 230, 239, 0.15)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(150%)"};function ac(e){return`\n --foreground: ${e.foreground};\n --background: ${e.background};\n --accent-foreground: ${e.accentForeground};\n --accent-background: ${e.accentBackground};\n --success-color: ${e.successColor};\n --error-color: ${e.errorColor};\n --border: ${e.border};\n --box-shadow: ${e.boxShadow};\n --outline: ${e.outline};\n --interactive-filter: ${e.interactiveFilter};\n `}const oc=({lazyLoadIntegration:e,getModalIntegration:t,getScreenshotIntegration:n})=>({id:a="sentry-feedback",autoInject:o=!0,showBranding:s=!0,isEmailRequired:r=!1,isNameRequired:i=!1,showEmail:c=!0,showName:u=!0,enableScreenshot:l=!0,useSentryUser:p={email:"email",name:"username"},tags:d,styleNonce:m,scriptNonce:h,colorScheme:g="system",themeLight:f={},themeDark:k={},addScreenshotButtonLabel:y="Add a screenshot",cancelButtonLabel:b="Cancel",confirmButtonLabel:w="Confirm",emailLabel:v="Email",emailPlaceholder:_="your.email@example.org",formTitle:j="Report a Bug",isRequiredLabel:S="(required)",messageLabel:x="Description",messagePlaceholder:z="What's the bug? What did you expect?",nameLabel:E="Name",namePlaceholder:T="Your Name",removeScreenshotButtonLabel:C="Remove screenshot",submitButtonLabel:I="Send Bug Report",successMessageText:M="Thank you for your report!",triggerLabel:R=Gi,triggerAriaLabel:A="",highlightToolText:O="Highlight",hideToolText:D="Hide",removeHighlightText:P="Remove",onFormOpen:L,onFormClose:N,onSubmitSuccess:$,onSubmitError:F,onFormSubmitted:B}={})=>{const q={id:a,autoInject:o,showBranding:s,isEmailRequired:r,isNameRequired:i,showEmail:c,showName:u,enableScreenshot:l,useSentryUser:p,tags:d,styleNonce:m,scriptNonce:h,colorScheme:g,themeDark:k,themeLight:f,triggerLabel:R,triggerAriaLabel:A,cancelButtonLabel:b,submitButtonLabel:I,confirmButtonLabel:w,formTitle:j,emailLabel:v,emailPlaceholder:_,messageLabel:x,messagePlaceholder:z,nameLabel:E,namePlaceholder:T,successMessageText:M,isRequiredLabel:S,addScreenshotButtonLabel:y,removeScreenshotButtonLabel:C,highlightToolText:O,hideToolText:D,removeHighlightText:P,onFormClose:N,onFormOpen:L,onSubmitError:F,onSubmitSuccess:$,onFormSubmitted:B};let H=null,W=[];const V=e=>{if(!H){const t=Ji.createElement("div");t.id=String(e.id),Ji.body.appendChild(t),H=t.attachShadow({mode:"open"}),H.appendChild(function({colorScheme:e,themeDark:t,themeLight:n,styleNonce:a}){const o=Ji.createElement("style");return o.textContent=`\n:host {\n --font-family: system-ui, 'Helvetica Neue', Arial, sans-serif;\n --font-size: 14px;\n --z-index: 100000;\n\n --page-margin: 16px;\n --inset: auto 0 0 auto;\n --actor-inset: var(--inset);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${"system"!==e?"color-scheme: only light;":""}\n\n ${ac("dark"===e?{...nc,...t}:{...tc,...n})}\n}\n\n${"system"===e?`\n@media (prefers-color-scheme: dark) {\n :host {\n ${ac({...nc,...t})}\n }\n}`:""}\n}\n`,a&&o.setAttribute("nonce",a),o}(e))}return H},J=async a=>{const o=a.enableScreenshot&&!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(Yi.userAgent)||/Macintosh/i.test(Yi.userAgent)&&Yi.maxTouchPoints&&Yi.maxTouchPoints>1||!isSecureContext);let s,r;try{s=(t?t():await e("feedbackModalIntegration",h))(),bo(s)}catch{throw Xi&&U.error("[Feedback] Error when trying to load feedback integrations. Try using `feedbackSyncIntegration` in your `Sentry.init`."),new Error("[Feedback] Missing feedback modal integration!")}try{const t=o?n?n():await e("feedbackScreenshotIntegration",h):void 0;t&&(r=t(),bo(r))}catch{Xi&&U.error("[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.")}const i=s.createDialog({options:{...a,onFormClose:()=>{i?.close(),a.onFormClose?.()},onFormSubmitted:()=>{i?.close(),a.onFormSubmitted?.()}},screenshotIntegration:r,sendFeedback:Ki,shadow:V(a)});return i},Y=(e,t={})=>{const n=Zi(q,t),a="string"==typeof e?Ji.querySelector(e):"function"==typeof e.addEventListener?e:null;if(!a)throw Xi&&U.error("[Feedback] Unable to attach to target element"),new Error("Unable to attach to target element");let o=null;const s=async()=>{o||(o=await J({...n,onFormSubmitted:()=>{o?.removeFromDom(),n.onFormSubmitted?.()}})),o.appendToDom(),o.open()};a.addEventListener("click",s);const r=()=>{W=W.filter(e=>e!==r),o?.removeFromDom(),o=null,a.removeEventListener("click",s)};return W.push(r),r},G=(e={})=>{const t=Zi(q,e),n=V(t),a=function({triggerLabel:e,triggerAriaLabel:t,shadow:n,styleNonce:a}){const o=Ji.createElement("button");if(o.type="button",o.className="widget__actor",o.ariaHidden="false",o.ariaLabel=t||e||Gi,o.appendChild(function(){const e=e=>Vi.document.createElementNS("http://www.w3.org/2000/svg",e),t=Qi(e("svg"),{width:"20",height:"20",viewBox:"0 0 20 20",fill:"var(--actor-color, var(--foreground))"}),n=Qi(e("g"),{clipPath:"url(#clip0_57_80)"}),a=Qi(e("path"),{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z"});t.appendChild(n).appendChild(a);const o=e("defs"),s=Qi(e("clipPath"),{id:"clip0_57_80"}),r=Qi(e("rect"),{width:"20",height:"20",fill:"white"});return s.appendChild(r),o.appendChild(s),t.appendChild(o).appendChild(s).appendChild(r),t}()),e){const t=Ji.createElement("span");t.appendChild(Ji.createTextNode(e)),o.appendChild(t)}const s=function(e){const t=Ji.createElement("style");return t.textContent='\n.widget__actor {\n position: fixed;\n z-index: var(--z-index);\n margin: var(--page-margin);\n inset: var(--actor-inset);\n\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n line-height: 1.14em;\n text-decoration: none;\n\n background: var(--actor-background, var(--background));\n border-radius: var(--actor-border-radius, 1.7em/50%);\n border: var(--actor-border, var(--border));\n box-shadow: var(--actor-box-shadow, var(--box-shadow));\n color: var(--actor-color, var(--foreground));\n fill: var(--actor-color, var(--foreground));\n cursor: pointer;\n opacity: 1;\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n.widget__actor[aria-hidden="true"] {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n transform: translate(0, 16px) scale(0.98);\n}\n\n.widget__actor:hover {\n background: var(--actor-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n\n.widget__actor svg {\n width: 1.14em;\n height: 1.14em;\n}\n\n@media (max-width: 600px) {\n .widget__actor span {\n display: none;\n }\n}\n',e&&t.setAttribute("nonce",e),t}(a);return{el:o,appendToDom(){n.appendChild(s),n.appendChild(o)},removeFromDom(){o.remove(),s.remove()},show(){o.ariaHidden="false"},hide(){o.ariaHidden="true"}}}({triggerLabel:t.triggerLabel,triggerAriaLabel:t.triggerAriaLabel,shadow:n,styleNonce:m});return Y(a.el,{...t,onFormOpen(){a.hide()},onFormClose(){a.show()},onFormSubmitted(){a.show()}}),a};return{name:"Feedback",setupOnce(){Wi()&&q.autoInject&&("loading"===Ji.readyState?Ji.addEventListener("DOMContentLoaded",()=>G().appendToDom()):G().appendToDom())},attachTo:Y,createWidget(e={}){const t=G(Zi(q,e));return t.appendToDom(),t},createForm:async(e={})=>J(Zi(q,e)),remove(){H&&(H.parentElement?.remove(),H=null),W.forEach(e=>e()),W=[]}}};function sc(){const e=Be();return e?.getIntegrationByName("Feedback")}var rc,ic,cc,uc,lc,pc,dc,mc={},hc=[],gc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,fc=Array.isArray;function kc(e,t){for(var n in t)e[n]=t[n];return e}function yc(e){var t=e.parentNode;t&&t.removeChild(e)}function bc(e,t,n){var a,o,s,r={};for(s in t)"key"==s?a=t[s]:"ref"==s?o=t[s]:r[s]=t[s];if(arguments.length>2&&(r.children=arguments.length>3?rc.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===r[s]&&(r[s]=e.defaultProps[s]);return wc(e,r,a,o,null)}function wc(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++cc:o,__i:-1,__u:0};return null==o&&null!=ic.vnode&&ic.vnode(s),s}function vc(e){return e.children}function _c(e,t){this.props=e,this.context=t}function jc(e,t){if(null==t)return e.__?jc(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?jc(e):null}function Sc(e,t,n){var a,o=e.__v,s=o.__e,r=e.__P;if(r)return(a=kc({},o)).__v=o.__v+1,ic.vnode&&ic.vnode(a),Dc(r,a,o,e.__n,void 0!==r.ownerSVGElement,32&o.__u?[s]:null,t,null==s?jc(o):s,!!(32&o.__u),n),a.__.__k[a.__i]=a,a.__d=void 0,a.__e!=s&&xc(a),a}function xc(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return xc(e)}}function zc(e){(!e.__d&&(e.__d=!0)&&uc.push(e)&&!Ec.__r++||lc!==ic.debounceRendering)&&((lc=ic.debounceRendering)||pc)(Ec)}function Ec(){var e,t,n,a=[],o=[];for(uc.sort(dc);e=uc.shift();)e.__d&&(n=uc.length,t=Sc(e,a,o)||t,0===n||uc.length>n?(Pc(a,t,o),o.length=a.length=0,t=void 0,uc.sort(dc)):t&&ic.__c&&ic.__c(t,hc));t&&Pc(a,t,o),Ec.__r=0}function Tc(e,t,n,a,o,s,r,i,c,u,l){var p,d,m,h,g,f=a&&a.__k||hc,k=t.length;for(n.__d=c,function(e,t,n){var a,o,s,r,i,c=t.length,u=n.length,l=u,p=0;for(e.__k=[],a=0;a<c;a++)null!=(o=e.__k[a]=null==(o=t[a])||"boolean"==typeof o||"function"==typeof o?null:"string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?wc(null,o,null,null,o):fc(o)?wc(vc,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?wc(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,i=Ic(o,n,r=a+p,l),o.__i=i,s=null,-1!==i&&(l--,(s=n[i])&&(s.__u|=131072)),null==s||null===s.__v?(-1==i&&p--,"function"!=typeof o.type&&(o.__u|=65536)):i!==r&&(i===r+1?p++:i>r?l>c-r?p+=i-r:p--:p=i<r&&i==r-1?i-r:0,i!==a+p&&(o.__u|=65536))):(s=n[a])&&null==s.key&&s.__e&&(s.__e==e.__d&&(e.__d=jc(s)),$c(s,s,!1),n[a]=null,l--);if(l)for(a=0;a<u;a++)null!=(s=n[a])&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=jc(s)),$c(s,s))}(n,t,f),c=n.__d,p=0;p<k;p++)null!=(m=n.__k[p])&&"boolean"!=typeof m&&"function"!=typeof m&&(d=-1===m.__i?mc:f[m.__i]||mc,m.__i=p,Dc(e,m,d,o,s,r,i,c,u,l),h=m.__e,m.ref&&d.ref!=m.ref&&(d.ref&&Nc(d.ref,null,m),l.push(m.ref,m.__c||h,m)),null==g&&null!=h&&(g=h),65536&m.__u||d.__k===m.__k?c=Cc(m,c,e):"function"==typeof m.type&&void 0!==m.__d?c=m.__d:h&&(c=h.nextSibling),m.__d=void 0,m.__u&=-196609);n.__d=c,n.__e=g}function Cc(e,t,n){var a,o;if("function"==typeof e.type){for(a=e.__k,o=0;a&&o<a.length;o++)a[o]&&(a[o].__=e,t=Cc(a[o],t,n));return t}e.__e!=t&&(n.insertBefore(e.__e,t||null),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8===t.nodeType);return t}function Ic(e,t,n,a){var o=e.key,s=e.type,r=n-1,i=n+1,c=t[n];if(null===c||c&&o==c.key&&s===c.type)return n;if(a>(null==c||131072&c.__u?0:1))for(;r>=0||i<t.length;){if(r>=0){if((c=t[r])&&!(131072&c.__u)&&o==c.key&&s===c.type)return r;r--}if(i<t.length){if((c=t[i])&&!(131072&c.__u)&&o==c.key&&s===c.type)return i;i++}}return-1}function Mc(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||gc.test(t)?n:n+"px"}function Rc(e,t,n,a,o){var s;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof a&&(e.style.cssText=a=""),a)for(t in a)n&&t in n||Mc(e.style,t,"");if(n)for(t in n)a&&n[t]===a[t]||Mc(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])s=t!==(t=t.replace(/(PointerCapture)$|Capture$/i,"$1")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?a?n.u=a.u:(n.u=Date.now(),e.addEventListener(t,s?Oc:Ac,s)):e.removeEventListener(t,s?Oc:Ac,s);else{if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&"rowSpan"!==t&&"colSpan"!==t&&"role"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function Ac(e){if(this.l){var t=this.l[e.type+!1];if(e.t){if(e.t<=t.u)return}else e.t=Date.now();return t(ic.event?ic.event(e):e)}}function Oc(e){if(this.l)return this.l[e.type+!0](ic.event?ic.event(e):e)}function Dc(e,t,n,a,o,s,r,i,c,u){var l,p,d,m,h,g,f,k,y,b,w,v,_,j,S,x=t.type;if(void 0!==t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),s=[i=t.__e=n.__e]),(l=ic.__b)&&l(t);e:if("function"==typeof x)try{if(k=t.props,y=(l=x.contextType)&&a[l.__c],b=l?y?y.props.value:l.__:a,n.__c?f=(p=t.__c=n.__c).__=p.__E:("prototype"in x&&x.prototype.render?t.__c=p=new x(k,b):(t.__c=p=new _c(k,b),p.constructor=x,p.render=Fc),y&&y.sub(p),p.props=k,p.state||(p.state={}),p.context=b,p.__n=a,d=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=x.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=kc({},p.__s)),kc(p.__s,x.getDerivedStateFromProps(k,p.__s))),m=p.props,h=p.state,p.__v=t,d)null==x.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==x.getDerivedStateFromProps&&k!==m&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,b),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,b)||t.__v===n.__v)){for(t.__v!==n.__v&&(p.props=k,p.state=p.__s,p.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.forEach(function(e){e&&(e.__=t)}),w=0;w<p._sb.length;w++)p.__h.push(p._sb[w]);p._sb=[],p.__h.length&&r.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,b),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(m,h,g)})}if(p.context=b,p.props=k,p.__P=e,p.__e=!1,v=ic.__r,_=0,"prototype"in x&&x.prototype.render){for(p.state=p.__s,p.__d=!1,v&&v(t),l=p.render(p.props,p.state,p.context),j=0;j<p._sb.length;j++)p.__h.push(p._sb[j]);p._sb=[]}else do{p.__d=!1,v&&v(t),l=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++_<25);p.state=p.__s,null!=p.getChildContext&&(a=kc(kc({},a),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(g=p.getSnapshotBeforeUpdate(m,h)),Tc(e,fc(S=null!=l&&l.type===vc&&null==l.key?l.props.children:l)?S:[S],t,n,a,o,s,r,i,c,u),p.base=t.__e,t.__u&=-161,p.__h.length&&r.push(p),f&&(p.__E=p.__=null)}catch(e){t.__v=null,c||null!=s?(t.__e=i,t.__u|=c?160:32,s[s.indexOf(i)]=null):(t.__e=n.__e,t.__k=n.__k),ic.__e(e,t,n)}else null==s&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Lc(n.__e,t,n,a,o,s,r,c,u);(l=ic.diffed)&&l(t)}function Pc(e,t,n){for(var a=0;a<n.length;a++)Nc(n[a],n[++a],n[++a]);ic.__c&&ic.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){ic.__e(e,t.__v)}})}function Lc(e,t,n,a,o,s,r,i,c){var u,l,p,d,m,h,g,f=n.props,k=t.props,y=t.type;if("svg"===y&&(o=!0),null!=s)for(u=0;u<s.length;u++)if((m=s[u])&&"setAttribute"in m==!!y&&(y?m.localName===y:3===m.nodeType)){e=m,s[u]=null;break}if(null==e){if(null===y)return document.createTextNode(k);e=o?document.createElementNS("http://www.w3.org/2000/svg",y):document.createElement(y,k.is&&k),s=null,i=!1}if(null===y)f===k||i&&e.data===k||(e.data=k);else{if(s=s&&rc.call(e.childNodes),f=n.props||mc,!i&&null!=s)for(f={},u=0;u<e.attributes.length;u++)f[(m=e.attributes[u]).name]=m.value;for(u in f)m=f[u],"children"==u||("dangerouslySetInnerHTML"==u?p=m:"key"===u||u in k||Rc(e,u,null,m,o));for(u in k)m=k[u],"children"==u?d=m:"dangerouslySetInnerHTML"==u?l=m:"value"==u?h=m:"checked"==u?g=m:"key"===u||i&&"function"!=typeof m||f[u]===m||Rc(e,u,m,f[u],o);if(l)i||p&&(l.__html===p.__html||l.__html===e.innerHTML)||(e.innerHTML=l.__html),t.__k=[];else if(p&&(e.innerHTML=""),Tc(e,fc(d)?d:[d],t,n,a,o&&"foreignObject"!==y,s,r,s?s[0]:n.__k&&jc(n,0),i,c),null!=s)for(u=s.length;u--;)null!=s[u]&&yc(s[u]);i||(u="value",void 0!==h&&(h!==e[u]||"progress"===y&&!h||"option"===y&&h!==f[u])&&Rc(e,u,h,f[u],!1),u="checked",void 0!==g&&g!==e[u]&&Rc(e,u,g,f[u],!1))}return e}function Nc(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){ic.__e(e,n)}}function $c(e,t,n){var a,o;if(ic.unmount&&ic.unmount(e),(a=e.ref)&&(a.current&&a.current!==e.__e||Nc(a,null,t)),null!=(a=e.__c)){if(a.componentWillUnmount)try{a.componentWillUnmount()}catch(e){ic.__e(e,t)}a.base=a.__P=null,e.__c=void 0}if(a=e.__k)for(o=0;o<a.length;o++)a[o]&&$c(a[o],t,n||"function"!=typeof e.type);n||null==e.__e||yc(e.__e),e.__=e.__e=e.__d=void 0}function Fc(e,t,n){return this.constructor(e,n)}rc=hc.slice,ic={__e:function(e,t,n,a){for(var o,s,r;t=t.__;)if((o=t.__c)&&!o.__)try{if((s=o.constructor)&&null!=s.getDerivedStateFromError&&(o.setState(s.getDerivedStateFromError(e)),r=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,a||{}),r=o.__d),r)return o.__E=o}catch(t){e=t}throw e}},cc=0,_c.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=kc({},this.state),"function"==typeof e&&(e=e(kc({},n),this.props)),e&&kc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),zc(this))},_c.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),zc(this))},_c.prototype.render=vc,uc=[],pc="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,dc=function(e,t){return e.__v.__b-t.__v.__b},Ec.__r=0;var Uc,Bc,qc,Hc,Wc=0,Vc=[],Jc=[],Yc=ic,Gc=Yc.__b,Kc=Yc.__r,Xc=Yc.diffed,Zc=Yc.__c,Qc=Yc.unmount,eu=Yc.__;function tu(e,t){Yc.__h&&Yc.__h(Bc,e,Wc||t),Wc=0;var n=Bc.__H||(Bc.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Jc}),n.__[e]}function nu(e){return Wc=1,au(mu,e)}function au(e,t,n){var a=tu(Uc++,2);if(a.t=e,!a.__c&&(a.__=[n?n(t):mu(void 0,t),function(e){var t=a.__N?a.__N[0]:a.__[0],n=a.t(t,e);t!==n&&(a.__N=[n,a.__[1]],a.__c.setState({}))}],a.__c=Bc,!Bc.u)){var o=function(e,t,n){if(!a.__c.__H)return!0;var o=a.__c.__H.__.filter(function(e){return!!e.__c});if(o.every(function(e){return!e.__N}))return!s||s.call(this,e,t,n);var r=!1;return o.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(r=!0)}}),!(!r&&a.__c.props===e)&&(!s||s.call(this,e,t,n))};Bc.u=!0;var s=Bc.shouldComponentUpdate,r=Bc.componentWillUpdate;Bc.componentWillUpdate=function(e,t,n){if(this.__e){var a=s;s=void 0,o(e,t,n),s=a}r&&r.call(this,e,t,n)},Bc.shouldComponentUpdate=o}return a.__N||a.__}function ou(e,t){var n=tu(Uc++,4);!Yc.__s&&du(n.__H,t)&&(n.__=e,n.i=t,Bc.__h.push(n))}function su(e,t){var n=tu(Uc++,7);return du(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}function ru(e,t){return Wc=8,su(function(){return e},t)}function iu(){for(var e;e=Vc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(lu),e.__H.__h.forEach(pu),e.__H.__h=[]}catch(t){e.__H.__h=[],Yc.__e(t,e.__v)}}Yc.__b=function(e){Bc=null,Gc&&Gc(e)},Yc.__=function(e,t){t.__k&&t.__k.__m&&(e.__m=t.__k.__m),eu&&eu(e,t)},Yc.__r=function(e){Kc&&Kc(e),Uc=0;var t=(Bc=e.__c).__H;t&&(qc===Bc?(t.__h=[],Bc.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.__V=Jc,e.__N=e.i=void 0})):(t.__h.forEach(lu),t.__h.forEach(pu),t.__h=[],Uc=0)),qc=Bc},Yc.diffed=function(e){Xc&&Xc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Vc.push(t)&&Hc===Yc.requestAnimationFrame||((Hc=Yc.requestAnimationFrame)||uu)(iu)),t.__H.__.forEach(function(e){e.i&&(e.__H=e.i),e.__V!==Jc&&(e.__=e.__V),e.i=void 0,e.__V=Jc})),qc=Bc=null},Yc.__c=function(e,t){t.some(function(e){try{e.__h.forEach(lu),e.__h=e.__h.filter(function(e){return!e.__||pu(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Yc.__e(n,e.__v)}}),Zc&&Zc(e,t)},Yc.unmount=function(e){Qc&&Qc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{lu(e)}catch(e){t=e}}),n.__H=void 0,t&&Yc.__e(t,n.__v))};var cu="function"==typeof requestAnimationFrame;function uu(e){var t,n=function(){clearTimeout(a),cu&&cancelAnimationFrame(t),setTimeout(e)},a=setTimeout(n,100);cu&&(t=requestAnimationFrame(n))}function lu(e){var t=Bc,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Bc=t}function pu(e){var t=Bc;e.__c=e.__(),Bc=t}function du(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function mu(e,t){return"function"==typeof t?t(e):t}const hu=Object.defineProperty({__proto__:null,useCallback:ru,useContext:function(e){var t=Bc.context[e.__c],n=tu(Uc++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(Bc)),t.props.value):e.__},useDebugValue:function(e,t){Yc.useDebugValue&&Yc.useDebugValue(t?t(e):e)},useEffect:function(e,t){var n=tu(Uc++,3);!Yc.__s&&du(n.__H,t)&&(n.__=e,n.i=t,Bc.__H.__h.push(n))},useErrorBoundary:function(e){var t=tu(Uc++,10),n=nu();return t.__=e,Bc.componentDidCatch||(Bc.componentDidCatch=function(e,a){t.__&&t.__(e,a),n[1](e)}),[n[0],function(){n[1](void 0)}]},useId:function(){var e=tu(Uc++,11);if(!e.__){for(var t=Bc.__v;null!==t&&!t.__m&&null!==t.__;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__},useImperativeHandle:function(e,t,n){Wc=6,ou(function(){return"function"==typeof e?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},null==n?n:n.concat(e))},useLayoutEffect:ou,useMemo:su,useReducer:au,useRef:function(e){return Wc=5,su(function(){return{current:e}},[])},useState:nu},Symbol.toStringTag,{value:"Module"});function gu(){const e=e=>Ji.createElementNS("http://www.w3.org/2000/svg",e),t=Qi(e("svg"),{width:"32",height:"30",viewBox:"0 0 72 66",fill:"inherit"}),n=Qi(e("path"),{transform:"translate(11, 11)",d:"M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"});return t.appendChild(n),t}function fu({options:e}){const t=su(()=>({__html:gu().outerHTML}),[]);return bc("h2",{class:"dialog__header"},bc("span",{class:"dialog__title"},e.formTitle),e.showBranding?bc("a",{class:"brand-link",target:"_blank",href:"https://sentry.io/welcome/",title:"Powered by Sentry",rel:"noopener noreferrer",dangerouslySetInnerHTML:t}):null)}function ku(e,t){const n=e.get(t);return"string"==typeof n?n.trim():""}function yu({options:e,defaultEmail:t,defaultName:n,onFormClose:a,onSubmit:o,onSubmitSuccess:s,onSubmitError:r,showEmail:i,showName:c,screenshotInput:u}){const{tags:l,addScreenshotButtonLabel:p,removeScreenshotButtonLabel:d,cancelButtonLabel:m,emailLabel:h,emailPlaceholder:g,isEmailRequired:f,isNameRequired:k,messageLabel:y,messagePlaceholder:b,nameLabel:w,namePlaceholder:v,submitButtonLabel:_,isRequiredLabel:j}=e,[S,x]=nu(!1),[z,E]=nu(null),[T,C]=nu(!1),I=u?.input,[M,R]=nu(null),A=ru(e=>{R(e),C(!1)},[]),O=ru(e=>{const t=function(e,t){const n=[];return t.isNameRequired&&!e.name&&n.push(t.nameLabel),t.isEmailRequired&&!e.email&&n.push(t.emailLabel),e.message||n.push(t.messageLabel),n}(e,{emailLabel:h,isEmailRequired:f,isNameRequired:k,messageLabel:y,nameLabel:w});return t.length>0?E(`Please enter in the following required fields: ${t.join(", ")}`):E(null),0===t.length},[h,f,k,y,w]),D=ru(async e=>{x(!0);try{if(e.preventDefault(),!(e.target instanceof HTMLFormElement))return;const t=new FormData(e.target),n=await(u&&T?u.value():void 0),a={name:ku(t,"name"),email:ku(t,"email"),message:ku(t,"message"),attachments:n?[n]:void 0};if(!O(a))return;try{const e=await o({name:a.name,email:a.email,message:a.message,source:"widget",tags:l},{attachments:a.attachments});s(a,e)}catch(e){Xi&&U.error(e),E(e),r(e)}}finally{x(!1)}},[u&&T,s,r]);return bc("form",{class:"form",onSubmit:D},I&&T?bc(I,{onError:A}):null,bc("fieldset",{class:"form__right","data-sentry-feedback":!0,disabled:S},bc("div",{class:"form__top"},z?bc("div",{class:"form__error-container"},z):null,c?bc("label",{for:"name",class:"form__label"},bc(bu,{label:w,isRequiredLabel:j,isRequired:k}),bc("input",{class:"form__input",defaultValue:n,id:"name",name:"name",placeholder:v,required:k,type:"text"})):bc("input",{"aria-hidden":!0,value:n,name:"name",type:"hidden"}),i?bc("label",{for:"email",class:"form__label"},bc(bu,{label:h,isRequiredLabel:j,isRequired:f}),bc("input",{class:"form__input",defaultValue:t,id:"email",name:"email",placeholder:g,required:f,type:"email"})):bc("input",{"aria-hidden":!0,value:t,name:"email",type:"hidden"}),bc("label",{for:"message",class:"form__label"},bc(bu,{label:y,isRequiredLabel:j,isRequired:!0}),bc("textarea",{autoFocus:!0,class:"form__input form__input--textarea",id:"message",name:"message",placeholder:b,required:!0,rows:5})),I?bc("label",{for:"screenshot",class:"form__label"},bc("button",{class:"btn btn--default",disabled:S,type:"button",onClick:()=>{R(null),C(e=>!e)}},T?d:p),M?bc("div",{class:"form__error-container"},M.message):null):null),bc("div",{class:"btn-group"},bc("button",{class:"btn btn--primary",disabled:S,type:"submit"},_),bc("button",{class:"btn btn--default",disabled:S,type:"button",onClick:a},m))))}function bu({label:e,isRequired:t,isRequiredLabel:n}){return bc("span",{class:"form__label__text"},e,t&&bc("span",{class:"form__label__text--required"},n))}function wu(){const e=e=>Vi.document.createElementNS("http://www.w3.org/2000/svg",e),t=Qi(e("svg"),{width:"16",height:"17",viewBox:"0 0 16 17",fill:"inherit"}),n=Qi(e("g"),{clipPath:"url(#clip0_57_156)"}),a=Qi(e("path"),{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z"}),o=Qi(e("path"),{d:"M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z"});t.appendChild(n).append(o,a);const s=e("defs"),r=Qi(e("clipPath"),{id:"clip0_57_156"}),i=Qi(e("rect"),{width:"16",height:"16",fill:"white",transform:"translate(0 0.5)"});return r.appendChild(i),s.appendChild(r),t.appendChild(s).appendChild(r).appendChild(i),t}function vu({open:e,onFormSubmitted:t,...n}){const a=n.options,o=su(()=>({__html:wu().outerHTML}),[]),[s,r]=nu(null),i=ru(()=>{s&&(clearTimeout(s),r(null)),t()},[s]),c=ru((e,a)=>{n.onSubmitSuccess(e,a),r(setTimeout(()=>{t(),r(null)},5e3))},[t]);return bc(vc,null,s?bc("div",{class:"success__position",onClick:i},bc("div",{class:"success__content"},a.successMessageText,bc("span",{class:"success__icon",dangerouslySetInnerHTML:o}))):bc("dialog",{class:"dialog",onClick:a.onFormClose,open:e},bc("div",{class:"dialog__position"},bc("div",{class:"dialog__content",onClick:e=>{e.stopPropagation()}},bc(fu,{options:a}),bc(yu,{...n,onSubmitSuccess:c})))))}const _u=()=>({name:"FeedbackModal",setupOnce(){},createDialog:({options:e,screenshotIntegration:t,sendFeedback:n,shadow:a})=>{const o=a,s=e.useSentryUser,r=function(){const e=Le().getUser(),t=Ne().getUser(),n=$e().getUser();return e&&Object.keys(e).length?e:t&&Object.keys(t).length?t:n}(),i=Ji.createElement("div"),c=function(e){const t=Ji.createElement("style");return t.textContent="\n:host {\n --dialog-inset: var(--inset);\n}\n\n\n.dialog {\n position: fixed;\n z-index: var(--z-index);\n margin: 0;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n height: 100vh;\n width: 100vw;\n\n color: var(--dialog-color, var(--foreground));\n fill: var(--dialog-color, var(--foreground));\n line-height: 1.75em;\n\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n inset: 0;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog__position {\n position: fixed;\n z-index: var(--z-index);\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n display: flex;\n max-height: calc(100vh - (2 * var(--page-margin)));\n}\n@media (max-width: 600px) {\n .dialog__position {\n inset: var(--page-margin);\n padding: 0;\n }\n}\n\n.dialog__position:has(.editor) {\n inset: var(--page-margin);\n padding: 0;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: var(--dialog-padding, 24px);\n max-width: 100%;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n\n background: var(--dialog-background, var(--background));\n border-radius: var(--dialog-border-radius, 20px);\n border: var(--dialog-border, var(--border));\n box-shadow: var(--dialog-box-shadow, var(--box-shadow));\n transform: translate(0, 0) scale(1);\n transition: transform 0.2s ease-in-out;\n}\n\n\n\n.dialog__header {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n font-weight: var(--dialog-header-weight, 600);\n margin: 0;\n}\n.dialog__title {\n align-self: center;\n width: var(--form-width, 272px);\n}\n\n@media (max-width: 600px) {\n .dialog__title {\n width: auto;\n }\n}\n\n.dialog__position:has(.editor) .dialog__title {\n width: auto;\n}\n\n\n.brand-link {\n display: inline-flex;\n}\n.brand-link:focus-visible {\n outline: var(--outline);\n}\n\n\n.form {\n display: flex;\n overflow: auto;\n flex-direction: row;\n gap: 16px;\n flex: 1 0;\n}\n\n.form fieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.form__right {\n flex: 0 0 auto;\n display: flex;\n overflow: auto;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n width: var(--form-width, 100%);\n}\n\n.dialog__position:has(.editor) .form__right {\n width: var(--form-width, 272px);\n}\n\n.form__top {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form__error-container {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n font-family: inherit;\n line-height: inherit;\n background: transparent;\n box-sizing: border-box;\n border: var(--input-border, var(--border));\n border-radius: var(--input-border-radius, 6px);\n color: var(--input-color, inherit);\n fill: var(--input-color, inherit);\n font-size: var(--input-font-size, inherit);\n font-weight: var(--input-font-weight, 500);\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n opacity: 0.65;\n color: var(--input-placeholder-color, inherit);\n filter: var(--interactive-filter);\n}\n\n.form__input:focus-visible {\n outline: var(--input-focus-outline, var(--outline));\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.error {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n\n.btn-group {\n display: grid;\n gap: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--button-font-size, inherit);\n font-weight: var(--button-font-weight, 600);\n padding: var(--button-padding, 6px 16px);\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n color: var(--button-primary-color, var(--accent-foreground));\n fill: var(--button-primary-color, var(--accent-foreground));\n background: var(--button-primary-background, var(--accent-background));\n border: var(--button-primary-border, var(--border));\n border-radius: var(--button-primary-border-radius, 6px);\n font-weight: var(--button-primary-font-weight, 500);\n}\n.btn--primary:hover {\n color: var(--button-primary-hover-color, var(--accent-foreground));\n fill: var(--button-primary-hover-color, var(--accent-foreground));\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n}\n.btn--primary:focus-visible {\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n outline: var(--button-primary-focus-outline, var(--outline));\n}\n\n.btn--default {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-background, var(--background));\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n font-weight: var(--button-font-weight, 500);\n}\n.btn--default:hover {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n.btn--default:focus-visible {\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n outline: var(--button-focus-outline, var(--outline));\n}\n\n\n.success__position {\n position: fixed;\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n z-index: var(--z-index);\n}\n.success__content {\n background: var(--success-background, var(--background));\n border: var(--success-border, var(--border));\n border-radius: var(--success-border-radius, 1.7em/50%);\n box-shadow: var(--success-box-shadow, var(--box-shadow));\n font-weight: var(--success-font-weight, 600);\n color: var(--success-color);\n fill: var(--success-color);\n padding: 12px 24px;\n line-height: 1.75em;\n\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success__icon {\n display: flex;\n}\n\n",e&&t.setAttribute("nonce",e),t}(e.styleNonce);let u="";const l={get el(){return i},appendToDom(){o.contains(c)||o.contains(i)||(o.appendChild(c),o.appendChild(i))},removeFromDom(){i.remove(),c.remove(),Ji.body.style.overflow=u},open(){d(!0),e.onFormOpen?.(),Be()?.emit("openFeedbackWidget"),u=Ji.body.style.overflow,Ji.body.style.overflow="hidden"},close(){d(!1),Ji.body.style.overflow=u}},p=t?.createInput({h:bc,hooks:hu,dialog:l,options:e}),d=t=>{!function(e,t){var n,a,o;ic.__&&ic.__(e,t),n=t.__k,a=[],o=[],Dc(t,e=t.__k=bc(vc,null,[e]),n||mc,mc,void 0!==t.ownerSVGElement,n?null:t.firstChild?rc.call(t.childNodes):null,a,n?n.__e:t.firstChild,!1,o),e.__d=void 0,Pc(a,e,o)}(bc(vu,{options:e,screenshotInput:p,showName:e.showName||e.isNameRequired,showEmail:e.showEmail||e.isEmailRequired,defaultName:s&&r?.[s.name]||"",defaultEmail:s&&r?.[s.email]||"",onFormClose:()=>{d(!1),e.onFormClose?.()},onSubmit:n,onSubmitSuccess:(t,n)=>{d(!1),e.onSubmitSuccess?.(t,n)},onSubmitError:t=>{e.onSubmitError?.(t)},onFormSubmitted:()=>{e.onFormSubmitted?.()},open:t}),i)};return l}});function ju(e){const t=Ji.createElement("style"),n="#1A141F",a="#302735";return t.textContent=`\n.editor {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n\n.editor__image-container {\n justify-items: center;\n padding: 15px;\n position: relative;\n height: 100%;\n border-radius: var(--menu-border-radius, 6px);\n\n background-color: ${n};\n background-image: repeating-linear-gradient(\n -145deg,\n transparent,\n transparent 8px,\n ${n} 8px,\n ${n} 11px\n ),\n repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 15px,\n ${a} 15px,\n ${a} 16px\n );\n}\n\n.editor__canvas-container {\n width: 100%;\n height: 100%;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.editor__canvas-container > * {\n object-fit: contain;\n position: absolute;\n}\n\n.editor__tool-container {\n padding-top: 8px;\n display: flex;\n justify-content: center;\n}\n\n.editor__tool-bar {\n display: flex;\n gap: 8px;\n}\n\n.editor__tool {\n display: flex;\n padding: 8px 12px;\n justify-content: center;\n align-items: center;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n background: var(--button-background, var(--background));\n color: var(--button-color, var(--foreground));\n}\n\n.editor__tool--active {\n background: var(--button-primary-background, var(--accent-background));\n color: var(--button-primary-color, var(--accent-foreground));\n}\n\n.editor__rect {\n position: absolute;\n z-index: 2;\n}\n\n.editor__rect button {\n opacity: 0;\n position: absolute;\n top: -12px;\n right: -12px;\n cursor: pointer;\n padding: 0;\n z-index: 3;\n border: none;\n background: none;\n}\n\n.editor__rect:hover button {\n opacity: 1;\n}\n`,e&&t.setAttribute("nonce",e),t}function Su(e,t,n){if(!e)return;const a=e.getContext("2d",t);a&&n(e,a)}function xu(e,t){Su(e,{alpha:!0},(e,n)=>{n.drawImage(t,0,0,t.width,t.height,0,0,e.width,e.height)})}function zu(e,t,n){Su(e,{alpha:!0},(e,a)=>{n.length&&(a.fillStyle="rgba(0, 0, 0, 0.25)",a.fillRect(0,0,e.width,e.height)),n.forEach(e=>{!function(e,t,n){switch(e.type){case"highlight":t.shadowColor="rgba(0, 0, 0, 0.7)",t.shadowBlur=50,t.fillStyle=n,t.fillRect(e.x-1,e.y-1,e.w+2,e.h+2),t.clearRect(e.x,e.y,e.w,e.h);break;case"hide":t.fillStyle="rgb(0, 0, 0)",t.fillRect(e.x,e.y,e.w,e.h)}}(e,a,t)})})}function Eu({h:e,hooks:t,outputBuffer:n,dialog:a,options:o}){const s=function({hooks:e}){return function({onBeforeScreenshot:t,onScreenshot:n,onAfterScreenshot:a,onError:o}){const s=function(){const[t,n]=e.useState(Vi.devicePixelRatio??1);return e.useEffect(()=>{const e=()=>{n(Vi.devicePixelRatio)},t=matchMedia(`(resolution: ${Vi.devicePixelRatio}dppx)`);return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}},[]),t}();e.useEffect(()=>{(async()=>{t();const e=await Yi.mediaDevices.getDisplayMedia({video:{width:Vi.innerWidth*s,height:Vi.innerHeight*s},audio:!1,monitorTypeSurfaces:"exclude",preferCurrentTab:!0,selfBrowserSurface:"include",surfaceSwitching:"exclude"}),o=Ji.createElement("video");await new Promise((t,a)=>{o.srcObject=e,o.onloadedmetadata=()=>{n(o,s),e.getTracks().forEach(e=>e.stop()),t()},o.play().catch(a)}),a()})().catch(o)},[])}}({hooks:t}),r=function({h:e}){return function({action:t,setAction:n,options:a}){return e("div",{class:"editor__tool-container"},e("div",{class:"editor__tool-bar"},e("button",{type:"button",class:"editor__tool "+("highlight"===t?"editor__tool--active":""),onClick:()=>{n("highlight"===t?"":"highlight")}},a.highlightToolText),e("button",{type:"button",class:"editor__tool "+("hide"===t?"editor__tool--active":""),onClick:()=>{n("hide"===t?"":"hide")}},a.hideToolText)))}}({h:e}),i=function({h:e}){return function(){return e("svg",{"data-test-id":"icon-close",viewBox:"0 0 16 16",fill:"#2B2233",height:"25px",width:"25px"},e("circle",{r:"7",cx:"8",cy:"8",fill:"white"}),e("path",{strokeWidth:"1.5",d:"M8,16a8,8,0,1,1,8-8A8,8,0,0,1,8,16ZM8,1.53A6.47,6.47,0,1,0,14.47,8,6.47,6.47,0,0,0,8,1.53Z"}),e("path",{strokeWidth:"1.5",d:"M5.34,11.41a.71.71,0,0,1-.53-.22.74.74,0,0,1,0-1.06l5.32-5.32a.75.75,0,0,1,1.06,1.06L5.87,11.19A.74.74,0,0,1,5.34,11.41Z"}),e("path",{strokeWidth:"1.5",d:"M10.66,11.41a.74.74,0,0,1-.53-.22L4.81,5.87A.75.75,0,0,1,5.87,4.81l5.32,5.32a.74.74,0,0,1,0,1.06A.71.71,0,0,1,10.66,11.41Z"}))}}({h:e}),c={__html:ju(o.styleNonce).innerText},u=a.el.style,l=({screenshot:a})=>{const[s,u]=t.useState("highlight"),[l,p]=t.useState([]),d=t.useRef(null),m=t.useRef(null),h=t.useRef(null),g=t.useRef(null),[f,k]=t.useState(1),y=t.useMemo(()=>{const e=Ji.getElementById(o.id);if(!e)return"white";const t=getComputedStyle(e);return t.getPropertyValue("--button-primary-background")||t.getPropertyValue("--accent-background")},[o.id]);t.useLayoutEffect(()=>{const e=()=>{const t=d.current;t&&(Su(a.canvas,{alpha:!1},e=>{const n=Math.min(t.clientWidth/e.width,t.clientHeight/e.height);k(n)}),0!==t.clientHeight&&0!==t.clientWidth||setTimeout(e,0))};return e(),Vi.addEventListener("resize",e),()=>{Vi.removeEventListener("resize",e)}},[a]);const b=t.useCallback((e,t)=>{Su(e,{alpha:!0},(e,n)=>{n.scale(t,t),e.width=a.canvas.width,e.height=a.canvas.height})},[a]);t.useEffect(()=>{b(m.current,a.dpi),xu(m.current,a.canvas)},[a]),t.useEffect(()=>{b(h.current,a.dpi),Su(h.current,{alpha:!0},(e,t)=>{t.clearRect(0,0,e.width,e.height)}),zu(h.current,y,l)},[l,y]),t.useEffect(()=>{b(n,a.dpi),xu(n,a.canvas),Su(Ji.createElement("canvas"),{alpha:!0},(e,t)=>{t.scale(a.dpi,a.dpi),e.width=a.canvas.width,e.height=a.canvas.height,zu(e,y,l),xu(n,e)})},[l,a,y]);const w=t.useCallback(e=>t=>{t.preventDefault(),t.stopPropagation(),p(t=>{const n=[...t];return n.splice(e,1),n})},[]),v={width:a.canvas.width*f+"px",height:a.canvas.height*f+"px"},_=e=>{e.stopPropagation()};return e("div",{class:"editor"},e("style",{nonce:o.styleNonce,dangerouslySetInnerHTML:c}),e("div",{class:"editor__image-container"},e("div",{class:"editor__canvas-container",ref:d},e("canvas",{ref:m,id:"background",style:v}),e("canvas",{ref:h,id:"foreground",style:v}),e("div",{ref:g,onMouseDown:e=>{if(!s||!g.current)return;const t=g.current.getBoundingClientRect(),n={type:s,x:e.offsetX/f,y:e.offsetY/f},a=(e,n)=>{const a=(n.clientX-t.x)/f,o=(n.clientY-t.y)/f;return{type:e.type,x:Math.min(e.x,a),y:Math.min(e.y,o),w:Math.abs(a-e.x),h:Math.abs(o-e.y)}},o=e=>{Su(h.current,{alpha:!0},(e,t)=>{t.clearRect(0,0,e.width,e.height)}),zu(h.current,y,[...l,a(n,e)])},r=e=>{const t=a(n,e);t.w*f>=1&&t.h*f>=1&&p(e=>[...e,t]),Ji.removeEventListener("mousemove",o),Ji.removeEventListener("mouseup",r)};Ji.addEventListener("mousemove",o),Ji.addEventListener("mouseup",r)},style:v},l.map((t,n)=>e("div",{key:n,class:"editor__rect",style:{top:t.y*f+"px",left:t.x*f+"px",width:t.w*f+"px",height:t.h*f+"px"}},e("button",{"aria-label":o.removeHighlightText,onClick:w(n),onMouseDown:_,onMouseUp:_,type:"button"},e(i,null))))))),e(r,{options:o,action:s,setAction:u}))};return function({onError:a}){const[o,r]=t.useState();return s({onBeforeScreenshot:t.useCallback(()=>{u.display="none"},[]),onScreenshot:t.useCallback((e,t)=>{Su(Ji.createElement("canvas"),{alpha:!1},(n,a)=>{a.scale(t,t),n.width=e.videoWidth,n.height=e.videoHeight,a.drawImage(e,0,0,n.width,n.height),r({canvas:n,dpi:t})}),n.width=e.videoWidth,n.height=e.videoHeight},[]),onAfterScreenshot:t.useCallback(()=>{u.display="block"},[]),onError:t.useCallback(e=>{u.display="block",a(e)},[])}),o?e(l,{screenshot:o}):e("div",null)}}const Tu=()=>({name:"FeedbackScreenshot",setupOnce(){},createInput:({h:e,hooks:t,dialog:n,options:a})=>{const o=Ji.createElement("canvas");return{input:Eu({h:e,hooks:t,outputBuffer:o,dialog:n,options:a}),value:async()=>{const e=await new Promise(e=>{o.toBlob(e,"image/png")});if(e)return{data:new Uint8Array(await e.arrayBuffer()),filename:"screenshot.png",contentType:"application/png"}}}}}),Cu={replayIntegration:"replay",replayCanvasIntegration:"replay-canvas",feedbackIntegration:"feedback",feedbackModalIntegration:"feedback-modal",feedbackScreenshotIntegration:"feedback-screenshot",captureConsoleIntegration:"captureconsole",contextLinesIntegration:"contextlines",linkedErrorsIntegration:"linkederrors",dedupeIntegration:"dedupe",extraErrorDataIntegration:"extraerrordata",graphqlClientIntegration:"graphqlclient",httpClientIntegration:"httpclient",reportingObserverIntegration:"reportingobserver",rewriteFramesIntegration:"rewriteframes",browserProfilingIntegration:"browserprofiling",moduleMetadataIntegration:"modulemetadata",instrumentAnthropicAiClient:"instrumentanthropicaiclient",instrumentOpenAiClient:"instrumentopenaiclient",instrumentGoogleGenAIClient:"instrumentgooglegenaiclient",instrumentLangGraph:"instrumentlanggraph",createLangChainCallbackHandler:"createlangchaincallbackhandler"},Iu=er;async function Mu(e,t){const n=Cu[e],a=Iu.Sentry=Iu.Sentry||{};if(!n)throw new Error(`Cannot lazy load integration: ${e}`);const o=a[e];if("function"==typeof o&&!("_isShim"in o))return o;const s=function(e){const t=Be(),n=t?.getOptions()?.cdnBaseUrl||"https://browser.sentry-cdn.com";return new URL(`/${u}/${e}.min.js`,n).toString()}(n),r=er.document.createElement("script");r.src=s,r.crossOrigin="anonymous",r.referrerPolicy="strict-origin",t&&r.setAttribute("nonce",t);const i=new Promise((e,t)=>{r.addEventListener("load",()=>e()),r.addEventListener("error",t)}),c=er.document.currentScript,l=er.document.body||er.document.head||c?.parentElement;if(!l)throw new Error(`Could not find parent element to insert lazy-loaded ${e} script`);l.appendChild(r);try{await i}catch{throw new Error(`Error when loading integration: ${e}`)}const p=a[e];if("function"!=typeof p)throw new Error(`Could not load integration: ${e}`);return p}const Ru=oc({lazyLoadIntegration:Mu}),Au=oc({getModalIntegration:()=>_u,getScreenshotIntegration:()=>Tu}),Ou="MULTIPLEXED_TRANSPORT_EXTRA_KEY";function Du(e,t){let n;return $o(e,(e,a)=>(t.includes(a)&&(n=Array.isArray(e)?e[1]:void 0),!!n)),n}function Pu(e,t){return n=>{const a=e(n),o=new Map,s=t||(e=>{const t=e.getEvent();return t?.extra?.[Ou]&&Array.isArray(t.extra[Ou])?t.extra[Ou]:[]});function r(t,a){const s=a?`${t}:${a}`:t;let r=o.get(s);if(!r){const i=kt(t);if(!i)return;const c=Po(i,n.tunnel);r=a?function(e,t){return n=>{const a=e(n);return{...a,send:async e=>{const n=Du(e,["event","transaction","profile","replay_event"]);return n&&(n.release=t),a.send(e)}}}}(e,a)({...n,url:c}):e({...n,url:c}),o.set(s,r)}return[t,r]}return{send:async function(e){const t=s({envelope:e,getEvent:function(t){return Du(e,t?.length?t:["event"])}}).map(e=>"string"==typeof e?r(e,void 0):r(e.dsn,e.release)).filter(e=>!!e),n=t.length?t:[["",a]];return(await Promise.all(n.map(([t,n])=>n.send(function(e,t){return Lo(t?{...e[0],dsn:t}:e[0],e[1])}(e,t)))))[0]},flush:async function(e){const t=[...o.values(),a];return(await Promise.all(t.map(t=>t.flush(e)))).every(e=>e)}}}}const Lu=(e={})=>{const t=e.levels||D,n=e.handled??!0;return{name:"CaptureConsole",setup(e){"console"in l&&pr(({args:a,level:o})=>{Be()===e&&t.includes(o)&&function(e,t,n){const a=Sr(t),o=new Error,s={level:Sr(t),extra:{arguments:e}};Fe(r=>{if(r.addEventProcessor(e=>(e.logger="console",ge(e,{handled:n,type:"auto.core.capture_console"}),e)),"assert"===t){if(!e[0]){const t=`Assertion failed: ${ie(e.slice(1)," ")||"console.assert"}`;r.setExtra("arguments",e.slice(1)),r.captureMessage(t,a,{captureContext:s,syntheticException:o})}return}const i=e.find(e=>e instanceof Error);if(i)return void wn(i,s);const c=ie(e," ");r.captureMessage(c,a,{captureContext:s,syntheticException:o})})}(a,o,n)})}}};function Nu(e,t,n){return"util"in l&&"function"==typeof l.util.format?l.util.format(...e):function(e,t,n){return e.map(e=>_(e)?String(e):JSON.stringify(gn(e,t,n))).join(" ")}(e,t,n)}function $u(e,t){const n={},a=new Array(t.length).fill("{}").join(" ");return n["sentry.message.template"]=`${e} ${a}`,t.forEach((e,t)=>{n[`sentry.message.parameter.${t}`]=e}),n}const Fu={[et]:"auto.log.console"},Uu=(e={})=>{const t=e.levels||D;return{name:"ConsoleLogs",setup(e){const{enableLogs:n,normalizeDepth:a=3,normalizeMaxBreadth:o=1e3}=e.getOptions();n?pr(({args:n,level:s})=>{if(Be()!==e||!t.includes(s))return;const r=n[0],i=n.slice(1);if("assert"===s)return void(r||os({level:"error",message:i.length>0?`Assertion failed: ${Nu(i,a,o)}`:"Assertion failed",attributes:Fu}));const c="log"===s,u=n.length>1&&"string"==typeof n[0]&&(l=n[0],!/%[sdifocO]/.test(l));var l;const p={...Fu,...u?$u(r,i):{}};os({level:c?"info":s,message:Nu(n,a,o),severityNumber:c?10:void 0,attributes:p})}):h&&U.warn("`enableLogs` is not enabled, ConsoleLogs integration disabled")}}};function Bu(e,t,n=()=>{},a=()=>{}){let o;try{o=e()}catch(e){throw t(e),n(),e}return function(e,t,n,a){return x(e)?e.then(e=>(n(),a(e),e),e=>{throw t(e),n(),e}):(n(),a(e),e)}(o,t,n,a)}class qu{constructor(e={}){this._traceId=e.traceId||xe(),this._spanId=e.spanId||ze()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:0}}end(e){}setAttribute(e,t){return this}setAttributes(e){return this}setStatus(e){return this}updateName(e){return this}isRecording(){return!1}addEvent(e,t,n){return this}addLink(e){return this}addLinks(e){return this}recordException(e,t){}}function Hu(e,t,n,a=Zt()){const o=a&&Xt(a);o&&(h&&U.log(`[Measurement] Setting measurement on root span: ${e} = ${t} ${n}`),o.addEvent(e,{[at]:t,[nt]:n}))}function Wu(e){if(!e||0===e.length)return;const t={};return e.forEach(e=>{const n=e.attributes||{},a=n[nt],o=n[at];"string"==typeof a&&"number"==typeof o&&(t[e.name]={value:o,unit:a})}),t}class Vu{constructor(e={}){this._traceId=e.traceId||xe(),this._spanId=e.spanId||ze(),this._startTime=e.startTimestamp||ve(),this._links=e.links,this._attributes={},this.setAttributes({[et]:"manual",[Qe]:e.op,...e.attributes}),this._name=e.name,e.parentSpanId&&(this._parentSpanId=e.parentSpanId),"sampled"in e&&(this._sampled=e.sampled),e.endTimestamp&&(this._endTime=e.endTimestamp),this._events=[],this._isStandaloneSpan=e.isStandalone,this._endTime&&this._onSpanEnded()}addLink(e){return this._links?this._links.push(e):this._links=[e],this}addLinks(e){return this._links?this._links.push(...e):this._links=e,this}recordException(e,t){}spanContext(){const{_spanId:e,_traceId:t,_sampled:n}=this;return{spanId:e,traceId:t,traceFlags:n?Pt:0}}setAttribute(e,t){return void 0===t?delete this._attributes[e]:this._attributes[e]=t,this}setAttributes(e){return Object.keys(e).forEach(t=>this.setAttribute(t,e[t])),this}updateStartTime(e){this._startTime=Bt(e)}setStatus(e){return this._status=e,this}updateName(e){return this._name=e,this.setAttribute(Ke,"custom"),this}end(e){this._endTime||(this._endTime=Bt(e),function(e){if(!h)return;const{description:t="< unknown name >",op:n="< unknown op >"}=Ht(e),{spanId:a}=e.spanContext(),o=`[Tracing] Finishing "${n}" ${Xt(e)===e?"root ":""}span "${t}" with ID ${a}`;U.log(o)}(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Qe],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:Vt(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[et],profile_id:this._attributes[st],exclusive_time:this._attributes[rt],measurements:Wu(this._events),is_segment:this._isStandaloneSpan&&Xt(this)===this||void 0,segment_id:this._isStandaloneSpan?Xt(this).spanContext().spanId:void 0,links:Ut(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(e,t,n){h&&U.log("[Tracing] Adding an event to span:",e);const a=Ju(t)?t:n||ve(),o=Ju(t)?{}:t||{},s={name:e,time:Bt(a),attributes:o};return this._events.push(s),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){const e=Be();if(e&&e.emit("spanEnd",this),!this._isStandaloneSpan&&this!==Xt(this))return;if(this._isStandaloneSpan)return void(this._sampled?function(e){const t=Be();if(!t)return;const n=e[1];n&&0!==n.length?t.sendEnvelope(e):t.recordDroppedEvent("before_send","span")}(function(e,t){const n=sn(e[0]),a=t?.getDsn(),o=t?.getOptions().tunnel,s={sent_at:(new Date).toISOString(),...function(e){return!!e.trace_id&&!!e.public_key}(n)&&{trace:n},...!!o&&a&&{dsn:ft(a)}},{beforeSendSpan:r,ignoreSpans:i}=t?.getOptions()||{},c=i?.length?e.filter(e=>!Ko(Ht(e),i)):e,u=e.length-c.length;u&&t?.recordDroppedEvent("before_send","span",u);const l=r?e=>{const t=Ht(e);return r(t)||(Qt(),t)}:Ht,p=[];for(const e of c){const t=l(e);t&&p.push(qo(t))}return Lo(s,p)}([this],e)):(h&&U.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),e&&e.recordDroppedEvent("sample_rate","span")));const t=this._convertSpanToTransaction();t&&(It(this).scope||Le()).captureEvent(t)}_convertSpanToTransaction(){if(!Yu(Ht(this)))return;this._name||(h&&U.warn("Transaction has no name, falling back to `<unlabeled transaction>`."),this._name="<unlabeled transaction>");const{scope:e,isolationScope:t}=It(this),n=e?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(!0!==this._sampled)return;const a=Kt(this).filter(e=>e!==this&&!function(e){return e instanceof Vu&&e.isStandaloneSpan()}(e)).map(e=>Ht(e)).filter(Yu),o=this._attributes[Ke];delete this._attributes[ot],a.forEach(e=>{delete e.data[ot]});const s={contexts:{trace:Nt(this)},spans:a.length>1e3?a.sort((e,t)=>e.start_timestamp-t.start_timestamp).slice(0,1e3):a,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:e,capturedSpanIsolationScope:t,dynamicSamplingContext:sn(this)},request:n,...o&&{transaction_info:{source:o}}},r=Wu(this._events);return r&&Object.keys(r).length&&(h&&U.log("[Measurements] Adding measurements to transaction event",JSON.stringify(r,void 0,2)),s.measurements=r),s}}function Ju(e){return e&&"number"==typeof e||e instanceof Date||Array.isArray(e)}function Yu(e){return!!(e.start_timestamp&&e.timestamp&&e.span_id&&e.trace_id)}const Gu="__SENTRY_SUPPRESS_TRACING__";function Ku(e,t){const n=sl();if(n.startSpan)return n.startSpan(e,t);const a=ol(e),{forceTransaction:o,parentSpan:s,scope:r}=e,i=r?.clone();return Fe(i,()=>cl(s)(()=>{const n=Le(),r=il(n,s),i=e.onlyIfParent&&!r?new qu:al({parentSpan:r,spanArguments:a,forceTransaction:o,scope:n});return Te(n,i),Bu(()=>t(i),()=>{const{status:e}=Ht(i);!i.isRecording()||e&&"ok"!==e||i.setStatus({code:St,message:"internal_error"})},()=>{i.end()})}))}function Xu(e,t){const n=sl();if(n.startSpanManual)return n.startSpanManual(e,t);const a=ol(e),{forceTransaction:o,parentSpan:s,scope:r}=e,i=r?.clone();return Fe(i,()=>cl(s)(()=>{const n=Le(),r=il(n,s),i=e.onlyIfParent&&!r?new qu:al({parentSpan:r,spanArguments:a,forceTransaction:o,scope:n});return Te(n,i),Bu(()=>t(i,()=>i.end()),()=>{const{status:e}=Ht(i);!i.isRecording()||e&&"ok"!==e||i.setStatus({code:St,message:"internal_error"})})}))}function Zu(e){const t=sl();if(t.startInactiveSpan)return t.startInactiveSpan(e);const n=ol(e),{forceTransaction:a,parentSpan:o}=e;return(e.scope?t=>Fe(e.scope,t):void 0!==o?e=>el(o,e):e=>e())(()=>{const t=Le(),s=il(t,o);return e.onlyIfParent&&!s?new qu:al({parentSpan:s,spanArguments:n,forceTransaction:a,scope:t})})}const Qu=(e,t)=>{const n=Pe(p());if(n.continueTrace)return n.continueTrace(e,t);const{sentryTrace:a,baggage:o}=e,s=Be(),r=pt(o);return s&&!function(e,t){const n=bt(e);return t&&n&&t!==n?(U.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):!e.getOptions().strictTraceContinuation||!(t&&!n||!t&&n)||(U.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1)}(s,r?.org_id)?nl(t):Fe(e=>{const n=At(a,o);return e.setPropagationContext(n),Te(e,void 0),t()})};function el(e,t){const n=sl();return n.withActiveSpan?n.withActiveSpan(e,t):Fe(n=>(Te(n,e||void 0),t(n)))}function tl(e){const t=sl();return t.suppressTracing?t.suppressTracing(e):Fe(t=>{t.setSDKProcessingMetadata({[Gu]:!0});const n=e();return t.setSDKProcessingMetadata({[Gu]:void 0}),n})}function nl(e){return Fe(t=>(t.setPropagationContext({traceId:xe(),sampleRand:Math.random()}),h&&U.log(`Starting a new trace with id ${t.getPropagationContext().traceId}`),el(null,e)))}function al({parentSpan:e,spanArguments:t,forceTransaction:n,scope:a}){if(!vt()){const a=new qu;return!n&&e||nn(a,{sampled:"false",sample_rate:"0",transaction:t.name,...sn(a)}),a}const o=Ne();let s;if(e&&!n)s=function(e,t,n){const{spanId:a,traceId:o}=e.spanContext(),s=!t.getScopeData().sdkProcessingMetadata[Gu]&&Wt(e),r=s?new Vu({...n,parentSpanId:a,traceId:o,sampled:s}):new qu({traceId:o});Gt(e,r);const i=Be();return i&&(i.emit("spanStart",r),n.endTimestamp&&i.emit("spanEnd",r)),r}(e,a,t),Gt(e,s);else if(e){const n=sn(e),{traceId:o,spanId:r}=e.spanContext(),i=Wt(e);s=rl({traceId:o,parentSpanId:r,...t},a,i),nn(s,n)}else{const{traceId:e,dsc:n,parentSpanId:r,sampled:i}={...o.getPropagationContext(),...a.getPropagationContext()};s=rl({traceId:e,parentSpanId:r,...t},a,i),n&&nn(s,n)}return function(e){if(!h)return;const{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:a}=Ht(e),{spanId:o}=e.spanContext(),s=Wt(e),r=Xt(e),i=r===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${i?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${o}`];if(a&&u.push(`parent ID: ${a}`),!i){const{op:e,description:t}=Ht(r);u.push(`root ID: ${r.spanContext().spanId}`),e&&u.push(`root op: ${e}`),t&&u.push(`root description: ${t}`)}U.log(`${c}\n ${u.join("\n ")}`)}(s),function(e,t,n){e&&(q(e,Tt,function(e){try{const t=l.WeakRef;if("function"==typeof t)return new t(e)}catch{}return e}(n)),q(e,Et,t))}(s,a,o),s}function ol(e){const t={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){const n={...t};return n.startTimestamp=Bt(e.startTime),delete n.startTime,n}return t}function sl(){return Pe(p())}function rl(e,t,n){const a=Be(),o=a?.getOptions()||{},{name:s=""}=e,r={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};a?.emit("beforeSampling",r,{decision:!1});const i=r.parentSampled??n,c=r.spanAttributes,u=t.getPropagationContext(),[l,p,d]=t.getScopeData().sdkProcessingMetadata[Gu]?[!1]:function(e,t,n){if(!vt(e))return[!1];let a,o;"function"==typeof e.tracesSampler?(o=e.tracesSampler({...t,inheritOrSampleWith:e=>"number"==typeof t.parentSampleRate?t.parentSampleRate:"boolean"==typeof t.parentSampled?Number(t.parentSampled):e}),a=!0):void 0!==t.parentSampled?o=t.parentSampled:void 0!==e.tracesSampleRate&&(o=e.tracesSampleRate,a=!0);const s=Mt(o);if(void 0===s)return h&&U.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(o)} of type ${JSON.stringify(typeof o)}.`),[!1];if(!s)return h&&U.log("[Tracing] Discarding transaction because "+("function"==typeof e.tracesSampler?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0")),[!1,s,a];const r=n<s;return r||h&&U.log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(o)})`),[r,s,a]}(o,{name:s,parentSampled:i,attributes:c,parentSampleRate:Mt(u.dsc?.sample_rate)},u.sampleRand),m=new Vu({...e,attributes:{[Ke]:"custom",[Xe]:void 0!==p&&d?p:void 0,...c},sampled:l});return!l&&a&&(h&&U.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),a.recordDroppedEvent("sample_rate","transaction")),a&&a.emit("spanStart",m),m}function il(e,t){if(t)return t;if(null===t)return;const n=Ce(e);if(!n)return;const a=Be();return(a?a.getOptions():{}).parentSpanIsAlwaysRootSpan?Xt(n):n}function cl(e){return void 0!==e?t=>el(e,t):e=>e()}const ul=["trace","debug","info","warn","error","fatal"];function ll(e={}){const t=new Set(e.levels??ul),n=e.client;return{log(e){const{type:a,level:o,message:s,args:r,tag:i,date:c,...u}=e,l=n||Be();if(!l)return;const p=function(e,t){if("verbose"===e)return"debug";if("silent"===e)return"trace";if(e){const t=pl[e];if(t)return t}if("number"==typeof t){const e=dl[t];if(e)return e}return"info"}(a,o);if(!t.has(p))return;const{normalizeDepth:d=3,normalizeMaxBreadth:m=1e3}=l.getOptions(),h=[];s&&h.push(s),r&&r.length>0&&h.push(Nu(r,d,m));const g=h.join(" ");u["sentry.origin"]="auto.log.consola",i&&(u["consola.tag"]=i),a&&(u["consola.type"]=a),null!=o&&"number"==typeof o&&(u["consola.level"]=o),os({level:p,message:g,attributes:u})}}}const pl={silent:"trace",fatal:"fatal",error:"error",warn:"warn",log:"info",info:"info",success:"info",fail:"error",ready:"info",start:"info",box:"info",debug:"debug",trace:"trace",verbose:"debug",critical:"fatal",notice:"info"},dl={0:"fatal",1:"warn",2:"info",3:"info",4:"debug",5:"trace"},ml="gen_ai.prompt",hl="gen_ai.system",gl="gen_ai.request.model",fl="gen_ai.request.stream",kl="gen_ai.request.temperature",yl="gen_ai.request.max_tokens",bl="gen_ai.request.frequency_penalty",wl="gen_ai.request.presence_penalty",vl="gen_ai.request.top_p",_l="gen_ai.request.top_k",jl="gen_ai.request.encoding_format",Sl="gen_ai.request.dimensions",xl="gen_ai.response.finish_reasons",zl="gen_ai.response.model",El="gen_ai.response.id",Tl="gen_ai.response.stop_reason",Cl="gen_ai.usage.input_tokens",Il="gen_ai.usage.output_tokens",Ml="gen_ai.usage.total_tokens",Rl="gen_ai.operation.name",Al="gen_ai.request.messages",Ol="gen_ai.response.text",Dl="gen_ai.request.available_tools",Pl="gen_ai.response.streaming",Ll="gen_ai.response.tool_calls",Nl="gen_ai.agent.name",$l="gen_ai.pipeline.name",Fl="gen_ai.usage.cache_creation_input_tokens",Ul="gen_ai.usage.cache_read_input_tokens",Bl="gen_ai.invoke_agent",ql="openai.response.id",Hl="openai.response.model",Wl="openai.response.timestamp",Vl="openai.usage.completion_tokens",Jl="openai.usage.prompt_tokens",Yl={CHAT:"chat",RESPONSES:"responses",EMBEDDINGS:"embeddings"},Gl="anthropic.response.timestamp",Kl="auto.ai.langchain",Xl={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"},Zl=2e4,Ql=e=>(new TextEncoder).encode(e).length,ep=e=>Ql(JSON.stringify(e));function tp(e,t){if(Ql(e)<=t)return e;let n=0,a=e.length,o="";for(;n<=a;){const s=Math.floor((n+a)/2),r=e.slice(0,s);Ql(r)<=t?(o=r,n=s+1):a=s-1}return o}function np(e){return"string"==typeof e?e:e.text}function ap(e,t){return"string"==typeof e?t:{...e,text:t}}function op(e){return function(e,t){if(!Array.isArray(e)||0===e.length)return e;if(ep(e)<=t)return e;const n=e.map(ep);let a=0,o=e.length;for(let s=e.length-1;s>=0;s--){const e=n[s];if(e&&a+e>t)break;e&&(a+=e),o=s}return o===e.length?function(e,t){return e&&"object"==typeof e?function(e){return null!==e&&"object"==typeof e&&"content"in e&&"string"==typeof e.content}(e)?function(e,t){const n={...e,content:""},a=t-ep(n);if(a<=0)return[];const o=tp(e.content,a);return[{...e,content:o}]}(e,t):function(e){return null!==e&&"object"==typeof e&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}(e)?function(e,t){const{parts:n}=e,a=n.map(e=>ap(e,""));let o=t-ep({...e,parts:a});if(o<=0)return[];const s=[];for(const e of n){const t=np(e),n=Ql(t);if(!(n<=o)){if(0===s.length){const n=tp(t,o);n&&s.push(ap(e,n));break}break}s.push(e),o-=n}return s.length>0?[{...e,parts:s}]:[]}(e,t):[]:[]}(e[e.length-1],t):e.slice(o)}(e,Zl)}const sp=(e,t,n)=>{null!=n&&(e[t]=n)},rp=(e,t,n)=>{const a=Number(n);Number.isNaN(a)||(e[t]=a)};function ip(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function cp(e){const t=e.toLowerCase();return Xl[t]??t}function up(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function lp(e){if(e&&!Array.isArray(e))return e.invocation_params}function pp(e){return e.map(e=>{const t=e._getType;if("function"==typeof t)return{role:cp(t.call(e)),content:ip(e.content)};const n=e.constructor?.name;if(n)return{role:cp(up(n)),content:ip(e.content)};if(e.type)return{role:cp(String(e.type).toLowerCase()),content:ip(e.content)};if(e.role)return{role:cp(String(e.role)),content:ip(e.content)};if(1===e.lc&&e.kwargs){const t=e.id,n=Array.isArray(t)&&t.length>0?t[t.length-1]:"";return{role:cp("string"==typeof n?up(n):"user"),content:ip(e.kwargs?.content)}}return{role:"user",content:ip(e.content)}})}function dp(e,t,n){const a={},o="kwargs"in e?e.kwargs:void 0;rp(a,kl,t?.temperature??n?.ls_temperature??o?.temperature),rp(a,yl,t?.max_tokens??n?.ls_max_tokens??o?.max_tokens),rp(a,vl,t?.top_p??o?.top_p);const s=t?.frequency_penalty;rp(a,bl,s);const r=t?.presence_penalty;return rp(a,wl,r),t&&"stream"in t&&sp(a,fl,Boolean(t.stream)),a}function mp(e,t,n,a,o,s){return{[hl]:ip(e??"langchain"),[Rl]:n,[gl]:ip(t),[et]:Kl,...dp(a,o,s)}}function hp(e={}){const t=e.recordInputs??!1,n=e.recordOutputs??!1,a=new Map,o=e=>{const t=a.get(e);t?.isRecording()&&(t.end(),a.delete(e))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(e,n,o,s,r,i,c,u){const l=lp(i),p=function(e,t,n,a,o){const s=o?.ls_provider,r=mp(s,a?.model??o?.ls_model_name??"unknown","pipeline",e,a,o);if(n&&Array.isArray(t)&&t.length>0){const e=t.map(e=>({role:"user",content:e}));sp(r,Al,ip(e))}return r}(e,n,t,l,c),d=p[gl];Xu({name:`${p[Rl]} ${d}`,op:"gen_ai.pipeline",attributes:{...p,[Qe]:"gen_ai.pipeline"}},e=>(a.set(o,e),e))},handleChatModelStart(e,n,o,s,r,i,c,u){const l=lp(i),p=function(e,t,n,a,o){const s=mp(o?.ls_provider??e.id?.[2],a?.model??o?.ls_model_name??"unknown","chat",e,a,o);if(n&&Array.isArray(t)&&t.length>0){const e=op(pp(t.flat()));sp(s,Al,ip(e))}return s}(e,n,t,l,c),d=p[gl];Xu({name:`${p[Rl]} ${d}`,op:"gen_ai.chat",attributes:{...p,[Qe]:"gen_ai.chat"}},e=>(a.set(o,e),e))},handleLLMEnd(e,t,s,r,i){const c=a.get(t);if(c?.isRecording()){const a=function(e,t){if(!e)return;const n={};if(Array.isArray(e.generations)){const a=e.generations.flat().map(e=>e.generationInfo?.finish_reason?e.generationInfo.finish_reason:e.generation_info?.finish_reason?e.generation_info.finish_reason:null).filter(e=>"string"==typeof e);if(a.length>0&&sp(n,xl,ip(a)),function(e,t){const n=[],a=e.flat();for(const e of a){const t=e.message?.content;if(Array.isArray(t))for(const e of t){const t=e;"tool_use"===t.type&&n.push(t)}}n.length>0&&sp(t,Ll,ip(n))}(e.generations,n),t){const t=e.generations.flat().map(e=>e.text??e.message?.content).filter(e=>"string"==typeof e);t.length>0&&sp(n,Ol,ip(t))}}!function(e,t){if(!e)return;const n=e.tokenUsage,a=e.usage;if(n)rp(t,Cl,n.promptTokens),rp(t,Il,n.completionTokens),rp(t,Ml,n.totalTokens);else if(a){rp(t,Cl,a.input_tokens),rp(t,Il,a.output_tokens);const e=Number(a.input_tokens),n=Number(a.output_tokens),o=(Number.isNaN(e)?0:e)+(Number.isNaN(n)?0:n);o>0&&rp(t,Ml,o),void 0!==a.cache_creation_input_tokens&&rp(t,Fl,a.cache_creation_input_tokens),void 0!==a.cache_read_input_tokens&&rp(t,Ul,a.cache_read_input_tokens)}}(e.llmOutput,n);const a=e.llmOutput,o=e.generations?.[0]?.[0],s=o?.message,r=a?.model_name??a?.model??s?.response_metadata?.model_name;r&&sp(n,zl,r);const i=a?.id??s?.id;i&&sp(n,El,i);const c=a?.stop_reason??s?.response_metadata?.finish_reason;return c&&sp(n,Tl,ip(c)),n}(e,n);a&&c.setAttributes(a),o(t)}},handleLLMError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:St,message:"llm_error"}),o(t)),wn(e,{mechanism:{handled:!1,type:`${Kl}.llm_error_handler`}})},handleChainStart(e,n,o,s){const r=e.name||"unknown_chain",i={[et]:"auto.ai.langchain","langchain.chain.name":r};t&&(i["langchain.chain.inputs"]=JSON.stringify(n)),Xu({name:`chain ${r}`,op:"gen_ai.invoke_agent",attributes:{...i,[Qe]:"gen_ai.invoke_agent"}},e=>(a.set(o,e),e))},handleChainEnd(e,t){const s=a.get(t);s?.isRecording()&&(n&&s.setAttributes({"langchain.chain.outputs":JSON.stringify(e)}),o(t))},handleChainError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:St,message:"chain_error"}),o(t)),wn(e,{mechanism:{handled:!1,type:`${Kl}.chain_error_handler`}})},handleToolStart(e,n,o,s){const r=e.name||"unknown_tool",i={[et]:Kl,"gen_ai.tool.name":r};t&&(i["gen_ai.tool.input"]=n),Xu({name:`execute_tool ${r}`,op:"gen_ai.execute_tool",attributes:{...i,[Qe]:"gen_ai.execute_tool"}},e=>(a.set(o,e),e))},handleToolEnd(e,t){const s=a.get(t);s?.isRecording()&&(n&&s.setAttributes({"gen_ai.tool.output":JSON.stringify(e)}),o(t))},handleToolError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:St,message:"tool_error"}),o(t)),wn(e,{mechanism:{handled:!1,type:`${Kl}.tool_error_handler`}})},copy:()=>s,toJSON:()=>({lc:1,type:"not_implemented",id:s.lc_id}),toJSONNotImplemented:()=>({lc:1,type:"not_implemented",id:s.lc_id})};return s}const gp=(e={})=>{const{depth:t=3,captureErrorCause:n=!0}=e;return{name:"ExtraErrorData",processEvent(e,a,o){const{maxValueLength:s}=o.getOptions();return function(e,t={},n,a,o){if(!t.originalException||!f(t.originalException))return e;const s=t.originalException.name||t.originalException.constructor.name,r=fp(t.originalException,a,o);if(r){const t={...e.contexts},a=gn(r,n);return j(a)&&(q(a,"__sentry_skip_normalization__",!0),t[s]=a),{...e,contexts:t}}return e}(e,a,t,n,s)}}};function fp(e,t,n){try{const a=["name","message","stack","line","column","fileName","lineNumber","columnNumber","toJSON"],o={};for(const t of Object.keys(e)){if(-1!==a.indexOf(t))continue;const s=e[t];o[t]=f(s)||"string"==typeof s?n?se(`${s}`,n):`${s}`:s}if(t&&void 0!==e.cause)if(f(e.cause)){const t=e.cause.name||e.cause.constructor.name;o.cause={[t]:fp(e.cause,!1,n)}}else o.cause=e.cause;if("function"==typeof e.toJSON){const t=e.toJSON();for(const e of Object.keys(t)){const n=t[e];o[e]=f(n)?n.toString():n}}return o}catch(e){h&&U.error("Unable to extract extra data from the Error object:",e)}return null}const kp=100,yp=10,bp="flag.evaluation.";function wp(e){const t=Le().getScopeData().contexts.flags,n=t?t.values:[];return n.length?(void 0===e.contexts&&(e.contexts={}),e.contexts.flags={values:[...n]},e):e}function vp(e,t,n=kp){const a=Le().getScopeData().contexts;a.flags||(a.flags={values:[]}),function(e,t,n,a){if("boolean"!=typeof n)return;if(e.length>a)return void(h&&U.error(`[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize=${a}`));const o=e.findIndex(e=>e.flag===t);-1!==o&&e.splice(o,1),e.length===a&&e.shift(),e.push({flag:t,result:n})}(a.flags.values,e,t,n)}function _p(e,t,n=yp){if("boolean"!=typeof t)return;const a=Zt();if(!a)return;const o=Ht(a).data;(`${bp}${e}`in o||Object.keys(o).filter(e=>e.startsWith(bp)).length<n)&&a.setAttribute(`${bp}${e}`,t)}const jp=()=>({name:"FeatureFlags",processEvent:(e,t,n)=>wp(e),addFeatureFlag(e,t){vp(e,t),_p(e,t)}});function Sp(e={}){const t=e.client||Be();if(!An()||!t)return{};const n=Pe(p());if(n.getTraceData)return n.getTraceData(e);const a=e.scope||Le(),o=e.span||Zt(),s=o?Ft(o):function(e){const{traceId:t,sampled:n,propagationSpanId:a}=e.getPropagationContext();return Ot(t,a,n)}(a),r=dt(o?sn(o):on(t,a));if(!Rt.test(s))return U.warn("Invalid sentry-trace data. Cannot generate trace data"),{};const i={"sentry-trace":s,baggage:r};if(e.propagateTraceparent){const e=o?function(e){const{traceId:t,spanId:n}=e.spanContext();return Dt(t,n,Wt(e))}(o):function(e){const{traceId:t,sampled:n,propagationSpanId:a}=e.getPropagationContext();return Dt(t,a,n)}(a);e&&(i.traceparent=e)}return i}function xp(e){return e.includes("messages")?"messages":e.includes("completions")?"completions":e.includes("models")?"models":e.includes("chat")?"chat":e.split(".").pop()||"unknown"}function zp(e){return`gen_ai.${xp(e)}`}function Ep(e,t){return e?`${e}.${t}`:t}function Tp(e,t,n,a,o){if(void 0!==t&&e.setAttributes({[Cl]:t}),void 0!==n&&e.setAttributes({[Il]:n}),void 0!==t||void 0!==n||void 0!==a||void 0!==o){const s=(t??0)+(n??0)+(a??0)+(o??0);e.setAttributes({[Ml]:s})}}function Cp(e){if("string"==typeof e)return tp(e,Zl);if(Array.isArray(e)){const t=op(e);return JSON.stringify(t)}return JSON.stringify(e)}function Ip(e,t,n,a){if(!e||"object"!=typeof e)return;const o=function(e,t){return"type"in e&&"string"==typeof e.type&&"error"===e.type&&(t.setStatus({code:St,message:e.error?.type??"internal_error"}),wn(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0)}(e,a);o||(function(e,t){if("message_delta"===e.type&&e.usage&&"output_tokens"in e.usage&&"number"==typeof e.usage.output_tokens&&(t.completionTokens=e.usage.output_tokens),e.message){const n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&("number"==typeof n.usage.input_tokens&&(t.promptTokens=n.usage.input_tokens),"number"==typeof n.usage.cache_creation_input_tokens&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),"number"==typeof n.usage.cache_read_input_tokens&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}(e,t),function(e,t){"content_block_start"===e.type&&"number"==typeof e.index&&e.content_block&&("tool_use"!==e.content_block.type&&"server_tool_use"!==e.content_block.type||(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]}))}(e,t),function(e,t,n){if("content_block_delta"===e.type&&e.delta){if("number"==typeof e.index&&"partial_json"in e.delta&&"string"==typeof e.delta.partial_json){const n=t.activeToolBlocks[e.index];n&&n.inputJsonParts.push(e.delta.partial_json)}n&&"string"==typeof e.delta.text&&t.responseTexts.push(e.delta.text)}}(e,t,n),function(e,t){if("content_block_stop"!==e.type||"number"!=typeof e.index)return;const n=t.activeToolBlocks[e.index];if(!n)return;const a=n.inputJsonParts.join("");let o;try{o=a?JSON.parse(a):{}}catch{o={__unparsed:a}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:o}),delete t.activeToolBlocks[e.index]}(e,t))}const Mp=["messages.create","messages.stream","messages.countTokens","models.get","completions.create","models.retrieve","beta.messages.create"];function Rp(e,t){const n=function(e){const{system:t,messages:n}=e;return[..."string"==typeof t?[{role:"system",content:e.system}]:[],...Array.isArray(n)?n:null!=n?[n]:[]]}(t);if(n.length){const t=Cp(n);e.setAttributes({[Al]:t})}if("input"in t){const n=Cp(t.input);e.setAttributes({[Al]:n})}"prompt"in t&&e.setAttributes({[ml]:JSON.stringify(t.prompt)})}function Ap(e,t,n){throw wn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:St,message:"internal_error"}),t.end()),e}function Op(e,t,n,a,o,s,r,i,c,u,l){return Xu({name:`${s} ${o[gl]??"unknown"} stream-response`,op:zp(r),attributes:o},u&&!l?async t=>{try{return c.recordInputs&&i&&Rp(t,i),async function*(e,t,n){const a={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(const o of e)Ip(o,a,n,t),yield o}finally{a.responseId&&t.setAttributes({[El]:a.responseId}),a.responseModel&&t.setAttributes({[zl]:a.responseModel}),Tp(t,a.promptTokens,a.completionTokens,a.cacheCreationInputTokens,a.cacheReadInputTokens),t.setAttributes({[Pl]:!0}),a.finishReasons.length>0&&t.setAttributes({[xl]:JSON.stringify(a.finishReasons)}),n&&a.responseTexts.length>0&&t.setAttributes({[Ol]:a.responseTexts.join("")}),n&&a.toolCalls.length>0&&t.setAttributes({[Ll]:JSON.stringify(a.toolCalls)}),t.end()}}(await e.apply(n,a),t,c.recordOutputs??!1)}catch(e){return Ap(e,t,r)}}:e=>{try{return c.recordInputs&&i&&Rp(e,i),function(e,t,n){const a={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",e=>{Ip(e,a,n,t)}),e.on("message",()=>{!function(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[El]:e.responseId}),e.responseModel&&t.setAttributes({[zl]:e.responseModel}),Tp(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[Pl]:!0}),e.finishReasons.length>0&&t.setAttributes({[xl]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[Ol]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Ll]:JSON.stringify(e.toolCalls)}),t.end())}(a,t,n)}),e.on("error",e=>{wn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:St,message:"stream_error"}),t.end())}),e}(t.apply(n,a),e,c.recordOutputs??!1)}catch(t){return Ap(t,e,r)}})}function Dp(e,t,n,a){return new Proxy(e,{apply(o,s,r){const i=function(e,t){const n={[hl]:"anthropic",[Rl]:xp(t),[et]:"auto.ai.anthropic"};if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0];t.tools&&Array.isArray(t.tools)&&(n[Dl]=JSON.stringify(t.tools)),n[gl]=t.model??"unknown","temperature"in t&&(n[kl]=t.temperature),"top_p"in t&&(n[vl]=t.top_p),"stream"in t&&(n[fl]=t.stream),"top_k"in t&&(n[_l]=t.top_k),"frequency_penalty"in t&&(n[bl]=t.frequency_penalty),"max_tokens"in t&&(n[yl]=t.max_tokens)}else n[gl]="models.retrieve"===t||"models.get"===t?e[0]:"unknown";return n}(r,t),c=i[gl]??"unknown",u=xp(t),l="object"==typeof r[0]?r[0]:void 0,p=Boolean(l?.stream),d="messages.stream"===t;return p||d?Op(e,o,n,r,i,u,t,l,a,p,d):Ku({name:`${u} ${c}`,op:zp(t),attributes:i},e=>(a.recordInputs&&l&&Rp(e,l),Bu(()=>o.apply(n,r),e=>{wn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}})},()=>{},t=>function(e,t,n){t&&"object"==typeof t&&("type"in t&&"error"===t.type?function(e,t){t.error&&(e.setStatus({code:St,message:t.error.type||"internal_error"}),wn(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}(e,t):(n&&function(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[Ol]:t.content.map(e=>e.text).filter(e=>!!e).join("")});const n=[];for(const e of t.content)"tool_use"!==e.type&&"server_tool_use"!==e.type||n.push(e);n.length>0&&e.setAttributes({[Ll]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[Ol]:t.completion}),"input_tokens"in t&&e.setAttributes({[Ol]:JSON.stringify(t.input_tokens)})}(e,t),function(e,t){"id"in t&&"model"in t&&(e.setAttributes({[El]:t.id,[zl]:t.model}),"created"in t&&"number"==typeof t.created&&e.setAttributes({[Gl]:new Date(1e3*t.created).toISOString()}),"created_at"in t&&"number"==typeof t.created_at&&e.setAttributes({[Gl]:new Date(1e3*t.created_at).toISOString()}),"usage"in t&&t.usage&&Tp(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}(e,t)))}(e,t,a.recordOutputs))))}})}function Pp(e,t="",n){return new Proxy(e,{get(e,a){const o=e[a],s=Ep(t,String(a));return"function"==typeof o&&function(e){return Mp.includes(e)}(s)?Dp(o,s,e,n):"function"==typeof o?o.bind(e):o&&"object"==typeof o?Pp(o,s,n):o}})}function Lp(e,t){const n=Boolean(Be()?.getOptions().sendDefaultPii);return Pp(e,"",{recordInputs:n,recordOutputs:n,...t})}const Np=["models.generateContent","models.generateContentStream","chats.create","sendMessage","sendMessageStream"],$p="google_genai",Fp="chats.create",Up="chat";function Bp(e,t,n,a){e&&!function(e,t){const n=e?.promptFeedback;if(n?.blockReason){const e=n.blockReasonMessage??n.blockReason;return t.setStatus({code:St,message:`Content blocked: ${e}`}),wn(`Content blocked: ${e}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}(e,a)&&(function(e,t){"string"==typeof e.responseId&&(t.responseId=e.responseId),"string"==typeof e.modelVersion&&(t.responseModel=e.modelVersion);const n=e.usageMetadata;n&&("number"==typeof n.promptTokenCount&&(t.promptTokens=n.promptTokenCount),"number"==typeof n.candidatesTokenCount&&(t.completionTokens=n.candidatesTokenCount),"number"==typeof n.totalTokenCount&&(t.totalTokens=n.totalTokenCount))}(e,t),function(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(const a of e.candidates??[]){a?.finishReason&&!t.finishReasons.includes(a.finishReason)&&t.finishReasons.push(a.finishReason);for(const e of a?.content?.parts??[])n&&e.text&&t.responseTexts.push(e.text),e.functionCall&&t.toolCalls.push({type:"function",id:e.functionCall.id,name:e.functionCall.name,arguments:e.functionCall.args})}}(e,t,n))}function qp(e,t){if("model"in e&&"string"==typeof e.model)return e.model;if(t&&"object"==typeof t){const e=t;if("model"in e&&"string"==typeof e.model)return e.model;if("modelVersion"in e&&"string"==typeof e.modelVersion)return e.modelVersion}return"unknown"}function Hp(e,t){if("contents"in t){const n=Cp(t.contents);e.setAttributes({[Al]:n})}if("message"in t){const n=Cp(t.message);e.setAttributes({[Al]:n})}if("history"in t){const n=Cp(t.history);e.setAttributes({[Al]:n})}}function Wp(e,t,n,a){const o=t===Fp;return new Proxy(e,{apply(e,s,r){const i=r[0],c=function(e,t,n){const a={[hl]:$p,[Rl]:xp(e),[et]:"auto.ai.google_genai"};if(t){if(a[gl]=qp(t,n),"config"in t&&"object"==typeof t.config&&t.config){const e=t.config;if(Object.assign(a,function(e){const t={};return"temperature"in e&&"number"==typeof e.temperature&&(t[kl]=e.temperature),"topP"in e&&"number"==typeof e.topP&&(t[vl]=e.topP),"topK"in e&&"number"==typeof e.topK&&(t[_l]=e.topK),"maxOutputTokens"in e&&"number"==typeof e.maxOutputTokens&&(t[yl]=e.maxOutputTokens),"frequencyPenalty"in e&&"number"==typeof e.frequencyPenalty&&(t[bl]=e.frequencyPenalty),"presencePenalty"in e&&"number"==typeof e.presencePenalty&&(t[wl]=e.presencePenalty),t}(e)),"tools"in e&&Array.isArray(e.tools)){const t=e.tools.flatMap(e=>e.functionDeclarations);a[Dl]=JSON.stringify(t)}}}else a[gl]=qp({},n);return a}(t,i,n),u=c[gl]??"unknown",l=xp(t);return function(e){return e.includes("Stream")||e.endsWith("generateContentStream")||e.endsWith("sendMessageStream")}(t)?Xu({name:`${l} ${u} stream-response`,op:zp(t),attributes:c},async o=>{try{return a.recordInputs&&i&&Hp(o,i),async function*(e,t,n){const a={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(const o of e)Bp(o,a,n,t),yield o}finally{const e={[Pl]:!0};a.responseId&&(e[El]=a.responseId),a.responseModel&&(e[zl]=a.responseModel),void 0!==a.promptTokens&&(e[Cl]=a.promptTokens),void 0!==a.completionTokens&&(e[Il]=a.completionTokens),void 0!==a.totalTokens&&(e[Ml]=a.totalTokens),a.finishReasons.length&&(e[xl]=JSON.stringify(a.finishReasons)),n&&a.responseTexts.length&&(e[Ol]=a.responseTexts.join("")),n&&a.toolCalls.length&&(e[Ll]=JSON.stringify(a.toolCalls)),t.setAttributes(e),t.end()}}(await e.apply(n,r),o,Boolean(a.recordOutputs))}catch(e){throw o.setStatus({code:St,message:"internal_error"}),wn(e,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),o.end(),e}}):Ku({name:o?`${l} ${u} create`:`${l} ${u}`,op:zp(t),attributes:c},s=>(a.recordInputs&&i&&Hp(s,i),Bu(()=>e.apply(n,r),e=>{wn(e,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},e=>{o||function(e,t,n){if(t&&"object"==typeof t){if(t.usageMetadata&&"object"==typeof t.usageMetadata){const n=t.usageMetadata;"number"==typeof n.promptTokenCount&&e.setAttributes({[Cl]:n.promptTokenCount}),"number"==typeof n.candidatesTokenCount&&e.setAttributes({[Il]:n.candidatesTokenCount}),"number"==typeof n.totalTokenCount&&e.setAttributes({[Ml]:n.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){const n=t.candidates.map(e=>e.content?.parts&&Array.isArray(e.content.parts)?e.content.parts.map(e=>"string"==typeof e.text?e.text:"").filter(e=>e.length>0).join(""):"").filter(e=>e.length>0);n.length>0&&e.setAttributes({[Ol]:n.join("")})}if(n&&t.functionCalls){const n=t.functionCalls;Array.isArray(n)&&n.length>0&&e.setAttributes({[Ll]:JSON.stringify(n)})}}}(s,e,a.recordOutputs)})))}})}function Vp(e,t="",n){return new Proxy(e,{get:(e,a,o)=>{const s=Reflect.get(e,a,o),r=Ep(t,String(a));if("function"==typeof s&&function(e){if(Np.includes(e))return!0;const t=e.split(".").pop();return Np.includes(t)}(r)){if(r===Fp){const t=Wp(s,r,e,n);return function(...e){const a=t(...e);return a&&"object"==typeof a?Vp(a,Up,n):a}}return Wp(s,r,e,n)}return"function"==typeof s?s.bind(e):s&&"object"==typeof s?Vp(s,r,n):s}})}function Jp(e,t){const n=Boolean(Be()?.getOptions().sendDefaultPii);return Vp(e,"",{recordInputs:n,recordOutputs:n,...t})}const Yp="auto.ai.langgraph";function Gp(e){const t=e;let n=0,a=0,o=0;if(t.usage_metadata&&"object"==typeof t.usage_metadata){const e=t.usage_metadata;return"number"==typeof e.input_tokens&&(n=e.input_tokens),"number"==typeof e.output_tokens&&(a=e.output_tokens),"number"==typeof e.total_tokens&&(o=e.total_tokens),{inputTokens:n,outputTokens:a,totalTokens:o}}if(t.response_metadata&&"object"==typeof t.response_metadata){const e=t.response_metadata;if(e.tokenUsage&&"object"==typeof e.tokenUsage){const t=e.tokenUsage;"number"==typeof t.promptTokens&&(n=t.promptTokens),"number"==typeof t.completionTokens&&(a=t.completionTokens),"number"==typeof t.totalTokens&&(o=t.totalTokens)}}return{inputTokens:n,outputTokens:a,totalTokens:o}}function Kp(e,t){const n=t;if(n.response_metadata&&"object"==typeof n.response_metadata){const t=n.response_metadata;t.model_name&&"string"==typeof t.model_name&&e.setAttribute(zl,t.model_name),t.finish_reason&&"string"==typeof t.finish_reason&&e.setAttribute(xl,[t.finish_reason])}}function Xp(e,t){return new Proxy(e,{apply:(e,n,a)=>Ku({op:"gen_ai.create_agent",name:"create_agent",attributes:{[et]:Yp,[Qe]:"gen_ai.create_agent",[Rl]:"create_agent"}},o=>{try{const s=Reflect.apply(e,n,a),r=a.length>0?a[0]:{};r?.name&&"string"==typeof r.name&&(o.setAttribute(Nl,r.name),o.updateName(`create_agent ${r.name}`));const i=s.invoke;return i&&"function"==typeof i&&(s.invoke=function(e,t,n,a){return new Proxy(e,{apply:(e,o,s)=>Ku({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[et]:Yp,[Qe]:Bl,[Rl]:"invoke_agent"}},async r=>{try{const i=n?.name;i&&"string"==typeof i&&(r.setAttribute($l,i),r.setAttribute(Nl,i),r.updateName(`invoke_agent ${i}`));const c=function(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;const t=e.builder?.nodes?.tools?.runnable?.tools;return t&&Array.isArray(t)&&0!==t.length?t.map(e=>({name:e.lc_kwargs?.name,description:e.lc_kwargs?.description,schema:e.lc_kwargs?.schema})):null}(t);c&&r.setAttribute(Dl,JSON.stringify(c));const u=a.recordInputs,l=a.recordOutputs,p=s.length>0?s[0].messages??[]:[];if(p&&u){const e=op(pp(p));r.setAttribute(Al,JSON.stringify(e))}const d=await Reflect.apply(e,o,s);return l&&function(e,t,n){const a=n,o=a?.messages;if(!o||!Array.isArray(o))return;const s=t?.length??0,r=o.length>s?o.slice(s):[];if(0===r.length)return;const i=function(e){if(!e||0===e.length)return null;const t=[];for(const n of e)if(n&&"object"==typeof n){const e=n.tool_calls;e&&Array.isArray(e)&&t.push(...e)}return t.length>0?t:null}(r);i&&e.setAttribute(Ll,JSON.stringify(i));const c=pp(r);e.setAttribute(Ol,JSON.stringify(c));let u=0,l=0,p=0;for(const t of r){const n=Gp(t);u+=n.inputTokens,l+=n.outputTokens,p+=n.totalTokens,Kp(e,t)}u>0&&e.setAttribute(Cl,u),l>0&&e.setAttribute(Il,l),p>0&&e.setAttribute(Ml,p)}(r,p??null,d),d}catch(e){throw r.setStatus({code:St,message:"internal_error"}),wn(e,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),e}})})}(i.bind(s),s,r,t)),s}catch(e){throw o.setStatus({code:St,message:"internal_error"}),wn(e,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),e}})})}function Zp(e,t){const n=t||{};return e.compile=Xp(e.compile.bind(e),n),e}const Qp=["responses.create","chat.completions.create","embeddings.create"],ed=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta","response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"];function td(e){return e.includes("chat.completions")?Yl.CHAT:e.includes("responses")?Yl.RESPONSES:e.includes("embeddings")?Yl.EMBEDDINGS:e.split(".").pop()||"unknown"}function nd(e){return`gen_ai.${td(e)}`}function ad(e){return null!==e&&"object"==typeof e&&"type"in e&&"string"==typeof e.type&&e.type.startsWith("response.")}function od(e){return null!==e&&"object"==typeof e&&"object"in e&&"chat.completion.chunk"===e.object}function sd(e,t,n,a){void 0!==t&&e.setAttributes({[Jl]:t,[Cl]:t}),void 0!==n&&e.setAttributes({[Vl]:n,[Il]:n}),void 0!==a&&e.setAttributes({[Ml]:a})}function rd(e,t,n,a){e.setAttributes({[ql]:t,[El]:t}),e.setAttributes({[Hl]:n,[zl]:n}),e.setAttributes({[Wl]:new Date(1e3*a).toISOString()})}function id(e,t){for(const n of e){const e=n.index;if(void 0!==e&&n.function)if(e in t.chatCompletionToolCalls){const a=t.chatCompletionToolCalls[e];n.function.arguments&&a?.function&&(a.function.arguments+=n.function.arguments)}else t.chatCompletionToolCalls[e]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}}}}function cd(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(const a of e.choices??[])n&&(a.delta?.content&&t.responseTexts.push(a.delta.content),a.delta?.tool_calls&&id(a.delta.tool_calls,t)),a.finish_reason&&t.finishReasons.push(a.finish_reason)}function ud(e,t,n,a){if(!e||"object"!=typeof e)return void t.eventTypes.push("unknown:non-object");if(e instanceof Error)return a.setStatus({code:St,message:"internal_error"}),void wn(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});if(!("type"in e))return;const o=e;if(ed.includes(o.type)){if(n&&("response.output_item.done"===o.type&&"item"in o&&t.responsesApiToolCalls.push(o.item),"response.output_text.delta"===o.type&&"delta"in o&&o.delta))t.responseTexts.push(o.delta);else if("response"in o){const{response:e}=o;t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created_at??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.input_tokens,t.completionTokens=e.usage.output_tokens,t.totalTokens=e.usage.total_tokens),e.status&&t.finishReasons.push(e.status),n&&e.output_text&&t.responseTexts.push(e.output_text)}}else t.eventTypes.push(o.type)}function ld(e,t){if("messages"in t){const n=Cp(t.messages);e.setAttributes({[Al]:n})}if("input"in t){const n=Cp(t.input);e.setAttributes({[Al]:n})}}function pd(e,t,n,a){return async function(...o){const s=function(e,t){const n={[hl]:"openai",[Rl]:td(t),[et]:"auto.ai.openai"};if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0],a=[...Array.isArray(t.tools)?t.tools:[],...t.web_search_options&&"object"==typeof t.web_search_options?[{type:"web_search_options",...t.web_search_options}]:[]];a.length>0&&(n[Dl]=JSON.stringify(a))}if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0];n[gl]=t.model??"unknown","temperature"in t&&(n[kl]=t.temperature),"top_p"in t&&(n[vl]=t.top_p),"frequency_penalty"in t&&(n[bl]=t.frequency_penalty),"presence_penalty"in t&&(n[wl]=t.presence_penalty),"stream"in t&&(n[fl]=t.stream),"encoding_format"in t&&(n[jl]=t.encoding_format),"dimensions"in t&&(n[Sl]=t.dimensions)}else n[gl]="unknown";return n}(o,t),r=s[gl]||"unknown",i=td(t),c=o[0];return c&&"object"==typeof c&&!0===c.stream?Xu({name:`${i} ${r} stream-response`,op:nd(t),attributes:s},async s=>{try{return a.recordInputs&&c&&ld(s,c),async function*(e,t,n){const a={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(const o of e)od(o)?cd(o,a,n):ad(o)&&ud(o,a,n,t),yield o}finally{rd(t,a.responseId,a.responseModel,a.responseTimestamp),sd(t,a.promptTokens,a.completionTokens,a.totalTokens),t.setAttributes({[Pl]:!0}),a.finishReasons.length&&t.setAttributes({[xl]:JSON.stringify(a.finishReasons)}),n&&a.responseTexts.length&&t.setAttributes({[Ol]:a.responseTexts.join("")});const e=[...Object.values(a.chatCompletionToolCalls),...a.responsesApiToolCalls];e.length>0&&t.setAttributes({[Ll]:JSON.stringify(e)}),t.end()}}(await e.apply(n,o),s,a.recordOutputs??!1)}catch(e){throw s.setStatus({code:St,message:"internal_error"}),wn(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),s.end(),e}}):Ku({name:`${i} ${r}`,op:nd(t),attributes:s},async s=>{try{a.recordInputs&&c&&ld(s,c);const t=await e.apply(n,o);return function(e,t,n){if(!t||"object"!=typeof t)return;const a=t;if(function(e){return null!==e&&"object"==typeof e&&"object"in e&&"chat.completion"===e.object}(a)){if(function(e,t,n){if(rd(e,t.id,t.model,t.created),t.usage&&sd(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){const a=t.choices.map(e=>e.finish_reason).filter(e=>null!==e);if(a.length>0&&e.setAttributes({[xl]:JSON.stringify(a)}),n){const n=t.choices.map(e=>e.message?.tool_calls).filter(e=>Array.isArray(e)&&e.length>0).flat();n.length>0&&e.setAttributes({[Ll]:JSON.stringify(n)})}}}(e,a,n),n&&a.choices?.length){const t=a.choices.map(e=>e.message?.content||"");e.setAttributes({[Ol]:JSON.stringify(t)})}}else!function(e){return null!==e&&"object"==typeof e&&"object"in e&&"response"===e.object}(a)?function(e){if(null===e||"object"!=typeof e||!("object"in e))return!1;const t=e;return"list"===t.object&&"string"==typeof t.model&&t.model.toLowerCase().includes("embedding")}(a)&&function(e,t){e.setAttributes({[Hl]:t.model,[zl]:t.model}),t.usage&&sd(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}(e,a):(function(e,t,n){if(rd(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[xl]:JSON.stringify([t.status])}),t.usage&&sd(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){const n=t;if(Array.isArray(n.output)&&n.output.length>0){const t=n.output.filter(e=>"object"==typeof e&&null!==e&&"function_call"===e.type);t.length>0&&e.setAttributes({[Ll]:JSON.stringify(t)})}}}(e,a,n),n&&a.output_text&&e.setAttributes({[Ol]:a.output_text}))}(s,t,a.recordOutputs),t}catch(e){throw wn(e,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),e}})}}function dd(e,t="",n){return new Proxy(e,{get(e,a){const o=e[a],s=function(e,t){return e?`${e}.${t}`:t}(t,String(a));return"function"==typeof o&&function(e){return Qp.includes(e)}(s)?pd(o,s,e,n):"function"==typeof o?o.bind(e):o&&"object"==typeof o?dd(o,s,n):o}})}function md(e,t){const n=Boolean(Be()?.getOptions().sendDefaultPii);return dd(e,"",{recordInputs:n,recordOutputs:n,...t})}const hd=["reauthenticate","signInAnonymously","signInWithOAuth","signInWithIdToken","signInWithOtp","signInWithPassword","signInWithSSO","signOut","signUp","verifyOtp"],gd=["createUser","deleteUser","listUsers","getUserById","updateUserById","inviteUserByEmail"],fd={eq:"eq",neq:"neq",gt:"gt",gte:"gte",lt:"lt",lte:"lte",like:"like","like(all)":"likeAllOf","like(any)":"likeAnyOf",ilike:"ilike","ilike(all)":"ilikeAllOf","ilike(any)":"ilikeAnyOf",is:"is",in:"in",cs:"contains",cd:"containedBy",sr:"rangeGt",nxl:"rangeGte",sl:"rangeLt",nxr:"rangeLte",adj:"rangeAdjacent",ov:"overlaps",fts:"",plfts:"plain",phfts:"phrase",wfts:"websearch",not:"not"},kd=["select","insert","upsert","update","delete"];function yd(e){try{e.__SENTRY_INSTRUMENTED__=!0}catch{}}function bd(e){try{return e.__SENTRY_INSTRUMENTED__}catch{return!1}}function wd(e,t){if(""===t||"*"===t)return"select(*)";if("select"===e)return`select(${t})`;if("or"===e||e.endsWith(".or"))return`${e}${t}`;const[n,...a]=t.split(".");let o;return o=n?.startsWith("fts")?"textSearch":n?.startsWith("plfts")?"textSearch[plain]":n?.startsWith("phfts")?"textSearch[phrase]":n?.startsWith("wfts")?"textSearch[websearch]":n&&fd[n]||"filter",`${o}(${e}, ${a.join(".")})`}function vd(e,t=!1){return new Proxy(e,{apply:(n,a,o)=>Ku({name:`auth ${t?"(admin) ":""}${e.name}`,attributes:{[et]:"auto.db.supabase",[Qe]:"db","db.system":"postgresql","db.operation":`auth.${t?"admin.":""}${e.name}`}},e=>Reflect.apply(n,a,o).then(t=>(t&&"object"==typeof t&&"error"in t&&t.error?(e.setStatus({code:St}),wn(t.error,{mechanism:{handled:!1,type:"auto.db.supabase.auth"}})):e.setStatus({code:jt}),e.end(),t)).catch(t=>{throw e.setStatus({code:St}),e.end(),wn(t,{mechanism:{handled:!1,type:"auto.db.supabase.auth"}}),t}).then(...o))})}function _d(e){bd(e.prototype.then)||(e.prototype.then=new Proxy(e.prototype.then,{apply(e,t,n){const a=kd,o=t,s=function(e,t={}){switch(e){case"GET":return"select";case"POST":return t.Prefer?.includes("resolution=")?"upsert":"insert";case"PATCH":return"update";case"DELETE":return"delete";default:return"<unknown-op>"}}(o.method,o.headers);if(!a.includes(s))return Reflect.apply(e,t,n);if(!o?.url?.pathname||"string"!=typeof o.url.pathname)return Reflect.apply(e,t,n);const r=o.url.pathname.split("/"),i=r.length>0?r[r.length-1]:"",c=[];for(const[e,t]of o.url.searchParams.entries())c.push(wd(e,t));const u=Object.create(null);if(j(o.body))for(const[e,t]of Object.entries(o.body))u[e]=t;const l=`${"select"===s?"":`${s}${u?"(...) ":""}`}${c.join(" ")} from(${i})`,p={"db.table":i,"db.schema":o.schema,"db.url":o.url.origin,"db.sdk":o.headers["X-Client-Info"],"db.system":"postgresql","db.operation":s,[et]:"auto.db.supabase",[Qe]:"db"};return c.length&&(p["db.query"]=c),Object.keys(u).length&&(p["db.body"]=u),Ku({name:l,attributes:p},a=>Reflect.apply(e,t,[]).then(e=>{if(a&&(e&&"object"==typeof e&&"status"in e&&zt(a,e.status||500),a.end()),e.error){const t=new Error(e.error.message);e.error.code&&(t.code=e.error.code),e.error.details&&(t.details=e.error.details);const n={};c.length&&(n.query=c),Object.keys(u).length&&(n.body=u),wn(t,e=>(e.addEventProcessor(e=>(ge(e,{handled:!1,type:"auto.db.supabase.postgres"}),e)),e.setContext("supabase",n),e))}const t={type:"supabase",category:`db.${s}`,message:l},n={};return c.length&&(n.query=c),Object.keys(u).length&&(n.body=u),Object.keys(n).length&&(t.data=n),jr(t),e},e=>{throw a&&(zt(a,500),a.end()),e}).then(...n))}}),yd(e.prototype.then))}const jd=e=>{var t;e?(bd((t=e.constructor===Function?e:e.constructor).prototype.from)||(t.prototype.from=new Proxy(t.prototype.from,{apply(e,t,n){const a=Reflect.apply(e,t,n);return function(e){for(const t of kd)bd(e.prototype[t])||(e.prototype[t]=new Proxy(e.prototype[t],{apply(e,n,a){const o=Reflect.apply(e,n,a),s=o.constructor;return h&&U.log(`Instrumenting ${t} operation's PostgRESTFilterBuilder`),_d(s),o}}),yd(e.prototype[t]))}(a.constructor),a}}),yd(t.prototype.from)),function(e){const t=e.auth;if(t&&!bd(e.auth)){for(const n of hd){const a=t[n];a&&"function"==typeof e.auth[n]&&(e.auth[n]=vd(a))}for(const n of gd){const a=t.admin[n];a&&"function"==typeof e.auth.admin[n]&&(e.auth.admin[n]=vd(a,!0))}yd(e.auth)}}(e)):h&&U.warn("Supabase integration was not installed because no Supabase client was provided.")},Sd=e=>{return t=e.supabaseClient,{setupOnce(){jd(t)},name:"Supabase"};var t};function xd(e,...t){const n=new String(String.raw(e,...t));return n.__sentry_template_string__=e.join("\0").replace(/%/g,"%%").replace(/\0/g,"%s"),n.__sentry_template_values__=t,n}const zd=xd;function Ed(e,t,n,a,o){os({level:e,message:t,attributes:n,severityNumber:o},a)}function Td(e,t,{scope:n}={}){Ed("trace",e,t,n)}function Cd(e,t,{scope:n}={}){Ed("debug",e,t,n)}function Id(e,t,{scope:n}={}){Ed("info",e,t,n)}function Md(e,t,{scope:n}={}){Ed("warn",e,t,n)}function Rd(e,t,{scope:n}={}){Ed("error",e,t,n)}function Ad(e,t,{scope:n}={}){Ed("fatal",e,t,n)}function Od(e,t,n,a){ds({type:e,name:t,value:n,unit:a?.unit,attributes:a?.attributes},{scope:a?.scope})}function Dd(e,t=1,n){Od("counter",e,t,n)}function Pd(e,t,n){Od("gauge",e,t,n)}function Ld(e,t,n){Od("distribution",e,t,n)}const Nd=new Map,$d=new Set;function Fd(e,t){t.exception?.values?.forEach(t=>{t.stacktrace?.frames?.forEach(t=>{if(!t.filename||t.module_metadata)return;const n=function(e,t){return function(e){if(l._sentryModuleMetadata)for(const t of Object.keys(l._sentryModuleMetadata)){const n=l._sentryModuleMetadata[t];if($d.has(t))continue;$d.add(t);const a=e(t);for(const e of a.reverse())if(e.filename){Nd.set(e.filename,n);break}}}(e),Nd.get(t)}(e,t.filename);n&&(t.module_metadata=n)})})}function Ud(e){e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{delete e.module_metadata})})}const Bd=()=>({name:"ModuleMetadata",setup(e){e.on("beforeEnvelope",e=>{$o(e,(e,t)=>{if("event"===t){const t=Array.isArray(e)?e[1]:void 0;t&&(Ud(t),e[1]=t)}})}),e.on("applyFrameMetadata",t=>{t.type||Fd(e.getOptions().stackParser,t)})}});let qd=!1;function Hd(){function e(){const e=Zt(),t=e&&Xt(e);if(t){const e="internal_error";h&&U.log(`[Tracing] Root span: ${e} -> Global error occurred`),t.setStatus({code:St,message:e})}}qd||(e.tag="sentry_tracingErrorCallback",qd=!0,ei(e),ai(e))}const Wd=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function Vd(...e){let t="",n=!1;for(let a=e.length-1;a>=-1&&!n;a--){const o=a>=0?e[a]:"/";o&&(t=`${o}/${t}`,n="/"===o.charAt(0))}return t=function(e,t){let n=0;for(let t=e.length-1;t>=0;t--){const a=e[t];"."===a?e.splice(t,1):".."===a?(e.splice(t,1),n++):n&&(e.splice(t,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}(t.split("/").filter(e=>!!e),!n).join("/"),(n?"/":"")+t||"."}function Jd(e){let t=0;for(;t<e.length&&""===e[t];t++);let n=e.length-1;for(;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}const Yd=(e={})=>{const t=e.root,n=e.prefix||"app:///",a="window"in l&&!!l.window,o=e.iteratee||function({isBrowser:e,root:t,prefix:n}){return a=>{if(!a.filename)return a;const o=/^[a-zA-Z]:\\/.test(a.filename)||a.filename.includes("\\")&&!a.filename.includes("/"),s=/^\//.test(a.filename);if(e){if(t){const e=a.filename;0===e.indexOf(t)&&(a.filename=e.replace(t,n))}}else if(o||s){const e=o?a.filename.replace(/^[a-zA-Z]:/,"").replace(/\\/g,"/"):a.filename,s=t?function(e,t){e=Vd(e).slice(1),t=Vd(t).slice(1);const n=Jd(e.split("/")),a=Jd(t.split("/")),o=Math.min(n.length,a.length);let s=o;for(let e=0;e<o;e++)if(n[e]!==a[e]){s=e;break}let r=[];for(let e=s;e<n.length;e++)r.push("..");return r=r.concat(a.slice(s)),r.join("/")}(t,e):function(e){let t=function(e){const t=e.length>1024?`<truncated>${e.slice(-1024)}`:e,n=Wd.exec(t);return n?n.slice(1):[]}(e)[2]||"";return t}(e);a.filename=`${n}${s}`}return a}}({isBrowser:a,root:t,prefix:n});return{name:"RewriteFrames",processEvent(e){let t=e;return e.exception&&Array.isArray(e.exception.values)&&(t=function(e){try{return{...e,exception:{...e.exception,values:e.exception.values.map(e=>{return{...e,...e.stacktrace&&{stacktrace:(t=e.stacktrace,{...t,frames:t?.frames?.map(e=>o(e))})}};var t})}}}catch{return e}}(t)),t}}},Gd=e=>({name:"ThirdPartyErrorsFilter",setup(e){e.on("beforeEnvelope",e=>{$o(e,(e,t)=>{if("event"===t){const t=Array.isArray(e)?e[1]:void 0;t&&(Ud(t),e[1]=t)}})}),e.on("applyFrameMetadata",t=>{t.type||Fd(e.getOptions().stackParser,t)})},processEvent(t){const n=function(e){const t=ae(e);if(t)return t.filter(e=>!!e.filename&&null!=(e.lineno??e.colno)).map(e=>e.module_metadata?Object.keys(e.module_metadata).filter(e=>e.startsWith(Kd)).map(e=>e.slice(Kd.length)):[])}(t);if(n){const a=n["drop-error-if-contains-third-party-frames"===e.behaviour||"apply-tag-if-contains-third-party-frames"===e.behaviour?"some":"every"](t=>!t.some(t=>e.filterKeys.includes(t)));if(a){if("drop-error-if-contains-third-party-frames"===e.behaviour||"drop-error-if-exclusively-contains-third-party-frames"===e.behaviour)return null;t.tags={...t.tags,third_party_code:!0}}}return t}}),Kd="_sentryBundlerPluginAppKey:";function Xd(e){return{...e,path:"path"in e&&Array.isArray(e.path)?e.path.join("."):void 0,keys:"keys"in e?JSON.stringify(e.keys):void 0,unionErrors:"unionErrors"in e?JSON.stringify(e.unionErrors):void 0}}function Zd(e){return e.map(e=>"number"==typeof e?"<array>":e).join(".")}function Qd(e){const t=new Set;for(const n of e.issues){const e=Zd(n.path);e.length>0&&t.add(e)}const n=Array.from(t);if(0===n.length){let t="variable";if(e.issues.length>0){const n=e.issues[0];void 0!==n&&"expected"in n&&"string"==typeof n.expected&&(t=n.expected)}return`Failed to validate ${t}`}return`Failed to validate keys: ${se(n.join(", "),100)}`}const em=(e={})=>{const t=e.limit??10;return{name:"ZodErrors",processEvent:(n,a)=>function(e,t=!1,n,a){if(!(n.exception?.values&&a.originalException&&(o=a.originalException,f(o)&&"ZodError"===o.name&&Array.isArray(o.issues))&&0!==a.originalException.issues.length))return n;var o;try{const o=(t?a.originalException.issues:a.originalException.issues.slice(0,e)).map(Xd);return t&&(Array.isArray(a.attachments)||(a.attachments=[]),a.attachments.push({filename:"zod_issues.json",data:JSON.stringify({issues:o})})),{...n,exception:{...n.exception,values:[{...n.exception.values[0],value:Qd(a.originalException)},...n.exception.values.slice(1)]},extra:{...n.extra,"zoderror.issues":o.slice(0,e)}}}catch(e){return{...n,extra:{...n.extra,"zoderrors sentry integration parse error":{message:"an exception was thrown while processing ZodError within applyZodErrorsToEvent()",error:e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:"unknown"}}}}}(t,e.saveZodIssuesAsAttachment,n,a)}},tm={startProfiler:function(){const e=Be();e?e.getIntegrationByName("BrowserProfiling")?e.emit("startUIProfiler"):Wr&&U.warn("BrowserProfiling integration is not available"):Wr&&U.warn("No Sentry client available, profiling is not started")},stopProfiler:function(){const e=Be();e?e.getIntegrationByName("BrowserProfiling")?e.emit("stopUIProfiler"):Wr&&U.warn("ProfilingIntegration is not available"):Wr&&U.warn("No Sentry client available, profiling is not started")}};function nm(e,{metadata:t,tunnel:n,dsn:a}){const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...t?.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!a&&{dsn:ft(a)}},s=function(e){return[{type:"user_report"},e]}(e);return Lo(o,[s])}function am(e={}){const t=er.document,n=t?.head||t?.body;if(!n)return void(Wr&&U.error("[showReportDialog] Global document not defined"));const a=Le(),o=Be(),s=o?.getDsn();if(!s)return void(Wr&&U.error("[showReportDialog] DSN not configured"));const r={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||Cn()},i=er.document.createElement("script");i.async=!0,i.crossOrigin="anonymous",i.src=function(e,t){const n=wt(e);if(!n)return"";const a=`${Do(n)}embed/error-page/`;let o=`dsn=${ft(n)}`;for(const e in t)if("dsn"!==e&&"onClose"!==e)if("user"===e){const e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${a}?${o}`}(s,r);const{onLoad:c,onClose:u}=r;if(c&&(i.onload=c),u){const e=t=>{if("__sentry_reportdialog_closed__"===t.data)try{u()}finally{er.removeEventListener("message",e)}};er.addEventListener("message",e)}n.appendChild(i)}const om=l,sm=new WeakMap,rm=(e={})=>{const t=e.types||["crash","deprecation","intervention"];function n(e){if(sm.has(Be()))for(const t of e)Fe(e=>{e.setExtra("url",t.url);const n=`ReportingObserver [${t.type}]`;let a="No details available";if(t.body){const n={};for(const e in t.body)n[e]=t.body[e];if(e.setExtra("body",n),"crash"===t.type){const e=t.body;a=[e.crashId||"",e.reason||""].join(" ").trim()||a}else a=t.body.message||a}vn(`${n}: ${a}`)})}return{name:"ReportingObserver",setupOnce(){"ReportingObserver"in mr&&new om.ReportingObserver(n,{buffered:!0,types:t}).observe()},setup(e){sm.set(e,!0)}}};function im(e,t){const n=t?.getDsn(),a=t?.getOptions().tunnel;return function(e,t){const n=Tr(e);return!(!n||Er(n))&&(!!t&&n.host.includes(t.host)&&/(^|&|\?)sentry_key=/.test(n.search))}(e,n)||function(e,t){return!!t&&cm(e)===cm(t)}(e,a)}function cm(e){return"/"===e[e.length-1]?e.slice(0,-1):e}const um=(e={})=>{const t={failedRequestStatusCodes:[[500,599]],failedRequestTargets:[/.*/],...e};return{name:"HttpClient",setup(e){!function(e,t){gr()&&fr(n=>{if(Be()!==e)return;const{response:a,args:o,error:s,virtualError:r}=n,[i,c]=o;a&&function(e,t,n,a,o){if(mm(e,n.status,n.url)){const e=function(e,t){return!t&&e instanceof Request||e instanceof Request&&e.bodyUsed?e:new Request(e,t)}(t,a);let s,r,i,c;gm()&&([s,i]=lm("Cookie",e),[r,c]=lm("Set-Cookie",n)),_n(hm({url:e.url,method:e.method,status:n.status,requestHeaders:s,responseHeaders:r,requestCookies:i,responseCookies:c,error:o,type:"fetch"}))}}(t,i,a,c,s||r)},!1)}(e,t),function(e,t){"XMLHttpRequest"in l&&Fr(n=>{if(Be()!==e)return;const{error:a,virtualError:o}=n,s=n.xhr,r=s[$r];if(!r)return;const{method:i,request_headers:c}=r;try{!function(e,t,n,a,o){if(mm(e,t.status,t.responseURL)){let e,s,r;if(gm()){try{const e=t.getResponseHeader("Set-Cookie")||t.getResponseHeader("set-cookie")||void 0;e&&(s=dm(e))}catch{}try{r=function(e){const t=e.getAllResponseHeaders();return t?t.split("\r\n").reduce((e,t)=>{const[n,a]=t.split(": ");return n&&a&&(e[n]=a),e},{}):{}}(t)}catch{}e=a}_n(hm({url:t.responseURL,method:n,status:t.status,requestHeaders:e,responseHeaders:r,responseCookies:s,error:o,type:"xhr"}))}}(t,s,i,c,a||o)}catch(e){Wr&&U.warn("Error while extracting response event form XHR response",e)}})}(e,t)}}};function lm(e,t){const n=function(e){const t={};return e.forEach((e,n)=>{t[n]=e}),t}(t.headers);let a;try{const t=n[e]||n[e.toLowerCase()]||void 0;t&&(a=dm(t))}catch{}return[n,a]}function pm(e){if(e){const t=e["Content-Length"]||e["content-length"];if(t)return parseInt(t,10)}}function dm(e){return e.split("; ").reduce((e,t)=>{const[n,a]=t.split("=");return n&&a&&(e[n]=a),e},{})}function mm(e,t,n){return function(e,t){return e.some(e=>"number"==typeof e?e===t:t>=e[0]&&t<=e[1])}(e.failedRequestStatusCodes,t)&&(a=e.failedRequestTargets,o=n,a.some(e=>"string"==typeof e?o.includes(e):e.test(o)))&&!im(n,Be());var a,o}function hm(e){const t=Be(),n=t&&e.error&&e.error instanceof Error?e.error.stack:void 0,a=n&&t?t.getOptions().stackParser(n,0,1):void 0,o=`HTTP Client Error with status code: ${e.status}`,s={message:o,exception:{values:[{type:"Error",value:o,stacktrace:a?{frames:a}:void 0}]},request:{url:e.url,method:e.method,headers:e.requestHeaders,cookies:e.requestCookies},contexts:{response:{status_code:e.status,headers:e.responseHeaders,cookies:e.responseCookies,body_size:pm(e.responseHeaders)}}};return ge(s,{type:`auto.http.client.${e.type}`,handled:!1}),s}function gm(){const e=Be();return!!e&&Boolean(e.getOptions().sendDefaultPii)}const fm=l,km=(e={})=>{const t=null!=e.frameContextLines?e.frameContextLines:7;return{name:"ContextLines",processEvent:e=>function(e,t){const n=fm.document,a=fm.location&&Mr(fm.location.href);if(!n||!a)return e;const o=e.exception?.values;if(!o?.length)return e;const s=n.documentElement.innerHTML;if(!s)return e;const r=["<!DOCTYPE html>","<html>",...s.split("\n"),"</html>"];return o.forEach(e=>{const n=e.stacktrace;n?.frames&&(n.frames=n.frames.map(e=>function(e,t,n,a){return e.filename===n&&e.lineno&&t.length?(function(e,t,n=5){if(void 0===t.lineno)return;const a=e.length,o=Math.max(Math.min(a-1,t.lineno-1),0);t.pre_context=e.slice(Math.max(0,o-n),o).map(e=>re(e,0));const s=Math.min(a-1,o);t.context_line=re(e[s],t.colno||0),t.post_context=e.slice(Math.min(o+1,a),o+1+n).map(e=>re(e,0))}(t,e,a),e):e}(e,r,a,t)))}),e}(e,t)}};function ym(e){return new URLSearchParams(e).toString()}function bm(e,t=U){try{if("string"==typeof e)return[e];if(e instanceof URLSearchParams)return[e.toString()];if(e instanceof FormData)return[ym(e)];if(!e)return[void 0]}catch(n){return Oi&&t.error(n,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return Oi&&t.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function wm(e=[]){if(2===e.length&&"object"==typeof e[1])return e[1].body}function vm(e){let t;try{t=e.getAllResponseHeaders()}catch(t){return Oi&&U.error(t,"Failed to get xhr response headers",e),{}}return t?t.split("\r\n").reduce((e,t)=>{const[n,a]=t.split(": ");return a&&(e[n.toLowerCase()]=a),e},{}):{}}function _m(e){const{query:t,operationName:n}=e,{operationName:a=n,operationType:o}=function(e){const t=e.match(/^(?:\s*)(query|mutation|subscription)(?:\s*)(\w+)(?:\s*)[{(]/);if(t)return{operationType:t[1],operationName:t[2]};const n=e.match(/^(?:\s*)(query|mutation|subscription)(?:\s*)[{(]/);return n?{operationType:n[1],operationName:void 0}:{operationType:void 0,operationName:void 0}}(t);return a?`${o} ${a}`:`${o}`}function jm(e){let t;if("xhr"in e){const n=e.xhr[$r];t=n&&bm(n.body)[0]}else t=bm(wm(e.input))[0];return t}function Sm(e){let t;try{const n=JSON.parse(e);n.query&&(t=n)}finally{return t}}const xm=e=>({name:"GraphQLClient",setup(t){!function(e,t){e.on("beforeOutgoingRequestSpan",(e,n)=>{const a=Ht(e).data||{};if("http.client"!==a[Qe])return;const o=a["url.full"]||a["http.url"],s=a["http.request.method"]||a["http.method"];if(!w(o)||!w(s))return;const{endpoints:r}=t,i=ue(o,r),c=jm(n);if(i&&c){const t=Sm(c);if(t){const n=_m(t);e.updateName(`${s} ${o} (${n})`),e.setAttribute("graphql.document",c)}}})}(t,e),function(e,t){e.on("beforeOutgoingRequestBreadcrumb",(e,n)=>{const{category:a,type:o,data:s}=e;if("http"===o&&("fetch"===a||"xhr"===a)){const e=s?.url,{endpoints:a}=t,o=ue(e,a),r=jm(n);if(o&&s&&r){const e=Sm(r);if(!s.graphql&&e){const t=_m(e);s["graphql.document"]=e.query,s["graphql.operation"]=t}}}})}(t,e)}}),zm=(e,t,n,a)=>{let o,s;return r=>{t.value>=0&&(r||a)&&(s=t.value-(o??0),(s||void 0===o)&&(o=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},Em=(e=!0)=>{const t=Rr.performance?.getEntriesByType?.("navigation")[0];if(!e||t&&t.responseStart>0&&t.responseStart<performance.now())return t},Tm=()=>{const e=Em();return e?.activationStart??0};function Cm(e,t,n){Rr.document&&Rr.addEventListener(e,t,n)}function Im(e,t,n){Rr.document&&Rr.removeEventListener(e,t,n)}let Mm=-1;const Rm=new Set,Am=e=>{if(function(e){return"pagehide"===e.type||"hidden"===Rr.document?.visibilityState}(e)&&Mm>-1){if("visibilitychange"===e.type||"pagehide"===e.type)for(const e of Rm)e();isFinite(Mm)||(Mm="visibilitychange"===e.type?e.timeStamp:0,Im("prerenderingchange",Am,!0))}},Om=()=>{if(Rr.document&&Mm<0){const e=Tm(),t=Rr.document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(t=>"hidden"===t.name&&t.startTime>e)[0]?.startTime;Mm=t??("hidden"!==Rr.document?.visibilityState||Rr.document?.prerendering?1/0:0),Cm("visibilitychange",Am,!0),Cm("pagehide",Am,!0),Cm("prerenderingchange",Am,!0)}return{get firstHiddenTime(){return Mm},onHidden(e){Rm.add(e)}}},Dm=(e,t=-1)=>{const n=Em();let a="navigate";return n&&(Rr.document?.prerendering||Tm()>0?a="prerender":Rr.document?.wasDiscarded?a="restore":n.type&&(a=n.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:a}},Pm=new WeakMap;function Lm(e,t){return Pm.get(e)||Pm.set(e,new t),Pm.get(e)}class Nm{constructor(){Nm.prototype.__init.call(this),Nm.prototype.__init2.call(this)}__init(){this._sessionValue=0}__init2(){this._sessionEntries=[]}_processEntry(e){if(e.hadRecentInput)return;const t=this._sessionEntries[0],n=this._sessionEntries[this._sessionEntries.length-1];this._sessionValue&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this._sessionValue+=e.value,this._sessionEntries.push(e)):(this._sessionValue=e.value,this._sessionEntries=[e]),this._onAfterProcessingUnexpectedShift?.(e)}}const $m=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const a=new PerformanceObserver(e=>{Promise.resolve().then(()=>{t(e.getEntries())})});return a.observe({type:e,buffered:!0,...n}),a}}catch{}},Fm=e=>{let t=!1;return()=>{t||(e(),t=!0)}},Um=e=>{Rr.document?.prerendering?addEventListener("prerenderingchange",()=>e(),!0):e()},Bm=[1800,3e3],qm=[.1,.25];let Hm=0,Wm=1/0,Vm=0;const Jm=e=>{e.forEach(e=>{e.interactionId&&(Wm=Math.min(Wm,e.interactionId),Vm=Math.max(Vm,e.interactionId),Hm=Vm?(Vm-Wm)/7+1:0)})};let Ym;const Gm=()=>Ym?Hm:performance.interactionCount||0,Km=()=>{"interactionCount"in performance||Ym||(Ym=$m("event",Jm,{type:"event",buffered:!0,durationThreshold:0}))};let Xm=0;class Zm{constructor(){Zm.prototype.__init.call(this),Zm.prototype.__init2.call(this)}__init(){this._longestInteractionList=[]}__init2(){this._longestInteractionMap=new Map}_resetInteractions(){Xm=Gm(),this._longestInteractionList.length=0,this._longestInteractionMap.clear()}_estimateP98LongestInteraction(){const e=Math.min(this._longestInteractionList.length-1,Math.floor((Gm()-Xm)/50));return this._longestInteractionList[e]}_processEntry(e){if(this._onBeforeProcessingEntry?.(e),!e.interactionId&&"first-input"!==e.entryType)return;const t=this._longestInteractionList.at(-1);let n=this._longestInteractionMap.get(e.interactionId);if(n||this._longestInteractionList.length<10||e.duration>t._latency){if(n?e.duration>n._latency?(n.entries=[e],n._latency=e.duration):e.duration===n._latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],_latency:e.duration},this._longestInteractionMap.set(n.id,n),this._longestInteractionList.push(n)),this._longestInteractionList.sort((e,t)=>t._latency-e._latency),this._longestInteractionList.length>10){const e=this._longestInteractionList.splice(10);for(const t of e)this._longestInteractionMap.delete(t.id)}this._onAfterProcessingINPCandidate?.(n)}}}const Qm=e=>{const t=t=>{"pagehide"!==t.type&&"hidden"!==Rr.document?.visibilityState||e(t)};Cm("visibilitychange",t,!0),Cm("pagehide",t,!0)},eh=e=>{const t=Rr.requestIdleCallback||Rr.setTimeout;"hidden"===Rr.document?.visibilityState?e():(Cm("visibilitychange",e=Fm(e),{once:!0,capture:!0}),t(()=>{e(),Im("visibilitychange",e,{capture:!0})}),Qm(e))},th=[200,500];class nh{_processEntry(e){this._onBeforeProcessingEntry?.(e)}}const ah=[2500,4e3],oh=[800,1800],sh=e=>{Rr.document?.prerendering?Um(()=>sh(e)):"complete"!==Rr.document?.readyState?addEventListener("load",()=>sh(e),!0):setTimeout(e)},rh={},ih={};let ch,uh,lh,ph;function dh(e,t=!1){return vh("cls",e,kh,ch,t)}function mh(e,t=!1){return vh("lcp",e,yh,uh,t)}function hh(e){return vh("inp",e,wh,ph)}function gh(e,t){return _h(e,t),ih[e]||(function(e){const t={};"event"===e&&(t.durationThreshold=0),$m(e,t=>{fh(e,{entries:t})},t)}(e),ih[e]=!0),jh(e,t)}function fh(e,t){const n=rh[e];if(n?.length)for(const a of n)try{a(t)}catch(t){Oi&&U.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${ne(a)}\nError:`,t)}}function kh(){return((e,t={})=>{((e,t={})=>{Um(()=>{const n=Om(),a=Dm("FCP");let o;const s=$m("paint",e=>{for(const t of e)"first-contentful-paint"===t.name&&(s.disconnect(),t.startTime<n.firstHiddenTime&&(a.value=Math.max(t.startTime-Tm(),0),a.entries.push(t),o(!0)))});s&&(o=zm(e,a,Bm,t.reportAllChanges))})})(Fm(()=>{const n=Dm("CLS",0);let a;const o=Om(),s=Lm(t,Nm),r=e=>{for(const t of e)s._processEntry(t);s._sessionValue>n.value&&(n.value=s._sessionValue,n.entries=s._sessionEntries,a())},i=$m("layout-shift",r);i&&(a=zm(e,n,qm,t.reportAllChanges),o.onHidden(()=>{r(i.takeRecords()),a(!0)}),Rr?.setTimeout?.(a))}))})(e=>{fh("cls",{metric:e}),ch=e},{reportAllChanges:!0})}function yh(){return((e,t={})=>{Um(()=>{const n=Om(),a=Dm("LCP");let o;const s=Lm(t,nh),r=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)s._processEntry(t),t.startTime<n.firstHiddenTime&&(a.value=Math.max(t.startTime-Tm(),0),a.entries=[t],o())},i=$m("largest-contentful-paint",r);if(i){o=zm(e,a,ah,t.reportAllChanges);const n=Fm(()=>{r(i.takeRecords()),i.disconnect(),o(!0)}),s=e=>{e.isTrusted&&(eh(n),Im(e.type,s,{capture:!0}))};for(const e of["keydown","click","visibilitychange"])Cm(e,s,{capture:!0})}})})(e=>{fh("lcp",{metric:e}),uh=e},{reportAllChanges:!0})}function bh(){return((e,t={})=>{const n=Dm("TTFB"),a=zm(e,n,oh,t.reportAllChanges);sh(()=>{const e=Em();e&&(n.value=Math.max(e.responseStart-Tm(),0),n.entries=[e],a(!0))})})(e=>{fh("ttfb",{metric:e}),lh=e})}function wh(){return((e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const n=Om();Um(()=>{Km();const a=Dm("INP");let o;const s=Lm(t,Zm),r=e=>{eh(()=>{for(const t of e)s._processEntry(t);const t=s._estimateP98LongestInteraction();t&&t._latency!==a.value&&(a.value=t._latency,a.entries=t.entries,o())})},i=$m("event",r,{durationThreshold:t.durationThreshold??40});o=zm(e,a,th,t.reportAllChanges),i&&(i.observe({type:"first-input",buffered:!0}),n.onHidden(()=>{r(i.takeRecords()),o(!0)}))})})(e=>{fh("inp",{metric:e}),ph=e})}function vh(e,t,n,a,o=!1){let s;return _h(e,t),ih[e]||(s=n(),ih[e]=!0),a&&t({metric:a}),jh(e,t,o?s:void 0)}function _h(e,t){rh[e]=rh[e]||[],rh[e].push(t)}function jh(e,t,n){return()=>{n&&n();const a=rh[e];if(!a)return;const o=a.indexOf(t);-1!==o&&a.splice(o,1)}}const Sh=l,xh="sentryReplaySession",zh="Unable to send Replay",Eh=15e4,Th=5e3,Ch=2e7;var Ih=Object.defineProperty,Mh=(e,t,n)=>((e,t,n)=>t in e?Ih(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),Rh=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(Rh||{});function Ah(e){const t=e?.host;return Boolean(t?.shadowRoot===e)}function Oh(e){return"[object ShadowRoot]"===Object.prototype.toString.call(e)}function Dh(e){try{const n=e.rules||e.cssRules;return n?((t=Array.from(n,Ph).join("")).includes(" background-clip: text;")&&!t.includes(" -webkit-background-clip: text;")&&(t=t.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),t):null}catch(e){return null}var t}function Ph(e){let t;if(function(e){return"styleSheet"in e}(e))try{t=Dh(e.styleSheet)||function(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const n=["@import",`url(${JSON.stringify(e.href)})`];return""===e.layerName?n.push("layer"):e.layerName&&n.push(`layer(${e.layerName})`),e.supportsText&&n.push(`supports(${e.supportsText})`),e.media.length&&n.push(e.media.mediaText),n.join(" ")+";"}(e)}catch(e){}else if(function(e){return"selectorText"in e}(e)){let t=e.cssText;const n=e.selectorText.includes(":"),a="string"==typeof e.style.all&&e.style.all;if(a&&(t=function(e){let t="";for(let n=0;n<e.style.length;n++){const a=e.style,o=a[n],s=a.getPropertyPriority(o);t+=`${o}:${a.getPropertyValue(o)}${s?" !important":""};`}return`${e.selectorText} { ${t} }`}(e)),n&&(t=t.replace(/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm,"$1\\$2")),n||a)return t}return t||e.cssText}class Lh{constructor(){Mh(this,"idNodeMap",new Map),Mh(this,"nodeMetaMap",new WeakMap)}getId(e){if(!e)return-1;const t=this.getMeta(e)?.id;return t??-1}getNode(e){return this.idNodeMap.get(e)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(e){return this.nodeMetaMap.get(e)||null}removeNodeFromMap(e){const t=this.getId(e);this.idNodeMap.delete(t),e.childNodes&&e.childNodes.forEach(e=>this.removeNodeFromMap(e))}has(e){return this.idNodeMap.has(e)}hasNode(e){return this.nodeMetaMap.has(e)}add(e,t){const n=t.id;this.idNodeMap.set(n,e),this.nodeMetaMap.set(e,t)}replace(e,t){const n=this.getNode(e);if(n){const e=this.nodeMetaMap.get(n);e&&this.nodeMetaMap.set(t,e)}this.idNodeMap.set(e,t)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function Nh({maskInputOptions:e,tagName:t,type:n}){return"OPTION"===t&&(t="SELECT"),Boolean(e[t.toLowerCase()]||n&&e[n]||"password"===n||"INPUT"===t&&!n&&e.text)}function $h({isMasked:e,element:t,value:n,maskInputFn:a}){let o=n||"";return e?(a&&(o=a(o,t)),"*".repeat(o.length)):o}function Fh(e){return e.toLowerCase()}function Uh(e){return e.toUpperCase()}const Bh="__rrweb_original__";function qh(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?Fh(t):null}function Hh(e,t,n){return"INPUT"!==t||"radio"!==n&&"checkbox"!==n?e.value:e.getAttribute("value")||""}function Wh(e,t){let n;try{n=new URL(e,t??window.location.href)}catch(e){return null}const a=n.pathname.match(/\.([0-9a-z]+)(?:$)/i);return a?.[1]??null}const Vh={};function Jh(e){const t=Vh[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return Vh[e]=a.bind(window)}function Yh(...e){return Jh("setTimeout")(...e)}function Gh(...e){return Jh("clearTimeout")(...e)}function Kh(e){try{return e.contentDocument}catch(e){}}let Xh=1;const Zh=new RegExp("[^a-z0-9-_:]");function Qh(){return Xh++}let eg,tg;const ng=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,ag=/^(?:[a-z+]+:)?\/\//i,og=/^www\..*/i,sg=/^(data:)([^,]*),(.*)/i;function rg(e,t){return(e||"").replace(ng,(e,n,a,o,s,r)=>{const i=a||s||r,c=n||o||"";if(!i)return e;if(ag.test(i)||og.test(i))return`url(${c}${i}${c})`;if(sg.test(i))return`url(${c}${i}${c})`;if("/"===i[0])return`url(${c}${function(e){let t="";return t=e.indexOf("//")>-1?e.split("/").slice(0,3).join("/"):e.split("/")[0],t=t.split("?")[0],t}(t)+i}${c})`;const u=t.split("/"),l=i.split("/");u.pop();for(const e of l)"."!==e&&(".."===e?u.pop():u.push(e));return`url(${c}${u.join("/")}${c})`})}const ig=/^[^ \t\n\r\u000c]+/,cg=/^[, \t\n\r\u000c]+/,ug=new WeakMap;function lg(e,t){return t&&""!==t.trim()?pg(e,t):t}function pg(e,t){let n=ug.get(e);if(n||(n=e.createElement("a"),ug.set(e,n)),t){if(t.startsWith("blob:")||t.startsWith("data:"))return t}else t="";return n.setAttribute("href",t),n.href}function dg(e,t,n,a,o,s,r){if(!a)return a;if("src"===n||"href"===n&&("use"!==t||"#"!==a[0]))return lg(e,a);if("xlink:href"===n&&"#"!==a[0])return lg(e,a);if("background"===n&&("table"===t||"td"===t||"th"===t))return lg(e,a);if("srcset"===n)return function(e,t){if(""===t.trim())return t;let n=0;function a(e){let a;const o=e.exec(t.substring(n));return o?(a=o[0],n+=a.length,a):""}const o=[];for(;a(cg),!(n>=t.length);){let s=a(ig);if(","===s.slice(-1))s=lg(e,s.substring(0,s.length-1)),o.push(s);else{let a="";s=lg(e,s);let r=!1;for(;;){const e=t.charAt(n);if(""===e){o.push((s+a).trim());break}if(r)")"===e&&(r=!1);else{if(","===e){n+=1,o.push((s+a).trim());break}"("===e&&(r=!0)}a+=e,n+=1}}}return o.join(", ")}(e,a);if("style"===n){let t=rg(a,pg(e));return r&&r.size>0&&(t=function(e,t){if(!e||0===t.size)return e;try{const n=e.split(";"),a=[];for(let e of n){if(e=e.trim(),!e)continue;const n=e.indexOf(":");if(-1===n){a.push(e);continue}const o=e.slice(0,n).trim();t.has(o)||a.push(e)}return a.join("; ")+(a.length>0&&e.endsWith(";")?";":"")}catch(t){return console.warn("Error filtering CSS properties:",t),e}}(t,r)),t}return"object"===t&&"data"===n?lg(e,a):"function"==typeof s?s(n,a,o):a}function mg(e,t,n){return("video"===e||"audio"===e)&&"autoplay"===t}function hg(e,t,n=1/0,a=0){return e?e.nodeType!==e.ELEMENT_NODE||a>n?-1:t(e)?a:hg(e.parentNode,t,n,a+1):-1}function gg(e,t){return n=>{const a=n;if(null===a)return!1;try{if(e)if("string"==typeof e){if(a.matches(`.${e}`))return!0}else if(function(e,t){for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}return!1}(a,e))return!0;return!(!t||!a.matches(t))}catch{return!1}}}function fg(e,t,n,a,o,s){try{const r=e.nodeType===e.ELEMENT_NODE?e:e.parentElement;if(null===r)return!1;if("INPUT"===r.tagName){const e=r.getAttribute("autocomplete");if(["current-password","new-password","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc"].includes(e))return!0}let i=-1,c=-1;if(s){if(c=hg(r,gg(a,o)),c<0)return!0;i=hg(r,gg(t,n),c>=0?c:1/0)}else{if(i=hg(r,gg(t,n)),i<0)return!1;c=hg(r,gg(a,o),i>=0?i:1/0)}return i>=0?!(c>=0)||i<=c:!(c>=0||!s)}catch(e){}return!!s}function kg(e){return null==e?"":e.toLowerCase()}function yg(e,t){const{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:d=!1,inlineStylesheet:m=!0,maskInputOptions:h={},maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b={},inlineImages:w=!1,recordCanvas:v=!1,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S=5e3,onBlockedImageLoad:x,onStylesheetLoad:z,stylesheetLoadTimeout:E=5e3,keepIframeSrcFn:T=()=>!1,newlyAddedElement:C=!1,ignoreCSSAttributes:I}=t;let{preserveWhiteSpace:M=!0}=t;const R=function(e,t){const{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskAttributeFn:c,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,inlineStylesheet:m,maskInputOptions:h={},maskTextFn:g,maskInputFn:f,dataURLOptions:k={},inlineImages:y,recordCanvas:b,keepIframeSrcFn:w,newlyAddedElement:v=!1,ignoreCSSAttributes:_}=t,j=function(e,t){if(!t.hasNode(e))return;const n=t.getId(e);return 1===n?void 0:n}(n,a);switch(e.nodeType){case e.DOCUMENT_NODE:return"CSS1Compat"!==e.compatMode?{type:Rh.Document,childNodes:[],compatMode:e.compatMode}:{type:Rh.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:Rh.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:j};case e.ELEMENT_NODE:return function(e,t){const{doc:n,blockClass:a,blockSelector:o,unblockSelector:s,inlineStylesheet:r,maskInputOptions:i={},maskAttributeFn:c,maskInputFn:u,dataURLOptions:l={},inlineImages:p,recordCanvas:d,keepIframeSrcFn:m,newlyAddedElement:h=!1,rootId:g,maskTextClass:f,unmaskTextClass:k,maskTextSelector:y,unmaskTextSelector:b,ignoreCSSAttributes:w}=t,v=function(e,t,n,a){try{if(a&&e.matches(a))return!1;if("string"==typeof t){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}if(n)return e.matches(n)}catch(e){}return!1}(e,a,o,s),_=function(e){if(e instanceof HTMLFormElement)return"form";const t=Fh(e.tagName);return Zh.test(t)?"div":t}(e);let j={};const S=e.attributes.length;for(let t=0;t<S;t++){const a=e.attributes[t];a.name&&!mg(_,a.name,a.value)&&(j[a.name]=dg(n,_,Fh(a.name),a.value,e,c,w))}if("link"===_&&r){const t=Array.from(n.styleSheets).find(t=>t.href===e.href);let a=null;t&&(a=Dh(t)),a&&(j.rel=null,j.href=null,j.crossorigin=null,j._cssText=rg(a,t.href))}if("style"===_&&e.sheet&&!(e.innerText||e.textContent||"").trim().length){const t=Dh(e.sheet);t&&(j._cssText=rg(t,pg(n)))}if("input"===_||"textarea"===_||"select"===_||"option"===_){const t=e,n=qh(t),a=Hh(t,Uh(_),n),o=t.checked;if("submit"!==n&&"button"!==n&&a){const e=fg(t,f,y,k,b,Nh({type:n,tagName:Uh(_),maskInputOptions:i}));j.value=$h({isMasked:e,element:t,value:a,maskInputFn:u})}o&&(j.checked=o)}if("option"===_&&(e.selected&&!i.select?j.selected=!0:delete j.selected),"canvas"===_&&d)if("2d"===e.__context)(function(e){const t=e.getContext("2d");if(!t)return!0;for(let n=0;n<e.width;n+=50)for(let a=0;a<e.height;a+=50){const o=t.getImageData,s=Bh in o?o[Bh]:o;if(new Uint32Array(s.call(t,n,a,Math.min(50,e.width-n),Math.min(50,e.height-a)).data.buffer).some(e=>0!==e))return!1}return!0})(e)||(j.rr_dataURL=e.toDataURL(l.type,l.quality));else if(!("__context"in e)){const t=e.toDataURL(l.type,l.quality),a=n.createElement("canvas");a.width=e.width,a.height=e.height,t!==a.toDataURL(l.type,l.quality)&&(j.rr_dataURL=t)}if("img"===_&&p){eg||(eg=n.createElement("canvas"),tg=eg.getContext("2d"));const t=e,a=t.currentSrc||t.getAttribute("src")||"<unknown-src>",o=t.crossOrigin,s=()=>{t.removeEventListener("load",s);try{eg.width=t.naturalWidth,eg.height=t.naturalHeight,tg.drawImage(t,0,0),j.rr_dataURL=eg.toDataURL(l.type,l.quality)}catch(e){if("anonymous"!==t.crossOrigin)return t.crossOrigin="anonymous",void(t.complete&&0!==t.naturalWidth?s():t.addEventListener("load",s));console.warn(`Cannot inline img src=${a}! Error: ${e}`)}"anonymous"===t.crossOrigin&&(o?j.crossOrigin=o:t.removeAttribute("crossorigin"))};t.complete&&0!==t.naturalWidth?s():t.addEventListener("load",s)}if("audio"!==_&&"video"!==_||(j.rr_mediaState=e.paused?"paused":"played",j.rr_mediaCurrentTime=e.currentTime),h||(e.scrollLeft&&(j.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(j.rr_scrollTop=e.scrollTop)),v){const{width:t,height:n}=e.getBoundingClientRect();j={class:j.class,rr_width:`${t}px`,rr_height:`${n}px`}}let x;"iframe"!==_||m(j.src)||(v||Kh(e)||(j.rr_src=j.src),delete j.src);try{customElements.get(_)&&(x=!0)}catch(e){}return{type:Rh.Element,tagName:_,attributes:j,childNodes:[],isSVG:(z=e,Boolean("svg"===z.tagName||z.ownerSVGElement)||void 0),needBlock:v,rootId:g,isCustom:x};var z}(e,{doc:n,blockClass:o,blockSelector:s,unblockSelector:r,inlineStylesheet:m,maskAttributeFn:c,maskInputOptions:h,maskInputFn:f,dataURLOptions:k,inlineImages:y,recordCanvas:b,keepIframeSrcFn:w,newlyAddedElement:v,rootId:j,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,ignoreCSSAttributes:_});case e.TEXT_NODE:return function(e,t){const{maskAllText:n,maskTextClass:a,unmaskTextClass:o,maskTextSelector:s,unmaskTextSelector:r,maskTextFn:i,maskInputOptions:c,maskInputFn:u,rootId:l}=t,p=e.parentNode&&e.parentNode.tagName;let d=e.textContent;const m="STYLE"===p||void 0,h="SCRIPT"===p||void 0,g="TEXTAREA"===p||void 0;if(m&&d){try{e.nextSibling||e.previousSibling||e.parentNode.sheet?.cssRules&&(d=Dh(e.parentNode.sheet))}catch(t){console.warn(`Cannot get CSS styles from text's parentNode. Error: ${t}`,e)}d=rg(d,pg(t.doc))}h&&(d="SCRIPT_PLACEHOLDER");const f=fg(e,a,s,o,r,n);return m||h||g||!d||!f||(d=i?i(d,e.parentElement):d.replace(/[\S]/g,"*")),g&&d&&(c.textarea||f)&&(d=u?u(d,e.parentNode):d.replace(/[\S]/g,"*")),"OPTION"===p&&d&&(d=$h({isMasked:fg(e,a,s,o,r,Nh({type:null,tagName:p,maskInputOptions:c})),element:e,value:d,maskInputFn:u})),{type:Rh.Text,textContent:d||"",isStyle:m,rootId:l}}(e,{doc:n,maskAllText:i,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,maskTextFn:g,maskInputOptions:h,maskInputFn:f,rootId:j});case e.CDATA_SECTION_NODE:return{type:Rh.CDATA,textContent:"",rootId:j};case e.COMMENT_NODE:return{type:Rh.Comment,textContent:e.textContent||"",rootId:j};default:return!1}}(e,{doc:n,mirror:a,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:r,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,dataURLOptions:b,inlineImages:w,recordCanvas:v,keepIframeSrcFn:T,newlyAddedElement:C,ignoreCSSAttributes:I});if(!R)return console.warn(e,"not serialized"),null;let A;A=a.hasNode(e)?a.getId(e):!function(e,t){if(t.comment&&e.type===Rh.Comment)return!0;if(e.type===Rh.Element){if(t.script&&("script"===e.tagName||"link"===e.tagName&&("preload"===e.attributes.rel||"modulepreload"===e.attributes.rel)||"link"===e.tagName&&"prefetch"===e.attributes.rel&&"string"==typeof e.attributes.href&&"js"===Wh(e.attributes.href)))return!0;if(t.headFavicon&&("link"===e.tagName&&"shortcut icon"===e.attributes.rel||"meta"===e.tagName&&(kg(e.attributes.name).match(/^msapplication-tile(image|color)$/)||"application-name"===kg(e.attributes.name)||"icon"===kg(e.attributes.rel)||"apple-touch-icon"===kg(e.attributes.rel)||"shortcut icon"===kg(e.attributes.rel))))return!0;if("meta"===e.tagName){if(t.headMetaDescKeywords&&kg(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(kg(e.attributes.property).match(/^(og|twitter|fb):/)||kg(e.attributes.name).match(/^(og|twitter):/)||"pinterest"===kg(e.attributes.name)))return!0;if(t.headMetaRobots&&("robots"===kg(e.attributes.name)||"googlebot"===kg(e.attributes.name)||"bingbot"===kg(e.attributes.name)))return!0;if(t.headMetaHttpEquiv&&void 0!==e.attributes["http-equiv"])return!0;if(t.headMetaAuthorship&&("author"===kg(e.attributes.name)||"generator"===kg(e.attributes.name)||"framework"===kg(e.attributes.name)||"publisher"===kg(e.attributes.name)||"progid"===kg(e.attributes.name)||kg(e.attributes.property).match(/^article:/)||kg(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&("google-site-verification"===kg(e.attributes.name)||"yandex-verification"===kg(e.attributes.name)||"csrf-token"===kg(e.attributes.name)||"p:domain_verify"===kg(e.attributes.name)||"verify-v1"===kg(e.attributes.name)||"verification"===kg(e.attributes.name)||"shopify-checkout-api-token"===kg(e.attributes.name)))return!0}}return!1}(R,y)&&(M||R.type!==Rh.Text||R.isStyle||R.textContent.replace(/^\s+|\s+$/gm,"").length)?Qh():-2;const O=Object.assign(R,{id:A});if(a.add(e,O),-2===A)return null;_&&_(e);let D=!d;if(O.type===Rh.Element){D=D&&!O.needBlock;const t=e.shadowRoot;t&&Oh(t)&&(O.isShadowHost=!0)}if((O.type===Rh.Document||O.type===Rh.Element)&&D){y.headWhitespace&&O.type===Rh.Element&&"head"===O.tagName&&(M=!1);const t={doc:n,mirror:a,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:r,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:d,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onBlockedImageLoad:x,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I},C=e.childNodes?Array.from(e.childNodes):[];for(const e of C){const n=yg(e,t);n&&O.childNodes.push(n)}if(function(e){return e.nodeType===e.ELEMENT_NODE}(e)&&e.shadowRoot)for(const n of Array.from(e.shadowRoot.childNodes)){const a=yg(n,t);a&&(Oh(e.shadowRoot)&&(a.isShadow=!0),O.childNodes.push(a))}}if(e.parentNode&&Ah(e.parentNode)&&Oh(e.parentNode)&&(O.isShadow=!0),O.type!==Rh.Element||"iframe"!==O.tagName||O.needBlock||function(e,t,n){const a=e.contentWindow;if(!a)return;let o,s=!1;try{o=a.document.readyState}catch(e){return}if("complete"!==o){const a=Yh(()=>{s||(t(),s=!0)},n);return void e.addEventListener("load",()=>{Gh(a),s=!0,t()})}const r="about:blank";if(a.location.href!==r||e.src===r||""===e.src)return Yh(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}(e,()=>{const t=Kh(e);if(t&&j){const n=yg(t,{doc:t,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:!1,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I});n&&j(e,n)}},S),O.type===Rh.Element&&"img"===O.tagName&&!e.complete&&O.needBlock){const t=e,n=()=>{if(t.isConnected&&!t.complete&&x)try{const e=t.getBoundingClientRect();e.width>0&&e.height>0&&x(t,O,e)}catch(e){}t.removeEventListener("load",n)};t.isConnected&&t.addEventListener("load",n)}return O.type===Rh.Element&&"link"===O.tagName&&"string"==typeof O.attributes.rel&&("stylesheet"===O.attributes.rel||"preload"===O.attributes.rel&&"string"==typeof O.attributes.href&&"css"===Wh(O.attributes.href))&&function(e,t,n){let a,o=!1;try{a=e.sheet}catch(e){return}if(a)return;const s=Yh(()=>{o||(t(),o=!0)},n);e.addEventListener("load",()=>{Gh(s),o=!0,t()})}(e,()=>{if(z){const t=yg(e,{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:!1,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I});t&&z(e,t)}},E),O.type===Rh.Element&&delete O.needBlock,O}function bg(e,t,n=document){const a={capture:!0,passive:!0};return n.addEventListener(e,t,a),()=>n.removeEventListener(e,t,a)}const wg="Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";let vg={map:{},getId:()=>(console.error(wg),-1),getNode:()=>(console.error(wg),null),removeNodeFromMap(){console.error(wg)},has:()=>(console.error(wg),!1),reset(){console.error(wg)}};function _g(e,t,n={}){let a=null,o=0;return function(...s){const r=Date.now();o||!1!==n.leading||(o=r);const i=t-(r-o),c=this;i<=0||i>t?(a&&(function(...e){Ug("clearTimeout")(...e)}(a),a=null),o=r,e.apply(c,s)):a||!1===n.trailing||(a=Bg(()=>{o=!1===n.leading?0:Date.now(),a=null,e.apply(c,s)},i))}}function jg(e,t,n,a,o=window){const s=o.Object.getOwnPropertyDescriptor(e,t);return o.Object.defineProperty(e,t,a?n:{set(e){Bg(()=>{n.set.call(this,e)},0),s&&s.set&&s.set.call(this,e)}}),()=>jg(e,t,s||{},!0)}function Sg(e,t,n){try{if(!(t in e))return()=>{};const a=e[t],o=n(a);return"function"==typeof o&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:a}})),e[t]=o,()=>{e[t]=a}}catch{return()=>{}}}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(vg=new Proxy(vg,{get:(e,t,n)=>("map"===t&&console.error(wg),Reflect.get(e,t,n))}));let xg=Date.now;function zg(e){const t=e.document;return{left:t.scrollingElement?t.scrollingElement.scrollLeft:void 0!==e.pageXOffset?e.pageXOffset:t?.documentElement.scrollLeft||t?.body?.parentElement?.scrollLeft||t?.body?.scrollLeft||0,top:t.scrollingElement?t.scrollingElement.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:t?.documentElement.scrollTop||t?.body?.parentElement?.scrollTop||t?.body?.scrollTop||0}}function Eg(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function Tg(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function Cg(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch(e){return null}}function Ig(e,t,n,a,o){if(!e)return!1;const s=Cg(e);if(!s)return!1;const r=gg(t,n);if(!o){const e=a&&s.matches(a);return r(s)&&!e}const i=hg(s,r);let c=-1;return!(i<0)&&(a&&(c=hg(s,gg(null,a))),i>-1&&c<0||i<c)}function Mg(e,t){return-2===t.getId(e)}function Rg(e,t){if(Ah(e))return!1;const n=t.getId(e);return!t.has(n)||(!e.parentNode||e.parentNode.nodeType!==e.DOCUMENT_NODE)&&(!e.parentNode||Rg(e.parentNode,t))}function Ag(e){return Boolean(e.changedTouches)}function Og(e,t){return Boolean("IFRAME"===e.nodeName&&t.getMeta(e))}function Dg(e,t){return Boolean("LINK"===e.nodeName&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&"stylesheet"===e.getAttribute("rel")&&t.getMeta(e))}function Pg(e){return Boolean(e?.shadowRoot)}/[1-9][0-9]{12}/.test(Date.now().toString())||(xg=()=>(new Date).getTime());class Lg{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(e){return this.styleIDMap.get(e)??-1}has(e){return this.styleIDMap.has(e)}add(e,t){if(this.has(e))return this.getId(e);let n;return n=void 0===t?this.id++:t,this.styleIDMap.set(e,n),this.idStyleMap.set(n,e),n}getStyle(e){return this.idStyleMap.get(e)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function Ng(e){let t=null;return e.getRootNode?.()?.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.getRootNode().host&&(t=e.getRootNode().host),t}function $g(e){const t=e.ownerDocument;return!!t&&(t.contains(e)||function(e){const t=e.ownerDocument;if(!t)return!1;const n=function(e){let t,n=e;for(;t=Ng(n);)n=t;return n}(e);return t.contains(n)}(e))}const Fg={};function Ug(e){const t=Fg[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return Fg[e]=a.bind(window)}function Bg(...e){return Ug("setTimeout")(...e)}var qg=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(qg||{}),Hg=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(Hg||{}),Wg=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(Wg||{}),Vg=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(Vg||{}),Jg=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Jg||{});function Yg(e){try{return e.contentDocument}catch(e){}}function Gg(e){return"__ln"in e}class Kg{constructor(){this.length=0,this.head=null,this.tail=null}get(e){if(e>=this.length)throw new Error("Position outside of list range");let t=this.head;for(let n=0;n<e;n++)t=t?.next||null;return t}addNode(e){const t={value:e,previous:null,next:null};if(e.__ln=t,e.previousSibling&&Gg(e.previousSibling)){const n=e.previousSibling.__ln.next;t.next=n,t.previous=e.previousSibling.__ln,e.previousSibling.__ln.next=t,n&&(n.previous=t)}else if(e.nextSibling&&Gg(e.nextSibling)&&e.nextSibling.__ln.previous){const n=e.nextSibling.__ln.previous;t.previous=n,t.next=e.nextSibling.__ln,e.nextSibling.__ln.previous=t,n&&(n.next=t)}else this.head&&(this.head.previous=t),t.next=this.head,this.head=t;null===t.next&&(this.tail=t),this.length++}removeNode(e){const t=e.__ln;this.head&&(t.previous?(t.previous.next=t.next,t.next?t.next.previous=t.previous:this.tail=t.previous):(this.head=t.next,this.head?this.head.previous=null:this.tail=null),e.__ln&&delete e.__ln,this.length--)}}const Xg=(e,t)=>`${e}@${t}`;class Zg{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=e=>{e.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const e=[],t=new Set,n=new Kg,a=e=>{let t=e,n=-2;for(;-2===n;)t=t&&t.nextSibling,n=t&&this.mirror.getId(t);return n},o=o=>{if(!o.parentNode||!$g(o))return;const s=Ah(o.parentNode)?this.mirror.getId(Ng(o)):this.mirror.getId(o.parentNode),r=a(o);if(-1===s||-1===r)return n.addNode(o);const i=yg(o,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskAllText:this.maskAllText,unblockSelector:this.unblockSelector,maskTextClass:this.maskTextClass,unmaskTextClass:this.unmaskTextClass,maskTextSelector:this.maskTextSelector,unmaskTextSelector:this.unmaskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskAttributeFn:this.maskAttributeFn,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:e=>{Og(e,this.mirror)&&!Ig(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&this.iframeManager.addIframe(e),Dg(e,this.mirror)&&this.stylesheetManager.trackLinkElement(e),Pg(o)&&this.shadowDomManager.addShadowRoot(o.shadowRoot,this.doc)},onIframeLoad:(e,t)=>{Ig(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(this.iframeManager.attachIframe(e,t),e.contentWindow&&this.canvasManager.addWindow(e.contentWindow),this.shadowDomManager.observeAttachShadow(e))},onStylesheetLoad:(e,t)=>{this.stylesheetManager.attachLinkElement(e,t)},onBlockedImageLoad:(e,t,{width:n,height:a})=>{this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:{style:{width:`${n}px`,height:`${a}px`}}}]})},ignoreCSSAttributes:this.ignoreCSSAttributes});i&&(e.push({parentId:s,nextId:r,node:i}),t.add(i.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const e of this.movedSet)ef(this.removes,e,this.mirror)&&!this.movedSet.has(e.parentNode)||o(e);for(const e of this.addedSet)tf(this.droppedSet,e)||ef(this.removes,e,this.mirror)?tf(this.movedSet,e)?o(e):this.droppedSet.add(e):o(e);let s=null;for(;n.length;){let e=null;if(s){const t=this.mirror.getId(s.value.parentNode),n=a(s.value);-1!==t&&-1!==n&&(e=s)}if(!e){let t=n.tail;for(;t;){const n=t;if(t=t.previous,n){const t=this.mirror.getId(n.value.parentNode);if(-1===a(n.value))continue;if(-1!==t){e=n;break}{const t=n.value;if(t.parentNode&&t.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const a=t.parentNode.host;if(-1!==this.mirror.getId(a)){e=n;break}}}}}}if(!e){for(;n.head;)n.removeNode(n.head.value);break}s=e.previous,n.removeNode(e.value),o(e.value)}const r={texts:this.texts.map(e=>({id:this.mirror.getId(e.node),value:e.value})).filter(e=>!t.has(e.id)).filter(e=>this.mirror.has(e.id)),attributes:this.attributes.map(e=>{const{attributes:t}=e;if("string"==typeof t.style){const n=JSON.stringify(e.styleDiff),a=JSON.stringify(e._unchangedStyles);n.length<t.style.length&&(n+a).split("var(").length===t.style.split("var(").length&&(t.style=e.styleDiff)}return{id:this.mirror.getId(e.node),attributes:t}}).filter(e=>!t.has(e.id)).filter(e=>this.mirror.has(e.id)),removes:this.removes,adds:e};(r.texts.length||r.attributes.length||r.removes.length||r.adds.length)&&(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.movedMap={},this.mutationCb(r))},this.processMutation=e=>{if(!Mg(e.target,this.mirror))switch(e.type){case"characterData":{const t=e.target.textContent;Ig(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||t===e.oldValue||this.texts.push({value:fg(e.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,this.maskAllText)&&t?this.maskTextFn?this.maskTextFn(t,Cg(e.target)):t.replace(/[\S]/g,"*"):t,node:e.target});break}case"attributes":{const t=e.target;let n=e.attributeName,a=e.target.getAttribute(n);if("value"===n){const n=qh(t),o=t.tagName;a=Hh(t,o,n);const s=Nh({maskInputOptions:this.maskInputOptions,tagName:o,type:n});a=$h({isMasked:fg(e.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,s),element:t,value:a,maskInputFn:this.maskInputFn})}if(Ig(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||a===e.oldValue)return;let o=this.attributeMap.get(e.target);if("IFRAME"===t.tagName&&"src"===n&&!this.keepIframeSrcFn(a)){if(Yg(t))return;n="rr_src"}if(o||(o={node:e.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(o),this.attributeMap.set(e.target,o)),"type"===n&&"INPUT"===t.tagName&&"password"===(e.oldValue||"").toLowerCase()&&t.setAttribute("data-rr-is-password","true"),!mg(t.tagName,n)&&(o.attributes[n]=dg(this.doc,Fh(t.tagName),Fh(n),a,t,this.maskAttributeFn),"style"===n)){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch(e){this.unattachedDoc=this.doc}const n=this.unattachedDoc.createElement("span");e.oldValue&&n.setAttribute("style",e.oldValue);for(const e of Array.from(t.style)){const a=t.style.getPropertyValue(e),s=t.style.getPropertyPriority(e);a!==n.style.getPropertyValue(e)||s!==n.style.getPropertyPriority(e)?o.styleDiff[e]=""===s?a:[a,s]:o._unchangedStyles[e]=[a,s]}for(const e of Array.from(n.style))""===t.style.getPropertyValue(e)&&(o.styleDiff[e]=!1)}break}case"childList":if(Ig(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!0))return;e.addedNodes.forEach(t=>this.genAdds(t,e.target)),e.removedNodes.forEach(t=>{const n=this.mirror.getId(t),a=Ah(e.target)?this.mirror.getId(e.target.host):this.mirror.getId(e.target);Ig(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||Mg(t,this.mirror)||!function(e,t){return-1!==t.getId(e)}(t,this.mirror)||(this.addedSet.has(t)?(Qg(this.addedSet,t),this.droppedSet.add(t)):this.addedSet.has(e.target)&&-1===n||Rg(e.target,this.mirror)||(this.movedSet.has(t)&&this.movedMap[Xg(n,a)]?Qg(this.movedSet,t):this.removes.push({parentId:a,id:n,isShadow:!(!Ah(e.target)||!Oh(e.target))||void 0})),this.mapRemoves.push(t))})}},this.genAdds=(e,t)=>{if(!this.processedNodeManager.inOtherBuffer(e,this)&&!this.addedSet.has(e)&&!this.movedSet.has(e)){if(this.mirror.hasNode(e)){if(Mg(e,this.mirror))return;this.movedSet.add(e);let n=null;t&&this.mirror.hasNode(t)&&(n=this.mirror.getId(t)),n&&-1!==n&&(this.movedMap[Xg(this.mirror.getId(e),n)]=!0)}else this.addedSet.add(e),this.droppedSet.delete(e);Ig(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(e.childNodes&&e.childNodes.forEach(e=>this.genAdds(e)),Pg(e)&&e.shadowRoot.childNodes.forEach(t=>{this.processedNodeManager.add(t,this),this.genAdds(t,e)}))}}}init(e){["mutationCb","blockClass","blockSelector","unblockSelector","maskAllText","maskTextClass","unmaskTextClass","maskTextSelector","unmaskTextSelector","inlineStylesheet","maskInputOptions","maskAttributeFn","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager","ignoreCSSAttributes"].forEach(t=>{this[t]=e[t]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Qg(e,t){e.delete(t),t.childNodes?.forEach(t=>Qg(e,t))}function ef(e,t,n){return 0!==e.length&&function(e,t,n){let a=t.parentNode;for(;a;){const t=n.getId(a);if(e.some(e=>e.id===t))return!0;a=a.parentNode}return!1}(e,t,n)}function tf(e,t){return 0!==e.size&&nf(e,t)}function nf(e,t){const{parentNode:n}=t;return!!n&&(!!e.has(n)||nf(e,n))}let af;const of=e=>af?(...t)=>{try{return e(...t)}catch(e){if(af&&!0===af(e))return()=>{};throw e}}:e,sf=[];function rf(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function cf(e,t){const n=new Zg;sf.push(n),n.init(e);let a=window.MutationObserver||window.__rrMutationObserver;const o=window?.Zone?.__symbol__?.("MutationObserver");o&&window[o]&&(a=window[o]);const s=new a(of(t=>{e.onMutation&&!1===e.onMutation(t)||n.processMutations.bind(n)(t)}));return s.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),s}function uf({scrollCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,sampling:r}){return bg("scroll",of(_g(of(r=>{const i=rf(r);if(!i||Ig(i,a,o,s,!0))return;const c=n.getId(i);if(i===t&&t.defaultView){const n=zg(t.defaultView);e({id:c,x:n.left,y:n.top})}else e({id:c,x:i.scrollLeft,y:i.scrollTop})}),r.scroll||100)),t)}const lf=["INPUT","TEXTAREA","SELECT"],pf=new WeakMap;function df({inputCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,ignoreClass:r,ignoreSelector:i,maskInputOptions:c,maskInputFn:u,sampling:l,userTriggeredOnInput:p,maskTextClass:d,unmaskTextClass:m,maskTextSelector:h,unmaskTextSelector:g}){function f(e){let n=rf(e);const l=e.isTrusted,f=n&&Uh(n.tagName);if("OPTION"===f&&(n=n.parentElement),!n||!f||lf.indexOf(f)<0||Ig(n,a,o,s,!0))return;const y=n;if(y.classList.contains(r)||i&&y.matches(i))return;const b=qh(n);let w=Hh(y,f,b),v=!1;const _=Nh({maskInputOptions:c,tagName:f,type:b}),j=fg(n,d,h,m,g,_);"radio"!==b&&"checkbox"!==b||(v=n.checked),w=$h({isMasked:j,element:n,value:w,maskInputFn:u}),k(n,p?{text:w,isChecked:v,userTriggered:l}:{text:w,isChecked:v});const S=n.name;"radio"===b&&S&&v&&t.querySelectorAll(`input[type="radio"][name="${S}"]`).forEach(e=>{if(e!==n){const t=$h({isMasked:j,element:e,value:Hh(e,f,b),maskInputFn:u});k(e,p?{text:t,isChecked:!v,userTriggered:!1}:{text:t,isChecked:!v})}})}function k(t,a){const o=pf.get(t);if(!o||o.text!==a.text||o.isChecked!==a.isChecked){pf.set(t,a);const o=n.getId(t);of(e)({...a,id:o})}}const y=("last"===l.input?["change"]:["input","change"]).map(e=>bg(e,of(f),t)),b=t.defaultView;if(!b)return()=>{y.forEach(e=>e())};const w=b.Object.getOwnPropertyDescriptor(b.HTMLInputElement.prototype,"value"),v=[[b.HTMLInputElement.prototype,"value"],[b.HTMLInputElement.prototype,"checked"],[b.HTMLSelectElement.prototype,"value"],[b.HTMLTextAreaElement.prototype,"value"],[b.HTMLSelectElement.prototype,"selectedIndex"],[b.HTMLOptionElement.prototype,"selected"]];return w&&w.set&&y.push(...v.map(e=>jg(e[0],e[1],{set(){of(f)({target:this,isTrusted:!1})}},!1,b))),of(()=>{y.forEach(e=>e())})}function mf(e){return function(e,t){if(kf("CSSGroupingRule")&&e.parentRule instanceof CSSGroupingRule||kf("CSSMediaRule")&&e.parentRule instanceof CSSMediaRule||kf("CSSSupportsRule")&&e.parentRule instanceof CSSSupportsRule||kf("CSSConditionRule")&&e.parentRule instanceof CSSConditionRule){const n=Array.from(e.parentRule.cssRules).indexOf(e);t.unshift(n)}else if(e.parentStyleSheet){const n=Array.from(e.parentStyleSheet.cssRules).indexOf(e);t.unshift(n)}return t}(e,[])}function hf(e,t,n){let a,o;return e?(e.ownerNode?a=t.getId(e.ownerNode):o=n.getId(e),{styleId:o,id:a}):{}}function gf({mirror:e,stylesheetManager:t},n){let a=null;a="#document"===n.nodeName?e.getId(n):e.getId(n.host);const o="#document"===n.nodeName?n.defaultView?.Document:n.ownerDocument?.defaultView?.ShadowRoot,s=o?.prototype?Object.getOwnPropertyDescriptor(o?.prototype,"adoptedStyleSheets"):void 0;return null!==a&&-1!==a&&o&&s?(Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get(){return s.get?.call(this)},set(e){const n=s.set?.call(this,e);if(null!==a&&-1!==a)try{t.adoptStyleSheets(e,a)}catch(e){}return n}}),of(()=>{Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get:s.get,set:s.set})})):()=>{}}function ff(e,t={}){const n=e.doc.defaultView;if(!n)return()=>{};let a;e.recordDOM&&(a=cf(e,e.doc));const o=function({mousemoveCb:e,sampling:t,doc:n,mirror:a}){if(!1===t.mousemove)return()=>{};const o="number"==typeof t.mousemove?t.mousemove:50,s="number"==typeof t.mousemoveCallback?t.mousemoveCallback:500;let r,i=[];const c=_g(of(t=>{const n=Date.now()-r;e(i.map(e=>(e.timeOffset-=n,e)),t),i=[],r=null}),s),u=of(_g(of(e=>{const t=rf(e),{clientX:n,clientY:o}=Ag(e)?e.changedTouches[0]:e;r||(r=xg()),i.push({x:n,y:o,id:a.getId(t),timeOffset:xg()-r}),c("undefined"!=typeof DragEvent&&e instanceof DragEvent?Hg.Drag:e instanceof MouseEvent?Hg.MouseMove:Hg.TouchMove)}),o,{trailing:!1})),l=[bg("mousemove",u,n),bg("touchmove",u,n),bg("drag",u,n)];return of(()=>{l.forEach(e=>e())})}(e),s=function({mouseInteractionCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,sampling:r}){if(!1===r.mouseInteraction)return()=>{};const i=!0===r.mouseInteraction||void 0===r.mouseInteraction?{}:r.mouseInteraction,c=[];let u=null;return Object.keys(Wg).filter(e=>Number.isNaN(Number(e))&&!e.endsWith("_Departed")&&!1!==i[e]).forEach(r=>{let i=Fh(r);const l=(t=>r=>{const i=rf(r);if(Ig(i,a,o,s,!0))return;let c=null,l=t;if("pointerType"in r){switch(r.pointerType){case"mouse":c=Vg.Mouse;break;case"touch":c=Vg.Touch;break;case"pen":c=Vg.Pen}c===Vg.Touch?Wg[t]===Wg.MouseDown?l="TouchStart":Wg[t]===Wg.MouseUp&&(l="TouchEnd"):Vg.Pen}else Ag(r)&&(c=Vg.Touch);null!==c?(u=c,(l.startsWith("Touch")&&c===Vg.Touch||l.startsWith("Mouse")&&c===Vg.Mouse)&&(c=null)):Wg[t]===Wg.Click&&(c=u,u=null);const p=Ag(r)?r.changedTouches[0]:r;if(!p)return;const d=n.getId(i),{clientX:m,clientY:h}=p;of(e)({type:Wg[l],id:d,x:m,y:h,...null!==c&&{pointerType:c}})})(r);if(window.PointerEvent)switch(Wg[r]){case Wg.MouseDown:case Wg.MouseUp:i=i.replace("mouse","pointer");break;case Wg.TouchStart:case Wg.TouchEnd:return}c.push(bg(i,l,t))}),of(()=>{c.forEach(e=>e())})}(e),r=uf(e),i=function({viewportResizeCb:e},{win:t}){let n=-1,a=-1;return bg("resize",of(_g(of(()=>{const t=Eg(),o=Tg();n===t&&a===o||(e({width:Number(o),height:Number(t)}),n=t,a=o)}),200)),t)}(e,{win:n}),c=df(e),u=function({mediaInteractionCb:e,blockClass:t,blockSelector:n,unblockSelector:a,mirror:o,sampling:s,doc:r}){const i=of(r=>_g(of(s=>{const i=rf(s);if(!i||Ig(i,t,n,a,!0))return;const{currentTime:c,volume:u,muted:l,playbackRate:p}=i;e({type:r,id:o.getId(i),currentTime:c,volume:u,muted:l,playbackRate:p})}),s.media||500)),c=[bg("play",i(Jg.Play),r),bg("pause",i(Jg.Pause),r),bg("seeked",i(Jg.Seeked),r),bg("volumechange",i(Jg.VolumeChange),r),bg("ratechange",i(Jg.RateChange),r)];return of(()=>{c.forEach(e=>e())})}(e);let l=()=>{},p=()=>{},d=()=>{},m=()=>{};e.recordDOM&&(l=function({styleSheetRuleCb:e,mirror:t,stylesheetManager:n},{win:a}){if(!a.CSSStyleSheet||!a.CSSStyleSheet.prototype)return()=>{};const o=a.CSSStyleSheet.prototype.insertRule;a.CSSStyleSheet.prototype.insertRule=new Proxy(o,{apply:of((a,o,s)=>{const[r,i]=s,{id:c,styleId:u}=hf(o,t,n.styleMirror);return(c&&-1!==c||u&&-1!==u)&&e({id:c,styleId:u,adds:[{rule:r,index:i}]}),a.apply(o,s)})});const s=a.CSSStyleSheet.prototype.deleteRule;let r,i;a.CSSStyleSheet.prototype.deleteRule=new Proxy(s,{apply:of((a,o,s)=>{const[r]=s,{id:i,styleId:c}=hf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,removes:[{index:r}]}),a.apply(o,s)})}),a.CSSStyleSheet.prototype.replace&&(r=a.CSSStyleSheet.prototype.replace,a.CSSStyleSheet.prototype.replace=new Proxy(r,{apply:of((a,o,s)=>{const[r]=s,{id:i,styleId:c}=hf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,replace:r}),a.apply(o,s)})})),a.CSSStyleSheet.prototype.replaceSync&&(i=a.CSSStyleSheet.prototype.replaceSync,a.CSSStyleSheet.prototype.replaceSync=new Proxy(i,{apply:of((a,o,s)=>{const[r]=s,{id:i,styleId:c}=hf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,replaceSync:r}),a.apply(o,s)})}));const c={};yf("CSSGroupingRule")?c.CSSGroupingRule=a.CSSGroupingRule:(yf("CSSMediaRule")&&(c.CSSMediaRule=a.CSSMediaRule),yf("CSSConditionRule")&&(c.CSSConditionRule=a.CSSConditionRule),yf("CSSSupportsRule")&&(c.CSSSupportsRule=a.CSSSupportsRule));const u={};return Object.entries(c).forEach(([a,o])=>{u[a]={insertRule:o.prototype.insertRule,deleteRule:o.prototype.deleteRule},o.prototype.insertRule=new Proxy(u[a].insertRule,{apply:of((a,o,s)=>{const[r,i]=s,{id:c,styleId:u}=hf(o.parentStyleSheet,t,n.styleMirror);return(c&&-1!==c||u&&-1!==u)&&e({id:c,styleId:u,adds:[{rule:r,index:[...mf(o),i||0]}]}),a.apply(o,s)})}),o.prototype.deleteRule=new Proxy(u[a].deleteRule,{apply:of((a,o,s)=>{const[r]=s,{id:i,styleId:c}=hf(o.parentStyleSheet,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,removes:[{index:[...mf(o),r]}]}),a.apply(o,s)})})}),of(()=>{a.CSSStyleSheet.prototype.insertRule=o,a.CSSStyleSheet.prototype.deleteRule=s,r&&(a.CSSStyleSheet.prototype.replace=r),i&&(a.CSSStyleSheet.prototype.replaceSync=i),Object.entries(c).forEach(([e,t])=>{t.prototype.insertRule=u[e].insertRule,t.prototype.deleteRule=u[e].deleteRule})})}(e,{win:n}),p=gf(e,e.doc),d=function({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:n,stylesheetManager:a},{win:o}){const s=o.CSSStyleDeclaration.prototype.setProperty;o.CSSStyleDeclaration.prototype.setProperty=new Proxy(s,{apply:of((o,r,i)=>{const[c,u,l]=i;if(n.has(c))return s.apply(r,[c,u,l]);const{id:p,styleId:d}=hf(r.parentRule?.parentStyleSheet,t,a.styleMirror);return(p&&-1!==p||d&&-1!==d)&&e({id:p,styleId:d,set:{property:c,value:u,priority:l},index:mf(r.parentRule)}),o.apply(r,i)})});const r=o.CSSStyleDeclaration.prototype.removeProperty;return o.CSSStyleDeclaration.prototype.removeProperty=new Proxy(r,{apply:of((o,s,i)=>{const[c]=i;if(n.has(c))return r.apply(s,[c]);const{id:u,styleId:l}=hf(s.parentRule?.parentStyleSheet,t,a.styleMirror);return(u&&-1!==u||l&&-1!==l)&&e({id:u,styleId:l,remove:{property:c},index:mf(s.parentRule)}),o.apply(s,i)})}),of(()=>{o.CSSStyleDeclaration.prototype.setProperty=s,o.CSSStyleDeclaration.prototype.removeProperty=r})}(e,{win:n}),e.collectFonts&&(m=function({fontCb:e,doc:t}){const n=t.defaultView;if(!n)return()=>{};const a=[],o=new WeakMap,s=n.FontFace;n.FontFace=function(e,t,n){const a=new s(e,t,n);return o.set(a,{family:e,buffer:"string"!=typeof t,descriptors:n,fontSource:"string"==typeof t?t:JSON.stringify(Array.from(new Uint8Array(t)))}),a};const r=Sg(t.fonts,"add",function(t){return function(n){return Bg(of(()=>{const t=o.get(n);t&&(e(t),o.delete(n))}),0),t.apply(this,[n])}});return a.push(()=>{n.FontFace=s}),a.push(r),of(()=>{a.forEach(e=>e())})}(e)));const h=function(e){const{doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,selectionCb:r}=e;let i=!0;const c=of(()=>{const e=t.getSelection();if(!e||i&&e?.isCollapsed)return;i=e.isCollapsed||!1;const c=[],u=e.rangeCount||0;for(let t=0;t<u;t++){const r=e.getRangeAt(t),{startContainer:i,startOffset:u,endContainer:l,endOffset:p}=r;Ig(i,a,o,s,!0)||Ig(l,a,o,s,!0)||c.push({start:n.getId(i),startOffset:u,end:n.getId(l),endOffset:p})}r({ranges:c})});return c(),bg("selectionchange",c)}(e),g=function({doc:e,customElementCb:t}){const n=e.defaultView;return n&&n.customElements?Sg(n.customElements,"define",function(e){return function(n,a,o){try{t({define:{name:n}})}catch(e){}return e.apply(this,[n,a,o])}}):()=>{}}(e),f=[];for(const t of e.plugins)f.push(t.observer(t.callback,n,t.options));return of(()=>{sf.forEach(e=>e.reset()),a?.disconnect(),o(),s(),r(),i(),c(),u(),l(),p(),d(),m(),h(),g(),f.forEach(e=>e())})}function kf(e){return void 0!==window[e]}function yf(e){return Boolean(void 0!==window[e]&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class bf{constructor(e){this.generateIdFn=e,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(e,t,n,a){const o=n||this.getIdToRemoteIdMap(e),s=a||this.getRemoteIdToIdMap(e);let r=o.get(t);return r||(r=this.generateIdFn(),o.set(t,r),s.set(r,t)),r}getIds(e,t){const n=this.getIdToRemoteIdMap(e),a=this.getRemoteIdToIdMap(e);return t.map(t=>this.getId(e,t,n,a))}getRemoteId(e,t,n){const a=n||this.getRemoteIdToIdMap(e);if("number"!=typeof t)return t;return a.get(t)||-1}getRemoteIds(e,t){const n=this.getRemoteIdToIdMap(e);return t.map(t=>this.getRemoteId(e,t,n))}reset(e){if(!e)return this.iframeIdToRemoteIdMap=new WeakMap,void(this.iframeRemoteIdToIdMap=new WeakMap);this.iframeIdToRemoteIdMap.delete(e),this.iframeRemoteIdToIdMap.delete(e)}getIdToRemoteIdMap(e){let t=this.iframeIdToRemoteIdMap.get(e);return t||(t=new Map,this.iframeIdToRemoteIdMap.set(e,t)),t}getRemoteIdToIdMap(e){let t=this.iframeRemoteIdToIdMap.get(e);return t||(t=new Map,this.iframeRemoteIdToIdMap.set(e,t)),t}}class wf{constructor(){this.crossOriginIframeMirror=new bf(Qh),this.crossOriginIframeRootIdMap=new WeakMap}addIframe(){}addLoadListener(){}attachIframe(){}}class vf{constructor(e){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new bf(Qh),this.crossOriginIframeRootIdMap=new WeakMap,this.mutationCb=e.mutationCb,this.wrappedEmit=e.wrappedEmit,this.stylesheetManager=e.stylesheetManager,this.recordCrossOriginIframes=e.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new bf(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=e.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(e){this.iframes.set(e,!0),e.contentWindow&&this.crossOriginIframeMap.set(e.contentWindow,e)}addLoadListener(e){this.loadListener=e}attachIframe(e,t){this.mutationCb({adds:[{parentId:this.mirror.getId(e),nextId:null,node:t}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&e.contentWindow?.addEventListener("message",this.handleMessage.bind(this)),this.loadListener?.(e);const n=Yg(e);n&&n.adoptedStyleSheets&&n.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(n.adoptedStyleSheets,this.mirror.getId(n))}handleMessage(e){const t=e;if("rrweb"!==t.data.type||t.origin!==t.data.origin)return;if(!e.source)return;const n=this.crossOriginIframeMap.get(e.source);if(!n)return;const a=this.transformCrossOriginEvent(n,t.data.event);a&&this.wrappedEmit(a,t.data.isCheckout)}transformCrossOriginEvent(e,t){switch(t.type){case qg.FullSnapshot:{this.crossOriginIframeMirror.reset(e),this.crossOriginIframeStyleMirror.reset(e),this.replaceIdOnNode(t.data.node,e);const n=t.data.node.id;return this.crossOriginIframeRootIdMap.set(e,n),this.patchRootIdOnNode(t.data.node,n),{timestamp:t.timestamp,type:qg.IncrementalSnapshot,data:{source:Hg.Mutation,adds:[{parentId:this.mirror.getId(e),nextId:null,node:t.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case qg.Meta:case qg.Load:case qg.DomContentLoaded:return!1;case qg.Plugin:return t;case qg.Custom:return this.replaceIds(t.data.payload,e,["id","parentId","previousId","nextId"]),t;case qg.IncrementalSnapshot:switch(t.data.source){case Hg.Mutation:return t.data.adds.forEach(t=>{this.replaceIds(t,e,["parentId","nextId","previousId"]),this.replaceIdOnNode(t.node,e);const n=this.crossOriginIframeRootIdMap.get(e);n&&this.patchRootIdOnNode(t.node,n)}),t.data.removes.forEach(t=>{this.replaceIds(t,e,["parentId","id"])}),t.data.attributes.forEach(t=>{this.replaceIds(t,e,["id"])}),t.data.texts.forEach(t=>{this.replaceIds(t,e,["id"])}),t;case Hg.Drag:case Hg.TouchMove:case Hg.MouseMove:return t.data.positions.forEach(t=>{this.replaceIds(t,e,["id"])}),t;case Hg.ViewportResize:return!1;case Hg.MediaInteraction:case Hg.MouseInteraction:case Hg.Scroll:case Hg.CanvasMutation:case Hg.Input:return this.replaceIds(t.data,e,["id"]),t;case Hg.StyleSheetRule:case Hg.StyleDeclaration:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleId"]),t;case Hg.Font:return t;case Hg.Selection:return t.data.ranges.forEach(t=>{this.replaceIds(t,e,["start","end"])}),t;case Hg.AdoptedStyleSheet:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleIds"]),t.data.styles?.forEach(t=>{this.replaceStyleIds(t,e,["styleId"])}),t}}return!1}replace(e,t,n,a){for(const o of a)(Array.isArray(t[o])||"number"==typeof t[o])&&(Array.isArray(t[o])?t[o]=e.getIds(n,t[o]):t[o]=e.getId(n,t[o]));return t}replaceIds(e,t,n){return this.replace(this.crossOriginIframeMirror,e,t,n)}replaceStyleIds(e,t,n){return this.replace(this.crossOriginIframeStyleMirror,e,t,n)}replaceIdOnNode(e,t){this.replaceIds(e,t,["id","rootId"]),"childNodes"in e&&e.childNodes.forEach(e=>{this.replaceIdOnNode(e,t)})}patchRootIdOnNode(e,t){e.type===Rh.Document||e.rootId||(e.rootId=t),"childNodes"in e&&e.childNodes.forEach(e=>{this.patchRootIdOnNode(e,t)})}}class _f{init(){}addShadowRoot(){}observeAttachShadow(){}reset(){}}class jf{constructor(e){this.shadowDoms=new WeakSet,this.restoreHandlers=[],this.mutationCb=e.mutationCb,this.scrollCb=e.scrollCb,this.bypassOptions=e.bypassOptions,this.mirror=e.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(e,t){if(!Oh(e))return;if(this.shadowDoms.has(e))return;this.shadowDoms.add(e),this.bypassOptions.canvasManager.addShadowRoot(e);const n=cf({...this.bypassOptions,doc:t,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this},e);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(uf({...this.bypassOptions,scrollCb:this.scrollCb,doc:e,mirror:this.mirror})),Bg(()=>{e.adoptedStyleSheets&&e.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets,this.mirror.getId(e.host)),this.restoreHandlers.push(gf({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},e))},0)}observeAttachShadow(e){const t=Yg(e),n=function(e){try{return e.contentWindow}catch(e){}}(e);t&&n&&this.patchAttachShadow(n.Element,t)}patchAttachShadow(e,t){const n=this;this.restoreHandlers.push(Sg(e.prototype,"attachShadow",function(e){return function(a){const o=e.call(this,a);return this.shadowRoot&&$g(this)&&n.addShadowRoot(this.shadowRoot,t),o}}))}reset(){this.restoreHandlers.forEach(e=>{try{e()}catch(e){}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet,this.bypassOptions.canvasManager.resetShadowRoots()}}for(var Sf="undefined"==typeof Uint8Array?[]:new Uint8Array(256),xf=0;xf<64;xf++)Sf["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(xf)]=xf;class zf{reset(){}freeze(){}unfreeze(){}lock(){}unlock(){}snapshot(){}addWindow(){}addShadowRoot(){}resetShadowRoots(){}}class Ef{constructor(e){this.trackedLinkElements=new WeakSet,this.styleMirror=new Lg,this.mutationCb=e.mutationCb,this.adoptedStyleSheetCb=e.adoptedStyleSheetCb}attachLinkElement(e,t){"_cssText"in t.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:t.attributes}]}),this.trackLinkElement(e)}trackLinkElement(e){this.trackedLinkElements.has(e)||(this.trackedLinkElements.add(e),this.trackStylesheetInLinkElement(e))}adoptStyleSheets(e,t){if(0===e.length)return;const n={id:t,styleIds:[]},a=[];for(const t of e){let e;this.styleMirror.has(t)?e=this.styleMirror.getId(t):(e=this.styleMirror.add(t),a.push({styleId:e,rules:Array.from(t.rules||CSSRule,(e,t)=>({rule:Ph(e),index:t}))})),n.styleIds.push(e)}a.length>0&&(n.styles=a),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(e){}}class Tf{constructor(){this.nodeMap=new WeakMap,this.active=!1}inOtherBuffer(e,t){const n=this.nodeMap.get(e);return n&&Array.from(n).some(e=>e!==t)}add(e,t){this.active||(this.active=!0,function(...e){Ug("requestAnimationFrame")(...e)}(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(e,(this.nodeMap.get(e)||new Set).add(t))}destroy(){}}let Cf,If;try{if(2!==Array.from([1],e=>2*e)[0]){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const Mf=new Lh;function Rf(e={}){const{emit:t,checkoutEveryNms:n,checkoutEveryNth:a,blockClass:o="rr-block",blockSelector:s=null,unblockSelector:r=null,ignoreClass:i="rr-ignore",ignoreSelector:c=null,maskAllText:u=!1,maskTextClass:l="rr-mask",unmaskTextClass:p=null,maskTextSelector:d=null,unmaskTextSelector:m=null,inlineStylesheet:h=!0,maskAllInputs:g,maskInputOptions:f,slimDOMOptions:k,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,maxCanvasSize:v=null,packFn:_,sampling:j={},dataURLOptions:S={},mousemoveWait:x,recordDOM:z=!0,recordCanvas:E=!1,recordCrossOriginIframes:T=!1,recordAfter:C=("DOMContentLoaded"===e.recordAfter?e.recordAfter:"load"),userTriggeredOnInput:I=!1,collectFonts:M=!1,inlineImages:R=!1,plugins:A,keepIframeSrcFn:O=()=>!1,ignoreCSSAttributes:D=new Set([]),errorHandler:P,onMutation:L,getCanvasManager:N}=e;af=P;const $=!T||window.parent===window;let F=!1;if(!$)try{window.parent.document&&(F=!1)}catch(e){F=!0}if($&&!t)throw new Error("emit function is required");if(!$&&!F)return()=>{};void 0!==x&&void 0===j.mousemove&&(j.mousemove=x),Mf.reset();const U=!0===g?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,radio:!0,checkbox:!0}:void 0!==f?f:{},B=!0===k||"all"===k?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:"all"===k,headMetaDescKeywords:"all"===k}:k||{};let q;!function(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=(...e)=>{let t=e[0];if(!(0 in e))throw new TypeError("1 argument is required");do{if(this===t)return!0}while(t=t&&t.parentNode);return!1})}();let H=0;const W=e=>{for(const t of A||[])t.eventProcessor&&(e=t.eventProcessor(e));return _&&!F&&(e=_(e)),e};Cf=(e,o)=>{const s=e;if(s.timestamp=xg(),!sf[0]?.isFrozen()||s.type===qg.FullSnapshot||s.type===qg.IncrementalSnapshot&&s.data.source===Hg.Mutation||sf.forEach(e=>e.unfreeze()),$)t?.(W(s),o);else if(F){const e={type:"rrweb",event:W(s),origin:window.location.origin,isCheckout:o};window.parent.postMessage(e,"*")}if(s.type===qg.FullSnapshot)q=s,H=0;else if(s.type===qg.IncrementalSnapshot){if(s.data.source===Hg.Mutation&&s.data.isAttachIframe)return;H++;const e=a&&H>=a,t=n&&q&&s.timestamp-q.timestamp>n;(e||t)&&ee(!0)}};const V=e=>{Cf({type:qg.IncrementalSnapshot,data:{source:Hg.Mutation,...e}})},J=e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.Scroll,...e}}),Y=e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.CanvasMutation,...e}}),G=new Ef({mutationCb:V,adoptedStyleSheetCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.AdoptedStyleSheet,...e}})}),K="boolean"==typeof __RRWEB_EXCLUDE_IFRAME__&&__RRWEB_EXCLUDE_IFRAME__?new wf:new vf({mirror:Mf,mutationCb:V,stylesheetManager:G,recordCrossOriginIframes:T,wrappedEmit:Cf});for(const e of A||[])e.getMirror&&e.getMirror({nodeMirror:Mf,crossOriginIframeMirror:K.crossOriginIframeMirror,crossOriginIframeStyleMirror:K.crossOriginIframeStyleMirror});const X=new Tf,Z=function(e,t){try{return e?e(t):new zf}catch{return console.warn("Unable to initialize CanvasManager"),new zf}}(N,{mirror:Mf,win:window,mutationCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.CanvasMutation,...e}}),recordCanvas:E,blockClass:o,blockSelector:s,unblockSelector:r,maxCanvasSize:v,sampling:j.canvas,dataURLOptions:S,errorHandler:P}),Q="boolean"==typeof __RRWEB_EXCLUDE_SHADOW_DOM__&&__RRWEB_EXCLUDE_SHADOW_DOM__?new _f:new jf({mutationCb:V,scrollCb:J,bypassOptions:{onMutation:L,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,inlineStylesheet:h,maskInputOptions:U,dataURLOptions:S,maskAttributeFn:y,maskTextFn:w,maskInputFn:b,recordCanvas:E,inlineImages:R,sampling:j,slimDOMOptions:B,iframeManager:K,stylesheetManager:G,canvasManager:Z,keepIframeSrcFn:O,processedNodeManager:X,ignoreCSSAttributes:D},mirror:Mf}),ee=(e=!1)=>{if(!z)return;Cf({type:qg.Meta,data:{href:window.location.href,width:Tg(),height:Eg()}},e),G.reset(),Q.init(),sf.forEach(e=>e.lock());const t=function(e,t){const{mirror:n=new Lh,blockClass:a="rr-block",blockSelector:o=null,unblockSelector:s=null,maskAllText:r=!1,maskTextClass:i="rr-mask",unmaskTextClass:c=null,maskTextSelector:u=null,unmaskTextSelector:l=null,inlineStylesheet:p=!0,inlineImages:d=!1,recordCanvas:m=!1,maskAllInputs:h=!1,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOM:y=!1,dataURLOptions:b,preserveWhiteSpace:w,onSerialize:v,onIframeLoad:_,iframeLoadTimeout:j,onBlockedImageLoad:S,onStylesheetLoad:x,stylesheetLoadTimeout:z,keepIframeSrcFn:E=()=>!1,ignoreCSSAttributes:T=new Set([])}=t||{};return yg(e,{doc:e,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,maskAllText:r,maskTextClass:i,unmaskTextClass:c,maskTextSelector:u,unmaskTextSelector:l,skipChild:!1,inlineStylesheet:p,maskInputOptions:!0===h?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0}:!1===h?{}:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:!0===y||"all"===y?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:"all"===y,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:!1===y?{}:y,dataURLOptions:b,inlineImages:d,recordCanvas:m,preserveWhiteSpace:w,onSerialize:v,onIframeLoad:_,iframeLoadTimeout:j,onBlockedImageLoad:S,onStylesheetLoad:x,stylesheetLoadTimeout:z,keepIframeSrcFn:E,newlyAddedElement:!1,ignoreCSSAttributes:T})}(document,{mirror:Mf,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,inlineStylesheet:h,maskAllInputs:U,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,slimDOM:B,dataURLOptions:S,recordCanvas:E,inlineImages:R,onSerialize:e=>{Og(e,Mf)&&K.addIframe(e),Dg(e,Mf)&&G.trackLinkElement(e),Pg(e)&&Q.addShadowRoot(e.shadowRoot,document)},onIframeLoad:(e,t)=>{K.attachIframe(e,t),e.contentWindow&&Z.addWindow(e.contentWindow),Q.observeAttachShadow(e)},onStylesheetLoad:(e,t)=>{G.attachLinkElement(e,t)},onBlockedImageLoad:(e,t,{width:n,height:a})=>{V({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:{style:{width:`${n}px`,height:`${a}px`}}}]})},keepIframeSrcFn:O,ignoreCSSAttributes:D});if(!t)return console.warn("Failed to snapshot the document");Cf({type:qg.FullSnapshot,data:{node:t,initialOffset:zg(window)}}),sf.forEach(e=>e.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&G.adoptStyleSheets(document.adoptedStyleSheets,Mf.getId(document))};If=ee;try{const e=[],t=e=>of(ff)({onMutation:L,mutationCb:V,mousemoveCb:(e,t)=>Cf({type:qg.IncrementalSnapshot,data:{source:t,positions:e}}),mouseInteractionCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.MouseInteraction,...e}}),scrollCb:J,viewportResizeCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.ViewportResize,...e}}),inputCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.Input,...e}}),mediaInteractionCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.MediaInteraction,...e}}),styleSheetRuleCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.StyleSheetRule,...e}}),styleDeclarationCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.StyleDeclaration,...e}}),canvasMutationCb:Y,fontCb:e=>Cf({type:qg.IncrementalSnapshot,data:{source:Hg.Font,...e}}),selectionCb:e=>{Cf({type:qg.IncrementalSnapshot,data:{source:Hg.Selection,...e}})},customElementCb:e=>{Cf({type:qg.IncrementalSnapshot,data:{source:Hg.CustomElement,...e}})},blockClass:o,ignoreClass:i,ignoreSelector:c,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,maskInputOptions:U,inlineStylesheet:h,sampling:j,recordDOM:z,recordCanvas:E,inlineImages:R,userTriggeredOnInput:I,collectFonts:M,doc:e,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,keepIframeSrcFn:O,blockSelector:s,unblockSelector:r,slimDOMOptions:B,dataURLOptions:S,mirror:Mf,iframeManager:K,stylesheetManager:G,shadowDomManager:Q,processedNodeManager:X,canvasManager:Z,ignoreCSSAttributes:D,plugins:A?.filter(e=>e.observer)?.map(e=>({observer:e.observer,options:e.options,callback:t=>Cf({type:qg.Plugin,data:{plugin:e.name,payload:t}})}))||[]},{});K.addLoadListener(n=>{try{e.push(t(n.contentDocument))}catch(e){console.warn(e)}});const n=()=>{ee(),e.push(t(document))};return"interactive"===document.readyState||"complete"===document.readyState?n():(e.push(bg("DOMContentLoaded",()=>{Cf({type:qg.DomContentLoaded,data:{}}),"DOMContentLoaded"===C&&n()})),e.push(bg("load",()=>{Cf({type:qg.Load,data:{}}),"load"===C&&n()},window))),()=>{e.forEach(e=>e()),X.destroy(),If=void 0,af=void 0}}catch(e){console.warn(e)}}var Af,Of;function Df(e){return e>9999999999?e:1e3*e}function Pf(e){return e>9999999999?e/1e3:e}function Lf(e,t){"sentry.transaction"!==t.category&&(["ui.click","ui.input"].includes(t.category)?e.triggerUserActivity():e.checkAndHandleExpiredSession(),e.addUpdate(()=>(e.throttledAddEvent({type:qg.Custom,timestamp:1e3*(t.timestamp||0),data:{tag:"breadcrumb",payload:gn(t,10,1e3)}}),"console"===t.category)))}function Nf(e){return e.closest("button,a")||e}function $f(e){const t=Ff(e);return t&&t instanceof Element?Nf(t):t}function Ff(e){return function(e){return"object"==typeof e&&!!e&&"target"in e}(e)?e.target:e}let Uf;Rf.mirror=Mf,Rf.takeFullSnapshot=function(e){if(!If)throw new Error("please take full snapshot after start recording");If(e)},(Of=Af||(Af={}))[Of.NotStarted=0]="NotStarted",Of[Of.Running=1]="Running",Of[Of.Stopped=2]="Stopped";const Bf=new Set([Hg.Mutation,Hg.StyleSheetRule,Hg.StyleDeclaration,Hg.AdoptedStyleSheet,Hg.CanvasMutation,Hg.Selection,Hg.MediaInteraction]);class qf{constructor(e,t,n=Lf){this._lastMutation=0,this._lastScroll=0,this._clicks=[],this._timeout=t.timeout/1e3,this._threshold=t.threshold/1e3,this._scrollTimeout=t.scrollTimeout/1e3,this._replay=e,this._ignoreSelector=t.ignoreSelector,this._addBreadcrumbEvent=n}addListeners(){const e=(t=()=>{this._lastMutation=Wf()},Uf||(Uf=[],B(Sh,"open",function(e){return function(...t){if(Uf)try{Uf.forEach(e=>e())}catch{}return e.apply(Sh,t)}})),Uf.push(t),()=>{const e=Uf?Uf.indexOf(t):-1;e>-1&&Uf.splice(e,1)});var t;this._teardown=()=>{e(),this._clicks=[],this._lastMutation=0,this._lastScroll=0}}removeListeners(){this._teardown&&this._teardown(),this._checkClickTimeout&&clearTimeout(this._checkClickTimeout)}handleClick(e,t){if(function(e,t){return!Hf.includes(e.tagName)||("INPUT"===e.tagName&&!["submit","button"].includes(e.getAttribute("type")||"")||(!("A"!==e.tagName||!(e.hasAttribute("download")||e.hasAttribute("target")&&"_self"!==e.getAttribute("target")))||!(!t||!e.matches(t))))}(t,this._ignoreSelector)||!function(e){return!(!e.data||"number"!=typeof e.data.nodeId||!e.timestamp)}(e))return;const n={timestamp:Pf(e.timestamp),clickBreadcrumb:e,clickCount:0,node:t};this._clicks.some(e=>e.node===n.node&&Math.abs(e.timestamp-n.timestamp)<1)||(this._clicks.push(n),1===this._clicks.length&&this._scheduleCheckClicks())}registerMutation(e=Date.now()){this._lastMutation=Pf(e)}registerScroll(e=Date.now()){this._lastScroll=Pf(e)}registerClick(e){const t=Nf(e);this._handleMultiClick(t)}_handleMultiClick(e){this._getClicks(e).forEach(e=>{e.clickCount++})}_getClicks(e){return this._clicks.filter(t=>t.node===e)}_checkClicks(){const e=[],t=Wf();this._clicks.forEach(n=>{!n.mutationAfter&&this._lastMutation&&(n.mutationAfter=n.timestamp<=this._lastMutation?this._lastMutation-n.timestamp:void 0),!n.scrollAfter&&this._lastScroll&&(n.scrollAfter=n.timestamp<=this._lastScroll?this._lastScroll-n.timestamp:void 0),n.timestamp+this._timeout<=t&&e.push(n)});for(const t of e){const e=this._clicks.indexOf(t);e>-1&&(this._generateBreadcrumbs(t),this._clicks.splice(e,1))}this._clicks.length&&this._scheduleCheckClicks()}_generateBreadcrumbs(e){const t=this._replay,n=e.scrollAfter&&e.scrollAfter<=this._scrollTimeout,a=e.mutationAfter&&e.mutationAfter<=this._threshold,o=!n&&!a,{clickCount:s,clickBreadcrumb:r}=e;if(o){const n=1e3*Math.min(e.mutationAfter||this._timeout,this._timeout),a=n<1e3*this._timeout?"mutation":"timeout",o={type:"default",message:r.message,timestamp:r.timestamp,category:"ui.slowClickDetected",data:{...r.data,url:Sh.location.href,route:t.getCurrentRoute(),timeAfterClickMs:n,endReason:a,clickCount:s||1}};return void this._addBreadcrumbEvent(t,o)}if(s>1){const e={type:"default",message:r.message,timestamp:r.timestamp,category:"ui.multiClick",data:{...r.data,url:Sh.location.href,route:t.getCurrentRoute(),clickCount:s,metric:!0}};this._addBreadcrumbEvent(t,e)}}_scheduleCheckClicks(){this._checkClickTimeout&&clearTimeout(this._checkClickTimeout),this._checkClickTimeout=Li(()=>this._checkClicks(),1e3)}}const Hf=["A","BUTTON","INPUT"];function Wf(){return Date.now()/1e3}function Vf(e){return{timestamp:Date.now()/1e3,type:"default",...e}}var Jf=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(Jf||{});const Yf=new Set(["id","class","aria-label","role","name","alt","title","data-test-id","data-testid","disabled","aria-disabled","data-sentry-component"]);function Gf(e){const t={};!e["data-sentry-component"]&&e["data-sentry-element"]&&(e["data-sentry-component"]=e["data-sentry-element"]);for(const n in e)if(Yf.has(n)){let a=n;"data-testid"!==n&&"data-test-id"!==n||(a="testId"),t[a]=e[n]}return t}function Kf(e,t){const n=Rf.mirror.getId(e),a=n&&Rf.mirror.getNode(n),o=a&&Rf.mirror.getMeta(a),s=o&&function(e){return e.type===Jf.Element}(o)?o:null;return{message:t,data:s?{nodeId:n,node:{id:n,tagName:s.tagName,textContent:Array.from(s.childNodes).map(e=>e.type===Jf.Text&&e.textContent).filter(Boolean).map(e=>e.trim()).join(""),attributes:Gf(s.attributes)}}:{}}}const Xf={resource:function(e){const{entryType:t,initiatorType:n,name:a,responseEnd:o,startTime:s,decodedBodySize:r,encodedBodySize:i,responseStatus:c,transferSize:u}=e;return["fetch","xmlhttprequest"].includes(n)?null:{type:`${t}.${n}`,start:ek(s),end:ek(o),name:a,data:{size:u,statusCode:c,decodedBodySize:r,encodedBodySize:i}}},paint:function(e){const{duration:t,entryType:n,name:a,startTime:o}=e,s=ek(o);return{type:n,name:a,start:s,end:s+t,data:void 0}},navigation:function(e){const{entryType:t,name:n,decodedBodySize:a,duration:o,domComplete:s,encodedBodySize:r,domContentLoadedEventStart:i,domContentLoadedEventEnd:c,domInteractive:u,loadEventStart:l,loadEventEnd:p,redirectCount:d,startTime:m,transferSize:h,type:g}=e;return 0===o?null:{type:`${t}.${g}`,start:ek(m),end:ek(s),name:n,data:{size:h,decodedBodySize:a,encodedBodySize:r,duration:o,domInteractive:u,domContentLoadedEventStart:i,domContentLoadedEventEnd:c,loadEventStart:l,loadEventEnd:p,domComplete:s,redirectCount:d}}}};function Zf(e,t){return({metric:n})=>{t.replayPerformanceEntries.push(e(n))}}function Qf(e){const t=Xf[e.entryType];return t?t(e):null}function ek(e){return((_e()||Sh.performance.timeOrigin)+e)/1e3}function tk(e){const t=e.entries[e.entries.length-1];return sk(e,"largest-contentful-paint",t?.element?[t.element]:void 0)}function nk(e){return void 0!==e.sources}function ak(e){const t=[],n=[];for(const a of e.entries)if(nk(a)){const e=[];for(const t of a.sources)if(t.node){n.push(t.node);const a=Rf.mirror.getId(t.node);a&&e.push(a)}t.push({value:a.value,nodeIds:e.length?e:void 0})}return sk(e,"cumulative-layout-shift",n,t)}function ok(e){const t=e.entries[e.entries.length-1];return sk(e,"interaction-to-next-paint",t?.target?[t.target]:void 0)}function sk(e,t,n,a){const o=e.value,s=e.rating,r=ek(o);return{type:"web-vital",name:t,start:r,end:r,data:{value:o,size:o,rating:s,nodeIds:n?n.map(e=>Rf.mirror.getId(e)):void 0,attributions:a}}}const rk="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,ik=["log","warn","error"],ck="[Replay] ";function uk(e,t="info"){jr({category:"console",data:{logger:"replay"},level:t,message:`${ck}${e}`},{level:t})}const lk=function(){let e=!1,t=!1;const n={exception:()=>{},infoTick:()=>{},setConfig:n=>{e=!!n.captureExceptions,t=!!n.traceInternals}};return rk?(ik.forEach(e=>{n[e]=(...n)=>{U[e](ck,...n),t&&uk(n.join(""),Sr(e))}}),n.exception=(a,...o)=>{o.length&&n.error&&n.error(...o),U.error(ck,a),e?wn(a,{mechanism:{handled:!0,type:"auto.function.replay.debug"}}):t&&uk(a,"error")},n.infoTick=(...e)=>{U.log(ck,...e),t&&setTimeout(()=>uk(e[0]),0)}):ik.forEach(e=>{n[e]=()=>{}}),n}();class pk extends Error{constructor(){super("Event buffer exceeded maximum size of 20000000.")}}class dk{constructor(){this.events=[],this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return this.events.length>0}get type(){return"sync"}destroy(){this.events=[]}async addEvent(e){const t=JSON.stringify(e).length;if(this._totalSize+=t,this._totalSize>Ch)throw new pk;this.events.push(e)}finish(){return new Promise(e=>{const t=this.events;this.clear(),e(JSON.stringify(t))})}clear(){this.events=[],this._totalSize=0,this.hasCheckout=!1}getEarliestTimestamp(){const e=this.events.map(e=>e.timestamp).sort()[0];return e?Df(e):null}}class mk{constructor(e){this._worker=e,this._id=0}ensureReady(){return this._ensureReadyPromise||(this._ensureReadyPromise=new Promise((e,t)=>{this._worker.addEventListener("message",({data:n})=>{n.success?e():t()},{once:!0}),this._worker.addEventListener("error",e=>{t(e)},{once:!0})})),this._ensureReadyPromise}destroy(){rk&&lk.log("Destroying compression worker"),this._worker.terminate()}postMessage(e,t){const n=this._getAndIncrementId();return new Promise((a,o)=>{const s=({data:t})=>{const r=t;if(r.method===e&&r.id===n){if(this._worker.removeEventListener("message",s),!r.success)return rk&&lk.error("Error in compression worker: ",r.response),void o(new Error("Error in compression worker"));a(r.response)}};this._worker.addEventListener("message",s),this._worker.postMessage({id:n,method:e,arg:t})})}_getAndIncrementId(){return this._id++}}class hk{constructor(e){this._worker=new mk(e),this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return!!this._earliestTimestamp}get type(){return"worker"}ensureReady(){return this._worker.ensureReady()}destroy(){this._worker.destroy()}addEvent(e){const t=Df(e.timestamp);(!this._earliestTimestamp||t<this._earliestTimestamp)&&(this._earliestTimestamp=t);const n=JSON.stringify(e);return this._totalSize+=n.length,this._totalSize>Ch?Promise.reject(new pk):this._sendEventToWorker(n)}finish(){return this._finishRequest()}clear(){this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this._worker.postMessage("clear").then(null,e=>{rk&&lk.exception(e,'Sending "clear" message to worker failed',e)})}getEarliestTimestamp(){return this._earliestTimestamp}_sendEventToWorker(e){return this._worker.postMessage("addEvent",e)}async _finishRequest(){const e=await this._worker.postMessage("finish");return this._earliestTimestamp=null,this._totalSize=0,e}}class gk{constructor(e){this._fallback=new dk,this._compression=new hk(e),this._used=this._fallback,this._ensureWorkerIsLoadedPromise=this._ensureWorkerIsLoaded()}get waitForCheckout(){return this._used.waitForCheckout}get type(){return this._used.type}get hasEvents(){return this._used.hasEvents}get hasCheckout(){return this._used.hasCheckout}set hasCheckout(e){this._used.hasCheckout=e}set waitForCheckout(e){this._used.waitForCheckout=e}destroy(){this._fallback.destroy(),this._compression.destroy()}clear(){return this._used.clear()}getEarliestTimestamp(){return this._used.getEarliestTimestamp()}addEvent(e){return this._used.addEvent(e)}async finish(){return await this.ensureWorkerIsLoaded(),this._used.finish()}ensureWorkerIsLoaded(){return this._ensureWorkerIsLoadedPromise}async _ensureWorkerIsLoaded(){try{await this._compression.ensureReady()}catch(e){return void(rk&&lk.exception(e,"Failed to load the compression worker, falling back to simple buffer"))}await this._switchToCompressionWorker()}async _switchToCompressionWorker(){const{events:e,hasCheckout:t,waitForCheckout:n}=this._fallback,a=[];for(const t of e)a.push(this._compression.addEvent(t));this._compression.hasCheckout=t,this._compression.waitForCheckout=n,this._used=this._compression;try{await Promise.all(a),this._fallback.clear()}catch(e){rk&&lk.exception(e,"Failed to add events when switching buffers.")}}}function fk(){try{return"sessionStorage"in Sh&&!!Sh.sessionStorage}catch{return!1}}function kk(e){return void 0!==e&&Math.random()<e}function yk(e){if(fk())try{Sh.sessionStorage.setItem(xh,JSON.stringify(e))}catch{}}function bk(e){const t=Date.now();return{id:e.id||pe(),started:e.started||t,lastActivity:e.lastActivity||t,segmentId:e.segmentId||0,sampled:e.sampled,previousSessionId:e.previousSessionId,dirty:e.dirty||!1}}function wk({sessionSampleRate:e,allowBuffering:t,stickySession:n=!1},{previousSessionId:a}={}){const o=function(e,t){return kk(e)?"session":!!t&&"buffer"}(e,t),s=bk({sampled:o,previousSessionId:a});return n&&yk(s),s}function vk(e,t,n=+new Date){return null===e||void 0===t||t<0||0!==t&&e+t<=n}function _k(e,{maxReplayDuration:t,sessionIdleExpire:n,targetTime:a=Date.now()}){return vk(e.started,t,a)||vk(e.lastActivity,n,a)}function jk(e,{sessionIdleExpire:t,maxReplayDuration:n}){return!!_k(e,{sessionIdleExpire:t,maxReplayDuration:n})&&("buffer"!==e.sampled||0!==e.segmentId)}function Sk({sessionIdleExpire:e,maxReplayDuration:t,previousSessionId:n},a){const o=a.stickySession&&function(){if(!fk())return null;try{const e=Sh.sessionStorage.getItem(xh);if(!e)return null;const t=JSON.parse(e);return rk&&lk.infoTick("Loading existing session"),bk(t)}catch{return null}}();return o?jk(o,{sessionIdleExpire:e,maxReplayDuration:t})?(rk&&lk.infoTick("Session in sessionStorage is expired, creating new one..."),wk(a,{previousSessionId:o.id})):o:(rk&&lk.infoTick("Creating new session"),wk(a,{previousSessionId:n}))}function xk(e,t,n){return!!Ek(e,t)&&(zk(e,t,n),!0)}async function zk(e,t,n){const{eventBuffer:a}=e;if(!a||a.waitForCheckout&&!n)return null;const o="buffer"===e.recordingMode;try{n&&o&&a.clear(),n&&(a.hasCheckout=!0,a.waitForCheckout=!1);const s=function(e,t){try{if("function"==typeof t&&function(e){return e.type===qg.Custom}(e))return t(e)}catch(e){return rk&&lk.exception(e,"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event..."),null}return e}(t,e.getOptions().beforeAddRecordingEvent);if(!s)return;return await a.addEvent(s)}catch(t){const n=t&&t instanceof pk,s=n?"addEventSizeExceeded":"addEvent",r=Be();if(r){const e=n?"buffer_overflow":"internal_sdk_error";r.recordDroppedEvent(e,"replay")}if(n&&o)return a.clear(),a.waitForCheckout=!0,null;e.handleException(t),await e.stop({reason:s})}}function Ek(e,t){if(!e.eventBuffer||e.isPaused()||!e.isEnabled())return!1;const n=Df(t.timestamp);return!(n+e.timeouts.sessionIdlePause<Date.now()||n>e.getContext().initialTimestamp+e.getOptions().maxReplayDuration&&(rk&&lk.infoTick(`Skipping event with timestamp ${n} because it is after maxReplayDuration`),1))}function Tk(e){return!e.type}function Ck(e){return"transaction"===e.type}function Ik(e){return"feedback"===e.type}function Mk(e){return!!e.category}function Rk(){const e=Le().getPropagationContext().dsc;e&&delete e.replay_id;const t=Zt();t&&delete sn(t).replay_id}function Ak(e,t){return t.map(({type:t,start:n,end:a,name:o,data:s})=>{const r=e.throttledAddEvent({type:qg.Custom,timestamp:n,data:{tag:"performanceSpan",payload:{op:t,description:o,startTimestamp:n,endTimestamp:a,data:s}}});return"string"==typeof r?Promise.resolve(null):r})}function Ok(e,t){e.isEnabled()&&null!==t&&(function(e,t){return(!rk||!e.getOptions()._experiments.traceInternals)&&im(t,Be())}(e,t.name)||e.addUpdate(()=>(Ak(e,[t]),!0)))}function Dk(e){if(!e)return;const t=new TextEncoder;try{if("string"==typeof e)return t.encode(e).length;if(e instanceof URLSearchParams)return t.encode(e.toString()).length;if(e instanceof FormData){const n=ym(e);return t.encode(n).length}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength}catch{}}function Pk(e){if(!e)return;const t=parseInt(e,10);return isNaN(t)?void 0:t}function Lk(e,t){if(!e)return{headers:{},size:void 0,_meta:{warnings:[t]}};const n={...e._meta},a=n.warnings||[];return n.warnings=[...a,t],e._meta=n,e}function Nk(e,t){if(!t)return null;const{startTimestamp:n,endTimestamp:a,url:o,method:s,statusCode:r,request:i,response:c}=t;return{type:e,start:n/1e3,end:a/1e3,name:o,data:{method:s,statusCode:r,request:i,response:c}}}function $k(e){return{headers:{},size:e,_meta:{warnings:["URL_SKIPPED"]}}}function Fk(e,t,n){if(!t&&0===Object.keys(e).length)return;if(!t)return{headers:e};if(!n)return{headers:e,size:t};const a={headers:e,size:t},{body:o,warnings:s}=function(e){if(!e||"string"!=typeof e)return{body:e};const t=e.length>Eh,n=function(e){const t=e[0],n=e[e.length-1];return"["===t&&"]"===n||"{"===t&&"}"===n}(e);if(t){const t=e.slice(0,Eh);return n?{body:t,warnings:["MAYBE_JSON_TRUNCATED"]}:{body:`${t}…`,warnings:["TEXT_TRUNCATED"]}}if(n)try{return{body:JSON.parse(e)}}catch{}return{body:e}}(n);return a.body=o,s?.length&&(a._meta={warnings:s}),a}function Uk(e,t){return Object.entries(e).reduce((n,[a,o])=>{const s=a.toLowerCase();return t.includes(s)&&e[a]&&(n[s]=o),n},{})}function Bk(e,t){const n=function(e,t=Sh.document.baseURI){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith(Sh.location.origin))return e;const n=new URL(e,t);if(n.origin!==new URL(t).origin)return e;const a=n.href;return!e.endsWith("/")&&a.endsWith("/")?a.slice(0,-1):a}(e);return ue(n,t)}function qk(e,t){const n={};return t.forEach(t=>{e.get(t)&&(n[t]=e.get(t))}),n}function Hk(e,t){if(!e)return{};const n=e.headers;return n?n instanceof Headers?qk(n,t):Array.isArray(n)?{}:Uk(n,t):{}}function Wk(e){const t=Be();try{const{networkDetailAllowUrls:n,networkDetailDenyUrls:a,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:r}=e.getOptions(),i={replay:e,networkDetailAllowUrls:n,networkDetailDenyUrls:a,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:r};t&&t.on("beforeAddBreadcrumb",(e,t)=>function(e,t,n){if(t.data)try{(function(e){return"xhr"===e.category})(t)&&function(e){return e?.xhr}(n)&&(function(e,t){const{xhr:n,input:a}=t;if(!n)return;const o=Dk(a),s=n.getResponseHeader("content-length")?Pk(n.getResponseHeader("content-length")):function(e,t){try{return Dk("json"===t&&e&&"object"==typeof e?JSON.stringify(e):e)}catch{return}}(n.response,n.responseType);void 0!==o&&(e.data.request_body_size=o),void 0!==s&&(e.data.response_body_size=s)}(t,n),async function(e,t,n){try{const a=function(e,t,n){const a=Date.now(),{startTimestamp:o=a,endTimestamp:s=a,input:r,xhr:i}=t,{url:c,method:u,status_code:l=0,request_body_size:p,response_body_size:d}=e.data;if(!c)return null;if(!i||!Bk(c,n.networkDetailAllowUrls)||Bk(c,n.networkDetailDenyUrls))return{startTimestamp:o,endTimestamp:s,url:c,method:u,statusCode:l,request:$k(p),response:$k(d)};const m=i[$r],h=m?Uk(m.request_headers,n.networkRequestHeaders):{},g=Uk(vm(i),n.networkResponseHeaders),[f,k]=n.networkCaptureBodies?bm(r,lk):[void 0],[y,b]=n.networkCaptureBodies?function(e){const t=[];try{return[e.responseText]}catch(e){t.push(e)}try{return function(e,t){try{if("string"==typeof e)return[e];if(e instanceof Document)return[e.body.outerHTML];if("json"===t&&e&&"object"==typeof e)return[JSON.stringify(e)];if(!e)return[void 0]}catch(t){return rk&&lk.exception(t,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return rk&&lk.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}(e.response,e.responseType)}catch(e){t.push(e)}return rk&&lk.warn("Failed to get xhr response body",...t),[void 0]}(i):[void 0],w=Fk(h,p,f),v=Fk(g,d,y);return{startTimestamp:o,endTimestamp:s,url:c,method:u,statusCode:l,request:k?Lk(w,k):w,response:b?Lk(v,b):v}}(e,t,n),o=Nk("resource.xhr",a);Ok(n.replay,o)}catch(e){rk&&lk.exception(e,"Failed to capture xhr breadcrumb")}}(t,n,e)),function(e){return"fetch"===e.category}(t)&&function(e){return e?.response}(n)&&(function(e,t){const{input:n,response:a}=t,o=Dk(n?wm(n):void 0),s=a?Pk(a.headers.get("content-length")):void 0;void 0!==o&&(e.data.request_body_size=o),void 0!==s&&(e.data.response_body_size=s)}(t,n),async function(e,t,n){try{const a=await async function(e,t,n){const a=Date.now(),{startTimestamp:o=a,endTimestamp:s=a}=t,{url:r,method:i,status_code:c=0,request_body_size:u,response_body_size:l}=e.data,p=Bk(r,n.networkDetailAllowUrls)&&!Bk(r,n.networkDetailDenyUrls),d=p?function({networkCaptureBodies:e,networkRequestHeaders:t},n,a){const o=n?(r=t,1===(s=n).length&&"string"!=typeof s[0]?Hk(s[0],r):2===s.length?Hk(s[1],r):{}):{};var s,r;if(!e)return Fk(o,a,void 0);const i=wm(n),[c,u]=bm(i,lk),l=Fk(o,a,c);return u?Lk(l,u):l}(n,t.input,u):$k(u),m=await async function(e,{networkCaptureBodies:t,networkResponseHeaders:n},a,o){if(!e&&void 0!==o)return $k(o);const s=a?qk(a.headers,n):{};if(!a||!t&&void 0!==o)return Fk(s,o,void 0);const[r,i]=await async function(e){const t=function(e){try{return e.clone()}catch(e){rk&&lk.exception(e,"Failed to clone response body")}}(e);if(!t)return[void 0,"BODY_PARSE_ERROR"];try{const e=await function(e){return new Promise((t,n)=>{const a=Li(()=>n(new Error("Timeout while trying to read response body")),500);(async function(e){return await e.text()})(e).then(e=>t(e),e=>n(e)).finally(()=>clearTimeout(a))})}(t);return[e]}catch(e){return e instanceof Error&&e.message.indexOf("Timeout")>-1?(rk&&lk.warn("Parsing text body from response timed out"),[void 0,"BODY_PARSE_TIMEOUT"]):(rk&&lk.exception(e,"Failed to get text body from response"),[void 0,"BODY_PARSE_ERROR"])}}(a),c=function(e,{networkCaptureBodies:t,responseBodySize:n,captureDetails:a,headers:o}){try{const s=e?.length&&void 0===n?Dk(e):n;return a?Fk(o,s,t?e:void 0):$k(s)}catch(e){return rk&&lk.exception(e,"Failed to serialize response body"),Fk(o,n,void 0)}}(r,{networkCaptureBodies:t,responseBodySize:o,captureDetails:e,headers:s});return i?Lk(c,i):c}(p,n,t.response,l);return{startTimestamp:o,endTimestamp:s,url:r,method:i,statusCode:c,request:d,response:m}}(e,t,n),o=Nk("resource.fetch",a);Ok(n.replay,o)}catch(e){rk&&lk.exception(e,"Failed to capture fetch breadcrumb")}}(t,n,e))}catch(e){rk&&lk.exception(e,"Error when enriching network breadcrumb")}}(i,e,t))}catch{}}function Vk(e){const{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:a}=e,o=Date.now()/1e3;return{type:"memory",name:"memory",start:o,end:o,data:{memory:{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:a}}}}const Jk=l.navigator;function Yk(e){let t=!1;return(n,a)=>{if(!e.checkAndHandleExpiredSession())return void(rk&&lk.warn("Received replay event after session expired."));const o=a||!t;t=!0,e.clickDetector&&function(e,t){try{if(!function(e){return 3===e.type}(t))return;const{source:n}=t.data;if(Bf.has(n)&&e.registerMutation(t.timestamp),n===Hg.Scroll&&e.registerScroll(t.timestamp),function(e){return e.data.source===Hg.MouseInteraction}(t)){const{type:n,id:a}=t.data,o=Rf.mirror.getNode(a);o instanceof HTMLElement&&n===Wg.Click&&e.registerClick(o)}}catch{}}(e.clickDetector,n),e.addUpdate(()=>{if("buffer"===e.recordingMode&&o&&e.setInitialState(),!xk(e,n,o))return!0;if(!o)return!1;const t=e.session;if(function(e,t){t&&e.session&&0===e.session.segmentId&&xk(e,function(e){const t=e.getOptions();return{type:qg.Custom,timestamp:Date.now(),data:{tag:"options",payload:{shouldRecordCanvas:e.isRecordingCanvas(),sessionSampleRate:t.sessionSampleRate,errorSampleRate:t.errorSampleRate,useCompressionOption:t.useCompression,blockAllMedia:t.blockAllMedia,maskAllText:t.maskAllText,maskAllInputs:t.maskAllInputs,useCompression:!!e.eventBuffer&&"worker"===e.eventBuffer.type,networkDetailHasUrls:t.networkDetailAllowUrls.length>0,networkCaptureBodies:t.networkCaptureBodies,networkRequestHasHeaders:t.networkRequestHeaders.length>0,networkResponseHasHeaders:t.networkResponseHeaders.length>0}}}}(e),!1)}(e,o),"buffer"===e.recordingMode&&t&&e.eventBuffer&&!t.dirty){const n=e.eventBuffer.getEarliestTimestamp();n&&(rk&&lk.log(`Updating session start time to earliest event in buffer to ${new Date(n)}`),t.started=n,e.getOptions().stickySession&&yk(t))}return t?.previousSessionId||"session"===e.recordingMode&&e.flush(),!0})}}class Gk extends Error{constructor(e){super(`Transport returned status code ${e}`)}}class Kk extends Error{constructor(e){super("Rate limit hit"),this.rateLimits=e}}async function Xk(e,t={count:0,interval:5e3}){const{recordingData:n,onError:a}=e;if(n.length)try{return await async function({recordingData:e,replayId:t,segmentId:n,eventContext:a,timestamp:o,session:s}){const r=function({recordingData:e,headers:t}){let n;const a=`${JSON.stringify(t)}\n`;if("string"==typeof e)n=`${a}${e}`;else{const t=(new TextEncoder).encode(a);n=new Uint8Array(t.length+e.length),n.set(t),n.set(e,t.length)}return n}({recordingData:e,headers:{segment_id:n}}),{urls:i,errorIds:c,traceIds:u,initialTimestamp:l}=a,p=Be(),d=Le(),m=p?.getTransport(),h=p?.getDsn();if(!(p&&m&&h&&s.sampled))return Promise.resolve({});const g={type:"replay_event",replay_start_timestamp:l/1e3,timestamp:o/1e3,error_ids:c,trace_ids:u,urls:i,replay_id:t,segment_id:n,replay_type:s.sampled},f=await async function({client:e,scope:t,replayId:n,event:a}){const o={event_id:n,integrations:"object"!=typeof e._integrations||null===e._integrations||Array.isArray(e._integrations)?void 0:Object.keys(e._integrations)};e.emit("preprocessEvent",a,o);const s=await yn(e.getOptions(),a,o,t,e,Ne());if(!s)return null;e.emit("postprocessEvent",s,o),s.platform=s.platform||"javascript";const r=e.getSdkMetadata(),{name:i,version:c,settings:u}=r?.sdk||{};return s.sdk={...s.sdk,name:i||"sentry.javascript.unknown",version:c||"0.0.0",settings:u},s}({scope:d,client:p,replayId:t,event:g});if(!f)return p.recordDroppedEvent("event_processor","replay"),rk&&lk.log("An event processor returned `null`, will not send event."),Promise.resolve({});delete f.sdkProcessingMetadata;const k=function(e,t,n,a){return Lo(Yo(e,Jo(e),a,n),[[{type:"replay_event"},e],[{type:"replay_recording",length:"string"==typeof t?(new TextEncoder).encode(t).length:t.length},t]])}(f,r,h,p.getOptions().tunnel);let y;try{y=await m.send(k)}catch(e){const t=new Error(zh);try{t.cause=e}catch{}throw t}if("number"==typeof y.statusCode&&(y.statusCode<200||y.statusCode>=300))throw new Gk(y.statusCode);const b=vs({},y);if(ws(b,"replay"))throw new Kk(b);return y}(e),!0}catch(n){if(n instanceof Gk||n instanceof Kk)throw n;if(jn("Replays",{_retryCount:t.count}),a&&a(n),t.count>=3){const e=new Error(`${zh} - max retries exceeded`);try{e.cause=n}catch{}throw e}return t.interval*=++t.count,new Promise((n,a)=>{Li(async()=>{try{await Xk(e,t),n(!0)}catch(e){a(e)}},t.interval)})}}const Zk="__THROTTLED";class Qk{constructor({options:e,recordingOptions:t}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:3e5,sessionIdleExpire:9e5},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=t,this._options=e,this._debouncedFlush=function(e,t,n){return function(e,t,n){let a,o,s;const r=n?.maxWait?Math.max(n.maxWait,t):0,i=n?.setTimeoutImpl||setTimeout;function c(){return u(),a=e(),a}function u(){void 0!==o&&clearTimeout(o),void 0!==s&&clearTimeout(s),o=s=void 0}function l(){return o&&clearTimeout(o),o=i(c,t),r&&void 0===s&&(s=i(c,r)),a}return l.cancel=u,l.flush=function(){return void 0!==o||void 0!==s?c():a},l}(e,t,{...n,setTimeoutImpl:Li})}(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=function(e,t,n){const a=new Map;let o=!1;return(...s)=>{const r=Math.floor(Date.now()/1e3);if((e=>{const t=e-n;a.forEach((e,n)=>{n<t&&a.delete(n)})})(r),[...a.values()].reduce((e,t)=>e+t,0)>=t){const e=o;return o=!0,e?"__SKIPPED":Zk}o=!1;const i=a.get(r)||0;return a.set(r,i+1),e(...s)}}((e,t)=>function(e,t,n){return Ek(e,t)?zk(e,t,n):Promise.resolve(null)}(this,e,t),300,5);const{slowClickTimeout:n,slowClickIgnoreSelectors:a}=this.getOptions(),o=n?{threshold:Math.min(3e3,n),timeout:n,scrollTimeout:300,ignoreSelector:a?a.join(","):""}:void 0;if(o&&(this.clickDetector=new qf(this,o)),rk){const t=e._experiments;lk.setConfig({captureExceptions:!!t.captureExceptions,traceInternals:!!t.traceInternals})}this._handleVisibilityChange=()=>{"visible"===Sh.document.visibilityState?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const e=Vf({category:"ui.blur"});this._doChangeToBackgroundTasks(e)},this._handleWindowFocus=()=>{const e=Vf({category:"ui.focus"});this._doChangeToForegroundTasks(e)},this._handleKeyboardEvent=e=>{!function(e,t){if(!e.isEnabled())return;e.updateUserActivity();const n=function(e){const{metaKey:t,shiftKey:n,ctrlKey:a,altKey:o,key:s,target:r}=e;if(!r||function(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable}(r)||!s)return null;const i=t||a||o,c=1===s.length;if(!i&&c)return null;const u=M(r,{maxStringLength:200})||"<unknown>";return Vf({category:"ui.keyDown",message:u,data:{...Kf(r,u).data,metaKey:t,shiftKey:n,ctrlKey:a,altKey:o,key:s}})}(t);n&&Lf(e,n)}(this,e)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return Boolean(this._canvas)}getOptions(){return this._options}handleException(e){rk&&lk.exception(e),this._options.onError&&this._options.onError(e)}initializeSampling(e){const{errorSampleRate:t,sessionSampleRate:n}=this._options,a=t<=0&&n<=0;this._requiresManualStart=a,a||(this._initializeSessionForSampling(e),this.session?!1!==this.session.sampled&&(this.recordingMode="buffer"===this.session.sampled&&0===this.session.segmentId?"buffer":"session",rk&&lk.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording()):rk&&lk.exception(new Error("Unable to initialize and create session")))}start(){if(this._isEnabled&&"session"===this.recordingMode)return void(rk&&lk.log("Recording is already in progress"));if(this._isEnabled&&"buffer"===this.recordingMode)return void(rk&&lk.log("Buffering is in progress, call `flush()` to save the replay"));rk&&lk.infoTick("Starting replay in session mode"),this._updateUserActivity();const e=Sk({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=e,this.recordingMode="session",this._initializeRecording()}startBuffering(){if(this._isEnabled)return void(rk&&lk.log("Buffering is in progress, call `flush()` to save the replay"));rk&&lk.infoTick("Starting replay in buffer mode");const e=Sk({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=e,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const e=this._canvas;this._stopRecording=Rf({...this._recordingOptions,..."buffer"===this.recordingMode?{checkoutEveryNms:6e4}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:Yk(this),.../iPhone|iPad|iPod/i.test(Jk?.userAgent??"")||/Macintosh/i.test(Jk?.userAgent??"")&&Jk?.maxTouchPoints&&Jk?.maxTouchPoints>1?{sampling:{mousemove:!1}}:{},onMutation:this._onMutationHandler.bind(this),...e?{recordCanvas:e.recordCanvas,getCanvasManager:e.getCanvasManager,sampling:e.sampling,dataURLOptions:e.dataURLOptions}:{}})}catch(e){this.handleException(e)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(e){return this.handleException(e),!1}}async stop({forceFlush:e=!1,reason:t}={}){if(this._isEnabled){this._isEnabled=!1,this.recordingMode="buffer";try{rk&&lk.log("Stopping Replay"+(t?` triggered by ${t}`:"")),Rk(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),e&&await this._flush({force:!0}),this.eventBuffer?.destroy(),this.eventBuffer=null,n=this,function(){if(fk())try{Sh.sessionStorage.removeItem(xh)}catch{}}(),n.session=void 0}catch(e){this.handleException(e)}}var n}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),rk&&lk.log("Pausing replay"))}resume(){this._isPaused&&this._checkSession()&&(this._isPaused=!1,this.startRecording(),rk&&lk.log("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:e=!0}={}){if("session"===this.recordingMode)return this.flushImmediate();const t=Date.now();rk&&lk.log("Converting buffer to session"),await this.flushImmediate();const n=this.stopRecording();e&&n&&"session"!==this.recordingMode&&(this.recordingMode="session",this.session&&(this.session.dirty=!1,this._updateUserActivity(t),this._updateSessionActivity(t),this._maybeSaveSession()),this.startRecording())}addUpdate(e){const t=e();"buffer"!==this.recordingMode&&this._isEnabled&&!0!==t&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),this._stopRecording)this.checkAndHandleExpiredSession(),this._updateSessionActivity();else{if(!this._checkSession())return;this.resume()}}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return"buffer"===this.recordingMode?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(e){if(!e||!1!==this.session?.sampled)return this.session?.id}checkAndHandleExpiredSession(){if(!(this._lastActivity&&vk(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&"session"===this.session.sampled))return!!this._checkSession();this.pause()}setInitialState(){const e=`${Sh.location.pathname}${Sh.location.hash}${Sh.location.search}`,t=`${Sh.location.origin}${e}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=t,this._context.initialTimestamp=Date.now(),this._context.urls.push(t)}throttledAddEvent(e,t){const n=this._throttledAddEvent(e,t);if(n===Zk){const e=Vf({category:"replay.throttled"});this.addUpdate(()=>!xk(this,{type:5,timestamp:e.timestamp||0,data:{tag:"breadcrumb",payload:e,metric:!0}}))}return n}getCurrentRoute(){const e=this.lastActiveSpan||Zt(),t=e&&Xt(e),n=(t&&Ht(t).data||{})[Ke];if(t&&n&&["route","custom"].includes(n))return Ht(t).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=function({useCompression:e,workerUrl:t}){if(e&&window.Worker){const e=function(e){try{const t=e||("undefined"!=typeof __SENTRY_EXCLUDE_REPLAY_WORKER__&&__SENTRY_EXCLUDE_REPLAY_WORKER__?"":function(){const e=new Blob(['var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<<t[s-1];var a=new r(i[30]);for(s=1;s<30;++s)for(var o=i[s];o<i[s+1];++o)a[o]=o-i[s]<<5|s;return{b:i,r:a}},o=a(e,2),h=o.b,f=o.r;h[28]=258,f[258]=28;for(var l=a(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s<i;++s)t[s]&&++a[t[s]-1];var o,h=new n(r);for(s=1;s<r;++s)h[s]=h[s-1]+a[s-1]<<1;if(e){o=new n(1<<r);var f=15-r;for(s=0;s<i;++s)if(t[s])for(var l=s<<4|t[s],c=r-t[s],v=h[t[s]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>f]=l}else for(o=new n(i),s=0;s<i;++s)t[s]&&(o[s]=u[h[t[s]-1]++]>>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;s<r.length;++s)r[s]&&i.push({s:s,f:r[s]});var a=i.length,o=i.slice();if(!a)return{t:F,l:0};if(1==a){var h=new t(i[0].s+1);return h[i[0].s]=1,{t:h,l:1}}i.sort(function(t,n){return t.f-n.f}),i.push({s:-1,f:25001});var f=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:f.f+l.f,l:f,r:l};c!=a-1;)f=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:f.f+l.f,l:f,r:l};var d=o[0].s;for(s=1;s<a;++s)o[s].s>d&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<<y;for(o.sort(function(t,n){return p[n.s]-p[t.s]||t.f-n.f});s<a;++s){var b=o[s].s;if(!(p[b]>e))break;w+=m-(1<<g-p[b]),p[b]=e}for(w>>=y;w>0;){var M=o[s].s;p[M]<e?w-=1<<e-p[M]++-1:++s}for(;s>=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s<e;++s)t[i+s+4]=r[s];return 8*(i+4+e)},U=function(t,r,a,o,h,f,l,u,c,v,m){z(r,m++,a),++h[256];for(var b=x(h,15),M=b.t,E=b.l,A=x(f,15),U=A.t,C=A.l,F=D(M),I=F.c,S=F.n,L=D(U),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=x(q,7),H=G.t,J=G.l,K=19;K>4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(U,C,0),R=U;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[s[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B<u;++B){var rt=o[B];if(rt>255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=e+=r[a];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<<o)-1,_=c.p||new n(32768),x=c.h||new n(z+1),A=Math.ceil(o/3),D=2*A,T=function(t){return(s[t]^s[t+1]<<A^s[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=x[H];if(_[J]=K,x[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$<Z&&s[j+$]==s[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-_[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=s[j],++I[s[j]];w=U(s,p,g,F,I,S,O,q,G,j-G,w),g||(c.r=7&w|p[w/8|0]<<3,w-=7,c.h=x,c.p=_,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+g;j+=65535){var at=j+65535;at>=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;o<e;++o){if(s+5>i.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:"init",success:!0,response:void 0});']);return URL.createObjectURL(e)}());if(!t)return;rk&&lk.log("Using compression worker"+(e?` from ${e}`:""));const n=new Worker(t);return new gk(n)}catch(e){rk&&lk.exception(e,"Failed to create compression worker")}}(t);if(e)return e}return rk&&lk.log("Using simple buffer"),new dk}({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(e){const t=this._options.errorSampleRate>0,n=Sk({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:e},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:t});this.session=n}_checkSession(){if(!this.session)return!1;const e=this.session;return!jk(e,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})||(this._refreshSession(e),!1)}async _refreshSession(e){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(e.id))}_addListeners(){try{Sh.document.addEventListener("visibilitychange",this._handleVisibilityChange),Sh.addEventListener("blur",this._handleWindowBlur),Sh.addEventListener("focus",this._handleWindowFocus),Sh.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(function(e){const t=Be();Pr((e=>t=>{if(!e.isEnabled())return;const n=function(e){const{target:t,message:n}=function(e){const t="click"===e.name;let n,a=null;try{a=t?$f(e.event):Ff(e.event),n=M(a,{maxStringLength:200})||"<unknown>"}catch{n="<unknown>"}return{target:a,message:n}}(e);return Vf({category:`ui.${e.name}`,...Kf(t,n)})}(t);if(!n)return;const a="click"===t.name,o=a?t.event:void 0;var s,r,i;!(a&&e.clickDetector&&o?.target)||o.altKey||o.metaKey||o.ctrlKey||o.shiftKey||(s=e.clickDetector,r=n,i=$f(t.event),s.handleClick(r,i)),Lf(e,n)})(e)),qr(function(e){return t=>{if(!e.isEnabled())return;const n=function(e){const{from:t,to:n}=e,a=Date.now()/1e3;return{type:"navigation.push",start:a,end:a,name:n,data:{previous:t}}}(t);null!==n&&(e.getContext().urls.push(n.name),e.triggerUserActivity(),e.addUpdate(()=>(Ak(e,[n]),!1)))}}(e)),function(e){const t=Be();t&&t.on("beforeAddBreadcrumb",t=>function(e,t){if(!e.isEnabled()||!Mk(t))return;const n=function(e){return!Mk(e)||["fetch","xhr","sentry.event","sentry.transaction"].includes(e.category)||e.category.startsWith("ui.")?null:"console"===e.category?function(e){const t=e.data?.arguments;if(!Array.isArray(t)||0===t.length)return Vf(e);let n=!1;const a=t.map(e=>{if(!e)return e;if("string"==typeof e)return e.length>Th?(n=!0,`${e.slice(0,Th)}…`):e;if("object"==typeof e)try{const t=gn(e,7);return JSON.stringify(t).length>Th?(n=!0,`${JSON.stringify(t,null,2).slice(0,Th)}…`):t}catch{}return e});return Vf({...e,data:{...e.data,arguments:a,...n?{_meta:{warnings:["CONSOLE_ARG_TRUNCATED"]}}:{}}})}(e):Vf(e)}(t);n&&Lf(e,n)}(e,t))}(e),Wk(e),On(function(e){return Object.assign((t,n)=>{if(!e.isEnabled()||e.isPaused())return t;if(function(e){return"replay_event"===e.type}(t))return delete t.breadcrumbs,t;if(!Tk(t)&&!Ck(t)&&!Ik(t))return t;if(!e.checkAndHandleExpiredSession())return Rk(),t;if(Ik(t))return e.flush(),t.contexts.feedback.replay_id=e.getSessionId(),function(e,t){e.triggerUserActivity(),e.addUpdate(()=>!t.timestamp||(e.throttledAddEvent({type:qg.Custom,timestamp:1e3*t.timestamp,data:{tag:"breadcrumb",payload:{timestamp:t.timestamp,type:"default",category:"sentry.feedback",data:{feedbackId:t.event_id}}}}),!1))}(e,t),t;if(function(e,t){return!(e.type||!e.exception?.values?.length||!t.originalException?.__rrweb__)}(t,n)&&!e.getOptions()._experiments.captureExceptions)return rk&&lk.log("Ignoring error from rrweb internals",t),null;const a=function(e,t){return"buffer"===e.recordingMode&&t.message!==zh&&!(!t.exception||t.type)&&kk(e.getOptions().errorSampleRate)}(e,t);if((a||"session"===e.recordingMode)&&(t.tags={...t.tags,replayId:e.getSessionId()}),a&&"buffer"===e.recordingMode&&"buffer"===e.session?.sampled){const t=e.session;t.dirty=!0,e.getOptions().stickySession&&yk(t)}return t},{id:"Replay"})}(e)),t&&(t.on("beforeSendEvent",function(e){return t=>{e.isEnabled()&&Tk(t)&&function(e,t){const n=t.exception?.values?.[0]?.value;"string"==typeof n&&(n.match(/(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/)||n.match(/(does not match server-rendered HTML|Hydration failed because)/i))&&Lf(e,Vf({category:"replay.hydrate-error",data:{url:A()}}))}(e,t)}}(e)),t.on("afterSendEvent",function(e){return(t,n)=>{if(!e.isEnabled()||!Tk(t)&&!Ck(t))return;const a=n.statusCode;!a||a<200||a>=300||(Ck(t)?function(e,t){const n=e.getContext();t.contexts?.trace?.trace_id&&n.traceIds.size<100&&n.traceIds.add(t.contexts.trace.trace_id)}(e,t):function(e,t){const n=e.getContext();if(t.event_id&&n.errorIds.size<100&&n.errorIds.add(t.event_id),"buffer"!==e.recordingMode||!t.tags||!t.tags.replayId)return;const{beforeErrorSampling:a}=e.getOptions();("function"!=typeof a||a(t))&&Li(async()=>{try{await e.sendBufferedReplayOrFlush()}catch(t){e.handleException(t)}})}(e,t))}}(e)),t.on("createDsc",t=>{const n=e.getSessionId();n&&e.isEnabled()&&"session"===e.recordingMode&&e.checkAndHandleExpiredSession()&&(t.replay_id=n)}),t.on("spanStart",t=>{e.lastActiveSpan=t}),t.on("spanEnd",t=>{e.lastActiveSpan=t}),t.on("beforeSendFeedback",async(t,n)=>{const a=e.getSessionId();n?.includeReplay&&e.isEnabled()&&a&&t.contexts?.feedback&&("api"===t.contexts.feedback.source&&await e.sendBufferedReplayOrFlush(),t.contexts.feedback.replay_id=a)}),t.on("openFeedbackWidget",async()=>{await e.sendBufferedReplayOrFlush()}))}(this),this._hasInitializedCoreListeners=!0)}catch(e){this.handleException(e)}this._performanceCleanupCallback=function(e){function t(t){e.performanceEntries.includes(t)||e.performanceEntries.push(t)}function n({entries:e}){e.forEach(t)}const a=[];return["navigation","paint","resource"].forEach(e=>{a.push(gh(e,n))}),a.push(mh(Zf(tk,e)),dh(Zf(ak,e)),hh(Zf(ok,e))),()=>{a.forEach(e=>e())}}(this)}_removeListeners(){try{Sh.document.removeEventListener("visibilitychange",this._handleVisibilityChange),Sh.removeEventListener("blur",this._handleWindowBlur),Sh.removeEventListener("focus",this._handleWindowFocus),Sh.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(e){this.handleException(e)}}_doChangeToBackgroundTasks(e){this.session&&(_k(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(e&&this._createCustomBreadcrumb(e),this.conditionalFlush()))}_doChangeToForegroundTasks(e){this.session&&(this.checkAndHandleExpiredSession()?e&&this._createCustomBreadcrumb(e):rk&&lk.log("Document has become active, but session has expired"))}_updateUserActivity(e=Date.now()){this._lastActivity=e}_updateSessionActivity(e=Date.now()){this.session&&(this.session.lastActivity=e,this._maybeSaveSession())}_createCustomBreadcrumb(e){this.addUpdate(()=>{this.throttledAddEvent({type:qg.Custom,timestamp:e.timestamp||0,data:{tag:"breadcrumb",payload:e}})})}_addPerformanceEntries(){let e=(t=this.performanceEntries,t.map(Qf).filter(Boolean)).concat(this.replayPerformanceEntries);var t;if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const t=this._context.initialTimestamp/1e3;e=e.filter(e=>e.start>=t)}return Promise.all(Ak(this,e))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:e,eventBuffer:t}=this;if(!e||!t||this._requiresManualStart)return;if(e.segmentId)return;const n=t.getEarliestTimestamp();n&&n<this._context.initialTimestamp&&(this._context.initialTimestamp=n)}_popEventContext(){const e={initialTimestamp:this._context.initialTimestamp,initialUrl:this._context.initialUrl,errorIds:Array.from(this._context.errorIds),traceIds:Array.from(this._context.traceIds),urls:this._context.urls};return this._clearContext(),e}async _runFlush(){const e=this.getSessionId();if(this.session&&this.eventBuffer&&e){if(await this._addPerformanceEntries(),this.eventBuffer?.hasEvents&&(await async function(e){try{return Promise.all(Ak(e,[Vk(Sh.performance.memory)]))}catch{return[]}}(this),this.eventBuffer&&e===this.getSessionId()))try{this._updateInitialTimestampFromEventBuffer();const t=Date.now();if(t-this._context.initialTimestamp>this._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const n=this._popEventContext(),a=this.session.segmentId++;this._maybeSaveSession();const o=await this.eventBuffer.finish();await Xk({replayId:e,recordingData:o,segmentId:a,eventContext:n,session:this.session,timestamp:t,onError:e=>this.handleException(e)})}catch(e){this.handleException(e),this.stop({reason:"sendReplay"});const t=Be();if(t){const n=e instanceof Kk?"ratelimit_backoff":"send_error";t.recordDroppedEvent(n,"replay")}}}else rk&&lk.error("No session or eventBuffer found to flush.")}async _flush({force:e=!1}={}){if(!this._isEnabled&&!e)return;if(!this.checkAndHandleExpiredSession())return void(rk&&lk.error("Attempting to finish replay event after session expired."));if(!this.session)return;const t=this.session.started,n=Date.now()-t;this._debouncedFlush.cancel();const a=n<this._options.minReplayDuration,o=n>this._options.maxReplayDuration+5e3;if(a||o)return rk&&lk.log(`Session duration (${Math.floor(n/1e3)}s) is too ${a?"short":"long"}, not sending replay.`),void(a&&this._debouncedFlush());const s=this.eventBuffer;s&&0===this.session.segmentId&&!s.hasCheckout&&rk&&lk.log("Flushing initial segment without checkout.");const r=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(e){this.handleException(e)}finally{this._flushLock=void 0,r&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&yk(this.session)}_onMutationHandler(e){const{ignoreMutations:t}=this._options._experiments;if(t?.length&&e.some(e=>{const n=function(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}(e.target),a=t.join(",");return n?.matches(a)}))return!1;const n=e.length,a=this._options.mutationLimit,o=a&&n>a;if(n>this._options.mutationBreadcrumbLimit||o){const e=Vf({category:"replay.mutations",data:{count:n,limit:o}});this._createCustomBreadcrumb(e)}return!o||(this.stop({reason:"mutationLimit",forceFlush:"session"===this.recordingMode}),!1)}}function ey(e,t){return[...e,...t].join(",")}const ty='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',ny=["content-length","content-type","accept"];let ay=!1;const oy=e=>new sy(e);class sy{constructor({flushMinDelay:e=5e3,flushMaxDelay:t=5500,minReplayDuration:n=4999,maxReplayDuration:a=36e5,stickySession:o=!0,useCompression:s=!0,workerUrl:r,_experiments:i={},maskAllText:c=!0,maskAllInputs:u=!0,blockAllMedia:l=!0,mutationBreadcrumbLimit:p=750,mutationLimit:d=1e4,slowClickTimeout:m=7e3,slowClickIgnoreSelectors:h=[],networkDetailAllowUrls:g=[],networkDetailDenyUrls:f=[],networkCaptureBodies:k=!0,networkRequestHeaders:y=[],networkResponseHeaders:b=[],mask:w=[],maskAttributes:v=["title","placeholder","aria-label"],unmask:_=[],block:j=[],unblock:S=[],ignore:x=[],maskFn:z,beforeAddRecordingEvent:E,beforeErrorSampling:T,onError:C}={}){this.name="Replay";const I=function({mask:e,unmask:t,block:n,unblock:a,ignore:o}){return{maskTextSelector:ey(e,[".sentry-mask","[data-sentry-mask]"]),unmaskTextSelector:ey(t,[]),blockSelector:ey(n,[".sentry-block","[data-sentry-block]","base","iframe[srcdoc]:not([src])"]),unblockSelector:ey(a,[]),ignoreSelector:ey(o,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}({mask:w,unmask:_,block:j,unblock:S,ignore:x});if(this._recordingOptions={maskAllInputs:u,maskAllText:c,maskInputOptions:{password:!0},maskTextFn:z,maskInputFn:z,maskAttributeFn:(e,t,n)=>function({el:e,key:t,maskAttributes:n,maskAllText:a,privacyOptions:o,value:s}){return a?o.unmaskTextSelector&&e.matches(o.unmaskTextSelector)?s:n.includes(t)||"value"===t&&"INPUT"===e.tagName&&["submit","button"].includes(e.getAttribute("type")||"")?s.replace(/[\S]/g,"*"):s:s}({maskAttributes:v,maskAllText:c,privacyOptions:I,key:e,value:t,el:n}),...I,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:e=>{try{e.__rrweb__=!0}catch{}},recordCrossOriginIframes:Boolean(i.recordCrossOriginIframes)},this._initialOptions={flushMinDelay:e,flushMaxDelay:t,minReplayDuration:Math.min(n,5e4),maxReplayDuration:Math.min(a,36e5),stickySession:o,useCompression:s,workerUrl:r,blockAllMedia:l,maskAllInputs:u,maskAllText:c,mutationBreadcrumbLimit:p,mutationLimit:d,slowClickTimeout:m,slowClickIgnoreSelectors:h,networkDetailAllowUrls:g,networkDetailDenyUrls:f,networkCaptureBodies:k,networkRequestHeaders:ry(y),networkResponseHeaders:ry(b),beforeAddRecordingEvent:E,beforeErrorSampling:T,onError:C,_experiments:i},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${ty}`:ty,this._recordingOptions.ignoreCSSAttributes=new Set(["background-image"])),this._isInitialized&&Wi())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return ay}set _isInitialized(e){ay=e}afterAllSetup(e){Wi()&&!this._replay&&(this._setup(e),this._initialize(e))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:"session"===this._replay.recordingMode}):Promise.resolve()}flush(e){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(e):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(e){if(this._replay?.isEnabled())return this._replay.getSessionId(e)}getRecordingMode(){if(this._replay?.isEnabled())return this._replay.recordingMode}_initialize(e){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(e),this._replay.initializeSampling())}_setup(e){const t=function(e,t){const n=t.getOptions(),a={sessionSampleRate:0,errorSampleRate:0,...e},o=Mt(n.replaysSessionSampleRate),s=Mt(n.replaysOnErrorSampleRate);return null==o&&null==s&&L(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),null!=o&&(a.sessionSampleRate=o),null!=s&&(a.errorSampleRate=s),a}(this._initialOptions,e);this._replay=new Qk({options:t,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(e){try{const t=e.getIntegrationByName("ReplayCanvas");if(!t)return;this._replay._canvas=t.getOptions()}catch{}}}function ry(e){return[...ny,...e.map(e=>e.toLowerCase())]}function iy(){const e=Be();return e?.getIntegrationByName("Replay")}var cy=Object.defineProperty,uy=(e,t,n)=>((e,t,n)=>t in e?cy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);function ly(e,t,n=1/0,a=0){return e?e.nodeType!==e.ELEMENT_NODE||a>n?-1:t(e)?a:ly(e.parentNode,t,n,a+1):-1}function py(e,t){return n=>{const a=n;if(null===a)return!1;try{if(e)if("string"==typeof e){if(a.matches(`.${e}`))return!0}else if(function(e,t){for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}return!1}(a,e))return!0;return!(!t||!a.matches(t))}catch{return!1}}}const dy="Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";let my={map:{},getId:()=>(console.error(dy),-1),getNode:()=>(console.error(dy),null),removeNodeFromMap(){console.error(dy)},has:()=>(console.error(dy),!1),reset(){console.error(dy)}};function hy(e,t,n,a,o=window){const s=o.Object.getOwnPropertyDescriptor(e,t);return o.Object.defineProperty(e,t,a?n:{set(e){wy(()=>{n.set.call(this,e)},0),s&&s.set&&s.set.call(this,e)}}),()=>hy(e,t,s||{},!0)}function gy(e,t,n){try{if(!(t in e))return()=>{};const a=e[t],o=n(a);return"function"==typeof o&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:a}})),e[t]=o,()=>{e[t]=a}}catch{return()=>{}}}function fy(e,t,n,a,o){if(!e)return!1;const s=function(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch(e){return null}}(e);if(!s)return!1;const r=py(t,n);if(!o){const e=a&&s.matches(a);return r(s)&&!e}const i=ly(s,r);let c=-1;return!(i<0)&&(a&&(c=ly(s,py(null,a))),i>-1&&c<0||i<c)}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(my=new Proxy(my,{get:(e,t,n)=>("map"===t&&console.error(dy),Reflect.get(e,t,n))})),Date.now().toString();const ky={};function yy(e){const t=ky[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return ky[e]=a.bind(window)}function by(...e){return yy("requestAnimationFrame")(...e)}function wy(...e){return yy("setTimeout")(...e)}var vy=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(vy||{});let _y;const jy=e=>_y?(...t)=>{try{return e(...t)}catch(e){if(_y&&!0===_y(e))return()=>{};throw e}}:e;for(var Sy="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xy="undefined"==typeof Uint8Array?[]:new Uint8Array(256),zy=0;zy<64;zy++)xy[Sy.charCodeAt(zy)]=zy;const Ey=new Map,Ty=(e,t,n)=>{if(!e||!My(e,t)&&"object"!=typeof e)return;const a=function(e,t){let n=Ey.get(e);return n||(n=new Map,Ey.set(e,n)),n.has(t)||n.set(t,[]),n.get(t)}(n,e.constructor.name);let o=a.indexOf(e);return-1===o&&(o=a.length,a.push(e)),o};function Cy(e,t,n){if(e instanceof Array)return e.map(e=>Cy(e,t,n));if(null===e)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer)return{rr_type:e.constructor.name,base64:function(e){var t,n=new Uint8Array(e),a=n.length,o="";for(t=0;t<a;t+=3)o+=Sy[n[t]>>2],o+=Sy[(3&n[t])<<4|n[t+1]>>4],o+=Sy[(15&n[t+1])<<2|n[t+2]>>6],o+=Sy[63&n[t+2]];return a%3==2?o=o.substring(0,o.length-1)+"=":a%3==1&&(o=o.substring(0,o.length-2)+"=="),o}(e)};if(e instanceof DataView)return{rr_type:e.constructor.name,args:[Cy(e.buffer,t,n),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const t=e.constructor.name,{src:n}=e;return{rr_type:t,src:n}}return e instanceof HTMLCanvasElement?{rr_type:"HTMLImageElement",src:e.toDataURL()}:e instanceof ImageData?{rr_type:e.constructor.name,args:[Cy(e.data,t,n),e.width,e.height]}:My(e,t)||"object"==typeof e?{rr_type:e.constructor.name,index:Ty(e,t,n)}:e}const Iy=(e,t,n)=>e.map(e=>Cy(e,t,n)),My=(e,t)=>{const n=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(e=>"function"==typeof t[e]);return Boolean(n.find(n=>e instanceof t[n]))};function Ry(e,t,n,a,o){const s=[];try{const r=gy(e.HTMLCanvasElement.prototype,"getContext",function(e){return function(s,...r){if(!fy(this,t,n,a,!0)){const e=function(e){return"experimental-webgl"===e?"webgl":e}(s);if("__context"in this||(this.__context=e),o&&["webgl","webgl2"].includes(e))if(r[0]&&"object"==typeof r[0]){const e=r[0];e.preserveDrawingBuffer||(e.preserveDrawingBuffer=!0)}else r.splice(0,1,{preserveDrawingBuffer:!0})}return e.apply(this,[s,...r])}});s.push(r)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{s.forEach(e=>e())}}function Ay(e,t,n,a,o,s,r,i){const c=[],u=Object.getOwnPropertyNames(e);for(const r of u)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(r))try{if("function"!=typeof e[r])continue;const u=gy(e,r,function(e){return function(...c){const u=e.apply(this,c);if(Ty(u,i,this),"tagName"in this.canvas&&!fy(this.canvas,a,o,s,!0)){const e=Iy(c,i,this),a={type:t,property:r,args:e};n(this.canvas,a)}return u}});c.push(u)}catch{const a=hy(e,r,{set(e){n(this.canvas,{type:t,property:r,args:[e],setter:!0})}});c.push(a)}return c}class Oy{constructor(e){this.pendingCanvasMutations=new Map,this.rafStamps={latestId:0,invokeId:null},this.shadowDoms=new Set,this.windowsSet=new WeakSet,this.windows=[],this.restoreHandlers=[],this.frozen=!1,this.locked=!1,this.snapshotInProgressMap=new Map,this.worker=null,this.lastSnapshotTime=0,this.processMutation=(e,t)=>{!(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId)&&this.rafStamps.invokeId||(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(e)||this.pendingCanvasMutations.set(e,[]),this.pendingCanvasMutations.get(e).push(t)};const{enableManualSnapshot:t,sampling:n="all",win:a,recordCanvas:o,errorHandler:s}=e;e.sampling=n,this.mutationCb=e.mutationCb,this.mirror=e.mirror,this.options=e,s&&(_y=s),(o&&"number"==typeof n||t)&&(this.worker=this.initFPSWorker()),this.addWindow(a),t||jy(()=>{o&&"all"===n&&(this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher()),o&&"number"==typeof n&&this.initCanvasFPSObserver()})()}reset(){this.pendingCanvasMutations.clear(),this.restoreHandlers.forEach(e=>{try{e()}catch(e){}}),this.restoreHandlers=[],this.windowsSet=new WeakSet,this.windows=[],this.shadowDoms=new Set,this.worker?.terminate(),this.worker=null,this.snapshotInProgressMap=new Map}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}addWindow(e){const{sampling:t="all",blockClass:n,blockSelector:a,unblockSelector:o,recordCanvas:s,enableManualSnapshot:r}=this.options;if(!this.windowsSet.has(e)){if(r)return this.windowsSet.add(e),void this.windows.push(new WeakRef(e));jy(()=>{if(s&&"all"===t&&this.initCanvasMutationObserver(e,n,a,o),s&&"number"==typeof t){const t=Ry(e,n,a,o,!0);this.restoreHandlers.push(()=>{t()})}})(),this.windowsSet.add(e),this.windows.push(new WeakRef(e))}}addShadowRoot(e){this.shadowDoms.add(new WeakRef(e))}resetShadowRoots(){this.shadowDoms=new Set}snapshot(e,t){t?.skipRequestAnimationFrame?this.takeSnapshot(performance.now(),!0,e):by(t=>this.takeSnapshot(t,!0,e))}initFPSWorker(){const e=new Worker(function(){const e=new Blob(['for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s="";for(a=0;a<r;a+=3)s+=e[n[a]>>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!("OffscreenCanvas"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+"-"+t;if("OffscreenCanvas"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext("2d");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return""}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext("bitmaprenderer"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:"low"});w?.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};']);return URL.createObjectURL(e)}());return e.onmessage=e=>{const t=e.data,{id:n}=t;if(this.snapshotInProgressMap.set(n,!1),!("base64"in t))return;const{base64:a,type:o,width:s,height:r}=t;this.mutationCb({id:n,type:vy["2D"],commands:[{property:"clearRect",args:[0,0,s,r]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:a}],type:o}]},0,0,s,r]}]})},e}initCanvasFPSObserver(){let e;if(!this.windows.length&&!this.shadowDoms.size)return;const t=n=>{this.takeSnapshot(n,!1),e=by(t)};e=by(t),this.restoreHandlers.push(()=>{e&&cancelAnimationFrame(e)})}initCanvasMutationObserver(e,t,n,a){const o=Ry(e,t,n,a,!1),s=function(e,t,n,a,o){const s=[],r=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const i of r)try{if("function"!=typeof t.CanvasRenderingContext2D.prototype[i])continue;const r=gy(t.CanvasRenderingContext2D.prototype,i,function(s){return function(...r){return fy(this.canvas,n,a,o,!0)||wy(()=>{const n=Iy(r,t,this);e(this.canvas,{type:vy["2D"],property:i,args:n})},0),s.apply(this,r)}});s.push(r)}catch{const n=hy(t.CanvasRenderingContext2D.prototype,i,{set(t){e(this.canvas,{type:vy["2D"],property:i,args:[t],setter:!0})}});s.push(n)}return()=>{s.forEach(e=>e())}}(this.processMutation.bind(this),e,t,n,a),r=function(e,t,n,a,o){const s=[];return s.push(...Ay(t.WebGLRenderingContext.prototype,vy.WebGL,e,n,a,o,0,t)),void 0!==t.WebGL2RenderingContext&&s.push(...Ay(t.WebGL2RenderingContext.prototype,vy.WebGL2,e,n,a,o,0,t)),()=>{s.forEach(e=>e())}}(this.processMutation.bind(this),e,t,n,a,this.mirror);this.restoreHandlers.push(()=>{o(),s(),r()})}getCanvasElements(e,t,n){const a=[],o=o=>{o.querySelectorAll("canvas").forEach(o=>{fy(o,e,t,n,!0)||a.push(o)})};for(const e of this.windows){const t=e.deref();let n;try{n=t&&t.document}catch{}n&&o(n)}for(const e of this.shadowDoms){const t=e.deref();t&&o(t)}return a}takeSnapshot(e,t,n){const{sampling:a,blockClass:o,blockSelector:s,unblockSelector:r,dataURLOptions:i,maxCanvasSize:c}=this.options,u=1e3/("all"===a?2:a||2);return!(this.lastSnapshotTime&&e-this.lastSnapshotTime<u)&&(this.lastSnapshotTime=e,(n?[n]:this.getCanvasElements(o,s,r)).forEach(e=>{const n=this.mirror.getId(e);if(this.mirror.hasNode(e)&&e.width&&e.height&&!this.snapshotInProgressMap.get(n)){if(this.snapshotInProgressMap.set(n,!0),!t&&["webgl","webgl2"].includes(e.__context)){const t=e.getContext(e.__context);!1===t?.getContextAttributes()?.preserveDrawingBuffer&&t.clear(t.COLOR_BUFFER_BIT)}createImageBitmap(e).then(t=>{this.worker?.postMessage({id:n,bitmap:t,width:e.width,height:e.height,dataURLOptions:i,maxCanvasSize:c},[t])}).catch(e=>{jy(()=>{throw this.snapshotInProgressMap.delete(n),e})()})}}),!0)}startPendingCanvasMutationFlusher(){by(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const e=t=>{this.rafStamps.latestId=t,by(e)};by(e)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((e,t)=>{const n=this.mirror.getId(t);this.flushPendingCanvasMutationFor(t,n)}),by(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(e,t){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(e);if(!n||-1===t)return;const a=n.map(e=>{const{type:t,...n}=e;return n}),{type:o}=n[0];this.mutationCb({id:t,type:o,commands:a}),this.pendingCanvasMutations.delete(e)}}try{if(2!==Array.from([1],e=>2*e)[0]){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}var Dy;new class{constructor(){uy(this,"idNodeMap",new Map),uy(this,"nodeMetaMap",new WeakMap)}getId(e){if(!e)return-1;const t=this.getMeta(e)?.id;return t??-1}getNode(e){return this.idNodeMap.get(e)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(e){return this.nodeMetaMap.get(e)||null}removeNodeFromMap(e){const t=this.getId(e);this.idNodeMap.delete(t),e.childNodes&&e.childNodes.forEach(e=>this.removeNodeFromMap(e))}has(e){return this.idNodeMap.has(e)}hasNode(e){return this.nodeMetaMap.has(e)}add(e,t){const n=t.id;this.idNodeMap.set(n,e),this.nodeMetaMap.set(e,t)}replace(e,t){const n=this.getNode(e);if(n){const e=this.nodeMetaMap.get(n);e&&this.nodeMetaMap.set(t,e)}this.idNodeMap.set(e,t)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}},function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"}(Dy||(Dy={}));const Py={low:{sampling:{canvas:1},dataURLOptions:{type:"image/webp",quality:.25}},medium:{sampling:{canvas:2},dataURLOptions:{type:"image/webp",quality:.4}},high:{sampling:{canvas:4},dataURLOptions:{type:"image/webp",quality:.5}}},Ly=1280,Ny=(e={})=>{const[t,n]=e.maxCanvasSize||[],a={quality:e.quality||"medium",enableManualSnapshot:e.enableManualSnapshot,maxCanvasSize:[t?Math.min(t,Ly):Ly,n?Math.min(n,Ly):Ly]};let o;const s=new Promise(e=>o=e);return{name:"ReplayCanvas",getOptions(){const{quality:e,enableManualSnapshot:t,maxCanvasSize:n}=a;return{enableManualSnapshot:t,recordCanvas:!0,getCanvasManager:e=>{const a=new Oy({...e,enableManualSnapshot:t,maxCanvasSize:n,errorHandler:e=>{try{"object"==typeof e&&(e.__rrweb__=!0)}catch{}}});return o(a),a},...Py[e]||Py.medium}},async snapshot(e,t){(await s).snapshot(e,t)}}};function $y(e){return e.split(",").some(e=>e.trim().startsWith(ct))}function Fy(e,t,n,a){const o={url:e,type:"fetch","http.method":n,[et]:a,[Qe]:"http.client"};return t&&(Er(t)||(o["http.url"]=t.href,o["server.address"]=t.host),t.search&&(o["http.query"]=t.search),t.hash&&(o["http.fragment"]=t.hash)),o}function Uy(e){return"number"==typeof e&&isFinite(e)}function By(e,t,n,{...a}){const o=Ht(e).start_timestamp;return o&&o>t&&"function"==typeof e.updateStartTime&&e.updateStartTime(t),el(e,()=>{const e=Zu({startTime:t,...a});return e&&e.end(n),e})}function qy(e){const t=Be();if(!t)return;const{name:n,transaction:a,attributes:o,startTime:s}=e,{release:r,environment:i,sendDefaultPii:c}=t.getOptions(),u=t.getIntegrationByName("Replay"),l=u?.getReplayId(),p=Le(),d=p.getUser(),m=void 0!==d?d.email||d.id||d.ip_address:void 0;let h;try{h=p.getScopeData().contexts.profile.profile_id}catch{}return Zu({name:n,attributes:{release:r,environment:i,user:m||void 0,profile_id:h||void 0,replay_id:l||void 0,transaction:a,"user_agent.original":Rr.navigator?.userAgent,"client.address":c?"{{auto}}":void 0,...o},startTime:s,experimental:{standalone:!0}})}function Hy(){return Rr.addEventListener&&Rr.performance}function Wy(e){return e/1e3}function Vy(e){try{return PerformanceObserver.supportedEntryTypes.includes(e)}catch{return!1}}function Jy(e,t){let n,a=!1;function o(e){!a&&n&&t(e,n),a=!0}Qm(()=>{o("pagehide")});const s=e.on("beforeStartNavigationSpan",(e,t)=>{t?.isRedirect||(o("navigation"),s(),r())}),r=e.on("afterStartPageLoadSpan",e=>{n=e.spanContext().spanId,r()})}function Yy(e){return e?((_e()||performance.timeOrigin)+e)/1e3:e}function Gy(e){const t={};if(null!=e.nextHopProtocol){const{name:n,version:a}=function(e){let t="unknown",n="unknown",a="";for(const o of e){if("/"===o){[t,n]=e.split("/");break}if(!isNaN(Number(o))){t="h"===a?"http":a,n=e.split(a)[1];break}a+=o}return a===e&&(t=a),{name:t,version:n}}(e.nextHopProtocol);t["network.protocol.version"]=a,t["network.protocol.name"]=n}return _e()||Hy()?.timeOrigin?(n={...t,"http.request.redirect_start":Yy(e.redirectStart),"http.request.redirect_end":Yy(e.redirectEnd),"http.request.worker_start":Yy(e.workerStart),"http.request.fetch_start":Yy(e.fetchStart),"http.request.domain_lookup_start":Yy(e.domainLookupStart),"http.request.domain_lookup_end":Yy(e.domainLookupEnd),"http.request.connect_start":Yy(e.connectStart),"http.request.secure_connection_start":Yy(e.secureConnectionStart),"http.request.connection_end":Yy(e.connectEnd),"http.request.request_start":Yy(e.requestStart),"http.request.response_start":Yy(e.responseStart),"http.request.response_end":Yy(e.responseEnd),"http.request.time_to_first_byte":null!=e.responseStart?e.responseStart/1e3:void 0},Object.fromEntries(Object.entries(n).filter(([,e])=>null!=e))):t;var n}function Ky(e){try{return new URL(e,er.location.origin).href}catch{return}}function Xy(e){try{return new Headers(e)}catch{return}}const Zy=new WeakMap,Qy=new Map,eb={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function tb(e,t){const{traceFetch:n,traceXHR:a,trackFetchStreamPerformance:o,shouldCreateSpanForRequest:s,enableHTTPTimings:r,tracePropagationTargets:i,onRequestSpanStart:c,onRequestSpanEnd:u}={...eb,...t},l="function"==typeof s?s:e=>!0,p=e=>function(e,t){const n=A();if(n){let a,o;try{a=new URL(e,n),o=new URL(n).origin}catch{return!1}const s=a.origin===o;return t?ue(a.toString(),t)||s&&ue(a.pathname,t):s}{const n=!!e.match(/^\/(?!\/)/);return t?ue(e,t):n}}(e,i),d={},m=e.getOptions().propagateTraceparent;n&&(e.addEventProcessor(e=>("transaction"===e.type&&e.spans&&e.spans.forEach(e=>{if("http.client"===e.op){const t=Qy.get(e.span_id);t&&(e.timestamp=t/1e3,Qy.delete(e.span_id))}}),e)),o&&function(){const e="fetch-body-resolved";cr(e,e=>{if(e.response){const t=Zy.get(e.response);t&&e.endTimestamp&&Qy.set(t,e.endTimestamp)}}),ur(e,()=>kr(yr))}(),fr(e=>{const t=function(e,t,n,a,o){if(!e.fetchData)return;const{method:s,url:r}=e.fetchData,i=vt()&&t(r);if(e.endTimestamp&&i){const t=e.fetchData.__span;if(!t)return;const n=a[t];return void(n&&(function(e,t){if(t.response){zt(e,t.response.status);const n=t.response?.headers?.get("content-length");if(n){const t=parseInt(n);t>0&&e.setAttribute("http.response_content_length",t)}}else t.error&&e.setStatus({code:St,message:"internal_error"});e.end()}(n,e),function(e,t,n){const a="object"==typeof n&&null!==n?n.onRequestSpanEnd:void 0;a?.(e,{headers:t.response?.headers,error:t.error})}(n,e,o),delete a[t]))}const{spanOrigin:c="auto.http.browser",propagateTraceparent:u=!1}="object"==typeof o?o:{spanOrigin:o},l=!!Zt(),p=i&&l?Zu(function(e,t,n){const a=Tr(e);return{name:a?`${t} ${Cr(a)}`:t,attributes:Fy(e,a,t,n)}}(r,s,c)):new qu;if(e.fetchData.__span=p.spanContext().spanId,a[p.spanContext().spanId]=p,n(e.fetchData.url)){const t=e.args[0],n=e.args[1]||{},a=function(e,t,n,a){const o=Sp({span:n,propagateTraceparent:a}),s=o["sentry-trace"],r=o.baggage,i=o.traceparent;if(!s)return;const c=t.headers||(T(e)?e.headers:void 0);if(c){if(function(e){return"undefined"!=typeof Headers&&z(e,Headers)}(c)){const e=new Headers(c);if(e.get("sentry-trace")||e.set("sentry-trace",s),a&&i&&!e.get("traceparent")&&e.set("traceparent",i),r){const t=e.get("baggage");t?$y(t)||e.set("baggage",`${t},${r}`):e.set("baggage",r)}return e}if(Array.isArray(c)){const e=[...c];c.find(e=>"sentry-trace"===e[0])||e.push(["sentry-trace",s]),a&&i&&!c.find(e=>"traceparent"===e[0])&&e.push(["traceparent",i]);const t=c.find(e=>"baggage"===e[0]&&$y(e[1]));return r&&!t&&e.push(["baggage",r]),e}{const e="sentry-trace"in c?c["sentry-trace"]:void 0,t="traceparent"in c?c.traceparent:void 0,n="baggage"in c?c.baggage:void 0,o=n?Array.isArray(n)?[...n]:[n]:[],u=n&&(Array.isArray(n)?n.find(e=>$y(e)):$y(n));r&&!u&&o.push(r);const l={...c,"sentry-trace":e??s,baggage:o.length>0?o.join(","):void 0};return a&&i&&!t&&(l.traceparent=i),l}}return{...o}}(t,n,vt()&&l?p:void 0,u);a&&(e.args[1]=n,n.headers=a)}const d=Be();if(d){const t={input:e.args,response:e.response,startTimestamp:e.startTimestamp,endTimestamp:e.endTimestamp};d.emit("beforeOutgoingRequestSpan",p,t)}return p}(e,l,p,d,{propagateTraceparent:m,onRequestSpanEnd:u});if(e.response&&e.fetchData.__span&&Zy.set(e.response,e.fetchData.__span),t){const n=Ky(e.fetchData.url),a=n?Ir(n).host:void 0;t.setAttributes({"http.url":n,"server.address":a}),r&&nb(t),c?.(t,{headers:e.headers})}})),a&&Fr(e=>{const t=function(e,t,n,a,o,s){const r=e.xhr,i=r?.[$r];if(!r||r.__sentry_own_request__||!i)return;const{url:c,method:u}=i,l=vt()&&t(c);if(e.endTimestamp&&l){const t=r.__sentry_xhr_span_id__;if(!t)return;const n=a[t];return void(n&&void 0!==i.status_code&&(zt(n,i.status_code),n.end(),s?.(n,{headers:Xy(vm(r)),error:e.error}),delete a[t]))}const p=Ky(c),d=Ir(p||c),m=Mr(c),h=!!Zt(),g=l&&h?Zu({name:`${u} ${m}`,attributes:{url:c,type:"xhr","http.method":u,"http.url":p,"server.address":d?.host,[et]:"auto.http.browser",[Qe]:"http.client",...d?.search&&{"http.query":d?.search},...d?.hash&&{"http.fragment":d?.hash}}}):new qu;r.__sentry_xhr_span_id__=g.spanContext().spanId,a[r.__sentry_xhr_span_id__]=g,n(c)&&function(e,t,n){const{"sentry-trace":a,baggage:o,traceparent:s}=Sp({span:t,propagateTraceparent:n});a&&function(e,t,n,a){const o=e.__sentry_xhr_v3__?.request_headers;if(!o?.["sentry-trace"]&&e.setRequestHeader)try{if(e.setRequestHeader("sentry-trace",t),a&&!o?.traceparent&&e.setRequestHeader("traceparent",a),n){const t=o?.baggage;t&&t.split(",").some(e=>e.trim().startsWith("sentry-"))||e.setRequestHeader("baggage",n)}}catch{}}(e,a,o,s)}(r,vt()&&h?g:void 0,o);const f=Be();return f&&f.emit("beforeOutgoingRequestSpan",g,e),g}(e,l,p,d,m,u);t&&(r&&nb(t),c?.(t,{headers:Xy(e.xhr.__sentry_xhr_v3__?.request_headers)}))})}function nb(e){const{url:t}=Ht(e).data;if(!t||"string"!=typeof t)return;const n=gh("resource",({entries:a})=>{a.forEach(a=>{(function(e){return"resource"===e.entryType&&"initiatorType"in e&&"string"==typeof e.nextHopProtocol&&("fetch"===e.initiatorType||"xmlhttprequest"===e.initiatorType)})(a)&&a.name.endsWith(t)&&(e.setAttributes(Gy(a)),setTimeout(n))})})}const ab={idleTimeout:1e3,finalTimeout:3e4,childSpanTimeout:15e3};function ob(e,t={}){const n=new Map;let a,o=!1,s="externalFinish",r=!t.disableAutoFinish;const i=[],{idleTimeout:c=ab.idleTimeout,finalTimeout:u=ab.finalTimeout,childSpanTimeout:l=ab.childSpanTimeout,beforeSpanEnd:p,trimIdleSpanEndTimestamp:d=!0}=t,m=Be();if(!m||!vt()){const e=new qu;return nn(e,{sample_rate:"0",sampled:"false",...sn(e)}),e}const g=Le(),f=Zt(),k=function(e){const t=Zu(e);return Te(Le(),t),h&&U.log("[Tracing] Started span is an idle span"),t}(e);function y(){a&&(clearTimeout(a),a=void 0)}function b(e){y(),a=setTimeout(()=>{!o&&0===n.size&&r&&(s="idleTimeout",k.end(e))},c)}function w(e){a=setTimeout(()=>{!o&&r&&(s="heartbeatFailed",k.end(e))},l)}function v(e){o=!0,n.clear(),i.forEach(e=>e()),Te(g,f);const t=Ht(k),{start_timestamp:a}=t;if(!a)return;t.data[tt]||k.setAttribute(tt,s);const r=t.status;r&&"unknown"!==r||k.setStatus({code:jt}),U.log(`[Tracing] Idle span "${t.op}" finished`);const l=Kt(k).filter(e=>e!==k);let p=0;l.forEach(t=>{t.isRecording()&&(t.setStatus({code:St,message:"cancelled"}),t.end(e),h&&U.log("[Tracing] Cancelling span since span ended early",JSON.stringify(t,void 0,2)));const n=Ht(t),{timestamp:a=0,start_timestamp:o=0}=n,s=o<=e,r=a-o<=(u+c)/1e3;if(h){const e=JSON.stringify(t,void 0,2);s?r||U.log("[Tracing] Discarding span since it finished after idle span final timeout",e):U.log("[Tracing] Discarding span since it happened after idle span was finished",e)}r&&s||(function(e,t){e[Jt]&&e[Jt].delete(t)}(k,t),p++)}),p>0&&k.setAttribute("sentry.idle_span_discarded_spans",p)}return k.end=new Proxy(k.end,{apply(e,t,n){if(p&&p(k),t instanceof qu)return;const[a,...o]=n,s=Bt(a||ve()),r=Kt(k).filter(e=>e!==k),i=Ht(k);if(!r.length||!d)return v(s),Reflect.apply(e,t,[s,...o]);const c=m.getOptions().ignoreSpans,l=r?.reduce((e,t)=>{const n=Ht(t);return n.timestamp?c&&Ko(n,c)?e:e?Math.max(e,n.timestamp):n.timestamp:e},void 0),h=i.start_timestamp,g=Math.min(h?h+u/1e3:1/0,Math.max(h||-1/0,Math.min(s,l||1/0)));return v(g),Reflect.apply(e,t,[g,...o])}}),i.push(m.on("spanStart",e=>{var t;o||e===k||Ht(e).timestamp||e instanceof Vu&&e.isStandaloneSpan()||Kt(k).includes(e)&&(t=e.spanContext().spanId,y(),n.set(t,!0),w(ve()+l/1e3))})),i.push(m.on("spanEnd",e=>{var t;o||(t=e.spanContext().spanId,n.has(t)&&n.delete(t),0===n.size&&b(ve()+c/1e3))})),i.push(m.on("idleSpanEnableAutoFinish",e=>{e===k&&(r=!0,b(),n.size&&w())})),t.disableAutoFinish||b(),setTimeout(()=>{o||(k.setStatus({code:St,message:"deadline_exceeded"}),s="finalTimeout",k.end())},u),k}let sb,rb,ib=0,cb={};function ub({recordClsStandaloneSpans:e,recordLcpStandaloneSpans:t,client:n}){const a=Hy();if(a&&_e()){a.mark&&Rr.performance.mark("sentry-tracing-init");const o=t?function(e){let t,n=0;if(!Vy("largest-contentful-paint"))return;const a=mh(({metric:e})=>{const a=e.entries[e.entries.length-1];a&&(n=e.value,t=a)},!0);Jy(e,(e,o)=>{!function(e,t,n,a){Oi&&U.log(`Sending LCP span (${e})`);const o=Wy((_e()||0)+(t?.startTime||0)),s=Le().getScopeData().transactionName,r=t?M(t.element):"Largest contentful paint",i={[et]:"auto.http.browser.lcp",[Qe]:"ui.webvital.lcp",[rt]:0,"sentry.pageload.span_id":n,"sentry.report_event":a};t&&(t.element&&(i["lcp.element"]=M(t.element)),t.id&&(i["lcp.id"]=t.id),t.url&&(i["lcp.url"]=t.url),null!=t.loadTime&&(i["lcp.loadTime"]=t.loadTime),null!=t.renderTime&&(i["lcp.renderTime"]=t.renderTime),null!=t.size&&(i["lcp.size"]=t.size));const c=qy({name:r,transaction:s,attributes:i,startTime:o});c&&(c.addEvent("lcp",{[nt]:"millisecond",[at]:e}),c.end(o))}(n,t,o,e),a()})}(n):mh(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(cb.lcp={value:e.value,unit:"millisecond"},sb=t)},!0),s=vh("ttfb",({metric:e})=>{e.entries[e.entries.length-1]&&(cb.ttfb={value:e.value,unit:"millisecond"})},bh,lh),r=e?function(e){let t,n=0;if(!Vy("layout-shift"))return;const a=dh(({metric:e})=>{const a=e.entries[e.entries.length-1];a&&(n=e.value,t=a)},!0);Jy(e,(e,o)=>{!function(e,t,n,a){Oi&&U.log(`Sending CLS span (${e})`);const o=t?Wy((_e()||0)+t.startTime):ve(),s=Le().getScopeData().transactionName,r=t?M(t.sources[0]?.node):"Layout shift",i={[et]:"auto.http.browser.cls",[Qe]:"ui.webvital.cls",[rt]:0,"sentry.pageload.span_id":n,"sentry.report_event":a};t?.sources&&t.sources.forEach((e,t)=>{i[`cls.source.${t+1}`]=M(e.node)});const c=qy({name:r,transaction:s,attributes:i,startTime:o});c&&(c.addEvent("cls",{[nt]:"",[at]:e}),c.end(o))}(n,t,o,e),a()})}(n):dh(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(cb.cls={value:e.value,unit:""},rb=t)},!0);return()=>{o?.(),s(),r?.()}}return()=>{}}function lb(e,t,n,a,o=n){const s=function(e){return"secureConnection"===e?"connectEnd":"fetch"===e?"domainLookupStart":`${e}End`}(n),r=t[s],i=t[`${n}Start`];i&&r&&By(e,a+Wy(i),a+Wy(r),{op:`browser.${o}`,name:t.name,attributes:{[et]:"auto.ui.browser.metrics",..."redirect"===n&&null!=t.redirectCount?{"http.redirect_count":t.redirectCount}:{}}})}const pb=[],db=new Map,mb=new Map;const hb={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"},gb=({metric:e})=>{if(null==e.value)return;const t=Wy(e.value);if(t>60)return;const n=e.entries.find(t=>t.duration===e.value&&hb[t.name]);if(!n)return;const{interactionId:a}=n,o=hb[n.name],s=Wy(_e()+n.startTime),r=Zt(),i=r?Xt(r):void 0,c=null!=a?db.get(a):void 0,u=c?.span||i,l=u?Ht(u).description:Le().getScopeData().transactionName,p=qy({name:c?.elementName||M(n.target),transaction:l,attributes:{[et]:"auto.http.browser.inp",[Qe]:`ui.interaction.${o}`,[rt]:n.duration},startTime:s});p&&(p.addEvent("inp",{[nt]:"millisecond",[at]:e.value}),p.end(s+t))};const fb=({entries:e})=>{const t=Zt(),n=t?Xt(t):void 0,a=n?Ht(n).description:Le().getScopeData().transactionName;e.forEach(e=>{const t=e;if(!t.identifier)return;const n=t.name,o=t.renderTime,s=t.loadTime,[r,i]=s?[Wy(s),"load-time"]:o?[Wy(o),"render-time"]:[ve(),"entry-emission"],c="image-paint"===n?Wy(Math.max(0,(o??0)-(s??0))):0,u={[et]:"auto.ui.browser.elementtiming",[Qe]:"ui.elementtiming",[Ke]:"component","sentry.span_start_time_source":i,"sentry.transaction_name":a,"element.id":t.id,"element.type":t.element?.tagName?.toLowerCase()||"unknown","element.size":t.naturalWidth&&t.naturalHeight?`${t.naturalWidth}x${t.naturalHeight}`:void 0,"element.render_time":o,"element.load_time":s,"element.url":t.url||void 0,"element.identifier":t.identifier,"element.paint_type":n};Ku({name:`element[${t.identifier}]`,attributes:u,startTime:r,onlyIfParent:!0},e=>{e.end(r+c)})})},kb="sentry_previous_trace";function yb(e){return 1===e.traceFlags}const bb={...ab,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...eb},wb=(e={})=>{const t={name:void 0,source:void 0},n=er.document,{enableInp:a,enableElementTiming:o,enableLongTask:s,enableLongAnimationFrame:r,_experiments:{enableInteractions:i,enableStandaloneClsSpans:c,enableStandaloneLcpSpans:u},beforeStartSpan:p,idleTimeout:d,finalTimeout:m,childSpanTimeout:h,markBackgroundSpan:g,traceFetch:f,traceXHR:k,trackFetchStreamPerformance:y,shouldCreateSpanForRequest:b,enableHTTPTimings:w,ignoreResourceSpans:v,ignorePerformanceApiSpans:j,instrumentPageLoad:S,instrumentNavigation:x,detectRedirects:z,linkPreviousTrace:E,consistentTraceSampling:T,enableReportPageLoaded:C,onRequestSpanStart:I,onRequestSpanEnd:R}={...bb,...e};let D,P,L;function N(e,a,o=!0){const s="pageload"===a.op,r=a.name,i=p?p(a):a,l=i.attributes||{};if(r!==i.name&&(l[Ke]="custom",i.attributes=l),!o){const e=ye();return void Zu({...i,startTime:e}).end(e)}t.name=i.name,t.source=l[Ke];const g=ob(i,{idleTimeout:d,finalTimeout:m,childSpanTimeout:h,disableAutoFinish:s,beforeSpanEnd:t=>{D?.(),function(e,t){const n=Hy(),a=_e();if(!n?.getEntries||!a)return;const o=Wy(a),s=n.getEntries(),{op:r,start_timestamp:i}=Ht(e);s.slice(ib).forEach(n=>{const a=Wy(n.startTime),s=Wy(Math.max(0,n.duration));if(!("navigation"===r&&i&&o+a<i))switch(n.entryType){case"navigation":!function(e,t,n){["unloadEvent","redirect","domContentLoadedEvent","loadEvent","connect"].forEach(a=>{lb(e,t,a,n)}),lb(e,t,"secureConnection",n,"TLS/SSL"),lb(e,t,"fetch",n,"cache"),lb(e,t,"domainLookup",n,"DNS"),function(e,t,n){const a=n+Wy(t.requestStart),o=n+Wy(t.responseEnd),s=n+Wy(t.responseStart);t.responseEnd&&(By(e,a,o,{op:"browser.request",name:t.name,attributes:{[et]:"auto.ui.browser.metrics"}}),By(e,s,o,{op:"browser.response",name:t.name,attributes:{[et]:"auto.ui.browser.metrics"}}))}(e,t,n)}(e,n,o);break;case"mark":case"paint":case"measure":{!function(e,t,n,a,o,s){if(function(e){if("measure"===e?.entryType)try{return"Components ⚛"===e.detail.devtools.track}catch{return}}(t))return;if(["mark","measure"].includes(t.entryType)&&ue(t.name,s))return;const r=Em(!1),i=Wy(r?r.requestStart:0),c=o+Math.max(n,i),u=o+n,l=u+a,p={[et]:"auto.resource.browser.metrics"};c!==u&&(p["sentry.browser.measure_happened_before_request"]=!0,p["sentry.browser.measure_start_time"]=c),function(e,t){try{const n=t.detail;if(!n)return;if("object"==typeof n){for(const[t,a]of Object.entries(n))if(a&&_(a))e[`sentry.browser.measure.detail.${t}`]=a;else if(void 0!==a)try{e[`sentry.browser.measure.detail.${t}`]=JSON.stringify(a)}catch{}return}if(_(n))return void(e["sentry.browser.measure.detail"]=n);try{e["sentry.browser.measure.detail"]=JSON.stringify(n)}catch{}}catch{}}(p,t),c<=l&&By(e,c,l,{name:t.name,op:t.entryType,attributes:p})}(e,n,a,s,o,t.ignorePerformanceApiSpans);const r=Om(),i=n.startTime<r.firstHiddenTime;"first-paint"===n.name&&i&&(cb.fp={value:n.startTime,unit:"millisecond"}),"first-contentful-paint"===n.name&&i&&(cb.fcp={value:n.startTime,unit:"millisecond"});break}case"resource":!function(e,t,n,a,o,s,r){if("xmlhttprequest"===t.initiatorType||"fetch"===t.initiatorType)return;const i=t.initiatorType?`resource.${t.initiatorType}`:"resource.other";if(r?.includes(i))return;const c={[et]:"auto.resource.browser.metrics"},u=Ir(n);u.protocol&&(c["url.scheme"]=u.protocol.split(":").pop()),u.host&&(c["server.address"]=u.host),c["url.same_origin"]=n.includes(Rr.location.origin),function(e,t){[["responseStatus","http.response.status_code"],["transferSize","http.response_transfer_size"],["encodedBodySize","http.response_content_length"],["decodedBodySize","http.decoded_response_content_length"],["renderBlockingStatus","resource.render_blocking_status"],["deliveryType","http.response_delivery_type"]].forEach(([n,a])=>{const o=e[n];null!=o&&("number"==typeof o&&o<2147483647||"string"==typeof o)&&(t[a]=o)})}(t,c);const l={...c,...Gy(t)},p=s+a;By(e,p,p+o,{name:n.replace(Rr.location.origin,""),op:i,attributes:l})}(e,n,n.name,a,s,o,t.ignoreResourceSpans)}}),ib=Math.max(s.length-1,0),function(e){const t=Rr.navigator;if(!t)return;const n=t.connection;n&&(n.effectiveType&&e.setAttribute("effectiveConnectionType",n.effectiveType),n.type&&e.setAttribute("connectionType",n.type),Uy(n.rtt)&&(cb["connection.rtt"]={value:n.rtt,unit:"millisecond"})),Uy(t.deviceMemory)&&e.setAttribute("deviceMemory",`${t.deviceMemory} GB`),Uy(t.hardwareConcurrency)&&e.setAttribute("hardwareConcurrency",String(t.hardwareConcurrency))}(e),"pageload"===r&&(function(e){const t=Em(!1);if(!t)return;const{responseStart:n,requestStart:a}=t;a<=n&&(e["ttfb.requestTime"]={value:n-a,unit:"millisecond"})}(cb),t.recordClsOnPageloadSpan||delete cb.cls,t.recordLcpOnPageloadSpan||delete cb.lcp,Object.entries(cb).forEach(([e,t])=>{Hu(e,t.value,t.unit)}),e.setAttribute("performance.timeOrigin",o),e.setAttribute("performance.activationStart",Tm()),function(e,t){sb&&t.recordLcpOnPageloadSpan&&(sb.element&&e.setAttribute("lcp.element",M(sb.element)),sb.id&&e.setAttribute("lcp.id",sb.id),sb.url&&e.setAttribute("lcp.url",sb.url.trim().slice(0,200)),null!=sb.loadTime&&e.setAttribute("lcp.loadTime",sb.loadTime),null!=sb.renderTime&&e.setAttribute("lcp.renderTime",sb.renderTime),e.setAttribute("lcp.size",sb.size)),rb?.sources&&t.recordClsOnPageloadSpan&&rb.sources.forEach((t,n)=>e.setAttribute(`cls.source.${n+1}`,M(t.node)))}(e,t)),sb=void 0,rb=void 0,cb={}}(t,{recordClsOnPageloadSpan:!c,recordLcpOnPageloadSpan:!u,ignoreResourceSpans:v,ignorePerformanceApiSpans:j}),zb(e,void 0);const n=Le(),a=n.getPropagationContext();n.setPropagationContext({...a,traceId:g.spanContext().traceId,sampled:Wt(g),dsc:sn(t)}),s&&(L=void 0)},trimIdleSpanEndTimestamp:!C});function f(){n&&["interactive","complete"].includes(n.readyState)&&e.emit("idleSpanEnableAutoFinish",g)}s&&C&&(L=g),zb(e,g),s&&!C&&n&&(n.addEventListener("readystatechange",()=>{f()}),f())}return{name:"BrowserTracing",setup(e){if(Hd(),D=ub({recordClsStandaloneSpans:c||!1,recordLcpStandaloneSpans:u||!1,client:e}),a&&function(){if(Hy()&&_e()){const e=hh(gb);return()=>{e()}}}(),o&&Hy()&&_e()&&gh("element",fb),r&&l.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?new PerformanceObserver(e=>{const t=Zt();if(t)for(const n of e.getEntries()){if(!n.scripts[0])continue;const e=Wy(_e()+n.startTime),{start_timestamp:a,op:o}=Ht(t);if("navigation"===o&&a&&e<a)continue;const s=Wy(n.duration),r={[et]:"auto.ui.browser.metrics"},i=n.scripts[0],{invoker:c,invokerType:u,sourceURL:l,sourceFunctionName:p,sourceCharPosition:d}=i;r["browser.script.invoker"]=c,r["browser.script.invoker_type"]=u,l&&(r["code.filepath"]=l),p&&(r["code.function"]=p),-1!==d&&(r["browser.script.source_char_position"]=d),By(t,e,e+s,{name:"Main UI thread blocked",op:"ui.long-animation-frame",attributes:r})}}).observe({type:"long-animation-frame",buffered:!0}):s&&gh("longtask",({entries:e})=>{const t=Zt();if(!t)return;const{op:n,start_timestamp:a}=Ht(t);for(const o of e){const e=Wy(_e()+o.startTime),s=Wy(o.duration);"navigation"===n&&a&&e<a||By(t,e,e+s,{name:"Main UI thread blocked",op:"ui.long-task",attributes:{[et]:"auto.ui.browser.metrics"}})}}),i&&gh("event",({entries:e})=>{const t=Zt();if(t)for(const n of e)if("click"===n.name){const e=Wy(_e()+n.startTime),a=Wy(n.duration),o={name:M(n.target),op:`ui.interaction.${n.name}`,startTime:e,attributes:{[et]:"auto.ui.browser.metrics"}},s=O(n.target);s&&(o.attributes["ui.component_name"]=s),By(t,e,e+a,o)}}),z&&n){const e=()=>{P=ve()};addEventListener("click",e,{capture:!0}),addEventListener("keydown",e,{capture:!0,passive:!0})}function t(){const t=xb(e);t&&!Ht(t).timestamp&&(Wr&&U.log(`[Tracing] Finishing current active span with op: ${Ht(t).op}`),t.setAttribute(tt,"cancelled"),t.end())}e.on("startNavigationSpan",(n,a)=>{if(Be()!==e)return;if(a?.isRedirect)return Wr&&U.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),void N(e,{op:"navigation.redirect",...n},!1);P=void 0,t(),Ne().setPropagationContext({traceId:xe(),sampleRand:Math.random(),propagationSpanId:vt()?void 0:ze()});const o=Le();o.setPropagationContext({traceId:xe(),sampleRand:Math.random(),propagationSpanId:vt()?void 0:ze()}),o.setSDKProcessingMetadata({normalizedRequest:void 0}),N(e,{op:"navigation",...n,parentSpan:null,forceTransaction:!0})}),e.on("startPageLoadSpan",(n,a={})=>{if(Be()!==e)return;t();const o=At(a.sentryTrace||jb("sentry-trace"),a.baggage||jb("baggage")),s=Le();s.setPropagationContext(o),vt()||(s.getPropagationContext().propagationSpanId=ze()),s.setSDKProcessingMetadata({normalizedRequest:or()}),N(e,{op:"pageload",...n})}),e.on("endPageloadSpan",()=>{C&&L&&(L.setAttribute(tt,"reportPageLoaded"),L.end())})},afterAllSetup(e){let n=A();if("off"!==E&&function(e,{linkPreviousTrace:t,consistentTraceSampling:n}){const a="session-storage"===t;let o=a?function(){try{const e=er.sessionStorage?.getItem(kb);return JSON.parse(e)}catch{return}}():void 0;e.on("spanStart",e=>{if(Xt(e)!==e)return;const t=Le().getPropagationContext();o=function(e,t,n){const a=Ht(t),o={spanContext:t.spanContext(),startTimestamp:a.start_timestamp,sampleRate:function(){try{return Number(n.dsc?.sample_rate)??Number(a.data?.[Xe])}catch{return 0}}(),sampleRand:n.sampleRand};if(!e)return o;const s=e.spanContext;return s.traceId===a.trace_id?e:(Date.now()/1e3-e.startTimestamp<=3600&&(Wr&&U.log(`Adding previous_trace ${s} link to span ${{op:a.op,...t.spanContext()}}`),t.addLink({context:s,attributes:{[it]:"previous_trace"}}),t.setAttribute("sentry.previous_trace",`${s.traceId}-${s.spanId}-${yb(s)?1:0}`)),o)}(o,e,t),a&&function(e){try{er.sessionStorage.setItem(kb,JSON.stringify(e))}catch(e){Wr&&U.warn("Could not store previous trace in sessionStorage",e)}}(o)});let s=!0;n&&e.on("beforeSampling",e=>{if(!o)return;const t=Le(),n=t.getPropagationContext();s&&n.parentSpanId?s=!1:(t.setPropagationContext({...n,dsc:{...n.dsc,sample_rate:String(o.sampleRate),sampled:String(yb(o.spanContext))},sampleRand:o.sampleRand}),e.parentSampled=yb(o.spanContext),e.parentSampleRate=o.sampleRate,e.spanAttributes={...e.spanAttributes,[Ze]:o.sampleRate})})}(e,{linkPreviousTrace:E,consistentTraceSampling:T}),er.location){if(S){const t=_e();vb(e,{name:er.location.pathname,startTime:t?t/1e3:void 0,attributes:{[Ke]:"url",[et]:"auto.pageload.browser"}})}x&&qr(({to:t,from:a})=>{if(void 0===a&&-1!==n?.indexOf(t))return void(n=void 0);n=void 0;const o=Tr(t),s=xb(e),r=s&&z&&function(e,t){const n=Ht(e),a=ye();return!(a-n.start_timestamp>Eb)&&!(t&&a-t<=Eb)}(s,P);_b(e,{name:o?.pathname||er.location.pathname,attributes:{[Ke]:"url",[et]:"auto.navigation.browser"}},{url:t,isRedirect:r})})}g&&(er.document?er.document.addEventListener("visibilitychange",()=>{const e=Zt();if(!e)return;const t=Xt(e);if(er.document.hidden&&t){const e="cancelled",{op:n,status:a}=Ht(t);Wr&&U.log(`[Tracing] Transaction: ${e} -> since tab moved to the background, op: ${n}`),a||t.setStatus({code:St,message:e}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):Wr&&U.warn("[Tracing] Could not set up background tab detection due to lack of global document")),i&&function(e,t,n,a,o){let s;er.document&&addEventListener("click",()=>{const r="ui.action.click",i=xb(e);if(i){const e=Ht(i).op;if(["navigation","pageload"].includes(e))return void(Wr&&U.warn(`[Tracing] Did not create ${r} span because a pageload or navigation span is in progress.`))}s&&(s.setAttribute(tt,"interactionInterrupted"),s.end(),s=void 0),o.name?s=ob({name:o.name,op:r,attributes:{[Ke]:o.source||"url"}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:a}):Wr&&U.warn(`[Tracing] Did not create ${r} transaction because _latestRouteName is missing.`)},{capture:!0})}(e,d,m,h,t),a&&function(){const e=Object.keys(hb);function t(e){const t=e.target;if(!t)return;const n=M(t),a=Math.round(e.timeStamp);if(mb.set(a,n),mb.size>50){const e=mb.keys().next().value;void 0!==e&&mb.delete(e)}}Wi()&&e.forEach(e=>{Rr.addEventListener(e,t,{capture:!0,passive:!0})});const n=({entries:e})=>{const t=Zt(),n=t&&Xt(t);e.forEach(e=>{if(!function(e){return"duration"in e}(e))return;const t=e.interactionId;if(null==t)return;if(db.has(t))return;const a=e.target?M(e.target):function(e){const t=Math.round(e.startTime);let n=mb.get(t);if(!n)for(let e=-5;e<=5;e++){const a=mb.get(t+e);if(a){n=a;break}}return n||"<unknown>"}(e);if(pb.length>10){const e=pb.shift();db.delete(e)}pb.push(t),db.set(t,{span:n,elementName:a})})};gh("event",n),gh("first-input",n)}(),tb(e,{traceFetch:f,traceXHR:k,trackFetchStreamPerformance:y,tracePropagationTargets:e.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:b,enableHTTPTimings:w,onRequestSpanStart:I,onRequestSpanEnd:R})}}};function vb(e,t,n){e.emit("startPageLoadSpan",t,n),Le().setTransactionName(t.name);const a=xb(e);return a&&e.emit("afterStartPageLoadSpan",a),a}function _b(e,t,n){const{url:a,isRedirect:o}=n||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:o}),e.emit("startNavigationSpan",t,{isRedirect:o});const s=Le();return s.setTransactionName(t.name),a&&!o&&s.setSDKProcessingMetadata({normalizedRequest:{...or(),url:a}}),xb(e)}function jb(e){const t=er.document,n=t?.querySelector(`meta[name=${e}]`);return n?.getAttribute("content")||void 0}const Sb="_sentry_idleSpan";function xb(e){return e[Sb]}function zb(e,t){q(e,Sb,t)}const Eb=1.5;function Tb(e=Be()){e?.emit("endPageloadSpan")}function Cb(e){const t=Zt();if(t===e)return;const n=Le();e.end=new Proxy(e.end,{apply:(e,a,o)=>(Te(n,t),Reflect.apply(e,a,o))}),Te(n,e)}const Ib=100,Mb=5e3,Rb=36e5;function Ab(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function Ob(e){return Ab(e.getAllKeys())}function Db(e){let t;function n(){return null==t&&(t=function(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const a=Ab(n);return e=>a.then(n=>e(n.transaction(t,"readwrite").objectStore(t)))}(e.dbName||"sentry-offline",e.storeName||"queue")),t}return{push:async t=>{try{const a=await Bo(t);await function(e,t,n){return e(e=>Ob(e).then(a=>{if(!(a.length>=n))return e.put(t,Math.max(...a,0)+1),Ab(e.transaction)}))}(n(),a,e.maxQueueSize||30)}catch{}},unshift:async t=>{try{const a=await Bo(t);await function(e,t,n){return e(e=>Ob(e).then(a=>{if(!(a.length>=n))return e.put(t,Math.min(...a,0)-1),Ab(e.transaction)}))}(n(),a,e.maxQueueSize||30)}catch{}},shift:async()=>{try{const e=await function(e){return e(e=>Ob(e).then(t=>{const n=t[0];if(null!=n)return Ab(e.get(n)).then(t=>(e.delete(n),Ab(e.transaction).then(()=>t)))}))}(n());if(e)return function(e){let t="string"==typeof e?Uo(e):e;function n(e){const n=t.subarray(0,e);return t=t.subarray(e+1),n}function a(){let e=t.indexOf(10);return e<0&&(e=t.length),JSON.parse(function(e){const t=d(l);return t.decodePolyfill?t.decodePolyfill(e):(new TextDecoder).decode(e)}(n(e)))}const o=a(),s=[];for(;t.length;){const e=a(),t="number"==typeof e.length?e.length:void 0;s.push([e,t?n(t):a()])}return[o,s]}(e)}catch{}}}}function Pb(e=$i){return function(e){return t=>{const n=e({...t,createStore:Db});return er.addEventListener("online",async e=>{await n.flush()}),n}}(function(e){function t(...e){h&&U.log("[Offline]:",...e)}return n=>{const a=e(n);if(!n.createStore)throw new Error("No `createStore` function was provided");const o=n.createStore(n);let s,r=Mb;function i(e){s&&clearTimeout(s),s=setTimeout(async()=>{s=void 0;const e=await o.shift();e&&(t("Attempting to send previously queued event"),e[0].sent_at=(new Date).toISOString(),u(e,!0).catch(e=>{t("Failed to retry sending",e)}))},e),"number"!=typeof s&&s.unref&&s.unref()}function c(){s||(i(r),r=Math.min(2*r,Rb))}async function u(e,s=!1){if(!s&&Fo(e,["replay_event","replay_recording"]))return await o.push(e),i(Ib),{};try{if(n.shouldSend&&!1===await n.shouldSend(e))throw new Error("Envelope not sent because `shouldSend` callback returned false");const t=await a.send(e);let o=Ib;if(t)if(t.headers?.["retry-after"])o=bs(t.headers["retry-after"]);else if(t.headers?.["x-sentry-rate-limits"])o=6e4;else if((t.statusCode||0)>=400)return t;return i(o),r=Mb,t}catch(a){if(await function(e,t,a){return!Fo(e,["client_report"])&&(!n.shouldStore||n.shouldStore(e,t,a))}(e,a,r))return s?await o.unshift(e):await o.push(e),c(),t("Error sending. Event queued.",a),{};throw a}}return n.flushAtStartup&&c(),{send:u,flush:e=>(void 0===e&&(r=Mb,i(Ib)),a.flush(e))}}}(e))}const Lb=1e6,Nb="window"in l&&l.window===l&&"undefined"==typeof importScripts,$b=String(0),Fb=Nb?"main":"worker",Ub=er.navigator;let Bb="",qb="",Hb="",Wb=Ub?.userAgent||"",Vb="";const Jb=Ub?.language||Ub?.languages?.[0]||"",Yb=Ub?.userAgentData;var Gb;function Kb(e,t,n,a){if("transaction"!==a.type)throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");if(null==n)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);const o=function(e){const t=e.contexts?.trace?.trace_id;return"string"==typeof t&&32!==t.length&&Wr&&U.log(`[Profiling] Invalid traceId: ${t} on profiled event`),"string"!=typeof t?"":t}(a),s=function(e){return!("thread_metadata"in e)}(c=n)?function(e){let t,n=0;const a={samples:[],stacks:[],frames:[],thread_metadata:{[$b]:{name:Fb}}},o=e.samples[0];if(!o)return a;const s=o.timestamp,r=_e(),i="number"==typeof performance.timeOrigin?performance.timeOrigin:r||0,c=i-(r||i);return e.samples.forEach((o,r)=>{if(void 0===o.stackId)return void 0===t&&(t=n,a.stacks[t]=[],n++),void(a.samples[r]={elapsed_since_start_ns:((o.timestamp+c-s)*Lb).toFixed(0),stack_id:t,thread_id:$b});let i=e.stacks[o.stackId];const u=[];for(;i;){u.push(i.frameId);const t=e.frames[i.frameId];t&&void 0===a.frames[i.frameId]&&(a.frames[i.frameId]={function:t.name,abs_path:"number"==typeof t.resourceId?e.resources[t.resourceId]:void 0,lineno:t.line,colno:t.column}),i=void 0===i.parentId?void 0:e.stacks[i.parentId]}const l={elapsed_since_start_ns:((o.timestamp+c-s)*Lb).toFixed(0),stack_id:n,thread_id:$b};a.stacks[n]=u,a.samples[r]=l,n++}),a}(c):c,r=t||("number"==typeof a.start_timestamp?1e3*a.start_timestamp:1e3*ve()),i="number"==typeof a.timestamp?1e3*a.timestamp:1e3*ve();var c;return{event_id:e,timestamp:new Date(r).toISOString(),platform:"javascript",version:"1",release:a.release||"",environment:a.environment||He,runtime:{name:"javascript",version:er.navigator.userAgent},os:{name:Bb,version:qb,build_number:Wb},device:{locale:Jb,model:Vb,manufacturer:Wb,architecture:Hb,is_emulator:!1},debug_meta:{images:Zb(n.resources)},profile:s,transactions:[{name:a.transaction||"",id:a.event_id||pe(),trace_id:o,active_thread_id:$b,relative_start_ns:"0",relative_end_ns:(1e6*(i-r)).toFixed(0)}]}}function Xb(e){return"pageload"===Ht(e).op}function Zb(e){const t=Be(),n=t?.getOptions(),a=n?.stackParser;return a?function(e,t){const n=hn(e);if(!n)return[];const a=[];for(const e of t)e&&n[e]&&a.push({type:"sourcemap",code_file:e,debug_id:n[e]});return a}(a,e):[]}function Qb(e){return"number"!=typeof e&&"boolean"!=typeof e||"number"==typeof e&&isNaN(e)?(Wr&&U.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1):!0===e||!1===e||!(e<0||e>1)||(Wr&&U.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${e}.`),!1)}"object"==typeof(Gb=Yb)&&null!==Gb&&"getHighEntropyValues"in Gb&&Yb.getHighEntropyValues(["architecture","model","platform","platformVersion","fullVersionList"]).then(e=>{if(Bb=e.platform||"",Hb=e.architecture||"",Vb=e.model||"",qb=e.platformVersion||"",e.fullVersionList?.length){const t=e.fullVersionList[e.fullVersionList.length-1];Wb=`${t.brand} ${t.version}`}}).catch(e=>{});let ew=!1;function tw(){const e=er.Profiler;if("function"!=typeof e)return void(Wr&&U.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object."));const t=Math.floor(3e3);try{return new e({sampleInterval:10,maxBufferSize:t})}catch(e){Wr&&(U.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."),U.log("[Profiling] Disabling profiling for current user session.")),ew=!0}}function nw(e){if(ew)return Wr&&U.log("[Profiling] Profiling has been disabled for the duration of the current user session."),!1;if(!e.isRecording())return Wr&&U.log("[Profiling] Discarding profile because root span was not sampled."),!1;const t=Be(),n=t?.getOptions();if(!n)return Wr&&U.log("[Profiling] Profiling disabled, no options found."),!1;const a=n.profilesSampleRate;return Qb(a)?a?!!(!0===a||Math.random()<a)||(Wr&&U.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(a)})`),!1):(Wr&&U.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"),!1):(Wr&&U.warn("[Profiling] Discarding profile because of invalid sample rate."),!1)}function aw(e){return void 0!==e.profilesSampleRate}function ow(e,t,n,a){return function(e){return e.samples.length<2?(Wr&&U.log("[Profiling] Discarding profile because it contains less than 2 samples"),!1):!!e.frames.length||(Wr&&U.log("[Profiling] Discarding profile because it contains no frames"),!1)}(n)?Kb(e,t,n,a):null}const sw=new Map;function rw(e){const t=sw.get(e);return t&&sw.delete(e),t}function iw(e){let t;Xb(e)&&(t=1e3*ve());const n=tw();if(!n)return;Wr&&U.log(`[Profiling] started profiling span: ${Ht(e).description}`);const a=pe();let o=null;async function s(){if(e&&n){if(!o)return n.stop().then(t=>{r&&(er.clearTimeout(r),r=void 0),Wr&&U.log(`[Profiling] stopped profiling of span: ${Ht(e).description}`),t?(o=t,function(e,t){if(sw.set(e,t),sw.size>30){const e=sw.keys().next().value;void 0!==e&&sw.delete(e)}}(a,t)):Wr&&U.log(`[Profiling] profiler returned null profile for: ${Ht(e).description}`,"this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started")}).catch(e=>{Wr&&U.log("[Profiling] error while stopping profiler:",e)});Wr&&U.log("[Profiling] profile for:",Ht(e).description,"already exists, returning early")}}Le().setContext("profile",{profile_id:a,start_timestamp:t});let r=er.setTimeout(()=>{Wr&&U.log("[Profiling] max profile duration elapsed, stopping profiling for:",Ht(e).description),s()},3e4);const i=e.end.bind(e);e.end=function(){return e?(s().then(()=>{i()},()=>{i()}),e):i()}}class cw{constructor(){this._client=void 0,this._profiler=void 0,this._chunkTimer=void 0,this._profilerId=void 0,this._isRunning=!1,this._sessionSampled=!1,this._lifecycleMode=void 0,this._activeRootSpanIds=new Set,this._rootSpanTimeouts=new Map}initialize(e){const t=e.getOptions().profileLifecycle,n=function(e){if(ew)return Wr&&U.log("[Profiling] Profiling has been disabled for the duration of the current user session as the JS Profiler could not be started."),!1;if("trace"!==e.profileLifecycle&&"manual"!==e.profileLifecycle)return Wr&&U.warn("[Profiling] Session not sampled. Invalid `profileLifecycle` option."),!1;const t=e.profileSessionSampleRate;return Qb(t)?t?Math.random()<=t:(Wr&&U.log("[Profiling] Discarding profile because profileSessionSampleRate is not defined or set to 0"),!1):(Wr&&U.warn("[Profiling] Discarding profile because of invalid profileSessionSampleRate."),!1)}(e.getOptions());Wr&&U.log(`[Profiling] Initializing profiler (lifecycle='${t}').`),n||Wr&&U.log("[Profiling] Session not sampled. Skipping lifecycle profiler initialization."),this._profilerId=pe(),this._client=e,this._sessionSampled=n,this._lifecycleMode=t,"trace"===t&&this._setupTraceLifecycleListeners(e)}start(){"trace"!==this._lifecycleMode?this._isRunning?Wr&&U.warn("[Profiling] Profile session is already running, `uiProfiler.start()` is a no-op."):this._sessionSampled?this._beginProfiling():Wr&&U.warn("[Profiling] Session is not sampled, `uiProfiler.start()` is a no-op."):Wr&&U.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.start()` are ignored in trace mode.')}stop(){"trace"!==this._lifecycleMode?this._isRunning?this._endProfiling():Wr&&U.warn("[Profiling] Profiler is not running, `uiProfiler.stop()` is a no-op."):Wr&&U.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.stop()` are ignored in trace mode.')}notifyRootSpanActive(e){if("trace"!==this._lifecycleMode||!this._sessionSampled)return;const t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);const n=this._activeRootSpanIds.size;1===n&&(Wr&&U.log("[Profiling] Detected already active root span during setup. Active root spans now:",n),this._beginProfiling())}_beginProfiling(){if(!this._isRunning){if(this._isRunning=!0,Wr&&U.log("[Profiling] Started profiling with profiler ID:",this._profilerId),$e().setContext("profile",{profiler_id:this._profilerId}),this._startProfilerInstance(),!this._profiler)return Wr&&U.log("[Profiling] Failed to start JS Profiler; stopping."),void this._resetProfilerInfo();this._startPeriodicChunking()}}_endProfiling(){this._isRunning&&(this._isRunning=!1,this._chunkTimer&&(clearTimeout(this._chunkTimer),this._chunkTimer=void 0),this._clearAllRootSpanTimeouts(),this._collectCurrentChunk().catch(e=>{Wr&&U.error("[Profiling] Failed to collect current profile chunk on `stop()`:",e)}),"manual"===this._lifecycleMode&&$e().setContext("profile",{}))}_setupTraceLifecycleListeners(e){e.on("spanStart",e=>{if(!this._sessionSampled)return void(Wr&&U.log("[Profiling] Session not sampled because of negative sampling decision."));if(e!==Xt(e))return;if(!e.isRecording())return void(Wr&&U.log("[Profiling] Discarding profile because root span was not sampled."));const t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);const n=this._activeRootSpanIds.size;1===n&&(Wr&&U.log(`[Profiling] Root span ${t} started. Profiling active while there are active root spans (count=${n}).`),this._beginProfiling())}),e.on("spanEnd",e=>{if(!this._sessionSampled)return;const t=e.spanContext().spanId;if(!t||!this._activeRootSpanIds.has(t))return;this._activeRootSpanIds.delete(t);const n=this._activeRootSpanIds.size;Wr&&U.log(`[Profiling] Root span with ID ${t} ended. Will continue profiling for as long as there are active root spans (currently: ${n}).`),0===n&&(this._collectCurrentChunk().catch(e=>{Wr&&U.error("[Profiling] Failed to collect current profile chunk on last `spanEnd`:",e)}),this._endProfiling())})}_resetProfilerInfo(){this._isRunning=!1,$e().setContext("profile",{})}_clearAllRootSpanTimeouts(){this._rootSpanTimeouts.forEach(e=>clearTimeout(e)),this._rootSpanTimeouts.clear()}_registerTraceRootSpan(e){this._activeRootSpanIds.add(e);const t=setTimeout(()=>this._onRootSpanTimeout(e),3e5);this._rootSpanTimeouts.set(e,t)}_startProfilerInstance(){if(!1===this._profiler?.stopped)return;const e=tw();e?this._profiler=e:Wr&&U.log("[Profiling] Failed to start JS Profiler.")}_startPeriodicChunking(){this._isRunning&&(this._chunkTimer=setTimeout(()=>{if(this._collectCurrentChunk().catch(e=>{Wr&&U.error("[Profiling] Failed to collect current profile chunk during periodic chunking:",e)}),this._isRunning){if(this._startProfilerInstance(),!this._profiler)return void this._resetProfilerInfo();this._startPeriodicChunking()}},6e4))}_onRootSpanTimeout(e){this._rootSpanTimeouts.has(e)&&(this._rootSpanTimeouts.delete(e),this._activeRootSpanIds.has(e)&&(Wr&&U.log(`[Profiling] Reached 5-minute timeout for root span ${e}. You likely started a manual root span that never called \`.end()\`.`),this._activeRootSpanIds.delete(e),0===this._activeRootSpanIds.size&&this._endProfiling()))}async _collectCurrentChunk(){const e=this._profiler;if(this._profiler=void 0,e)try{const t=function(e,t,n){if(null==e)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${e} instead.`);const a=function(e){const t=[];for(let n=0;n<e.frames.length;n++){const a=e.frames[n];a&&(t[n]={function:a.name,abs_path:"number"==typeof a.resourceId?e.resources[a.resourceId]:void 0,lineno:a.line,colno:a.column})}const n=[];for(let t=0;t<e.stacks.length;t++){const a=e.stacks[t];if(!a)continue;const o=[];let s=a;for(;s;)o.push(s.frameId),s=void 0===s.parentId?void 0:e.stacks[s.parentId];n[t]=o}const a=_e(),o="number"==typeof performance.timeOrigin?performance.timeOrigin:a||0,s=o-(a||o),r=[];for(let t=0;t<e.samples.length;t++){const n=e.samples[t];if(!n)continue;const a=(o+(n.timestamp-s))/1e3;r[t]={stack_id:n.stackId??0,thread_id:$b,timestamp:a}}return{frames:t,stacks:n,samples:r,thread_metadata:{[$b]:{name:Fb}}}}(e),o=t.getOptions(),s=t.getSdkMetadata?.()?.sdk;return{chunk_id:pe(),client_sdk:{name:s?.name??"sentry.javascript.browser",version:s?.version??"0.0.0"},profiler_id:n||pe(),platform:"javascript",version:"2",release:o.release??"",environment:o.environment??"production",debug_meta:{images:Zb(e.resources)},profile:a}}(await e.stop(),this._client,this._profilerId),n=function(e){try{if(!e||"object"!=typeof e)return{reason:"chunk is not an object"};const t=e=>"string"==typeof e&&/^[a-f0-9]{32}$/.test(e);if(!t(e.profiler_id))return{reason:"missing or invalid profiler_id"};if(!t(e.chunk_id))return{reason:"missing or invalid chunk_id"};if(!e.client_sdk)return{reason:"missing client_sdk metadata"};const n=e.profile;return n?Array.isArray(n.frames)&&n.frames.length?Array.isArray(n.stacks)&&n.stacks.length?Array.isArray(n.samples)&&n.samples.length?{valid:!0}:{reason:"profile has no samples"}:{reason:"profile has no stacks"}:{reason:"profile has no frames"}:{reason:"missing profile data"}}catch(e){return{reason:`unknown validation error: ${e}`}}}(t);if("reason"in n)return void(Wr&&U.log("[Profiling] Discarding invalid profile chunk (this is probably a bug in the SDK):",n.reason));this._sendProfileChunk(t),Wr&&U.log("[Profiling] Collected browser profile chunk.")}catch(e){Wr&&U.log("[Profiling] Error while stopping JS Profiler for chunk:",e)}}_sendProfileChunk(e){const t=this._client,n=Jo(t.getSdkMetadata?.()),a=t.getDsn(),o=t.getOptions().tunnel,s=Lo({event_id:pe(),sent_at:(new Date).toISOString(),...n&&{sdk:n},...!!o&&a&&{dsn:ft(a)}},[[{type:"profile_chunk"},e]]);t.sendEnvelope(s).then(null,e=>{Wr&&U.error("Error while sending profile chunk envelope:",e)})}}const uw=()=>({name:"BrowserProfiling",setup(e){const t=e.getOptions(),n=new cw;if(aw(t)||t.profileLifecycle||(t.profileLifecycle="manual"),aw(t)&&!t.profilesSampleRate)return void(Wr&&U.log("[Profiling] Profiling disabled, no profiling options found."));const a=Zt(),o=a&&Xt(a);if(aw(t)&&void 0!==t.profileSessionSampleRate&&Wr&&U.warn("[Profiling] Both legacy profiling (`profilesSampleRate`) and UI profiling settings are defined. `profileSessionSampleRate` has no effect when legacy profiling is enabled."),aw(t))o&&Xb(o)&&nw(o)&&iw(o),e.on("spanStart",e=>{e===Xt(e)&&nw(e)&&iw(e)}),e.on("beforeEnvelope",e=>{if(!sw.size)return;const t=function(e){const t=[];return $o(e,(e,n)=>{if("transaction"===n)for(let n=1;n<e.length;n++){const a=e[n];a?.contexts?.profile?.profile_id&&t.push(e[n])}}),t}(e);if(!t.length)return;const n=[];for(const e of t){const t=e?.contexts,a=t?.profile?.profile_id,o=t?.profile?.start_timestamp;if("string"!=typeof a){Wr&&U.log("[Profiling] cannot find profile for a span without a profile context");continue}if(!a){Wr&&U.log("[Profiling] cannot find profile for a span without a profile context");continue}t?.profile&&delete t.profile;const s=rw(a);if(!s){Wr&&U.log(`[Profiling] Could not retrieve profile for span: ${a}`);continue}const r=ow(a,o,s,e);r&&n.push(r)}!function(e,t){if(!t.length)return e;for(const n of t)e[1].push([{type:"profile"},n])}(e,n)});else{const a=t.profileLifecycle;if(e.on("startUIProfiler",()=>n.start()),e.on("stopUIProfiler",()=>n.stop()),"manual"===a)n.initialize(e);else if("trace"===a){if(!vt(t))return void(Wr&&U.warn("[Profiling] `profileLifecycle` is 'trace' but tracing is disabled. Set a `tracesSampleRate` or `tracesSampler` to enable span tracing."));n.initialize(e),o&&n.notifyRootSpanActive(o),er.setTimeout(()=>{const e=Zt(),t=e&&Xt(e);t&&n.notifyRootSpanActive(t)},0)}}},processEvent:e=>function(e){return e?.contexts?.profile&&e.contexts?(e.contexts.trace={...e.contexts?.trace??{},data:{...e.contexts?.trace?.data??{},"thread.id":$b,"thread.name":Fb}},e.spans?.forEach(e=>{e.data={...e.data||{},"thread.id":$b,"thread.name":Fb}}),e):e}(e)}),lw=(e={})=>{const t=e.sidecarUrl||"http://localhost:8969/stream";return{name:"SpotlightBrowser",setup:()=>{Wr&&U.log("Using Sidecar URL",t)},processEvent:e=>function(e){return Boolean("transaction"===e.type&&e.spans&&e.contexts?.trace&&"ui.action.click"===e.contexts.trace.op&&e.spans.some(({description:e})=>e?.includes("#sentry-spotlight")))}(e)?null:e,afterAllSetup:e=>{!function(e,t){const n=Pi("fetch");let a=0;e.on("beforeEnvelope",e=>{a>3?U.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests:",a):n(t,{method:"POST",body:Bo(e),headers:{"Content-Type":"application/x-sentry-envelope"},mode:"cors"}).then(e=>{e.status>=200&&e.status<400&&(a=0)},e=>{a++,U.error("Sentry SDK can't connect to Sidecar is it running? See: https://spotlightjs.com/sidecar/npx/",e)})})}(e,t)}}},pw=()=>({name:"LaunchDarkly",processEvent:(e,t,n)=>wp(e)});function dw(){return{name:"sentry-flag-auditor",type:"flag-used",synchronous:!0,method:(e,t,n)=>{vp(e,t.value),_p(e,t.value)}}}const mw=()=>({name:"OpenFeature",processEvent:(e,t,n)=>wp(e)});class hw{after(e,t){vp(t.flagKey,t.value),_p(t.flagKey,t.value)}error(e,t,n){vp(e.flagKey,e.defaultValue),_p(e.flagKey,e.defaultValue)}}const gw=({featureFlagClientClass:e})=>({name:"Unleash",setupOnce(){B(e.prototype,"isEnabled",fw)},processEvent:(e,t,n)=>wp(e)});function fw(e){return function(...t){const n=t[0],a=e.apply(this,t);return"string"==typeof n&&"boolean"==typeof a?(vp(n,a),_p(n,a)):Wr&&U.error(`[Feature Flags] UnleashClient.isEnabled does not match expected signature. arg0: ${n} (${typeof n}), result: ${a} (${typeof a})`),a}}function kw(e){return function(...t){const n=t[0],a=e.apply(this,t);return"string"==typeof n&&"boolean"==typeof a&&(vp(n,a),_p(n,a)),a}}const yw=({growthbookClass:e})=>(({growthbookClass:e})=>({name:"GrowthBook",setupOnce(){const t=e.prototype;"function"==typeof t.isOn&&B(t,"isOn",kw),"function"==typeof t.getFeatureValue&&B(t,"getFeatureValue",kw)},processEvent:(e,t,n)=>wp(e)}))({growthbookClass:e}),bw=({featureFlagClient:e})=>({name:"Statsig",setup(t){e.on("gate_evaluation",e=>{vp(e.gate.name,e.gate.value),_p(e.gate.name,e.gate.value)})},processEvent:(e,t,n)=>wp(e)});async function ww(){const e=Be();if(!e)return"no-client-active";if(!e.getDsn())return"no-dsn-configured";try{await tl(()=>fetch("https://o447951.ingest.sentry.io/api/4509632503087104/envelope/?sentry_version=7&sentry_key=c1dfb07d783ad5325c245c1fd3725390&sentry_client=sentry.javascript.browser%2F1.33.7",{body:"{}",method:"POST",mode:"cors",credentials:"omit"}))}catch{return"sentry-unreachable"}}const vw=({worker:e})=>({name:"WebWorker",setupOnce:()=>{(Array.isArray(e)?e:[e]).forEach(e=>_w(e))},addWorker:e=>_w(e)});function _w(e){e.addEventListener("message",e=>{(function(e){if(!j(e)||!0!==e._sentryMessage)return!1;const t="_sentryDebugIds"in e,n="_sentryWorkerError"in e;return!(!t&&!n)&&(!(t&&!j(e._sentryDebugIds)&&void 0!==e._sentryDebugIds)&&!(n&&!j(e._sentryWorkerError)))})(e.data)&&(e.stopImmediatePropagation(),e.data._sentryDebugIds&&(Wr&&U.log("Sentry debugId web worker message received",e.data),er._sentryDebugIds={...e.data._sentryDebugIds,...er._sentryDebugIds}),e.data._sentryWorkerError&&(Wr&&U.log("Sentry worker rejection message received",e.data._sentryWorkerError),function(e){const t=Be();if(!t)return;const n=t.getOptions().stackParser,a=t.getOptions().attachStacktrace,o=e.reason,s=_(o)?ii(o):Xs(n,o,void 0,a,!0);s.level="error",e.filename&&(s.contexts={...s.contexts,worker:{filename:e.filename}}),_n(s,{originalException:o,mechanism:{handled:!1,type:"auto.browser.web_worker.onunhandledrejection"}}),Wr&&U.log("Captured worker unhandled rejection",o)}(e.data._sentryWorkerError)))})}function jw({self:e}){e.postMessage({_sentryMessage:!0,_sentryDebugIds:e._sentryDebugIds??void 0}),e.addEventListener("unhandledrejection",t=>{const n={reason:ri(t),filename:e.location?.href};e.postMessage({_sentryMessage:!0,_sentryWorkerError:n}),Wr&&U.log("[Sentry Worker] Forwarding unhandled rejection to parent",n)}),Wr&&U.log("[Sentry Worker] Registered worker with unhandled rejection handling")}const Sw=chrome.runtime.getManifest(),xw={extension:`${chrome.runtime.id}-${Sw.version}`,"extension.id":chrome.runtime.id,"extension.version":Sw.version,"extension.name":Sw.name},zw=o,Ew=function(e,t,n){return{id:e,handlers:n,isMessageForThisServer:t=>"object"==typeof t&&null!==t&&"serverId"in t&&t.serverId===e&&"handlerId"in t&&"string"==typeof t.handlerId,handleMessage(t,a,o){const s=n[t.handlerId];if(!s)throw new Error(`Unhandled ${e} message type ${t.handlerId.toString()}`);s("payload"in t?t.payload:void 0,a).then(e=>{o({success:!0,response:e})}).catch(e=>{(e=>{zw.captureException(e)})(e),console.error("Uncaught error in async message handler",t,e);const n=function(e){return e instanceof Error?e.message:"string"==typeof e?e:"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message?e.message:`Unknown error: ${String(e)}`}(e);o({success:!1,errorMessage:n})})}}}("DIRECTO_CORE_BACKGROUND",0,{getSessionId:async()=>await ga(),sendConversionEvent:async(e,t)=>{await Zn().post("/v2/conversion-details",{body:Bn.B64Json(e)})},sendConversionHTMLEvent:async(e,t)=>{await Zn().post("/v2/conversion-details-html",{body:Bn.Json(e)})},getCrossSellWasChecked:async({crossSellId:e},t)=>{const n=t.tab?.id;return void 0!==n&&ya(va,ja({crossSellId:e,tabId:n}),{dropIfPresent:!0,area:_a})},setCrossSellWasChecked:async({crossSellId:e,checked:t},n)=>{const a=n.tab?.id;if(void 0===a)return!1;const o=ja({crossSellId:e,tabId:a});return t?ka(va,o,{area:_a}):function(e,t,n={}){const{area:a="local"}=n,o=fa(a);o.get(e,n=>{const a=n[e]||[],s=new Set(a);s.has(t)&&(s.delete(t),o.set({[e]:Array.from(s.values())}))})}(va,o,{area:_a}),!0},openKayakCrossSellTab:async(e,t)=>{const{checkin:n,checkout:a}=e,o=ca.unsafe_fromRaw(n),s=ca.unsafe_fromRaw(a);let r;try{const t=await ea().get("/guess-kayak-place-id",{params:{searchTerm:e.destination,language:to()},parser:new Wn});r=no(e.trackingLabel,e.partnerKey,{destination:{name:t.fullName,placeId:t.placeId},checkin:o,checkout:s,adults:e.adults,children:e.children})}catch(t){r=no(e.trackingLabel,e.partnerKey,{destination:{name:e.destination},checkin:o,checkout:s,adults:e.adults,children:e.children})}const i=t.tab?t.tab.index+1:void 0,c=await chrome.tabs.create({url:r,active:!1,index:i});await Xa({sessionId:await ga(),sourceUrl:e.sourceUrl,targetUrl:r,cta:"CHECKBOX_CROSS_SELL",sourceId:null,sourceTabId:t.tab?.id??null,targetTabId:c.id??null},{checkin:o.toDashYYYYMMDD(),checkout:s.toDashYYYYMMDD(),adults:e.adults.toString(),currency:e.currency,children:e.children.toString()})},openActivitiesCrossSellTab:async(e,t)=>{const{provider:n,destination:a,checkin:o,checkout:s,adults:r,currency:i,children:c,sourceId:u}=e,l=function(e,t){switch(e){case"viator":return(e=>{const t=new URL("/searchResults/all","https://www.viator.com");return t.searchParams.append("text",e),t.searchParams.append("pid","P00253809"),t.searchParams.append("mcid","42383"),t.searchParams.append("medium","link"),t.toString()})(t);case"civitatis":return(e=>{const t=new URL("/es/buscar","https://www.civitatis.com");return t.searchParams.append("q",e),t.searchParams.append("aid","110241"),t.toString()})(t);default:$n(e)}}(n,a),p=t.tab?t.tab.index+1:void 0,d=await chrome.tabs.create({url:l,active:!1,index:p});await Xa({sessionId:await ga(),sourceUrl:e.sourceUrl,targetUrl:l,cta:"CHECKBOX_CROSS_SELL",sourceId:u,sourceTabId:t.tab?.id??null,targetTabId:d.id??null},{checkin:o?ca.fromRaw(o)?.toDashYYYYMMDD()??null:null,checkout:s?ca.fromRaw(s)?.toDashYYYYMMDD()??null:null,currency:i,adults:r.toString(),children:c.toString()})},getConfig:async()=>{if(!sa){const e=await chrome.storage[oa].get(aa);sa=e[aa]||null}if(!sa)throw new Error("Config has not been set");return sa},openOutclickTab:async(e,t)=>{const n=await eo()||to(),a=e.useRedirectEngine?function(e,t,n){const{coupon:a,discount:o}=n,s={url:e,...null!==a?{coupon:a}:{},...null!==o?{discount:o}:{}};return`https://engine.getdirecto.com/${t}/${btoa(encodeURIComponent(JSON.stringify(s)))}`}(e.targetUrl,n,e.redirectEngineParams??{coupon:null,discount:null}):e.targetUrl,o=t.tab?t.tab.index+1:void 0,s=(await chrome.tabs.create({url:a,active:!0,index:o})).id??null;s&&async function(e,t){const n=Aa(Ra(t).hostname);await chrome.storage.session.set({[Wa(e)]:{outclicked:n,additional:null,sinceMsecs:Date.now()}})}(s,e.targetUrl),await Xa({sessionId:await ga(),sourceUrl:e.sourceUrl,targetUrl:e.targetUrl,cta:e.cta,sourceId:e.sourceId,sourceTabId:t.tab?.id??null,targetTabId:s},e.stayParams)},maybeOpenTempTab:async(e,t)=>{const{url:n,closeDelay:a=ao}=e,o=t.tab?t.tab.index+1:void 0,s=Oa(new URL(n)),r=await async function(e){if(await ya(oo,e,{area:so}))return!0;var t;return await(t=e,ya(qa,Aa(t)))}(s);if(r)return;const i=await chrome.tabs.create({url:n,index:o,active:!1,pinned:!0});ka(oo,s,{area:so}),setTimeout(()=>{void 0!==i.id&&chrome.tabs.remove(i.id)},a)},getAlternativeOffersByCompoundIds:async(e,t)=>{try{const t=await async function(e){return ea().get("/v2/offers-by-hotel-id",{params:e,parser:new Wn})}(e);return{...t,offers:t.offers.map(t=>({...t,source_id:t.source_id.listingId,stayParams:{checkin:e.checkin,checkout:e.checkout,adults:e.adults.toString(),children:e.children?.toString()??null,currency:e.currency??null}}))}}catch(e){return console.error("Error fetching alternative offers by hotel ids",e),{offers:[]}}},storeCachedDisplayPrices:async(e,t)=>{ba(io,Da(e.source_id,e.platform),e,{area:ro})},getCachedDisplayPrices:async(e,t)=>await wa(io,Da(e.source_id,e.platform),{area:ro})??null,fetchDirectoInfo:async(e,t)=>{try{const{ids:t,platform:n,...a}=e,o=a.checkin&&a.checkout?a:{checkin:null,checkout:null,adults:null,children:null,currency:null};return(await async function(e){return Kn.get().get("/listingids",{params:e,parser:new Wn})}({id:t,platform:n,...o})).map(e=>({...e,stayParams:o}))}catch(e){return console.error("Error fetching Directo info for listing IDs:",e),[]}},storeCachedDirectoInfo:async(e,t)=>{ba(uo,Da(e.source_id,e.platform),e,{area:co})},getCachedDirectoInfo:async(e,t)=>await wa(uo,Da(e.source_id,e.platform),{area:co})??null,getGrowthbookFeature:async(e,t)=>await wa(lo,e,{area:po}),setGrowthbookFeature:async(e,t)=>{ba(lo,e.key,e,{area:po})},storeCachedListingPrice:async(e,t)=>{ba(ho,Da(e.source_id,e.platform),e,{area:mo})},getCachedListingPrice:async(e,t)=>await wa(ho,Da(e.source_id,e.platform),{area:mo})??null});function Tw(e){return Ew.isMessageForThisServer(e)}Ui(function(e){const t=chrome.runtime.id.replace(/[^a-z0-9]/gi,"-");return{debug:!1,dsn:"https://7828ac544c6e096e4c0e9cc2cd02e1a8@o4510509937328128.ingest.de.sentry.io/4510510038843472",transport:$i,stackParser:Ri,integrations:e.integrations,sendDefaultPii:!1,enableLogs:!1,enableMetrics:!1,environment:"production",release:"0.1.0",dist:`${t}-${Sw.version}`}}({integrations:Fi()})),zn({...xw,scope:"background"});class Cw{#e;ready;constructor(e){this.#e=e,this.#t(),this.ready=this.#n()}async#n(){await this.#a(),this.#o(this.#e)}#o(e){ra(e);const t={partnerKey:e.partnerKey,appVersion:"adunit-0.1.0"};Kn.initialize(t),Xn.initialize(t),Qn.initialize(t),ta.initialize(t),na.initialize(t)}#t(){chrome.runtime.onMessage.addListener((e,t,n)=>{if(Tw(e))return this.ready.then(()=>{Ew.handleMessage(e,t,n)}).catch(e=>{console.error("Error handling core message",e),function(e){return e instanceof r||e instanceof i&&401===e.status}(e)||wn(e),n({success:!1,errorMessage:e.message})}),!0})}async#a(){const e=await da();Tn({id:e.id}),await async function(e,t){$a=e,Ua=t,await chrome.storage[Na].set({[Pa]:e,[La]:t})}(e.id,e.email)}}const Iw=new class{#s=null;initialize(e){return this.#s||(this.#s=new Cw(e)),this.#s.ready}};function Mw(e){if(!e)throw new Error("partnerKey is required");return function(e){return zn({partnerKey:e.partnerKey}),Iw.initialize(e)}({partnerKey:e})}console.log("Directo AdUnit Background Service - Version: adunit-0.1.0"),module.exports=t})();
|
|
1
|
+
(()=>{"use strict";var a={d:(o,s)=>{for(var e in s)a.o(s,e)&&!a.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:s[e]})},o:(a,o)=>Object.prototype.hasOwnProperty.call(a,o),r:a=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})}},o={};function s(a){throw new Error(`Non-never value at runtime: ${a}`)}function e(a,o,e,i){void 0===e?a.searchParams[i](o,"undefined"):null===e?a.searchParams[i](o,"null"):"boolean"==typeof e?a.searchParams[i](o,e?"true":"false"):"number"==typeof e?a.searchParams[i](o,e.toString(10)):"string"==typeof e?a.searchParams[i](o,e):"object"==typeof e?a.searchParams[i](o,JSON.stringify(e)):s(e)}a.r(o),a.d(o,{initializeAdUnit:()=>Ya,isAdUnitMessage:()=>Pa});class i extends Error{source;constructor(a,o){super(a),this.name="ApiError",this.source=o}}class n extends i{constructor(a){super(`Fetch error: ${a.message}`,a)}}class t extends i{status;statusText;response;constructor(a){const{status:o,statusText:s}=a;super(`Status error (${o}): ${s}`),this.status=o,this.statusText=s,this.response=a}}class r extends i{response;constructor(a,o){const[s,e]="string"==typeof o?[o,void 0]:[o.message,o];super(`Response body error: ${s}`,e),this.response=a}}async function m(a,o){try{return await fetch(a,o)}catch(a){if(a instanceof TypeError)throw new n(a);throw a}}class c{body;constructor(a){this.body=a}static Json(a){return new c({type:"json",json:a})}static B64Json(a){return new c({type:"b64json",json:a})}static String(a){return new c({type:"string",string:a})}getContentType(){switch(this.body.type){case"json":return"application/json";case"b64json":case"string":return"text/plain";default:s(this.body)}}getSerialized(){switch(this.body.type){case"json":return JSON.stringify(this.body.json);case"b64json":return a=JSON.stringify(this.body.json),function(a){const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let s="",e=0;for(;e+2<a.length;e+=3){const i=a[e]<<16|a[e+1]<<8|a[e+2];s+=o[i>>>18&63]+o[i>>>12&63]+o[i>>>6&63]+o[63&i]}if(e<a.length){const i=a[e]<<16|(e+1<a.length?a[e+1]:0)<<8;s+=o[i>>>18&63]+o[i>>>12&63]+(e+1<a.length?o[i>>>6&63]:"=")+"="}return s}((new TextEncoder).encode(a));case"string":return this.body.string;default:s(this.body)}var a}}function p(a){return new Promise(o=>{setTimeout(o,a)})}function u(a,{backoffMultiplier:o=1,retryAfter:s=null}={}){if(s){const a=function(a){const o=function(a){const o=function(a){const o=a.trim();return/^[+-]?\d+$/.test(o)?parseInt(o,10):null}(a);return null===o||o<0?null:o}(a);if(null!==o)return 1e3*o;const s=Date.parse(a);return isNaN(s)?null:s-Date.now()}(s);if(null!==a)return Math.max(Math.min(a,1e4),500)}return Math.min(500*Math.pow(2,a),1e4)*o*(1+.1*(2*Math.random()-1))}class l{name="JsonBodyParser";async parse(a){try{return a.json()}catch(o){throw new r(a,o instanceof Error?o:"Failed to parse JSON")}}checkContentType(a){return a?.includes("application/json")??!1}}class k{name="VoidBodyParser";async parse(a){}checkContentType(a){return!0}}async function g(a,o,s,e,i){if(a.status>=200&&a.status<300){const{parser:s,ignoreContentTypeHeader:e=!1}=o??{},i=a.headers.get("Content-Type");if(!e&&!s.checkContentType(i))throw new r(a,`Did not expect Content-Type "${i}" for parser ${s.name}`);return o.parser.parse(a)}if(s>=5)throw new t(a);if(401===a.status&&i)return i(s+1);if(429===a.status||503===a.status){const o=u(s+2,{backoffMultiplier:2,retryAfter:a.headers.get("Retry-After")});return await p(o),e(s+3)}if(a.status>=400&&a.status<=499)throw new t(a);{const a=u(s);return await p(a),e(s+1)}}class d{rootUrl;appVersion;truesignEndpoint;tsToken=null;injectInto;partnerKey;constructor(a,o){this.truesignEndpoint=o?.truesignEndpoint,this.rootUrl=a,this.injectInto=o.injectInto??"query",this.appVersion=o.appVersion,this.partnerKey=o.partnerKey}async createTSToken(){try{const a={signal:AbortSignal.timeout(1e3)},o=await fetch(`https://edge.truesign.ai/v2/${this.truesignEndpoint}`,{...a}),s=await o.json();return this.tsToken=s.token,this.tsToken||"no-token"}catch(a){return console.error("Unable to request authentication token",a),this.tsToken="unauthenticated",this.tsToken}}async getTsToken(){return this.tsToken?this.tsToken:await this.createTSToken()}buildUrl(a){return new URL(`${this.rootUrl}${a}`)}async applyQueryParams(a,o){return function(a,o){const s=new URL(a);for(const[a,i]of Object.entries(o))if(Array.isArray(i)){s.searchParams.delete(a);for(const o of i)e(s,a,o,"append")}else e(s,a,i,"set");return s}(a,{...o,..."query"===this.injectInto?{...this.truesignEndpoint?{tsToken:await this.getTsToken()}:{},...this.partnerKey?{partnerKey:this.partnerKey}:{},appVersion:this.appVersion}:{}})}async applyHeaders(a){const o=new Headers(a);return"headers"===this.injectInto&&(this.truesignEndpoint&&o.set("X-TS-Token",await this.getTsToken()),this.partnerKey&&o.set("X-Partner-Key",this.partnerKey),o.set("X-App-Version",this.appVersion)),o}async get(a,{params:o={},request:s={},parser:e=new l,ignoreContentTypeHeader:i}={}){const n=this.buildUrl(a),t=await this.applyQueryParams(n,o),r=await this.applyHeaders(s?.headers);return this._get(t,0,{...s,headers:r},{parser:e,ignoreContentTypeHeader:i})}async _get(a,o,s,e){try{return g(await m(a,{...s,body:void 0,method:"GET"}),e,o,o=>this._get(a,o,s,e),this.truesignEndpoint?async o=>{await this.createTSToken();const i=await this.applyQueryParams(a),n=await this.applyHeaders(s.headers);return this._get(i,o,{...s,headers:n},e)}:null)}catch(o){throw console.error(`Error on get ${a.origin}${a.pathname}`,o),o}}async post(a,{params:o={},body:s=null,request:e={},parser:i=new k,ignoreContentTypeHeader:n}={}){const t=this.buildUrl(a),r=await this.applyQueryParams(t,o),m=await this.applyHeaders(e?.headers);s&&!m.has("Content-Type")&&m.set("Content-Type",s.getContentType());const c=s?s.getSerialized():null;return this._post(r,c,0,{...e,headers:m},{parser:i,ignoreContentTypeHeader:n})}async _post(a,o,s,e,i){try{return g(await m(a,{...e,body:o,method:"POST"}),i,s,s=>this._post(a,o,s,e,i),this.truesignEndpoint?async s=>{await this.createTSToken();const n=await this.applyQueryParams(a),t=await this.applyHeaders(e.headers);return this._post(n,o,s,{...e,headers:t},i)}:null)}catch(o){throw console.error(`Error on post ${a.origin}${a.pathname}`,o),o}}}class h{apiService=null;rootUrl;options;constructor(a,o){this.rootUrl=a,this.options=o,this.apiService=null}initialize(a){if(this.apiService)throw new Error("APIService already initialized");this.apiService=new d(this.rootUrl,{...this.options,...a})}get(){if(!this.apiService)throw new Error("APIService not initialized");return this.apiService}}const j=new h("https://api.getdirecto.com",{truesignEndpoint:"1558123949",injectInto:"headers"});j.get.bind(j);const w=new h("https://events.getdirecto.com",{truesignEndpoint:"80298941"}),b=w.get.bind(w),y=new h("https://vio-wrapper-api-cd-6981968610.europe-west4.run.app",{truesignEndpoint:"1678801807",injectInto:"headers"}),f=y.get.bind(y),v=new h("https://rateshops.getdirecto.com",{truesignEndpoint:"1010119886",injectInto:"headers"});v.get.bind(v);const z=new h("https://htmlql-6981968610.europe-west4.run.app",{truesignEndpoint:"465050282"});z.get.bind(z);const x="DIRECTO_CORE_BACKGROUND_CONFIG",I="local";let T=null;const S=a=>{T=a,chrome.storage[I].set({[x]:a})};function D(a,o=2){const s="0".repeat(o)+a;return s.slice(s.length-o,s.length)}class _{year;month;day;constructor(a,o,s){this.year=a,this.month=o,this.day=s}static unsafe_new(a,o,s){if(isNaN(a)||isNaN(o)||isNaN(s))throw new Error(`Invalid date: ${a}-${o}-${s}`);const e=new _(a,o,s),i=e.unsafe_toDate();if(isNaN(i.getTime())||i.getFullYear()!==a||i.getMonth()+1!==o||i.getDate()!==s)throw new Error(`Invalid date: ${a}-${o}-${s}`);return e}static new(a,o,s){try{return _.unsafe_new(a,o,s)}catch{return null}}static today(){return _.unsafe_fromDate(new Date)}static unsafe_fromRaw(a){return _.unsafe_new(a.year,a.month,a.day)}static fromRaw(a){return _.new(a.year,a.month,a.day)}static unsafe_fromDate(a){if(isNaN(a.getTime()))throw new Error("Invalid Date object");return _.unsafe_new(a.getFullYear(),a.getMonth()+1,a.getDate())}static fromDate(a){try{return _.unsafe_fromDate(a)}catch{return null}}static tryFromSlashDDMMYY(a){const o=a.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yy>\d{2})$/);if(!o)return null;const{dd:s,mm:e,yy:i}=o.groups;return _.new(2e3+parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromSlashDMY(a){const o=a.match(/^(?<d>\d{1,2})\/(?<m>\d{1,2})\/(?<y>\d{1,2})$/);if(!o)return null;const{d:s,m:e,y:i}=o.groups;return _.new(2e3+parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromDashYYYYMMDD(a){const o=a.match(/^(?<yyyy>\d{4})-(?<mm>\d{2})-(?<dd>\d{2})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return _.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}static tryFromDashDDMMYYYY(a){const o=a.match(/^(?<dd>\d{2})-(?<mm>\d{2})-(?<yyyy>\d{4})$/);if(!o)return null;const{dd:s,mm:e,yyyy:i}=o.groups;return _.new(parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromSlashDDMMYYYY(a){const o=a.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yyyy>\d{4})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return _.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}static tryFromSlashMMDDYYYY(a){const o=a.match(/^(?<mm>\d{2})\/(?<dd>\d{2})\/(?<yyyy>\d{4})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return _.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}toDashYYYYMMDD(){return`${D(this.year,4)}-${D(this.month)}-${D(this.day)}`}unsafe_toDate(){return function(a,o,s){const e=new Date;return e.setFullYear(a,o,s),e.setHours(0,0,0,0),e}(this.year,this.month-1,this.day)}}const q="userUUID",C="local";async function U(){let{[q]:a}=await chrome.storage[C].get(q);return a||(a=crypto.randomUUID(),await chrome.storage[C].set({[q]:a})),a}async function E(){if(void 0!==chrome.identity?.getProfileUserInfo){const a=await chrome.identity.getProfileUserInfo({accountStatus:chrome.identity.AccountStatus.ANY});return{id:a.id||await U(),email:a.email}}return{id:await U(),email:""}}const A="directoSessionInfo",O="session";async function M(){const{[A]:a}=await chrome.storage[O].get(A),o=Date.now();if(a?.sessionId&&a.lastTimestamp&&o-a.lastTimestamp<144e5)return chrome.storage[O].set({[A]:{...a,lastTimestamp:o}}),a.sessionId;const s=`${(await E()).id}-${e=new Date(o),`${e.getUTCFullYear()}${D(e.getUTCMonth())+1}${D(e.getUTCDate())}-${D(e.getUTCHours())}${D(e.getUTCMinutes())}`}`;var e;return chrome.storage[O].set({[A]:{sessionId:s,lastTimestamp:o}}),s}function P(a){switch(a){case"local":return chrome.storage.local;case"session":return chrome.storage.session;default:s(a)}}function $(a,o,s={}){const{area:e="local"}=s,i=P(e);i.get(a,s=>{const e=s[a]||[],n=new Set(e);n.add(o),i.set({[a]:Array.from(n.values())})})}function L(a,o,s={}){return new Promise(e=>{const{dropIfPresent:i=!1,area:n="local"}=s,t=P(n);t.get(a,s=>{const n=s[a]||[],r=new Set(n),m=r.has(o);m&&i&&(r.delete(o),t.set({[a]:Array.from(r.values())})),e(m)})})}function Y(a,o,s,e={}){const{area:i="local"}=e,n=P(i);n.get(a,e=>{const i=e[a]||[],t=new Map(i);t.set(o,s),n.set({[a]:Array.from(t.entries())})})}function R(a,o,s={}){const{dropIfPresent:e=!1,area:i="local"}=s;return new Promise(s=>{const n=P(i);n.get(a,i=>{const t=i[a]||[],r=new Map(t),m=r.get(o);m&&e&&setTimeout(()=>{r.delete(o),n.set({[a]:Array.from(r.entries())})},5e3),s(m)})})}const N="crossSellWasChecked",H="session",B=({crossSellId:a,tabId:o})=>`${a}-${o}`;function F(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var K,V;const G=F(function(){if(V)return K;V=1;const a=2147483647,o=36,s=/^xn--/,e=/[^\0-\x7F]/,i=/[\x2E\u3002\uFF0E\uFF61]/g,n={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},t=Math.floor,r=String.fromCharCode;function m(a){throw new RangeError(n[a])}function c(a,o){const s=a.split("@");let e="";s.length>1&&(e=s[0]+"@",a=s[1]);const n=function(a,o){const s=[];let e=a.length;for(;e--;)s[e]=o(a[e]);return s}((a=a.replace(i,".")).split("."),o).join(".");return e+n}function p(a){const o=[];let s=0;const e=a.length;for(;s<e;){const i=a.charCodeAt(s++);if(i>=55296&&i<=56319&&s<e){const e=a.charCodeAt(s++);56320==(64512&e)?o.push(((1023&i)<<10)+(1023&e)+65536):(o.push(i),s--)}else o.push(i)}return o}const u=function(a){return a>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:o},l=function(a,o){return a+22+75*(a<26)-((0!=o)<<5)},k=function(a,s,e){let i=0;for(a=e?t(a/700):a>>1,a+=t(a/s);a>455;i+=o)a=t(a/35);return t(i+36*a/(a+38))},g=function(s){const e=[],i=s.length;let n=0,r=128,c=72,p=s.lastIndexOf("-");p<0&&(p=0);for(let a=0;a<p;++a)s.charCodeAt(a)>=128&&m("not-basic"),e.push(s.charCodeAt(a));for(let l=p>0?p+1:0;l<i;){const p=n;for(let e=1,r=o;;r+=o){l>=i&&m("invalid-input");const p=u(s.charCodeAt(l++));p>=o&&m("invalid-input"),p>t((a-n)/e)&&m("overflow"),n+=p*e;const k=r<=c?1:r>=c+26?26:r-c;if(p<k)break;const g=o-k;e>t(a/g)&&m("overflow"),e*=g}const g=e.length+1;c=k(n-p,g,0==p),t(n/g)>a-r&&m("overflow"),r+=t(n/g),n%=g,e.splice(n++,0,r)}return String.fromCodePoint(...e)},d=function(s){const e=[],i=(s=p(s)).length;let n=128,c=0,u=72;for(const a of s)a<128&&e.push(r(a));const g=e.length;let d=g;for(g&&e.push("-");d<i;){let i=a;for(const a of s)a>=n&&a<i&&(i=a);const p=d+1;i-n>t((a-c)/p)&&m("overflow"),c+=(i-n)*p,n=i;for(const i of s)if(i<n&&++c>a&&m("overflow"),i===n){let a=c;for(let s=o;;s+=o){const i=s<=u?1:s>=u+26?26:s-u;if(a<i)break;const n=a-i,m=o-i;e.push(r(l(i+n%m,0))),a=t(n/m)}e.push(r(l(a,0))),u=k(c,p,d===g),c=0,++d}++c,++n}return e.join("")};return K={version:"2.3.1",ucs2:{decode:p,encode:a=>String.fromCodePoint(...a)},decode:g,encode:d,toASCII:function(a){return c(a,function(a){return e.test(a)?"xn--"+d(a):a})},toUnicode:function(a){return c(a,function(a){return s.test(a)?g(a.slice(4).toLowerCase()):a})}}}()),J=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","aws","axa","azure","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merck","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","nab","nagoya","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"].reduce((a,o)=>{const s=o.replace(/^(\*\.|\!)/,""),e=G.toASCII(s),i=o.charAt(0);if(a.has(e))throw new Error(`Multiple rules found for ${o} (${e})`);return a.set(e,{rule:o,suffix:s,punySuffix:e,wildcard:"*"===i,exception:"!"===i}),a},new Map),W={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},X=a=>a&&(a=>{if("string"!=typeof a)throw new TypeError("Domain name must be a string.");let o=a.slice(0).toLowerCase();"."===o.charAt(o.length-1)&&(o=o.slice(0,o.length-1));const s=(a=>{const o=G.toASCII(a);if(o.length<1)return"DOMAIN_TOO_SHORT";if(o.length>255)return"DOMAIN_TOO_LONG";const s=o.split(".");let e;for(let a=0;a<s.length;++a){if(e=s[a],!e.length)return"LABEL_TOO_SHORT";if(e.length>63)return"LABEL_TOO_LONG";if("-"===e.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===e.charAt(e.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(e))return"LABEL_INVALID_CHARS"}})(o);if(s)return{input:a,error:{message:W[s],code:s}};const e={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},i=o.split(".");if("local"===i[i.length-1])return e;const n=()=>(/xn--/.test(o)&&(e.domain&&(e.domain=G.toASCII(e.domain)),e.subdomain&&(e.subdomain=G.toASCII(e.subdomain))),e),t=(a=>{const o=G.toASCII(a).split(".");for(let a=0;a<o.length;a++){const s=o.slice(a).join("."),e=J.get(s);if(e)return e}return null})(o);if(!t)return i.length<2?e:(e.tld=i.pop(),e.sld=i.pop(),e.domain=[e.sld,e.tld].join("."),i.length&&(e.subdomain=i.pop()),n());e.listed=!0;const r=t.suffix.split("."),m=i.slice(0,i.length-r.length);return t.exception&&m.push(r.shift()),e.tld=r.join("."),!m.length||(t.wildcard&&(r.unshift(m.pop()),e.tld=r.join(".")),!m.length)||(e.sld=m.pop(),e.domain=[e.sld,e.tld].join("."),m.length&&(e.subdomain=m.join("."))),n()})(a).domain||null;function Q(a){let o=a.trim();return/^(?:f|ht)tps?\:\/\//.test(o)||(o="http://"+o),new URL(o)}function Z(a){const o=X(a);return null!==o?o:(a=a.replace(/^www\./,"")).split(".").slice(-2).join(".")}function aa(a){return a.hostname.replace(/^www\./,"")}function oa(a,o){return"VRBO"===o?a.replace(/\D/g,""):a}const sa="directoUserId",ea="directoUserEmail",ia="local";let na="";async function ta(){if(na)return na;const{[sa]:a}=await chrome.storage[ia].get(sa);return na=a||"",na}let ra="";async function ma(){if(ra)return ra;const{[ea]:a}=await chrome.storage[ia].get(ea);return ra=a||"",ra}const ca="directoAllowedHostnames";function pa(a){return`outclickId-${a}`}function ua(a){return`directoDomains-${a}`}new Set(["getdirecto.com","doubleclick.net","anrdoezrs.net","jdoqocy.com","tkqlhce.com","tradedoubler.com","effiliation.com","prf.hn","tatrck.com","tradetracker.net"]);const la={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let ka;const ga=new Uint8Array(16),da=[];for(let a=0;a<256;++a)da.push((a+256).toString(16).slice(1));const ha=function(a,o,s){if(la.randomUUID&&!o&&!a)return la.randomUUID();const e=(a=a||{}).random??a.rng?.()??function(){if(!ka){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ka=crypto.getRandomValues.bind(crypto)}return ka(ga)}();if(e.length<16)throw new Error("Random bytes length must be >= 16");if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,o){if((s=s||0)<0||s+16>o.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let a=0;a<16;++a)o[s+a]=e[a];return o}return function(a,o=0){return(da[a[o+0]]+da[a[o+1]]+da[a[o+2]]+da[a[o+3]]+"-"+da[a[o+4]]+da[a[o+5]]+"-"+da[a[o+6]]+da[a[o+7]]+"-"+da[a[o+8]]+da[a[o+9]]+"-"+da[a[o+10]]+da[a[o+11]]+da[a[o+12]]+da[a[o+13]]+da[a[o+14]]+da[a[o+15]]).toLowerCase()}(e)};async function ja(a,o){try{const e=ha();null!==a.targetTabId&&async function(a,o){await chrome.storage.session.set({[pa(a)]:o})}(a.targetTabId,e),s=a.targetUrl,$(ca,Z(Q(s).hostname));const i=function(a){try{const o=aa(new URL(a));return/^airbnb\.[.a-z]{2,7}/i.exec(o)?"AIRBNB":/^(secure\.)?booking\.com/i.exec(o)?"BOOKING":/^vrbo\.com/i.exec(o)||/^abritel\.fr/i.exec(o)?"VRBO":/^expedia\.[.a-z]{2,7}/i.exec(o)?"EXPEDIA":/google\.[a-z.]{2,7}\/(search\?|travel\/flights\?)/i.exec(a)?"GOOGLE":null}catch(a){return console.error("Error in getPlatform",a),null}}(a.sourceUrl),n=null!==a.sourceTabId?`${a.sessionId}-${a.sourceTabId}`:null,t={cta:a.cta,platform:i,session_id:a.sessionId,user_id:await ta(),user_email:await ma(),listing_id:a.sourceId,source_url:a.sourceUrl,target_url:a.targetUrl,source_tab_id:n,outclick_id:e,...o};await b().post("/v2/outclick",{body:c.B64Json(t)})}catch(a){console.error(a)}var s}const wa="userLocale";let ba=null;async function ya(){const{[wa]:a}=await chrome.storage.local.get(wa);return ba=a??null,ba}function fa(){return ba=ba||function(){let a;return a=null!=navigator.languages?navigator.languages[0]:navigator.language,a=a.split("-")[0]||a||"en",a}(),ba}function va(a,o,s){const{destination:e,checkin:i,checkout:n,adults:t,children:r}=s,m=e.name.trim().replace(/[, ]+/g,",").replace(/ñ/g,"n").toLocaleLowerCase(),c=`/${["hotels",void 0!==e.placeId?`${m}-p${e.placeId}`:m,i.toDashYYYYMMDD(),n.toDashYYYYMMDD(),`${t}adults`,`${r}children${"-0".repeat(r)}`].join("/")}`,p=new URL("/in","https://www.kayak.com");return p.searchParams.append("a","kan_317594_592750"),o&&(p.searchParams.append("encoder","27_1"),p.searchParams.append("enc_pid","deeplinks"),p.searchParams.append("enc_cid",o)),a&&p.searchParams.append(o?"enc_lid":"p",a),p.searchParams.append("url",c),p.toString()}ya();const za=5e3,xa="tempTabHasBeenOpenedForDomain",Ia="session",Ta="session",Sa="directoDisplayPricesCache",Da="session",_a="directoInfoCache",qa="growthbookFeatures",Ca="session",Ua="session",Ea="directoListingPriceCache",Aa=(Ma={getSessionId:async()=>await M(),sendConversionEvent:async(a,o)=>{await b().post("/v2/conversion-details",{body:c.B64Json(a)})},sendConversionHTMLEvent:async(a,o)=>{await b().post("/v2/conversion-details-html",{body:c.Json(a)})},getCrossSellWasChecked:async({crossSellId:a},o)=>{const s=o.tab?.id;return void 0!==s&&L(N,B({crossSellId:a,tabId:s}),{dropIfPresent:!0,area:H})},setCrossSellWasChecked:async({crossSellId:a,checked:o},s)=>{const e=s.tab?.id;if(void 0===e)return!1;const i=B({crossSellId:a,tabId:e});return o?$(N,i,{area:H}):function(a,o,s={}){const{area:e="local"}=s,i=P(e);i.get(a,s=>{const e=s[a]||[],n=new Set(e);n.has(o)&&(n.delete(o),i.set({[a]:Array.from(n.values())}))})}(N,i,{area:H}),!0},openKayakCrossSellTab:async(a,o)=>{const{checkin:s,checkout:e}=a,i=_.unsafe_fromRaw(s),n=_.unsafe_fromRaw(e);let t;try{const o=await f().get("/guess-kayak-place-id",{params:{searchTerm:a.destination,language:fa()},parser:new l});t=va(a.trackingLabel,a.partnerKey,{destination:{name:o.fullName,placeId:o.placeId},checkin:i,checkout:n,adults:a.adults,children:a.children})}catch(o){t=va(a.trackingLabel,a.partnerKey,{destination:{name:a.destination},checkin:i,checkout:n,adults:a.adults,children:a.children})}const r=o.tab?o.tab.index+1:void 0,m=await chrome.tabs.create({url:t,active:!1,index:r});await ja({sessionId:await M(),sourceUrl:a.sourceUrl,targetUrl:t,cta:"CHECKBOX_CROSS_SELL",sourceId:null,sourceTabId:o.tab?.id??null,targetTabId:m.id??null},{checkin:i.toDashYYYYMMDD(),checkout:n.toDashYYYYMMDD(),adults:a.adults.toString(),currency:a.currency,children:a.children.toString()})},openActivitiesCrossSellTab:async(a,o)=>{const{provider:e,destination:i,checkin:n,checkout:t,adults:r,currency:m,children:c,sourceId:p}=a,u=function(a,o){switch(a){case"viator":return(a=>{const o=new URL("/searchResults/all","https://www.viator.com");return o.searchParams.append("text",a),o.searchParams.append("pid","P00253809"),o.searchParams.append("mcid","42383"),o.searchParams.append("medium","link"),o.toString()})(o);case"civitatis":return(a=>{const o=new URL("/es/buscar","https://www.civitatis.com");return o.searchParams.append("q",a),o.searchParams.append("aid","110241"),o.toString()})(o);default:s(a)}}(e,i),l=o.tab?o.tab.index+1:void 0,k=await chrome.tabs.create({url:u,active:!1,index:l});await ja({sessionId:await M(),sourceUrl:a.sourceUrl,targetUrl:u,cta:"CHECKBOX_CROSS_SELL",sourceId:p,sourceTabId:o.tab?.id??null,targetTabId:k.id??null},{checkin:n?_.fromRaw(n)?.toDashYYYYMMDD()??null:null,checkout:t?_.fromRaw(t)?.toDashYYYYMMDD()??null:null,currency:m,adults:r.toString(),children:c.toString()})},getConfig:async()=>{if(!T){const a=await chrome.storage[I].get(x);T=a[x]||null}if(!T)throw new Error("Config has not been set");return T},openOutclickTab:async(a,o)=>{const s=await ya()||fa(),e=a.useRedirectEngine?function(a,o,s){const{coupon:e,discount:i}=s,n={url:a,...null!==e?{coupon:e}:{},...null!==i?{discount:i}:{}};return`https://engine.getdirecto.com/${o}/${btoa(encodeURIComponent(JSON.stringify(n)))}`}(a.targetUrl,s,a.redirectEngineParams??{coupon:null,discount:null}):a.targetUrl,i=o.tab?o.tab.index+1:void 0,n=(await chrome.tabs.create({url:e,active:!0,index:i})).id??null;n&&async function(a,o){const s=Z(Q(o).hostname);await chrome.storage.session.set({[ua(a)]:{outclicked:s,additional:null,sinceMsecs:Date.now()}})}(n,a.targetUrl),await ja({sessionId:await M(),sourceUrl:a.sourceUrl,targetUrl:a.targetUrl,cta:a.cta,sourceId:a.sourceId,sourceTabId:o.tab?.id??null,targetTabId:n},a.stayParams)},maybeOpenTempTab:async(a,o)=>{const{url:s,closeDelay:e=za}=a,i=o.tab?o.tab.index+1:void 0,n=aa(new URL(s)),t=await async function(a){if(await L(xa,a,{area:Ia}))return!0;var o;return await(o=a,L(ca,Z(o)))}(n);if(t)return;const r=await chrome.tabs.create({url:s,index:i,active:!1,pinned:!0});$(xa,n,{area:Ia}),setTimeout(()=>{void 0!==r.id&&chrome.tabs.remove(r.id)},e)},getAlternativeOffersByCompoundIds:async(a,o)=>{try{const o=await async function(a){return f().get("/v2/offers-by-hotel-id",{params:a,parser:new l})}(a);return{...o,offers:o.offers.map(o=>({...o,source_id:o.source_id.listingId,stayParams:{checkin:a.checkin,checkout:a.checkout,adults:a.adults.toString(),children:a.children?.toString()??null,currency:a.currency??null}}))}}catch(a){return console.error("Error fetching alternative offers by hotel ids",a),{offers:[]}}},storeCachedDisplayPrices:async(a,o)=>{Y(Sa,oa(a.source_id,a.platform),a,{area:Ta})},getCachedDisplayPrices:async(a,o)=>await R(Sa,oa(a.source_id,a.platform),{area:Ta})??null,fetchDirectoInfo:async(a,o)=>{try{const{ids:o,platform:s,...e}=a,i=e.checkin&&e.checkout?e:{checkin:null,checkout:null,adults:null,children:null,currency:null};return(await async function(a){return j.get().get("/listingids",{params:a,parser:new l})}({id:o,platform:s,...i})).map(a=>({...a,stayParams:i}))}catch(a){return console.error("Error fetching Directo info for listing IDs:",a),[]}},storeCachedDirectoInfo:async(a,o)=>{Y(_a,oa(a.source_id,a.platform),a,{area:Da})},getCachedDirectoInfo:async(a,o)=>await R(_a,oa(a.source_id,a.platform),{area:Da})??null,getGrowthbookFeature:async(a,o)=>await R(qa,a,{area:Ca}),setGrowthbookFeature:async(a,o)=>{Y(qa,a.key,a,{area:Ca})},storeCachedListingPrice:async(a,o)=>{Y(Ea,oa(a.source_id,a.platform),a,{area:Ua})},getCachedListingPrice:async(a,o)=>await R(Ea,oa(a.source_id,a.platform),{area:Ua})??null},{id:Oa="DIRECTO_CORE_BACKGROUND",handlers:Ma,isMessageForThisServer:a=>"object"==typeof a&&null!==a&&"serverId"in a&&a.serverId===Oa&&"handlerId"in a&&"string"==typeof a.handlerId,handleMessage(a,o,s){const e=Ma[a.handlerId];if(!e)throw new Error(`Unhandled ${Oa} message type ${a.handlerId.toString()}`);e("payload"in a?a.payload:void 0,o).then(a=>{s({success:!0,response:a})}).catch(o=>{console.error("Uncaught error in async message handler",a,o);const e=function(a){return a instanceof Error?a.message:"string"==typeof a?a:"object"==typeof a&&null!==a&&"message"in a&&"string"==typeof a.message?a.message:`Unknown error: ${String(a)}`}(o);s({success:!1,errorMessage:e})})}});var Oa,Ma;function Pa(a){return Aa.isMessageForThisServer(a)}class $a{#a;ready;constructor(a){this.#a=a,this.#o(),this.ready=this.#s()}async#s(){await this.#e(),this.#i(this.#a)}#i(a){S(a);const o={partnerKey:a.partnerKey,appVersion:"adunit-0.1.1"};j.initialize(o),w.initialize(o),y.initialize(o),v.initialize(o),z.initialize(o)}#o(){chrome.runtime.onMessage.addListener((a,o,s)=>{if(Pa(a))return this.ready.then(()=>{Aa.handleMessage(a,o,s)}).catch(a=>{console.error("Error handling core message",a),s({success:!1,errorMessage:a.message})}),!0})}async#e(){const a=await E();await async function(a,o){na=a,ra=o,await chrome.storage[ia].set({[sa]:a,[ea]:o})}(a.id,a.email)}}const La=new class{#n=null;initialize(a){return this.#n||(this.#n=new $a(a)),this.#n.ready}};function Ya(a){if(!a)throw new Error("partnerKey is required");return function(a){return La.initialize(a)}({partnerKey:a})}console.log("Directo AdUnit Background Service - Version: adunit-0.1.1"),module.exports=o})();
|