@rtrvr-ai/rover 2.0.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,24 @@
1
- var Qe=class{tools=new Map;registerTool(t){t?.name&&this.tools.set(t.name,t)}getTool(t){return this.tools.get(t)}getToolFunctions(){let t={};for(let[n,r]of this.tools.entries())t[n]=r;return t}getFunctionDeclarations(){let t=[];for(let n of this.tools.values()){if(n.llmCallable===!1)continue;let r=n.schema??tr(n.parameters||{},n.required||[]);t.push({name:n.name,description:n.description,parameters:r})}return t}};function tr(e,t=[]){let n={};for(let[r,o]of Object.entries(e)){if(!o||typeof o!="object")continue;let s=String(o.type||"string"),a={type:St(s),description:o.description,nullable:!t.includes(r)};if(s==="array"&&o.items&&(a.items={type:St(o.items.type||"string"),description:o.items.description}),s==="object"&&o.properties){a.properties={};for(let[c,i]of Object.entries(o.properties))a.properties[c]={type:St(i?.type||"string"),description:i?.description};Array.isArray(o.required)&&(a.required=o.required)}n[r]=a}return{type:"object",properties:n,required:t}}function St(e){switch(e){case"string":case"number":case"integer":case"boolean":case"array":case"object":return e;default:return"string"}}var Je;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(Je||(Je={}));var qt;(function(e){e[e.NativeHostConnected=0]="NativeHostConnected",e[e.NativeHostDisconnected=1]="NativeHostDisconnected"})(qt||(qt={}));var Ge="rtrvr_mem_",nr=["image/png","image/jpeg","image/webp"],rr=["application/pdf","text/plain"],Ss=[...nr,...rr];var N;(function(e){e.ACT="act_on_tab",e.CRAWL="crawl_and_extract_from_tab",e.EXTRACT="extract_from_tab",e.SHEETS_WORKFLOW="sheets_workflow",e.INFER_SHEET_DATA="infer_sheet_data",e.GRAPHBOT="graph_bot",e.PDF_FILLER="pdf_filler",e.CUSTOM_TOOL_GENERATOR="custom_tool_generator",e.WEBPAGE_GENERATOR="webpage_generator",e.GOOGLE_DOC_GENERATOR="google_doc_generator",e.GOOGLE_SLIDES_GENERATOR="google_slides_generator",e.PROCESS_TEXT="process_text",e.CREATE_SHEET_FROM_DATA="create_sheet_from_data",e.ROVER_EXTERNAL_READ_CONTEXT="rover_external_read_context",e.ROVER_EXTERNAL_ACT_CONTEXT="rover_external_act_context",e.CONFIGURE_API_KEY="configure_api_key",e.TASK_COMPLETE="task_complete",e.ASK_USER="ask_user",e.EXECUTE_MULTIPLE_TOOLS="execute_multiple_tools",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(N||(N={}));var V;(function(e){e.PLANNER="Planner",e.AGENTIC_SEEK="Agentic Action",e.CRAWL_PAGES="Crawl Pages",e.EXTRACT_PAGE="Extract Page",e.SHEETS_WORKFLOW="Sheets Workflow",e.INFER_SHEET_DATA="Infer Sheet Data",e.MULTI_STEPS="Multi Steps",e.PDF_FILLER="PDF Filler",e.CUSTOM_TOOL_GENERATOR="Custom Tool Generator",e.WEBPAGE_GENERATOR="WebPage Generator",e.GOOGLE_DOC_GENERATOR="Google Doc Generator",e.GOOGLE_SLIDES_GENERATOR="Google Slides Generator",e.PROCESS_TEXT="Process Text",e.CREATE_SHEET_FROM_DATA="Create Sheet From Data",e.ROVER_EXTERNAL_READ_CONTEXT="Rover External Read Context",e.ROVER_EXTERNAL_ACT_CONTEXT="Rover External Act Context",e.EXECUTE_MULTIPLE_TOOLS="Execute Multiple User Tools",e.CONFIGURE_API_KEY="Configure Gemini API Key",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(V||(V={}));var Is={[N.ACT]:V.AGENTIC_SEEK,[N.CRAWL]:V.CRAWL_PAGES,[N.EXTRACT]:V.EXTRACT_PAGE,[N.SHEETS_WORKFLOW]:V.SHEETS_WORKFLOW,[N.INFER_SHEET_DATA]:V.INFER_SHEET_DATA,[N.PDF_FILLER]:V.PDF_FILLER,[N.CUSTOM_TOOL_GENERATOR]:V.CUSTOM_TOOL_GENERATOR,[N.WEBPAGE_GENERATOR]:V.WEBPAGE_GENERATOR,[N.GOOGLE_DOC_GENERATOR]:V.GOOGLE_DOC_GENERATOR,[N.GOOGLE_SLIDES_GENERATOR]:V.GOOGLE_SLIDES_GENERATOR,[N.PROCESS_TEXT]:V.PROCESS_TEXT,[N.CREATE_SHEET_FROM_DATA]:V.CREATE_SHEET_FROM_DATA,[N.ROVER_EXTERNAL_READ_CONTEXT]:V.ROVER_EXTERNAL_READ_CONTEXT,[N.ROVER_EXTERNAL_ACT_CONTEXT]:V.ROVER_EXTERNAL_ACT_CONTEXT,[N.EXECUTE_MULTIPLE_TOOLS]:V.EXECUTE_MULTIPLE_TOOLS,[N.CONFIGURE_API_KEY]:V.CONFIGURE_API_KEY,[N.QUERY_RTRVR_AI_DOCUMENTATION]:V.QUERY_RTRVR_AI_DOCUMENTATION},It=20;var or=30,sr=320,ar=0,ir=50,cr=1,jt=Je.FLASH;var Es=V.PLANNER;var ws=20*1024*1024;var Wt={maxParallelTabs:4,pageLoadDelay:2e3,disableAutoScroll:!1,makeNewTabsActive:!1,writeRowProcessingTime:!1,totalBudgetMs:25e3,pageDataTimeoutMs:22e3,adaptiveSettleDebounceMs:or,adaptiveSettleMaxWaitMs:sr,adaptiveSettleRetries:ar,sparseTreeRetryDelayMs:ir,sparseTreeRetryMaxAttempts:cr,pdfTextSelectionTimeoutMs:12e3,onlyTextContent:!1};function ur(e){let t={...Wt,...e??{}},n=Number(e?.pdfTextSelectionTimeoutMs);return Number.isFinite(n)&&(t.pdfTextSelectionTimeoutMs=Math.floor(n)),t.totalBudgetMs!==void 0&&(t.totalBudgetMs=Math.max(1500,Math.floor(t.totalBudgetMs))),t.pageDataTimeoutMs!==void 0&&(t.pageDataTimeoutMs=Math.max(500,Math.floor(t.pageDataTimeoutMs))),t.pdfTextSelectionTimeoutMs!==void 0&&(t.pdfTextSelectionTimeoutMs=Math.max(150,Math.floor(t.pdfTextSelectionTimeoutMs))),t.adaptiveSettleDebounceMs!==void 0&&(t.adaptiveSettleDebounceMs=Math.max(20,Math.min(500,Math.floor(t.adaptiveSettleDebounceMs)))),t.adaptiveSettleMaxWaitMs!==void 0&&(t.adaptiveSettleMaxWaitMs=Math.max(120,Math.min(5e3,Math.floor(t.adaptiveSettleMaxWaitMs)))),t.adaptiveSettleRetries!==void 0&&(t.adaptiveSettleRetries=Math.max(0,Math.min(6,Math.floor(t.adaptiveSettleRetries)))),t.sparseTreeRetryDelayMs!==void 0&&(t.sparseTreeRetryDelayMs=Math.max(40,Math.min(1e3,Math.floor(t.sparseTreeRetryDelayMs)))),t.sparseTreeRetryMaxAttempts!==void 0&&(t.sparseTreeRetryMaxAttempts=Math.max(0,Math.min(4,Math.floor(t.sparseTreeRetryMaxAttempts)))),t}var lr=["disableAutoScroll","onlyTextContent","totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];function Bt(e){if(!e||typeof e!="object")return;let t=e,n={};typeof t.disableAutoScroll=="boolean"&&(n.disableAutoScroll=t.disableAutoScroll),typeof t.onlyTextContent=="boolean"&&(n.onlyTextContent=t.onlyTextContent);let r=["totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];for(let a of r){let c=Number(t[a]);Number.isFinite(c)&&(n[a]=Math.trunc(c))}if(!Object.keys(n).length)return;let o=ur(n),s={};for(let a of lr)n[a]!==void 0&&o[a]!==void 0&&(s[a]=o[a]);return Object.keys(s).length?s:void 0}var dr=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;function Ze(e){return(e||"").trim()||"Data"}function zt(e,t){return e.length>=t?e:[...e,...new Array(t-e.length).fill("")]}function Et(e,t){if(e.length===t)return e;if(e.length>t)return e.slice(0,t);let n=e.slice();for(;n.length<t;)n.push("");return n}function Kt(e){return e?.properties?Object.keys(e.properties):[]}function Vt(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}function fr(e){return!e||typeof e!="object"?!1:"properties"in e||"anyOf"in e||"type"in e}var pe=class{label;memSheets=new Map;constructor(t){this.label=t}createSheet(t,n){let r=`${Ge}${dr()}`;return this.createSheetWithId(r,t,n)}createSheetWithId(t,n,r){let o=Date.now(),s={id:t,title:Ze(n),tabs:new Map,tabTitleToIndex:new Map,nextTabIndex:0,createdAt:o,updatedAt:o,meta:r};return this.memSheets.set(t,s),this.addTab(t,{title:s.title||"Data",headerRow:[],data:[]}),s}getOrCreateSheet(t,n,r){return t&&this.memSheets.has(t)?this.memSheets.get(t):t&&t.startsWith(Ge)?(console.warn(`[TabularStore] getOrCreateSheet: memory sheet ${t} not found. Recreating empty sheet.`),this.createSheetWithId(t,n,r)):this.createSheet(n||t,r)}hasSheet(t){return this.memSheets.has(t)}getSheet(t){let n=this.memSheets.get(t);if(!n)throw new Error(`Memory sheet not found: ${t}`);return n}deleteSheet(t){return this.memSheets.delete(t)}listSheets(){return[...this.memSheets.values()]}clearAll(){this.memSheets.clear()}addTab(t,n){let r=this.getSheet(t),o=r.nextTabIndex++,s=Date.now(),a=this.makeUniqueTabTitle(r,n.title),c={index:o,title:a,headerRow:n.headerRow||[],data:n.data||[],schema:n.schema,createdAt:s,updatedAt:s,meta:n.meta};return r.tabs.set(o,c),r.tabTitleToIndex.set(a.toLowerCase(),o),r.updatedAt=s,c}getTab(t,n=0){let o=this.getSheet(t).tabs.get(n);if(!o)throw new Error(`Memory tab not found: ${t}/tab/${n}`);return o}getTabByTitle(t,n){let r=this.memSheets.get(t);if(!r)return null;let o=r.tabTitleToIndex.get(n.toLowerCase());return o===void 0?null:r.tabs.get(o)??null}hasTab(t,n){let r=this.memSheets.get(t);return!!r&&r.tabs.has(n)}getTabByIndex(t,n=0){let r=this.memSheets.get(t);return r?r.tabs.get(n)??null:null}ensureTab(t,n,r={}){let o=this.getSheet(t),s=Ze(n),a=this.getTabByTitle(t,s);if(a)return a;if(r.createIfMissing??!0)return this.addTab(t,{title:s,headerRow:[],data:[]});let c=this.getTabByIndex(t,0);return c||this.addTab(t,{title:s,headerRow:[],data:[]})}makeUniqueTabTitle(t,n,r){let o=Ze(n),s=o.toLowerCase(),a=t.tabTitleToIndex.get(s);if(a===void 0||a===r)return o;let c=2;for(;t.tabTitleToIndex.has(`${o} (${c})`.toLowerCase());)c++;return`${o} (${c})`}renameTab(t,n,r){let o=this.getSheet(t),s=this.getTab(t,n),a=s.title.toLowerCase(),c=Ze(r);if(c.toLowerCase()===a){s.title=c,s.updatedAt=Date.now(),o.updatedAt=s.updatedAt,o.tabTitleToIndex.set(a,n);return}o.tabTitleToIndex.delete(a);let u=this.makeUniqueTabTitle(o,c,n);s.title=u,s.updatedAt=Date.now(),o.tabTitleToIndex.set(u.toLowerCase(),n),o.updatedAt=s.updatedAt}deleteTab(t,n){let r=this.getSheet(t),o=r.tabs.get(n);return o?(r.tabTitleToIndex.delete(o.title.toLowerCase()),r.tabs.delete(n),r.updatedAt=Date.now(),!0):!1}listTabs(t){return[...this.getSheet(t).tabs.values()].sort((r,o)=>r.index-o.index)}setHeaderRow(t,n,r){let o=this.getTab(t,n);o.headerRow=r.map(String),o.data=o.data.map(s=>Et(s,o.headerRow.length)),o.updatedAt=Date.now(),this.touchSheet(t)}mergeHeaderRow(t,n,r){let o=this.getTab(t,n),s=o.headerRow.length,a=new Set(o.headerRow.map(i=>i.toLowerCase()));for(let i of r){let u=String(i).toLowerCase();a.has(u)||(o.headerRow.push(String(i)),a.add(u))}let c=o.headerRow.length;return c>s&&(o.data=o.data.map(i=>zt(i,c))),o.updatedAt=Date.now(),this.touchSheet(t),o.headerRow}setSchema(t,n,r,o={}){let s=this.getTab(t,n);if(s.schema=r,!o.preserveHeader&&r?.properties){let a=Kt(r);if(a.length){let c=s.headerRow;if(!c.length)s.headerRow=a.slice();else{let u=new Set(a.map(d=>d.toLowerCase())),l=[];for(let d of a)l.push(d);for(let d of c)u.has(d.toLowerCase())||l.push(d);s.headerRow=l}let i=s.headerRow.length;s.data=s.data.map(u=>Et(u,i))}}s.updatedAt=Date.now(),this.touchSheet(t)}appendRows(t,n,r,o={}){let s=this.getTab(t,n),a=o.alignToHeader!==!1,c=s.headerRow.length;for(let i of r){let u=a&&c>0?Et(i,c):i.slice();s.data.push(u)}s.updatedAt=Date.now(),this.touchSheet(t)}upsertColumnsByHeader(t,n,r,o,s={}){let a=this.getTab(t,n),c=s.createMissingHeaders??!0,i=new Map;a.headerRow.forEach((d,f)=>i.set(d,f));for(let d of Object.keys(o))if(!i.has(d)){if(!c)continue;let f=a.headerRow.length;a.headerRow.push(d),i.set(d,f),a.data=a.data.map(h=>zt(h,a.headerRow.length))}let u=a.headerRow.length;for(;a.data.length<=r;)a.data.push(new Array(u).fill(""));let l=a.data[r];for(let[d,f]of Object.entries(o)){let h=i.get(d);h!==void 0&&(l[h]=f)}a.updatedAt=Date.now(),this.touchSheet(t)}toAny2D(t,n=0,r=!0){let o=this.getTab(t,n),s=o.data.map(a=>a.slice());return r?[o.headerRow.slice(),...s]:s}toObjects(t,n=0,r={}){let o=this.getTab(t,n),s=o.headerRow,a=r.maxRows??o.data.length,c=[];for(let i=0;i<o.data.length&&i<a;i++){let u=o.data[i],l={};for(let d=0;d<s.length;d++)l[s[d]]=u[d];c.push(l)}return c}toSheetInfo(t,n=0){let r=this.getSheet(t),o=this.getTab(t,n);return{sheetId:t,sheetTitle:r.title,sheetTab:o.title,sheetTabId:o.index,sheetTabs:this.listTabs(t).map(s=>({id:s.index,title:s.title})),kind:"memory"}}publishFromObjects(t,n,r={}){let o=t.headerRow||t.headingInfo.headings||Object.keys(t.headingInfo.schema?.properties??{}),s=n.map(c=>o.map(i=>c[i]??"")),a=o.length?[o,...s]:s;return this.publishFromSheetWorkflow(t,a,r)}publishFromSheetWorkflow(t,n,r={}){let o=t.sheetInfo,s=r.sheetTitle||t.headingInfo.title||o?.sheetTitle||"Data",a=r.tabTitle||o?.newTabTitle||o?.sheetTab||"Data",c=r.schema||t.headingInfo.schema,i=Kt(c),u=this.getOrCreateSheet(o?.sheetId&&o.sheetId.startsWith(Ge)?o.sheetId:void 0,s),l=this.ensureTab(u.id,a,{createIfMissing:!0}),d=r.mergeWithExistingHeader??!0,f=l.headerRow.length>0;i.length?f&&d?this.mergeHeaderRow(u.id,l.index,i):this.setHeaderRow(u.id,l.index,i):t.headerRow?.length&&(f&&d?this.mergeHeaderRow(u.id,l.index,t.headerRow):this.setHeaderRow(u.id,l.index,t.headerRow)),this.setSchema(u.id,l.index,c,{preserveHeader:!0});let h=this.getTab(u.id,l.index).headerRow,y=n.length&&h.length&&n[0].length===h.length&&n[0].every((v,I)=>String(v).trim().toLowerCase()===h[I].trim().toLowerCase())?n.slice(1):n;return this.appendRows(u.id,l.index,y,{alignToHeader:r.alignToHeader??!0}),t.sheetInfo={sheetId:u.id,sheetTitle:u.title,sheetTab:l.title,sheetTabId:l.index,sheetTabs:this.listTabs(u.id).map(v=>({title:v.title,id:v.index})),kind:"memory"},t.headerRow=h,t.headingInfo.headings=h,t}publishNewTab(t,n,r,o,s){let a;s?fr(s)&&!("sheetTitle"in s)?a={schema:s}:a=s:a={};let c=this.getOrCreateSheet(t),i,u=a.mergeWithExistingHeader??!0;if(a.createTabIfMissing===!1){let l=this.getTabByTitle(c.id,n);l?(i=l,i.headerRow.length?u&&this.mergeHeaderRow(c.id,i.index,r):this.setHeaderRow(c.id,i.index,r)):i=this.addTab(c.id,{title:n,headerRow:r,data:[],schema:a.schema,meta:void 0})}else i=this.addTab(c.id,{title:n,headerRow:r,data:[],schema:a.schema,meta:void 0});return this.appendRows(c.id,i.index,o,{alignToHeader:a.alignToHeader??!0}),i}estimateTabSizeBytes(t,n=0){let r=this.getTab(t,n),o=Vt(r.headerRow),s=r.data,a=500,c=0,i=Math.min(s.length,a);for(let u=0;u<i;u++)c+=Vt(s[u]);return s.length>i&&i>0&&(c=Math.round(c*(s.length/i))),o+c}touchSheet(t){let n=this.memSheets.get(t);n&&(n.updatedAt=Date.now())}},ge=e=>!!e&&e.startsWith(Ge);function Xt(e){let t=String(e||"").toLowerCase();return t.includes("stale_seq")||t.includes("stale seq")?"STALE_SEQ":t.includes("stale_epoch")||t.includes("stale epoch")?"STALE_EPOCH":t.includes("session token")&&t.includes("expired")?"SESSION_TOKEN_EXPIRED":t.includes("session token")&&t.includes("invalid")?"SESSION_TOKEN_INVALID":t.includes("bootstrap")&&t.includes("required")?"BOOTSTRAP_REQUIRED":t.includes("navigation handoff")?"NAVIGATION_HANDOFF_PENDING":(t.includes("auth token")||t.includes("authentication token"))&&(t.includes("missing")||t.includes("required"))?"MISSING_AUTH_TOKEN":t.includes("missing auth")||t.includes("requires auth")||t.includes("requires authentication")?"MISSING_AUTH":t.includes("api key")&&(t.includes("missing")||t.includes("required"))?"MISSING_API_KEY":t.includes("invalid")&&t.includes("api key")?"INVALID_API_KEY":t.includes("unauthenticated")||t.includes("authentication")?"UNAUTHENTICATED":t.includes("permission")?"PERMISSION_DENIED":t.includes("insufficient credits")||t.includes("credits")?"INSUFFICIENT_CREDITS":t.includes("not supported")||t.includes("unsupported")?"TOOL_UNSUPPORTED":t.includes("network")||t.includes("fetch")?"NETWORK_ERROR":"UNKNOWN_ERROR"}function et(e){if(e==="MISSING_AUTH"||e==="MISSING_AUTH_TOKEN")return"Provide a valid rvrsess_* sessionToken from /v2/rover/session/open in rover.boot(...).";if(e==="MISSING_API_KEY")return"Use a Rover session token (rvrsess_*) from /v2/rover/session/open.";if(e==="INVALID_API_KEY")return"Use a valid active Rover session token or rotate your site public key.";if(e==="STALE_SEQ")return"Sync session projection and retry with latest seq.";if(e==="STALE_EPOCH")return"Refresh session token/projection and retry with latest epoch.";if(e==="SESSION_TOKEN_EXPIRED")return"Refresh session via /v2/rover/session/open using bootstrap public key (pk_site_*), then retry.";if(e==="SESSION_TOKEN_INVALID")return"Initialize a fresh session token via /v2/rover/session/open and retry.";if(e==="BOOTSTRAP_REQUIRED")return"Provide a valid pk_site_* key in bootstrapToken/publicKey and retry session start.";if(e==="NAVIGATION_HANDOFF_PENDING")return"Wait for post-navigation hydration/projection sync and retry."}function Y(e,t="Operation failed"){let n=String(e?.error||"").trim().toLowerCase();if(n==="stale_seq"||n==="stale_epoch"||n==="session_token_expired"||n==="session_token_invalid"||n==="bootstrap_required"){let i=n==="stale_epoch"?"STALE_EPOCH":n==="session_token_expired"?"SESSION_TOKEN_EXPIRED":n==="session_token_invalid"?"SESSION_TOKEN_INVALID":n==="bootstrap_required"?"BOOTSTRAP_REQUIRED":"STALE_SEQ",u=e?.data&&typeof e.data=="object"?e.data:{},l=typeof u?.reason=="string"?u.reason:n==="stale_epoch"?"Session epoch is stale.":n==="session_token_expired"?"Session token expired.":n==="session_token_invalid"?"Session token invalid.":n==="bootstrap_required"?"Bootstrap token required.":"Run sequence is stale.";return{code:i,message:l,next_action:et(i),retryable:i==="STALE_SEQ"||i==="STALE_EPOCH"||i==="SESSION_TOKEN_EXPIRED",details:e}}let r=e&&typeof e=="object"&&typeof e.code=="string"&&typeof e.message=="string"?e:void 0,o=e?.roverError||e?.errorDetails||(typeof e?.error=="object"?e.error:void 0)||r;if(o&&typeof o=="object"&&o.code&&o.message){let i=String(o.code||"").trim(),l=i==="stale_seq"?"STALE_SEQ":i==="stale_epoch"?"STALE_EPOCH":i==="session_token_expired"?"SESSION_TOKEN_EXPIRED":i==="session_token_invalid"?"SESSION_TOKEN_INVALID":i==="bootstrap_required"?"BOOTSTRAP_REQUIRED":i==="navigation_handoff_pending"?"NAVIGATION_HANDOFF_PENDING":i,d=typeof o.retryable=="boolean"?o.retryable:l==="STALE_SEQ"||l==="STALE_EPOCH"||l==="SESSION_TOKEN_EXPIRED"||l==="NAVIGATION_HANDOFF_PENDING";return{code:l,message:o.message,requires_api_key:!!o.requires_api_key,missing:Array.isArray(o.missing)?o.missing:void 0,next_action:o.next_action||et(l),retryable:d,degraded:o.degraded,details:o.details}}if(typeof e=="string"){let i=e||t,u=Xt(i);return{code:u,message:i,requires_api_key:u==="MISSING_API_KEY"||u==="INVALID_API_KEY",missing:u==="MISSING_AUTH"||u==="MISSING_AUTH_TOKEN"?["authToken"]:void 0,next_action:et(u),retryable:u==="NETWORK_ERROR"||u==="STALE_SEQ"||u==="STALE_EPOCH"||u==="SESSION_TOKEN_EXPIRED"||u==="NAVIGATION_HANDOFF_PENDING"}}let s=String(e?.message||e?.error||t),a=Xt(s),c=a==="MISSING_API_KEY"||a==="INVALID_API_KEY";return{code:a,message:s,requires_api_key:c,missing:c?["publicKey"]:a==="MISSING_AUTH"||a==="MISSING_AUTH_TOKEN"?["authToken"]:void 0,next_action:et(a),retryable:a==="NETWORK_ERROR"||a==="STALE_SEQ"||a==="STALE_EPOCH"||a==="SESSION_TOKEN_EXPIRED"||a==="NAVIGATION_HANDOFF_PENDING",details:e}}function xe(e){let t=new Error(e.message);return t.roverError=e,t}function Yt(e){let t=Y(e);return!!t.requires_api_key||t.code==="MISSING_API_KEY"||t.code==="INVALID_API_KEY"}var en="https://extensionrouter.rtrvr.ai",pr=new Set(["generate_sheets","generate_docs","generate_slides","generate_websites"]),gr={generate_pdfs:"generate_docs",pdf_filling:"generate_docs",generate_web_pages:"generate_websites"},Qt={enableExternalWebContext:!1,scrapeMode:"off"};function mr(e){if(!e)return;let t=Array.isArray(e.enableAdditionalTools)?e.enableAdditionalTools:[],n=Array.from(new Set(t.map(r=>{let o=gr[r]||r;return pr.has(o)?o:null}).filter(r=>!!r)));return{mode:e.mode||"none",userDefined:Array.isArray(e.userDefined)?e.userDefined:[],enableAdditionalTools:n}}function Jt(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let o=String(r||"").trim().toLowerCase().replace(/^\./,"");!o||t.has(o)||(t.add(o),n.push(o))}return n}function tn(e){let t=String(e||"").trim();if(t)return t.slice(0,64)}function hr(e){try{return new URL(String(e||"")).hostname.toLowerCase()}catch{return}}function Zt(e,t){let n=String(t||"").trim().toLowerCase();if(!n)return!1;if(n==="*")return!0;if(n.startsWith("*.")){let r=n.slice(2);return!!r&&(e===r||e.endsWith(`.${r}`))}return e===n||e.endsWith(`.${n}`)}function _r(e){return{enableExternalWebContext:e?.enableExternalWebContext??Qt.enableExternalWebContext,scrapeMode:e?.scrapeMode==="on_demand"?"on_demand":Qt.scrapeMode,allowDomains:Jt(e?.allowDomains),denyDomains:Jt(e?.denyDomains)}}function Tr(e,t){let n=hr(e);return n?t.denyDomains.some(r=>Zt(n,r))?{allowed:!1,reason:"deny_rule"}:t.allowDomains.length?t.allowDomains.some(r=>Zt(n,r))?{allowed:!0}:{allowed:!1,reason:"not_in_allowlist"}:{allowed:!0}:{allowed:!1,reason:"invalid_url"}}function br(e){if(!Array.isArray(e))return[];let t=new Map;for(let n of e){let r=Number(n?.tabId);if(!Number.isFinite(r))continue;let o=n?.accessMode==="external_scraped"?"external_scraped":"external_placeholder",s=String(n?.host||"").trim()||void 0,a=String(n?.title||"").trim()||void 0,c=String(n?.reason||"").trim()||void 0;t.set(r,{tabId:r,accessMode:o,host:s,title:a,reason:c})}return Array.from(t.values())}function yr(e,t){if(e==="act")return"act";if(e==="read_context")return"read_context";if(e==="open_only")return"open_only";let n=String(t||"").toLowerCase();if(!n.trim())return"read_context";let r=/\b(fill|submit|book|buy|purchase|apply|sign up|signup|log in|login|register|delete|update|create|post|send|checkout|pay)\b/i,o=/\b(search|search for|look up|lookup|browse|filter|sort|select|choose|pick|add to cart|compare prices|find reviews|pull reviews)\b/i,s=/\b(open|navigate|go to|visit|take me to|bring me to)\b/i,a=/\b(read|summarize|extract|inspect|analyze|check|find|lookup|list|show|compare|review)\b/i;return r.test(n)&&!/\b(do not|don't)\b/i.test(n)||o.test(n)?"act":(s.test(n)&&!a.test(n)||a.test(n),"read_context")}function Sr(e){let t=en,n=String(e||t).trim().replace(/\/+$/,"");if(!n)return t;if(n.endsWith("/extensionRouter"))return n;try{let r=new URL(n),o=r.pathname.replace(/\/+$/,"");if(o&&o!=="/"||r.hostname.toLowerCase()==="extensionrouter.rtrvr.ai")return n}catch{}return`${n}/extensionRouter`}function Ir(e){let t=en,n=String(e||t).trim().replace(/\/+$/,"");return n?n.endsWith("/extensionRouter")?`${n.slice(0,-16)}/v2/rover`:n.endsWith("/v2/rover")?n:`${n}/v2/rover`:`${t}/v2/rover`}function wt(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}function Er(e){let t=e.runtimeContext;if(!t||t.mode!=="rover_embed")return;let n=br(t.externalTabs).slice(0,8);return{mode:"rover_embed",agentName:tn(t.agentName)||"Rover",externalNavigationPolicy:t.externalNavigationPolicy||e.externalNavigationPolicy,tabIdContract:t.tabIdContract||"tree_index_mapped_by_tab_order",...n.length?{externalTabs:n}:{}}}function Rt(e){let t=tn(e.agentName)||"Rover",n=e.reason||"external_domain_inaccessible",r=e.title||"External Tab (Inaccessible)",o=e.url||"",s=n?` Reason: ${n}.`:"";return{url:o,title:r,contentType:"text/html",content:`${t} cannot access this external page directly. To read this page's content when you know its exact URL, use 'rover_external_read_context' with the URL (supports multiple URLs via 'urls' param). For tasks requiring search, navigation, or interaction (e.g. searching Google, browsing results, filtering), use 'rover_external_act_context' with the FULL task description in 'message'.${s}`,metadata:{inaccessible:!0,external:!0,accessMode:"external_placeholder",reason:n,logicalTabId:e.tabId}}}function wr(){let e=new Date,t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),o=e.getHours(),s=String(e.getMinutes()).padStart(2,"0"),a=o>=12?"PM":"AM";o=o%12,o=o||12;let c=String(o).padStart(2,"0");return`${t}/${n}/${r} ${c}:${s} ${a}`}function nn(e,t,n){let r=wr(),o=typeof e.apiMode=="boolean"?e.apiMode:!!String(e.sessionToken||e.authToken||"").trim(),s={model:e.llmIntegration?.model||e.model||jt},a=e.googleAiStudioApiKeys||e.llmIntegration?.apiKeys,c=e.googleAiStudioApiKey||e.llmIntegration?.apiKey;a&&a.length>0?(s.enableGoogleAiStudioApiKey=!0,s.apiKeys=a):c?(s.enableGoogleAiStudioApiKey=!0,s.apiKey=c):e.llmIntegration?.enableGoogleAiStudioApiKey&&(s.enableGoogleAiStudioApiKey=!0);let i=Sr(e.apiBase),u=Ir(e.apiBase),l=Er(e),d=_r(e.tools?.web),f=new Map,h=new Map,y,v=0,I=0,C=[1e3,3e3],F=C.length,R=250,P=45e3,b=async(E,p)=>{let m=String(e.sessionToken||e.authToken||"").trim();if(!m||!m.startsWith("rvrsess_"))for(let g=0;g<3&&(await new Promise(_=>setTimeout(_,800)),m=String(e.sessionToken||e.authToken||"").trim(),!(m&&m.startsWith("rvrsess_")));g++);if(!m||!m.startsWith("rvrsess_"))throw xe({code:"MISSING_AUTH_TOKEN",message:"Rover session token is required to call backend action routes.",requires_api_key:!1,next_action:"Initialize Rover session via /v2/rover/session/open and pass sessionToken to rover.boot(...).",retryable:!1});let T;for(let g=0;g<=F;g++){g>0&&await new Promise(w=>setTimeout(w,C[g-1]));let _=await fetch(i,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({action:E,data:p&&typeof p=="object"?{...p,sessionToken:m,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(e.activeRunId||"").trim()||void 0,requestNonce:wt(),...!p.runtimeContext&&l?{runtimeContext:l}:{}}:{payload:p,sessionToken:m,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(e.activeRunId||"").trim()||void 0,requestNonce:wt()}}),signal:e.signal});if(!_.ok){if(_.status===429){let S=Number(_.headers.get("Retry-After"))||0,G=xe({code:"RATE_LIMITED",message:"Rate limited by backend",retryable:!0,details:{status:429,retryAfter:S}});if(g<F){T=G;continue}throw G}let w;try{w=await _.json()}catch{let S=await _.text().catch(()=>"");S&&(w={error:S})}let D=Y(w,`HTTP ${_.status}`);throw xe({...D,details:{status:_.status,endpoint:i,action:E,response:w}})}let A=await _.json();if(A?.success===!1){let w=Y(A,A?.error||"extensionRouter returned success=false");throw xe({...w,details:{endpoint:i,action:E,response:A}})}return A}throw T||new Error("callExtensionRouter: unexpected retry exhaustion")},k=async(E,p)=>{let m=String(E||"").trim();if(!m)throw new Error("external page data requires url");let T=Number(p?.tabId)||0,g=p?.source||"direct_url",_=p?.intent==="act"?"act":p?.intent==="open_only"?"open_only":"read_context",A=`${T}:${_}:${g}:${m}`,w=Date.now(),D=f.get(A);if(D&&w-D.ts<=P)return D.data;f.delete(A);let S=h.get(A);if(S&&w-S.ts<=P)throw new Error(S.message||"external page data fetch failed");if(h.delete(A),y)throw new Error(y);let G=String(e.sessionToken||"").trim();if(!G.startsWith("rvrsess_"))throw xe({code:"MISSING_AUTH_TOKEN",message:"External context requires a Rover session token.",next_action:"Initialize Rover v2 session/open before requesting external context.",retryable:!1});try{let O=await fetch(`${u}/context/external`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({requestNonce:wt(),sessionToken:G,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(p?.runId||e.activeRunId||"").trim()||void 0,expectedEpoch:Number.isFinite(Number(e.sessionEpoch))?Number(e.sessionEpoch):void 0,expectedSeq:Number.isFinite(Number(e.sessionSeq))?Number(e.sessionSeq):void 0,logicalTabId:Number(p?.tabId)>0?String(Math.trunc(Number(p?.tabId))):void 0,intent:_,url:m,source:g,message:p?.message,timeoutMs:_==="act"?72e4:3e5}),signal:e.signal}),U=await O.json().catch(()=>{});if(!O.ok||U?.success===!1){let q=Y(U,U?.error||`external context request failed (${O.status})`);throw xe({...q,details:{endpoint:`${u}/context/external`,status:O.status,response:U}})}let H=U?.data?.pageData||U?.data;return f.set(A,{data:H,ts:w}),H}catch(O){let U=Y(O,"external page data fetch failed"),H=U?.message||"external page data fetch failed";throw h.set(A,{message:H,ts:w}),(U.code==="PERMISSION_DENIED"||U.code==="MISSING_API_KEY"||U.code==="INVALID_API_KEY")&&(y=`${U.code}: ${H}`),O}},M=async()=>{let E=Date.now();if(v>0&&E-I<=R)return v;try{let p=await t("getTabContext"),m=Number(p?.activeLogicalTabId||p?.logicalTabId||p?.id);if(Number.isFinite(m)&&m>0)return v=m,I=E,m}catch{}},$=async(E,p)=>{let m=Number(E),T=p&&typeof p=="object"?p:void 0,g=T?.__roverAllowExternalFetch===!0,_=T?.__roverExternalIntent==="act"||T?.__roverExternalIntent==="open_only"||T?.__roverExternalIntent==="read_context"||T?.__roverExternalIntent==="auto"?T.__roverExternalIntent:"auto",A=typeof T?.__roverExternalMessage=="string"?String(T.__roverExternalMessage):void 0,w=yr(_,A),D=T&&typeof T=="object"?Object.fromEntries(Object.entries(T).filter(([ue])=>ue!=="__roverAllowExternalFetch"&&ue!=="__roverExternalIntent"&&ue!=="__roverExternalMessage")):void 0,S=Bt({...e.pageConfig||{},...D||{}}),G=!!S&&Object.keys(S).length>0,O=T?await t("getPageData",G?{pageConfig:S,tabId:m}:{tabId:m}):await t("getPageData",{tabId:m}),U=O?.metadata||{};if(!(!!U?.external||U?.accessMode==="external_placeholder"||U?.accessMode==="external_scraped"))return O;let q=typeof O?.url=="string"?O.url.trim():"";if(!d.enableExternalWebContext||d.scrapeMode==="off"||!q)return O;if(y)return Rt({tabId:m,url:q,title:O?.title,agentName:l?.agentName,reason:`cloud_fetch_disabled:${y}`});let K=Tr(q,{allowDomains:d.allowDomains,denyDomains:d.denyDomains});if(!K.allowed)return Rt({tabId:m,url:q,title:O?.title,agentName:l?.agentName,reason:`policy_blocked:${K.reason||"blocked"}`});let Te=await M();if(!(g||(Te?Te===m:!1)))return O;try{let ue=await k(q,{tabId:m,source:q.includes("google.com/search")?"google_search":"direct_url",intent:w,message:A});return w==="open_only"?O:ue&&typeof ue=="object"?{...ue,metadata:{...ue.metadata||{},external:!0,accessMode:"external_scraped",logicalTabId:m}}:O}catch(ue){let er=Y(ue,"external page data fetch failed");return Rt({tabId:m,url:q,title:O?.title,agentName:l?.agentName,reason:`cloud_fetch_failed:${er?.code||"unknown"}`})}},x=e.userProfile||(e.userContext?{userContext:e.userContext}:void 0),L=o?{enableAdditionalTools:["generate_sheets","generate_docs","generate_slides","generate_websites"],mode:"none"}:void 0;return{userTimestamp:r,siteId:e.siteId,llmIntegration:s,userProfile:x,rootUserInput:typeof e.rootUserInput=="string"&&e.rootUserInput.trim()?e.rootUserInput.trim():void 0,getPageData:$,getExternalPageData:k,callExtensionRouter:b,apiMode:o,apiToolsConfig:mr(e.apiToolsConfig??L),tabularStore:n??new pe(`rover-${r}`),signal:e.signal}}var Rr=async(e,t)=>{let n=await t();if(!e||!n)throw new Error("Missing sheetId or authToken. Cannot fetch metadata.");let r=await fetch(`https://sheets.googleapis.com/v4/spreadsheets/${e}`,{headers:{Authorization:`Bearer ${n}`}});if(!r.ok){let s=new Error(`HTTP error ${r.status}: ${r.statusText}`);throw s.status=r.status,s}return await r.json()};var on=async(e,t)=>{let n=await Rr(e,t);if(!n||!n.sheets)throw new Error("Sheet Data missing or malformed after successful fetch");let r=n.sheets.map(o=>({id:o.properties.sheetId,title:o.properties.title}));return{sheetTitle:n.properties?.title,sheetTabs:r}};async function sn(e,t,n){return xr(e,t,n)}var xr=async(e,t,n)=>{let r=await n();if(!(!e||!t||!r))try{let o=encodeURIComponent(`'${t}'`),s=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${o}?valueRenderOption=FORMATTED_VALUE`,a=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${o}?valueRenderOption=FORMULA`,c={Authorization:`Bearer ${r}`},[i,u]=await Promise.all([fetch(s,{headers:c}),fetch(a,{headers:c})]);if(!i.ok)throw new Error("Values fetch failed: "+i.statusText);if(!u.ok)throw new Error("Formulas fetch failed: "+u.statusText);let l=await i.json(),d=await u.json(),f=l?.values??[],h=d?.values??[];return vr(f,h)}catch(o){console.error("Error fetching sheet tab data:",o);return}},rn=e=>e.reduce((t,n)=>Math.max(t,n?.length??0),0),Ar=e=>e==null?"null":Array.isArray(e)?"array":typeof e,vr=(e,t)=>{let n=Math.max(e.length,t.length),r=Math.max(rn(e),rn(t)),o=new Array(n);for(let s=0;s<n;s++){let a=new Array(r);for(let c=0;c<r;c++){let i=e[s]?.[c]??null,u=t[s]?.[c],l=typeof u=="string"&&u.startsWith("=");a[c]=l?{v:i,f:u,t:Ar(i)}:i}o[s]=a}return o};var $e=async(e,t,n,r={},o="POST")=>{let s=await t();if(!s)throw new Error("Google authentication token is not available.");let a,c;if(n==="batchUpdate")a=`https://sheets.googleapis.com/v4/spreadsheets/${e}:batchUpdate`,c=JSON.stringify(r),o="POST";else if(n==="values.update"){let{range:l,valueInputOption:d,resource:f}=r;a=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}?valueInputOption=${encodeURIComponent(d)}`,c=JSON.stringify(f),o="PUT"}else if(n==="values.append"){let{range:l,valueInputOption:d,insertDataOption:f,resource:h}=r,y=encodeURIComponent(d??"USER_ENTERED"),v=encodeURIComponent(f??"INSERT_ROWS");a=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}:append?valueInputOption=${y}&insertDataOption=${v}`,c=JSON.stringify(h),o="POST"}else if(n==="values.get"){let{range:l,...d}=r,f=new URLSearchParams(d).toString();a=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}${f?`?${f}`:""}`,c=void 0,o="GET"}else if(n==="addSheet")a=`https://sheets.googleapis.com/v4/spreadsheets/${e}:batchUpdate`,c=JSON.stringify({requests:[{addSheet:r}]}),o="POST";else if(n==="get"){let l=new URLSearchParams(r).toString();a=`https://sheets.googleapis.com/v4/spreadsheets/${e}?${l}`,c=void 0,o="GET"}else{let l=new URLSearchParams(r).toString();a=`https://sheets.googleapis.com/v4/spreadsheets/${e}?${l}`,c=void 0,o="GET"}let i=await fetch(a,{method:o,headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},...c&&{body:c}});if(!i.ok){let l=await i.json().catch(()=>({error:{message:"Unknown API error"}}));throw console.error("Google Sheets API Error:",l),new Error(l.error?.message||`API request failed with status ${i.status}`)}let u=await i.json();return n==="addSheet"?u.replies[0].addSheet:u};var an;(function(e){e.Extract="Extract",e.Crawl="Crawl",e.Infer="Infer"})(an||(an={}));var He;(function(e){e.COLUMNS="columns",e.NEWTAB="new_tab",e.CONTEXT="context_only"})(He||(He={}));var cn;(function(e){e.ROWBYROW="row_by_row",e.ALLATONCE="all_at_once"})(cn||(cn={}));var un;(function(e){e.AUTO="auto",e.REUSE_SINGLE_TAB="reuse_single_tab",e.REUSE_BY_URL="reuse_by_url",e.NEVER="never"})(un||(un={}));var ln;(function(e){e.Code="Code",e.Cron="Cron",e.Graph="Graph",e.PDFFill="PDFFill",e.ToolGenerate="ToolGenerate",e.WebPageGenerate="WebPageGenerate",e.GoogleDocGenerate="GoogleDocGenerate",e.GoogleSlidesGenerate="GoogleSlidesGenerate",e.ProcessText="ProcessText",e.CreateSheetFromData="CreateSheetFromData",e.QueryRtrvrAIDocs="QueryRtrvrAIDocs",e.EnhancePrompt="EnhancePrompt"})(ln||(ln={}));var dn;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(dn||(dn={}));var Q;(function(e){e.enhance="enhance",e.plan="plan",e.actOnTabs="actOnTabs",e.extract="extract",e.infer="infer",e.processTabWorkflows="processTabWorkflows",e.processText="processText",e.createSheetFromData="createSheetFromData",e.queryRtrvrDocs="queryRtrvrDocs",e.googleDocGenerator="googleDocGenerator",e.googleSlidesGenerator="googleSlidesGenerator",e.webpageGenerator="webpageGenerator",e.pdfFiller="pdfFiller",e.customToolGenerator="customToolGenerator",e.getPageData="getPageData",e.roverExternalPageData="roverExternalPageData"})(Q||(Q={}));var qe={plannerHistory:16,prevSteps:8,uiMessages:40,timelineEvents:60,localPersistBytes:131072,snapshotBytes:262144};var W;(function(e){e.click_element="click_element",e.type_into_element="type_into_element",e.type_and_enter="type_and_enter",e.select_dropdown_value="select_dropdown_value",e.clear_element="clear_element",e.focus_element="focus_element",e.check_field_validity="check_field_validity",e.select_text="select_text",e.hover_element="hover_element",e.right_click_element="right_click_element",e.double_click_element="double_click_element",e.press_key="press_key",e.mouse_wheel="mouse_wheel",e.dispatch_pointer_path="dispatch_pointer_path",e.drag_element="drag_element",e.drag_and_drop="drag_and_drop",e.adjust_slider="adjust_slider",e.scroll_page="scroll_page",e.scroll_to_element="scroll_to_element",e.swipe_element="swipe_element",e.long_press_element="long_press_element",e.pinch_zoom="pinch_zoom",e.go_back="go_back",e.go_forward="go_forward",e.goto_url="goto_url",e.refresh_page="refresh_page",e.open_new_tab="open_new_tab",e.switch_tab="switch_tab",e.close_tab="close_tab",e.describe_images="describe_images",e.google_search="google_search",e.network_run_recipe="network_run_recipe",e.rover_external_read_context="rover_external_read_context",e.rover_external_act_context="rover_external_act_context",e.copy_text="copy_text",e.paste_text="paste_text",e.wait_action="wait_action",e.wait_for_element="wait_for_element",e.answer_task="answer_task",e.upload_file="upload_file",e.solve_captcha="solve_captcha"})(W||(W={}));var tt=new Set(Object.values(W));var Cr=new Set([W.goto_url,W.google_search,W.go_back,W.go_forward,W.refresh_page,W.open_new_tab,W.switch_tab,W.close_tab]),kr=new Set([W.scroll_page,W.scroll_to_element,W.mouse_wheel,W.swipe_element,W.pinch_zoom,W.dispatch_pointer_path,W.hover_element,W.focus_element]),fn=600,Or=new Set(["same_tab_scheduled","same_host_navigated","subdomain_navigated","new_tab_opened","blocked","switch_tab"]);function nt(e){if(e?.())throw new DOMException("Run cancelled","AbortError")}async function pn({calls:e,bridgeRpc:t,isCancelled:n}){let r=[],o=!1,s=!1,a,c,i;for(let l of e){nt(n);let d=l.name,f=l.args||{};if(s){let I={name:d||"unknown",args:f,response:{status:"Failure",error:`Tool '${d}' skipped because navigation tool '${a}' already ran. Re-plan using new page state.`,output:void 0,allowFallback:!0}};r.push(I);continue}let h;try{nt(n),h=await t("executeTool",{call:l})}catch(I){nt(n),h={success:!1,error:I?.message||String(I),allowFallback:!0}}let y={status:h?.success?"Success":"Failure",error:h?.error,output:h?.output,allowFallback:h?.allowFallback},v={name:d||"unknown",args:f,response:y};if(r.push(v),h?.success){let I=h?.output&&typeof h.output=="object"?h.output:void 0,C=String(I?.navigationOutcome||"").trim().toLowerCase(),F=Or.has(C)?C:void 0,R=I?.navigationPending===!0,P=I?.openedInNewTab===!0,b=!!F||R||P;if(Cr.has(d)||b){s=!0,a=d,o=!1,F?c=F:P?c="new_tab_opened":d===W.switch_tab?c="switch_tab":d===W.open_new_tab?c="new_tab_opened":c="same_tab_scheduled";let k=Number(I?.logicalTabId??I?.logical_tab_id??I?.tabId??I?.tab_id??f?.logical_tab_id??f?.tab_id);Number.isFinite(k)&&k>0&&(i=k)}else kr.has(d)&&(o=!0)}fn>0&&(await new Promise(I=>setTimeout(I,fn)),nt(n))}return{results:r,disableAutoScroll:o&&!s,navigationOccurred:s,navigationTool:a,navigationOutcome:c,logicalTabId:i}}var Dr={open_url_new_tab:"open_new_tab"};async function ot(e){if(e)for(;e.current.state==="paused";)await new Promise(t=>setTimeout(t,100))}function st(e){return e.isCancelled?{state:"cancel_requested",reason:e.reason||"worker_cancelled"}:{state:"continue"}}async function at({request:e,response:t,tabId:n,prevSteps:r,thought:o,bridgeRpc:s,isCancelled:a,userFunctionDeclarations:c,onStatusUpdate:i,onPrevStepsUpdate:u}){let l=()=>{if(a?.())throw new DOMException("Run cancelled","AbortError")};l();let{functionCalls:d,modelParts:f,data:h,accTreeId:y}=t||{},v=xt(f),I=!1;if(h&&Array.isArray(h)&&h.length>0)return r.push({accTreeId:y,thought:o,modelParts:f,data:JSON.stringify(h)}),be(r),u?.(r),i?.("Data extracted successfully",o,"verify"),{needsRetry:!1,data:h};if(Array.isArray(d)&&d.length>0){let C=d.find(b=>String(b?.name||"").trim().toLowerCase()==="ask_user");if(C){let b=d.filter(M=>M&&M!==C&&typeof M.name=="string"&&M.name.trim()).map(M=>({name:String(M.name||"unknown"),args:M.args||{},response:{status:"Failure",error:"Skipped because ask_user was called. Wait for user answers before executing other tools.",allowFallback:!0,output:{status:"deferred_after_ask_user"}}})),k=Pr(C?.args?.questions_to_ask);return k.length?(r.push({accTreeId:y,thought:o,modelParts:f,functions:[{name:"ask_user",args:{questions_to_ask:k.map(M=>({key:M.key,query:M.query,...M.required===!1?{required:!1}:{}}))},response:{status:"Success",output:{status:"waiting_input",needsUserInput:!0,questions:k}}},...b]}),be(r),u?.(r),i?.("Need user clarification to continue",o,"verify"),{needsRetry:!1,needsUserInput:!0,questions:k}):(r.push({accTreeId:y,thought:o,modelParts:f,fail:"ask_user called with invalid or empty 'questions_to_ask'",functions:[{name:"ask_user",args:C?.args||{},response:{status:"Failure",error:"Missing/invalid 'questions_to_ask'",allowFallback:!1}},...b]}),be(r),u?.(r),{needsRetry:!0})}let F=[],R=[],P=[];for(let b=0;b<d.length;b++){let k=d[b],M=String(k?.name||""),$=Dr[M];if($){F.push({...k,name:$}),P.push(b);continue}k?.name&&tt.has(k.name)?(F.push(k),P.push(b)):R.push(k)}if(R.length>0){if(l(),c?.length){for(let b of R)if(!c.find(M=>M.name===b.name))return r.push({accTreeId:y,thought:o,modelParts:f,fail:`Invalid tool name "${b.name}"`,functions:R.map(M=>({name:M.name||"unknown",args:M.args||{},response:{status:"Failure",error:"Invalid tool"}}))}),be(r),u?.(r),{needsRetry:!0}}return i?.(`Requesting external functions: ${R.map(b=>b.name).join(", ")}`,o,"execute"),be(r),u?.(r),{needsRetry:!1,functionCalls:R}}if(F.length>0){l(),i?.(`Executing browser actions: ${F.map(p=>p.name).join(", ")}`,o,"execute"),r.push({accTreeId:y,thought:o,modelParts:f,functions:F.map((p,m)=>{let T=v[P[m]];return{name:p.name||"unknown",args:T?rt({...p.args||{}},T):p.args||{},response:{status:"Pending execution"}}})}),be(r),u?.(r);let b=r.length-1,{results:k,disableAutoScroll:M,navigationOccurred:$,navigationTool:x,navigationOutcome:L,logicalTabId:E}=await pn({calls:F,bridgeRpc:s,isCancelled:a});if(I=M,l(),b>=0&&b<r.length){r[b].functions=k.map((m,T)=>{let g=v[P[T]];return g?{...m,args:rt({...m.args},g)}:m});let p=k.filter(m=>m.response.status==="Failure").length;p>0&&(r[b].fail=`${p} tool(s) failed.`)}if(L==="blocked"){let p=k.find(g=>g.response?.output&&typeof g.response.output=="object"&&g.response.output.navigationOutcome==="blocked")?.response?.output,m=p&&typeof p=="object"?String(p.blockedDomain||""):"",T=p&&typeof p=="object"?String(p.agentInstruction||""):"";r.push({thought:`[System] Navigation was blocked${m?` to ${m}`:""}. ${T||"Acknowledge to user and proceed with next step."}`,functions:[{name:"_system_observation",args:{type:"navigation_blocked",blockedDomain:m},response:{status:"Success",output:{observation:"navigation_blocked",blockedDomain:m,instruction:T}}}]})}return be(r),u?.(r),{needsRetry:!1,disableAutoScroll:I,navigationOccurred:$,navigationTool:x,navigationOutcome:L,logicalTabId:E}}}return r.push({accTreeId:y,thought:o,modelParts:f,fail:"Empty or unusable response"}),be(r),u?.(r),{needsRetry:!0}}function Pr(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r of e){if(!r||typeof r!="object")continue;let o=String(r.key||"").trim(),s=Mr(r);if(!o||!s||n.has(o))continue;n.add(o);let a=typeof r.required=="boolean",c=typeof r.optional=="boolean",i=a?!!r.required:c?!r.optional:!0;t.push({key:o,query:s,...typeof r.question=="string"&&r.question.trim()?{question:String(r.question).trim()}:{},...typeof r.id=="string"&&r.id.trim()?{id:String(r.id).trim()}:{},...Array.isArray(r.choices)?{choices:r.choices}:{},required:i})}return t.slice(0,6)}function Mr(e){if(!e||typeof e!="object")return"";let t=String(e.query||e.question||"").trim();return t||""}function be(e){if(e.length<=It)return;let t=It-1,n=e[0],r=e.slice(-t);e.length=0,e.push(n,...r)}function it(e,t=3){if(t<1||e.length===0)return;let n=-1;for(let s=0;s<e.length;s++)if(e[s].accTreeId!==void 0){n=s;break}if(n===-1)return;let r=Math.max(0,t-1),o=0;for(let s=e.length-1;s>=0;s--)if(e[s].accTreeId!==void 0){if(s===n)continue;o<r?o++:delete e[s].accTreeId}}var gn=["tab_id","source_tab_id","source_tab_ids"];function xt(e){return Array.isArray(e)?e.filter(t=>t?.functionCall).map(t=>t.functionCall.args||{}):[]}function rt(e,t){for(let n of gn)n in t&&(e[n]=t[n]);if(delete e._tab_id_mapping_error,Array.isArray(e.tool_calls)&&Array.isArray(t.tool_calls))for(let n=0;n<e.tool_calls.length&&n<t.tool_calls.length;n++){let r=e.tool_calls[n]?.tool_args,o=t.tool_calls[n]?.tool_args;if(!(!r||!o)){for(let s of gn)s in o&&(r[s]=o[s]);delete r._tab_id_mapping_error}}return e}function mn(e,t){let n=[];for(let r of t){let o=r.name||"unknown",s=r.callId??o,a=e[s]??e[o];n.push({functions:[{name:o,args:r.args||{},response:{status:a?.success?"Success":"Failure",error:a?.error?.message||a?.error,output:a?.result}}]})}return n}function ye(e){let t=new Set,n=[];for(let r of e){let o=Number(r);!Number.isFinite(o)||o<=0||t.has(o)||(t.add(o),n.push(o))}return n}function hn(e,t){return e==="external_scraped"||e==="external_placeholder"||e==="live_dom"?e:t?"external_placeholder":"live_dom"}function Nr(e){return e.map(t=>({id:Number(t?.id),url:typeof t?.url=="string"?t.url:void 0,title:typeof t?.title=="string"?t.title:void 0,external:!!t?.external,accessMode:hn(t?.accessMode,!!t?.external),inaccessibleReason:typeof t?.inaccessibleReason=="string"?t.inaccessibleReason:void 0})).filter(t=>Number.isFinite(t.id)&&t.id>0)}function Ur(e){return Array.isArray(e)?e.map(t=>{let n=Number(t?.logicalTabId||t?.id);if(!Number.isFinite(n)||n<=0)return;let r=!!t?.external;return{id:n,runtimeId:typeof t?.runtimeId=="string"?t.runtimeId:void 0,url:typeof t?.url=="string"?t.url:void 0,title:typeof t?.title=="string"?t.title:void 0,external:r,accessMode:hn(t?.accessMode,r),inaccessibleReason:typeof t?.inaccessibleReason=="string"?t.inaccessibleReason:void 0,updatedAt:Number(t?.updatedAt)||0}}).filter(t=>!!t):[]}function At(e,t,n){let r=ye(e);if(!r.length)return[];let s=r.includes(t)?t:r[0];return[s,...r.filter(c=>c!==s)].slice(0,n)}function Lr(e,t){if(!t.length)return ye(e);let n=new Set(t);return ye(e).filter(r=>n.has(r))}async function le(e,t,n){let r=Math.max(1,Number(n?.maxContextTabs)||8),o=Math.max(5e3,Number(n?.detachedExternalTabMaxAgeMs)||9e4),s=Math.max(1e4,Number(n?.staleRuntimeTabMaxAgeMs)||45e3),a=ye(n?.scopedTabIds||[]),c=a.length>0,i=[...a],u=new Set(i),l=Nr(t),d=ye((a.length>0?l.filter(x=>a.includes(x.id)):l).map(x=>x.id)),f=[...d],h=[],y=[],v=x=>c?u.has(x):!0;if(e)try{let x=await e("listSessionTabs");h=Ur(Array.isArray(x)?x:[]),y=ye(h.map(L=>L.id)),y.length>0?f=c?Lr(y,i):y:c&&(f=[...i])}catch{}c&&(f=ye(f).filter(x=>v(x)),!f.length&&i.length&&(f=[...i]));let I=Number(n?.seedTabId)>0?Number(n?.seedTabId):f[0]||d[0]||1;if(e)try{let x=await e("getTabContext"),L=Number(x?.activeLogicalTabId||x?.logicalTabId||x?.id);Number.isFinite(L)&&L>0&&v(L)&&(I=L)}catch{}c&&!v(I)&&i.length>0&&(I=i[0]);let C=Date.now(),F=new Map;for(let x of h)F.set(x.id,x);let R=h.filter(x=>!!x.runtimeId&&C-(x.updatedAt||0)<=s).map(x=>x.id);if(R.length>0&&!R.includes(I)){let x=[...R].sort((L,E)=>Number(F.get(E)?.updatedAt||0)-Number(F.get(L)?.updatedAt||0))[0];Number.isFinite(x)&&x>0&&v(x)&&(I=x)}f.length?f.includes(I)||(c?f=i.length>0?[...i]:f:h.length>0?I=f[0]:f=[I,...f]):f=c?i.length>0?[...i]:[I]:[I];let P=c?[...i]:h.length>0?ye(h.map(x=>x.id)):[...f],b=P.filter(x=>{if(x===I)return!0;let L=F.get(x);return L?L.runtimeId?C-(L.updatedAt||0)<=s:L.external?C-(L.updatedAt||0)<=o:C-(L.updatedAt||0)<=s:c}),k=c?At(i,I,r):[...new Set(b.length?b:P.length?P:f)];c||(k.includes(I)?k=[I,...k.filter(x=>x!==I)]:k=[I,...k],k=k.slice(0,r)),k.length||(k=c?i.length>0?At(i,I||i[0],r):[I||1]:[I||1]);let M={};for(let x of l)M[x.id]=x;for(let x of h)M[x.id]={...M[x.id]||{},...x};for(let x of i)M[x]||(M[x]={id:x,accessMode:"live_dom",inaccessibleReason:"detached_runtime_placeholder"});for(let x of k)M[x]||(M[x]={id:x,accessMode:"live_dom",inaccessibleReason:"detached_runtime_placeholder"});let $={hasExplicitScope:c,scopedTabIdsInput:a,listedTabIds:y,keptScopedTabIds:i,resolvedTabOrder:k};if(c){i.length&&!u.has(I)&&(I=i[0]),k=At(i,I,r);let x={};for(let L of i)x[L]=M[L]||{id:L};return n?.onDiagnostics?.({...$,resolvedTabOrder:k}),{tabOrder:k,activeTabId:I,tabMetaById:x}}return n?.onDiagnostics?.($),{tabOrder:k,activeTabId:I,tabMetaById:M}}function _n(e,t){let n=String(t||"").trim();return n||String(e||"").trim()}var Tn=3;function vt(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let o=Number(r);!Number.isFinite(o)||o<=0||t.has(o)||(t.add(o),n.push(o))}return n}async function bn(e){let{tabOrder:t,scopedTabIds:n,seedTabId:r,onScopedTabIdsTouched:o,userInput:s,schema:a,previousSteps:c=[],plannerPrevSteps:i=[],files:u=[],chatLog:l=[],recordingContext:d,trajectoryId:f,onStatusUpdate:h,functionDeclarations:y,bridgeRpc:v,ctx:I,onPrevStepsUpdate:C}=e,F=_n(s,I.rootUserInput);if(!t?.length)return{error:"No tabs available for processing",warnings:["No active tab found"]};let R=0,P=[],b=Array.isArray(c)?c:[],k=t.map(E=>({id:E})),M=vt(n||[]);Number(r)>0&&!M.includes(Number(r))&&M.unshift(Number(r));let $=E=>{let p=vt(E);if(!p.length)return;let m=vt([...M,...p]);m.length===M.length&&m.every((T,g)=>T===M[g])||(M=m,o?.(m))},x=0,L;for(;x<Tn;){if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};try{if(await ot(void 0),I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};h?.("Analyzing page content...","Calling seek workflow","analyze");let{tabOrder:E,activeTabId:p}=await le(v,k,{scopedTabIds:M,seedTabId:r});if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};let m=E.length?E:t,T={};try{T[p]=await I.getPageData(p,{...L||{},__roverAllowExternalFetch:!0,__roverExternalIntent:"auto",__roverExternalMessage:F||s})}catch{x++;continue}let g=m.filter(O=>O!==p),_=await Promise.all(g.map(async O=>{try{let U=await I.getPageData(O);return{tabId:O,pageData:U}}catch{return{tabId:O,pageData:void 0}}}));if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};for(let O of _)O.pageData?T[O.tabId]=O.pageData:P.push(`Could not load page data for tab ${O.tabId}; continuing with remaining tabs.`);if(!T[p]){x++;continue}let A={siteId:I.siteId,customTabWorkflow:"Seek",webPageMap:T,tabOrder:m,activeTabId:p,userInput:F||s,dataJsonSchema:a,files:u,recordingContext:d,agentLog:{prevSteps:b,chatLog:l},plannerPrevSteps:i,llmIntegration:I.llmIntegration,apiMode:I.apiMode,apiToolsConfig:I.apiToolsConfig,functionDeclarations:y,authToken:void 0,timestamp:I.userTimestamp,trajectoryId:f,userProfile:I.userProfile,stop:st({isCancelled:!!I.isCancelled?.()})},w=await I.callExtensionRouter(Q.processTabWorkflows,A);if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};if(!w?.success)return{error:w?.error||"Failed to process tab workflows",errorDetails:w?.errorDetails||void 0,creditsUsed:R};let D=w.data;R+=D?.creditsUsed||0;let S=D?.tabResponses?.[p];if(!S){x++;continue}if(S?.warnings?.length&&P.push(...S.warnings),S?.stopState&&S.stopState!=="continue")return{error:String(S.stopReason||S.error||"").trim()||`Execution stopped (${S.stopState})`,prevSteps:b,creditsUsed:R,warnings:P};if(S?.error){x++;continue}let G=await at({request:A,response:S,tabId:p,prevSteps:b,thought:S.thought,bridgeRpc:v,isCancelled:I.isCancelled,userFunctionDeclarations:y,onStatusUpdate:h,onPrevStepsUpdate:C});if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};if(G.needsRetry){L=G.disableAutoScroll?{disableAutoScroll:!0}:void 0,x++;continue}if(G.navigationOccurred){let O=G.navigationOutcome,U=Number(G.logicalTabId);if(Number.isFinite(U)&&U>0&&$([U]),(O==="new_tab_opened"||O==="switch_tab")&&Number.isFinite(U)&&U>0)try{await v("executeTool",{call:{name:"switch_tab",args:{logical_tab_id:U,tab_id:U}},payload:{reason:"act_loop_navigation_continue"}})}catch{}L=G.disableAutoScroll?{disableAutoScroll:!0}:void 0;continue}if(G.data)return it(b),C?.(b),{data:G.data,prevSteps:b,creditsUsed:R,warnings:P};if(G.needsUserInput&&Array.isArray(G.questions)&&G.questions.length>0)return it(b),C?.(b),{prevSteps:b,creditsUsed:R,warnings:P,needsUserInput:!0,questions:G.questions};if(G.functionCalls?.length){let O=G.functionCalls.map((H,q)=>({...H,callId:`${H.name||"fn"}:${q}`})),U={};for(let H of O){if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};try{let q=await v("executeClientTool",{name:H.name,args:H.args});if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};U[H.callId]={success:!0,result:q}}catch(q){if(I.isCancelled?.())return{error:"Run cancelled",prevSteps:b,creditsUsed:R};U[H.callId]={success:!1,error:{message:q?.message||String(q)}}}}b.push(...mn(U,O)),it(b),C?.(b)}L=G.disableAutoScroll?{disableAutoScroll:!0}:void 0}catch(E){if(E?.name==="AbortError")return{error:"Run cancelled",prevSteps:b,creditsUsed:R};if(x++,x>=Tn)return{error:E?.message||"Agentic seek failed",errorDetails:E?.roverError||void 0,prevSteps:b,creditsUsed:R};await new Promise(p=>setTimeout(p,500*x))}}return{error:"Max retries reached",prevSteps:b,creditsUsed:R,warnings:P}}var Fr=3;function Ct(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let o=Number(r);!Number.isFinite(o)||o<=0||t.has(o)||(t.add(o),n.push(o))}return n}async function ct(e){let{tabOrder:t,scopedTabIds:n,seedTabId:r,onScopedTabIdsTouched:o,userInput:s,schema:a,outputDestination:c,trajectoryId:i,recordingContext:u,plannerPrevSteps:l=[],files:d=[],onStatusUpdate:f,schemaHeaderSheetInfo:h,returnDataOnly:y,previousSteps:v=[],bridgeRpc:I,ctx:C,onPrevStepsUpdate:F}=e;if(!t?.length)return{error:"No tabs available for extraction",warnings:["No active tab found"]};let R=0,P=[],b=t.map(L=>({id:L})),k=Ct(n||[]);Number(r)>0&&!k.includes(Number(r))&&k.unshift(Number(r));let M=L=>{let E=Ct(L);if(!E.length)return;let p=Ct([...k,...E]);p.length===k.length&&p.every((m,T)=>m===k[T])||(k=p,o?.(p))},$=Array.isArray(v)?v:[],x;for(let L=0;L<Fr;L++){if(await ot(void 0),C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P};let{activeTabId:E}=await le(I,b,{scopedTabIds:k,seedTabId:r});if(C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P};let p=E,m;try{m=await C.getPageData(p,x)}catch{P.push(`Could not load page data for tab ${p}; retrying.`);continue}let T={siteId:C.siteId,userInput:s,schema:a,outputDestination:c,schemaHeaderSheetInfo:h,webPageMap:{[E]:m},tabOrder:[E],plannerPrevSteps:l,llmIntegration:C.llmIntegration,apiMode:C.apiMode,apiToolsConfig:C.apiToolsConfig,authToken:void 0,timestamp:C.userTimestamp,trajectoryId:i,userProfile:C.userProfile,recordingContext:u,files:d,returnDataOnly:y,stop:st({isCancelled:!!C.isCancelled?.()})};f?.("Extracting data...","Calling extract sub-agent","execute");let g=await C.callExtensionRouter(Q.extract,T);if(C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P};if(!g?.success)return{error:g?.error||"Extract request failed",creditsUsed:R};let _=g.data;if(R+=_?.creditsUsed||0,_?.warnings?.length&&P.push(..._.warnings),_?.data&&Array.isArray(_.data))return{data:_.data,schemaHeaderSheetInfo:_.schemaHeaderSheetInfo,prevSteps:$,creditsUsed:R,warnings:P};let A=_?.tabResponses?.[E];if(A){if(A?.stopState&&A.stopState!=="continue")return{error:String(A.stopReason||A.error||"").trim()||`Execution stopped (${A.stopState})`,prevSteps:$,creditsUsed:R,warnings:P};let w=await at({request:T,response:A,tabId:E,prevSteps:$,thought:A.thought,bridgeRpc:I,isCancelled:C.isCancelled,onPrevStepsUpdate:F});if(C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P};if(w.needsRetry){x=w.disableAutoScroll?{disableAutoScroll:!0}:void 0;continue}if(w.navigationOccurred){let D=Number(w.logicalTabId);Number.isFinite(D)&&D>0&&M([D])}if(x=w.disableAutoScroll?{disableAutoScroll:!0}:void 0,w.data)return{data:w.data,schemaHeaderSheetInfo:_.schemaHeaderSheetInfo,prevSteps:$,creditsUsed:R,warnings:P};if(w.functionCalls?.length)for(let D of w.functionCalls){if(C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P};try{if(await I("executeClientTool",{name:D.name,args:D.args}),C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P}}catch{if(C.isCancelled?.())return{error:"Run cancelled",prevSteps:$,creditsUsed:R,warnings:P}}}}}return{error:"Extract failed after retries",prevSteps:$,creditsUsed:R,warnings:P}}async function yn(e){let t=await ct({tabOrder:e.tabOrder,userInput:e.userInput,schema:e.schema,trajectoryId:e.trajectoryId,recordingContext:e.recordingContext,plannerPrevSteps:e.plannerPrevSteps,previousSteps:e.previousSteps,files:e.files,onStatusUpdate:e.onStatusUpdate,returnDataOnly:e.returnDataOnly,bridgeRpc:e.bridgeRpc,ctx:e.ctx,onPrevStepsUpdate:e.onPrevStepsUpdate}),n=t.warnings?[...t.warnings]:[];return n.push("Crawl workflow is limited in embed context; processed current page only."),{data:t.data,schemaHeaderSheetInfo:t.schemaHeaderSheetInfo,prevSteps:t.prevSteps,error:t.error,warnings:n,creditsUsed:t.creditsUsed}}var Gr=/history\.step\[\s*(\d+)\s*\]\.sheet\[\s*(\d+)\s*\](?:\.tab\[(.*?)\])?/i;function je(e,t){if(!e||!t?.length)return;let n=e.match(Gr);if(!n)return;let r=parseInt(n[1],10),o=parseInt(n[2],10),s=n[3];if(!r||r<1||r>t.length)return;let a=t[r-1],c=a?.schemaHeaderSheetInfo?.[o]?.sheetInfo||a?.schemaHeaderSheetInfo?.[0]?.sheetInfo;if(!c)return;let i={...c};if(s){let u=s.trim();if(/^['"].*['"]$/.test(u)){let l=u.slice(1,-1),d=c.sheetTabs?.find(f=>String(f.title).toLowerCase()===l.toLowerCase());d&&(i.sheetTab=d.title,i.sheetTabId=d.id)}else{let l=parseInt(u,10);if(!Number.isNaN(l)){let d=c.sheetTabs?.[l]||c.sheetTabs?.[l-1];d&&(i.sheetTab=d.title,i.sheetTabId=d.id)}}}return i}function Ae(e,t){let n=e||{},r=n.existing_sheet_from_history||n.existingSheetFromHistory||n.existing_sheet_id||n.existingSheetId,o;typeof r=="string"?(o=je(r,t),!o&&r.trim()&&(o={sheetId:r.trim(),sheetTab:n.existingTabTitle||n.existing_tab_title||"Data"})):r&&typeof r=="object"&&(o=r);let s=n.new_sheet_title||n.newSheetTitle,a=n.new_tab_title||n.newTabTitle,c=n.existing_tab_title||n.existingTabTitle;return o?.sheetId&&ge(o.sheetId)?{sheetId:o.sheetId,sheetTitle:o.sheetTitle||s,tabTitle:c||o.sheetTab||a||"Data",mergeHeaders:!0}:{sheetId:void 0,sheetTitle:s,tabTitle:a||c,mergeHeaders:!1}}function We(e,t){if(e?.properties&&typeof e.properties=="object")return Object.keys(e.properties);let n=new Set;if(Array.isArray(t))for(let r of t)r&&typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).forEach(o=>n.add(o));return n.size?[...n]:[]}function $r(e,t){return t.map(n=>e.map(r=>n?.[r]??""))}function ut(e){let{store:t,target:n,headers:r,objects:o,schema:s}=e,a=t.getOrCreateSheet(n.sheetId,n.sheetTitle),c=n.tabTitle||"Data",i=t.ensureTab(a.id,c,{createIfMissing:!0});i.headerRow.length&&n.mergeHeaders?t.mergeHeaderRow(a.id,i.index,r):t.setHeaderRow(a.id,i.index,r),s&&t.setSchema(a.id,i.index,s,{preserveHeader:!0});let u=t.getTab(a.id,i.index).headerRow,l=$r(u,o);return t.appendRows(a.id,i.index,l,{alignToHeader:!0}),{sheetInfo:t.toSheetInfo(a.id,i.index),headerRow:u}}function Sn(e){let{store:t,target:n,headers:r,rows:o,schema:s}=e,a=t.getOrCreateSheet(n.sheetId,n.sheetTitle),c=n.tabTitle||"Data",i=t.ensureTab(a.id,c,{createIfMissing:!0});return i.headerRow.length&&n.mergeHeaders?t.mergeHeaderRow(a.id,i.index,r):t.setHeaderRow(a.id,i.index,r),s&&t.setSchema(a.id,i.index,s,{preserveHeader:!0}),t.appendRows(a.id,i.index,o,{alignToHeader:!0}),{sheetInfo:t.toSheetInfo(a.id,i.index),headerRow:t.getTab(a.id,i.index).headerRow}}function Se(e,t){let n=t.sheetTabId??0,r=e.toAny2D(t.sheetId,n,!0);return{...t,sheetData:r,kind:"memory"}}async function wn(e){let{workflow:t,userInput:n,trajectoryId:r,plannerPrevSteps:o,agentLog:s,files:a,onStatusUpdate:c,ctx:i,bridgeRpc:u,driveAuthToken:l}=e,d=()=>{if(i.isCancelled?.())throw new DOMException("Run cancelled","AbortError")};try{d();let f=t.sourceSheetFromHistory?je(t.sourceSheetFromHistory,o):void 0,h=f?.sheetId||t.sheetId,y=f?.sheetTab||t.sheetTabTitle,v=f?.sheetTabId||t.sheetTabId;if(!h)return{error:"sheets_workflow requires sheetId in workflow."};let I=i.apiMode||!l||ge(h),C=async()=>l||"",F=[],R=[];if(I){let g=i.tabularStore,_=v!==void 0?g.getTabByIndex(h,v):y?g.getTabByTitle(h,y):g.getTab(h,0);if(!_)return{error:"Memory sheet tab not found for workflow."};y=_.title,v=_.index,F=g.toAny2D(h,_.index,!0),R=g.listTabs(h).map(A=>({id:A.index,title:A.title}))}else{if(R=(await on(h,C)).sheetTabs,!y&&typeof v=="number"&&(y=R.find(_=>_.id===v)?.title),y||(y=R[0]?.title),!y)return{error:"Could not resolve sheet tab title for workflow."};d(),c?.("Loading sheet rows...",y,"analyze"),F=await sn(h,y,C)||[]}if(!F.length)return{error:"Sheet is empty or inaccessible."};let P=F.map(g=>(g||[]).map(_=>qr(_))),b=t.isFirstRowHeader?P[0]:null,k=t.isFirstRowHeader?P.slice(1):P.slice(),M=b&&b.length?b:jr(P),$=zr(t,M),x=Kr(t,M),L=Math.max(0,(t.startRowIndex??1)-1-(t.isFirstRowHeader?1:0)),E=t.endRowIndex?Math.min(k.length,t.endRowIndex-(t.isFirstRowHeader?1:0)):k.length,p=[],m=[],T={};for(let g=L;g<E;g++){d();let _=k[g]||[],A=Wr(M,_),w=Br(M,_,x),D={input_value:_[$]??"",row_number:g+1+(t.isFirstRowHeader?1:0),row_data:A,context:w},S={},G=[];for(let O of t.workflowSteps){d();let U=O.stepName||O.tool,H=kt(O.userInputTemplate||n,D,S);if(O.tabManagement?.urlTemplate){let De=kt(O.tabManagement.urlTemplate,D,S);De&&(d(),await u("executeTool",{call:{name:"goto_url",args:{tab_id:0,url:De}}}))}let q=O.toolArgs?Ot(O.toolArgs,D,S):void 0,K=await Hr({step:O,userInput:H,trajectoryId:r,plannerPrevSteps:o,agentLog:s,files:a,onStatusUpdate:c,ctx:i,bridgeRpc:u,driveAuthToken:l,toolArgs:q});if(S[U]=K,d(),O.outputMapping===He.CONTEXT)continue;if(O.outputMapping===He.NEWTAB){T[U]||(T[U]=[]),T[U].push(Vr(K));continue}let Te=U||O.tool;p.includes(Te)||p.push(Te),G.push(Be(K))}m.push(G)}if(I){d();let g=i.tabularStore,_=v!==void 0?g.getTab(h,v):g.getTabByTitle(h,y)||g.getTab(h,0);if(p.length){g.mergeHeaderRow(h,_.index,p);for(let D=0;D<m.length;D++){let S=L+D,G={};p.forEach((O,U)=>{G[O]=m[D]?.[U]??""}),g.upsertColumnsByHeader(h,_.index,S,G)}}for(let[D,S]of Object.entries(T)){let G=In(D),O=En(S);g.publishNewTab(h,G,O,S,{})}let A=Se(g,g.toSheetInfo(h,_.index)),w=g.getTab(h,_.index).headerRow;return{output:{sheetId:h,sheetTabTitle:y,rowsProcessed:Math.max(0,E-L),outputColumns:p,newTabs:Object.keys(T)},schemaHeaderSheetInfo:[{headingInfo:{schema:{},headings:w,title:y},sheetInfo:A,headerRow:w}]}}p.length&&(d(),await Xr({sheetId:h,sheetTabTitle:y,header:M,outputHeaders:p,outputRows:m,startRowIndex:t.isFirstRowHeader?2:1,getAuthToken:C}));for(let[g,_]of Object.entries(T)){d();let A=In(g),w=await Yr(h,A,C),D=En(_);await Qr({sheetId:h,sheetTabTitle:w,values:[D,..._],getAuthToken:C})}return{output:{sheetId:h,sheetTabTitle:y,rowsProcessed:Math.max(0,E-L),outputColumns:p,newTabs:Object.keys(T)},schemaHeaderSheetInfo:[{headingInfo:{schema:{},headings:[...M,...p],title:y},sheetInfo:{sheetId:h,sheetTab:y,sheetTabId:v,sheetTabs:R},headerRow:[...M,...p]}]}}catch(f){return{error:f?.message||String(f)}}}async function Hr({step:e,userInput:t,trajectoryId:n,plannerPrevSteps:r,agentLog:o,files:s,onStatusUpdate:a,ctx:c,bridgeRpc:i,driveAuthToken:u,toolArgs:l}){if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");let d=e.tool;if(d===N.PROCESS_TEXT){let f=await Ie({toolName:d,toolArgs:{textInputs:e.textInputs||[],taskInstruction:e.taskInstruction||t,schema:e.schema},userInput:t,tabs:[{id:1}],trajectoryId:n,plannerPrevSteps:r,agentLog:o,files:s,onStatusUpdate:a,ctx:c,bridgeRpc:i,driveAuthToken:u});return o&&Array.isArray(f.prevSteps)&&f.prevSteps.length>0&&(o.prevSteps=f.prevSteps),f.output??f}if(d===N.ACT||d===N.EXTRACT||d===N.CRAWL){let f=await Ie({toolName:d,toolArgs:{user_input:t,schema:e.schema,followLinks:e.followLinks,maxPages:e.maxPages},userInput:t,tabs:[{id:1}],trajectoryId:n,plannerPrevSteps:r,agentLog:o,files:s,onStatusUpdate:a,ctx:c,bridgeRpc:i,driveAuthToken:u});return o&&Array.isArray(f.prevSteps)&&f.prevSteps.length>0&&(o.prevSteps=f.prevSteps),f.output??f}if(l||e.toolArgs||typeof d=="string"){if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");let f=await i("executeClientTool",{name:d,args:l||e.toolArgs||{}});if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");return f}return{error:`Unsupported step tool: ${d}`}}function qr(e){return e&&typeof e=="object"&&"v"in e?e.v:e??""}function jr(e){let t=e.reduce((r,o)=>Math.max(r,o.length),0),n=[];for(let r=0;r<t;r++)n.push(`Column ${r+1}`);return n}function Wr(e,t){let n={};return e.forEach((r,o)=>{n[r]=t[o]}),n}function Br(e,t,n){let r={};for(let o of n){let s=e[o]||`Column ${o+1}`;r[s]=t[o]}return r}function zr(e,t){if(e.inputColumnHeader){let n=t.findIndex(r=>r===e.inputColumnHeader);if(n>=0)return n}return typeof e.inputColumnOrdinalPosition=="number"?Math.max(0,e.inputColumnOrdinalPosition-1):0}function Kr(e,t){let n=[];if(e.contextColumnHeaders?.length)for(let r of e.contextColumnHeaders){let o=t.findIndex(s=>s===r);o>=0&&n.push(o)}if(e.contextColumnOrdinals?.length)for(let r of e.contextColumnOrdinals){let o=Math.max(0,r-1);n.includes(o)||n.push(o)}return n}function Be(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function Vr(e){return Array.isArray(e)?e.length&&typeof e[0]=="object"&&!Array.isArray(e[0])?e.map(t=>Be(t)):e.map(t=>Be(t)):e&&typeof e=="object"?[Be(e)]:[Be(e)]}async function Xr({sheetId:e,sheetTabTitle:t,header:n,outputHeaders:r,outputRows:o,startRowIndex:s,getAuthToken:a}){let c=n.length+1,i=c+r.length-1,u=`${t}!${ze(c)}1:${ze(i)}1`;if(await $e(e,a,"values.update",{range:u,valueInputOption:"RAW",resource:{values:[r]}},"PUT"),!o.length)return;let l=s+o.length-1,d=`${t}!${ze(c)}${s}:${ze(i)}${l}`;await $e(e,a,"values.update",{range:d,valueInputOption:"RAW",resource:{values:o}},"PUT")}async function Yr(e,t,n){return await $e(e,n,"addSheet",{properties:{title:t}},"POST"),t}async function Qr({sheetId:e,sheetTabTitle:t,values:n,getAuthToken:r}){let o=Math.max(1,n.reduce((c,i)=>Math.max(c,i.length),0)),s=n.length,a=`${t}!A1:${ze(o)}${s}`;await $e(e,r,"values.update",{range:a,valueInputOption:"RAW",resource:{values:n}},"PUT")}function ze(e){let t=e,n="";for(;t>0;){let r=(t-1)%26;n=String.fromCharCode(65+r)+n,t=Math.floor((t-r)/26)}return n}function In(e){let t=e.replace(/[^a-zA-Z0-9 _-]/g,"").trim();return(t.length>80?t.slice(0,80):t)||`Rover-${Math.random().toString(36).slice(2,6)}`}function En(e){if(!e.length)return["result"];let t=e.reduce((r,o)=>Math.max(r,o.length),0);if(t<=1)return["result"];let n=[];for(let r=0;r<t;r++)n.push(`value_${r+1}`);return n}function kt(e,t,n){if(!e)return"";let r=/\{\{\s*([^}]+)\s*\}\}/g;return e.replace(r,(o,s)=>{let a=String(s).trim(),[c,...i]=Jr(a),u;switch(c){case"input_value":u=t.input_value;break;case"row_number":u=t.row_number;break;case"row_data":u=t.row_data;break;case"context":u=t.context;break;case"step":u=n;break;default:u=t}let l=Zr(u,i.join("."));if(l==null)return"";if(typeof l=="string")return l;try{return JSON.stringify(l)}catch{return String(l)}})}function Ot(e,t,n){if(e==null)return e;if(typeof e=="string")return kt(e,t,n);if(Array.isArray(e))return e.map(r=>Ot(r,t,n));if(typeof e=="object"){let r={};for(let[o,s]of Object.entries(e))r[o]=Ot(s,t,n);return r}return e}function Jr(e){return e.replace(/\["([^"]+)"\]/g,".$1").replace(/\['([^']+)'\]/g,".$1").split(".").filter(Boolean)}function Zr(e,t){if(!t)return e;let n=t.split(".").filter(Boolean),r=e;for(let o of n){if(r==null)return;r=r[o]}return r}var Dt=12;function Rn(e,t){return{error:t,warnings:[t],output:[{tool:e,status:"unsupported_in_embed",message:t}]}}function dt(e){let t=e.code||"UNKNOWN_ERROR",n=e.message||"Operation failed",r=Array.isArray(e.missing)?e.missing:[],o=!!e.retryable;return{success:!1,error:{code:t,message:n,missing:r,next_action:e.next_action,retryable:o,requires_api_key:!!e.requires_api_key},missing:r,next_action:e.next_action,retryable:o}}function eo(e){let t=Array.isArray(e?.prevSteps)?e.prevSteps:[],n=i=>String(i||"").replace(/\s+/g," ").trim(),r=Array.isArray(e?.chatLog)?e.chatLog.map(i=>({role:i?.role==="user"?"user":"model",message:typeof i?.message=="string"?n(i.message):""})).filter(i=>!!i.message):[],o=[];for(let i of r){let u=o[o.length-1];u&&u.role===i.role&&u.message===i.message||o.push(i)}let s=o.slice(-Dt),a=new Set,c=[];for(let i=s.length-1;i>=0;i-=1){let u=s[i],l=`${u.role}::${u.message.toLowerCase()}`;a.has(l)||(a.add(l),c.push(u))}return s=c.reverse(),s.length>Dt&&(s=s.slice(-Dt)),{prevSteps:t,chatLog:s}}function Ee(e){if(!e?.isCancelled)return!1;try{return!!e.isCancelled()}catch{return!1}}function xn(e){if(Ee(e))throw new DOMException("Run cancelled","AbortError")}function lt(){return{error:"Run cancelled"}}async function to(e){let t=e.bridgeRpc;if(!t)return{error:`Bridge RPC unavailable for ${e.toolName}`};let n=String(e.toolArgs?.message||e.toolArgs?.user_input||e.toolArgs?.task_instruction||e.userInput||"").trim();e.onStatusUpdate?.(e.toolName===N.ROVER_EXTERNAL_ACT_CONTEXT?"Fetching external action context...":"Fetching external context...",`Calling ${e.toolName}`,"execute");let r=await t("executeTool",{call:{name:e.toolName,args:{...e.toolArgs,...n?{message:n}:{}}}});if(!(r?.success===!0)){let s=String(r?.output?.error?.message||r?.error||`${e.toolName} failed`);return{error:s,output:r?.output,warnings:s?[s]:void 0}}return{output:r?.output,warnings:Array.isArray(r?.output?.warnings)?r.output.warnings:void 0}}async function me(e,t,n){xn(e);let r=await e.callExtensionRouter(t,n);return xn(e),r}async function Ie(e){let{toolName:t,toolArgs:n,userInput:r,tabs:o,scopedTabIds:s,seedTabId:a,getScopedTabRuntimeContext:c,onScopedTabIdsTouched:i,trajectoryId:u,plannerPrevSteps:l,files:d,onStatusUpdate:f,recordingContext:h,toolFunctions:y,bridgeRpc:v,ctx:I,functionDeclarations:C,driveAuthToken:F,agentLog:R,onPrevStepsUpdate:P}=e,b=I;if(!b)return{error:"Agent context unavailable"};if(Ee(b))return lt();let k=Array.isArray(o)&&o.length?o:[{id:1}],M=c?.()||{},$=M.scopedTabIds??s,x=M.seedTabId??a,L=Array.isArray($)&&$.length?Array.from(new Set($.map(g=>Number(g)).filter(g=>Number.isFinite(g)&&g>0))):Array.from(new Set(k.map(g=>Number(g?.id)).filter(g=>Number.isFinite(g)&&g>0))),E=Number(x)>0?Number(x):L[0],p=await le(v,k,{scopedTabIds:L,seedTabId:E});if(Ee(b))return lt();let m=p.tabOrder.length?p.tabOrder:k.map(g=>g.id),T=eo(R);try{switch(t){case N.ACT:{let g=n?.user_input||n?.prompt||n?.task_instruction||r,_=await bn({tabOrder:m,scopedTabIds:L,seedTabId:E,onScopedTabIdsTouched:i,userInput:g,schema:n?.schema,previousSteps:T.prevSteps,plannerPrevSteps:l,files:d,chatLog:T.chatLog,recordingContext:h,trajectoryId:u,onStatusUpdate:f,functionDeclarations:C,bridgeRpc:v,ctx:b,onPrevStepsUpdate:P}),A=_.data??(_.needsUserInput?{status:"waiting_input",needsUserInput:!0,questions:Array.isArray(_.questions)?_.questions:[]}:_.navigationPending?{status:"in_progress",taskStatus:"in_progress",navigationPending:!0,navigationTool:_.navigationTool,navigationOutcome:_.navigationOutcome,logicalTabId:_.logicalTabId}:void 0);return{..._,output:A}}case N.EXTRACT:{let g=n?.user_input||n?.prompt||n?.task_instruction||r,_=n?.output_destination||n?.outputDestination,A=_?Ae(_,l):void 0,w=b.apiMode||!F||A?.sheetId&&ge(A.sheetId),D=n?.return_data_only??n?.returnDataOnly??w,S=await ct({tabOrder:m,scopedTabIds:L,seedTabId:E,onScopedTabIdsTouched:i,userInput:g,schema:n?.schema,outputDestination:_,schemaHeaderSheetInfo:n?.schema_header_sheet_info||n?.schemaHeaderSheetInfo,plannerPrevSteps:l,files:d,recordingContext:h,previousSteps:T.prevSteps,trajectoryId:u,returnDataOnly:D,onStatusUpdate:f,bridgeRpc:v,ctx:b,onPrevStepsUpdate:P});if(S.data&&Array.isArray(S.data)&&_&&w){let G=We(n?.schema,S.data),O=A||Ae(_,l),U=b.tabularStore,{sheetInfo:H,headerRow:q}=ut({store:U,target:O,headers:G,objects:S.data,schema:n?.schema}),K=Se(U,H);return{...S,output:S.data,schemaHeaderSheetInfo:[{headingInfo:{schema:n?.schema||{},headings:q,title:H.sheetTitle||H.sheetTab},sheetInfo:K,headerRow:q}]}}return{...S,output:S.data}}case N.CRAWL:{let g=n?.user_input||n?.prompt||n?.task_instruction||r,_=n?.output_destination||n?.outputDestination,A=_?Ae(_,l):void 0,w=b.apiMode||!F||A?.sheetId&&ge(A.sheetId),D=n?.return_data_only??n?.returnDataOnly??w,S=await yn({tabOrder:m,userInput:g,schema:n?.schema,plannerPrevSteps:l,files:d,recordingContext:h,previousSteps:T.prevSteps,trajectoryId:u,onStatusUpdate:f,returnDataOnly:D,bridgeRpc:v,ctx:b,onPrevStepsUpdate:P});if(S.data&&Array.isArray(S.data)&&_&&w){let G=We(n?.schema,S.data),O=A||Ae(_,l),U=b.tabularStore,{sheetInfo:H,headerRow:q}=ut({store:U,target:O,headers:G,objects:S.data,schema:n?.schema}),K=Se(U,H);return{...S,output:S.data,schemaHeaderSheetInfo:[{headingInfo:{schema:n?.schema||{},headings:q,title:H.sheetTitle||H.sheetTab},sheetInfo:K,headerRow:q}]}}return{...S,output:S.data}}case N.PROCESS_TEXT:{let g=n?.text_inputs||n?.textInputs||[],_=n?.task_instruction||n?.taskInstruction||r;return no({textInputs:g,taskInstruction:_,schema:n?.schema,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F})}case N.ROVER_EXTERNAL_READ_CONTEXT:case N.ROVER_EXTERNAL_ACT_CONTEXT:return n?.serverResult?n.serverResult.success?{output:n.serverResult.data}:{error:n.serverResult.error||"Server-side execution failed"}:to({toolName:t,toolArgs:n||{},userInput:r,bridgeRpc:v,onStatusUpdate:f});case N.CREATE_SHEET_FROM_DATA:{let g=n?.data_inputs||n?.dataInputs||[],_=n?.task_instruction||n?.taskInstruction||r;return ro({dataInputs:g,taskInstruction:_,schema:n?.schema,outputSheetParameters:n?.output_sheet_parameters||n?.outputSheetParameters,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F})}case N.INFER_SHEET_DATA:return oo({toolArgs:n,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F});case N.QUERY_RTRVR_AI_DOCUMENTATION:{let g=n?.user_question||n?.userQuestion||r;return so({userQuestion:g,trajectoryId:u,plannerPrevSteps:l,onStatusUpdate:f,agentLog:T,ctx:b})}case N.GOOGLE_DOC_GENERATOR:{let g=n?.user_input||n?.prompt||n?.task_instruction||r;return ao({userInput:g,toolArgs:n,tabOrder:m,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F})}case N.GOOGLE_SLIDES_GENERATOR:{let g=n?.user_input||n?.prompt||n?.task_instruction||r;return io({userInput:g,toolArgs:n,tabOrder:m,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F})}case N.WEBPAGE_GENERATOR:{let g=n?.user_input||n?.prompt||n?.task_instruction||r;return co({userInput:g,toolArgs:n,tabOrder:m,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b})}case N.PDF_FILLER:{let g=n?.user_input||n?.prompt||n?.task_instruction||r;return uo({userInput:g,toolArgs:n,tabOrder:m,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b,driveAuthToken:n?.authToken||n?.driveAuthToken||F})}case N.CUSTOM_TOOL_GENERATOR:{let g=n?.user_input||n?.prompt||n?.task_instruction||r;return lo({userInput:g,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:f,agentLog:T,ctx:b})}case N.SHEETS_WORKFLOW:return wn({workflow:n,userInput:r,trajectoryId:u,plannerPrevSteps:l,files:d,onStatusUpdate:f,agentLog:T,ctx:b,bridgeRpc:v,driveAuthToken:F});case N.GRAPHBOT:return Rn(N.GRAPHBOT,"graph_bot is not available in rover embed mode. Use webpage_generator or process_text.");case N.EXECUTE_MULTIPLE_TOOLS:{let g=n?.tool_calls||n?.toolCalls||[],_=[];if(Array.isArray(g))for(let A of g){if(Ee(b))return{error:"Run cancelled",output:_};let w=A.tool_name||A.name,D=A.tool_args||A.args||{};try{let S;if(w&&tt.has(w)?S=await v?.("executeTool",{call:{name:w,args:D}}):S=await v?.("executeClientTool",{name:w,args:D}),Ee(b))return{error:"Run cancelled",output:_};_.push({name:w,result:S,success:!0})}catch(S){if(Ee(b))return{error:"Run cancelled",output:_};_.push({name:w,error:S?.message||String(S),success:!1})}}return{output:_}}case N.CONFIGURE_API_KEY:return Rn(N.CONFIGURE_API_KEY,"configure_api_key is not supported in rover embed mode. Provide publicKey (pk_site_*) via rover.boot(...) or an rvrsess_* sessionToken.");default:{if(y&&y[t])try{if(Ee(b))return lt();let g=await v?.("executeClientTool",{name:t,args:n});return Ee(b)?lt():{output:g}}catch(g){return{error:g?.message||String(g)}}return{error:`Unsupported tool: ${t}`}}}}catch(g){if(g?.name==="AbortError")throw g;let _=Y(g,`Failed to execute tool: ${t}`);return{output:dt(_),error:_.message,errorDetails:_,warnings:_.message?[_.message]:void 0}}}async function no({textInputs:e,taskInstruction:t,schema:n,plannerPrevSteps:r,files:o,trajectoryId:s,onStatusUpdate:a,agentLog:c,ctx:i,driveAuthToken:u}){a?.("Processing text...","Calling process_text","execute");let l={siteId:i.siteId,textInputs:e,taskInstruction:t,schema:n,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},plannerPrevSteps:r,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:s,userProfile:i.userProfile,files:o},d=await me(i,Q.processText,l);return d?.success?{output:d.data?.text?[d.data.text]:d.data?.data,error:d.data?.error,errorDetails:d.data?.errorDetails,creditsUsed:d.data?.creditsUsed,warnings:d.data?.warnings}:{error:d?.error||"process_text failed"}}async function ro({dataInputs:e,taskInstruction:t,schema:n,outputSheetParameters:r,plannerPrevSteps:o,files:s,trajectoryId:a,onStatusUpdate:c,agentLog:i,ctx:u,driveAuthToken:l}){c?.("Creating sheet...","Calling create_sheet_from_data","execute");let d=Ae(r,o),f=u.apiMode||!l||d.sheetId&&ge(d.sheetId),h={siteId:u.siteId,dataInputs:e,taskInstruction:t,schema:n,outputSheetParameters:r,agentLog:{prevSteps:i?.prevSteps||[],chatLog:i?.chatLog||[]},plannerPrevSteps:o,llmIntegration:u.llmIntegration,apiMode:u.apiMode,apiToolsConfig:u.apiToolsConfig,authToken:l||"",timestamp:u.userTimestamp,trajectoryId:a,userProfile:u.userProfile,files:s,returnDataOnly:f},y=await me(u,Q.createSheetFromData,h);if(!y?.success)return{error:y?.error||"create_sheet_from_data failed"};if(f){let v=y.data?.jsonData||y.data?.data||[],I=Array.isArray(v)?v:[v],C=We(n,I),F=d||Ae(r,o),R=u.tabularStore,{sheetInfo:P,headerRow:b}=ut({store:R,target:F,headers:C,objects:I,schema:n}),k=Se(R,P);return{output:I,error:y.data?.error,errorDetails:y.data?.errorDetails,creditsUsed:y.data?.creditsUsed,warnings:y.data?.warnings,schemaHeaderSheetInfo:[{headingInfo:{schema:n||{},headings:b,title:P.sheetTitle||P.sheetTab},sheetInfo:k,headerRow:b}]}}return{output:y.data?.statusText?[y.data.statusText]:y.data?.sheetInfo,error:y.data?.error,errorDetails:y.data?.errorDetails,creditsUsed:y.data?.creditsUsed,warnings:y.data?.warnings,schemaHeaderSheetInfo:y.data?.schemaHeaderSheetInfo}}async function oo({toolArgs:e,plannerPrevSteps:t,files:n,trajectoryId:r,onStatusUpdate:o,agentLog:s,ctx:a,driveAuthToken:c}){o?.("Inferring sheet data...","Calling infer_sheet_data","execute");let i=e?.source_sheet_from_history||e?.sourceSheetFromHistory,u=i?je(i,t):void 0,l=u?.sheetId||e?.sheet_id||e?.sheetId,d=u?.sheetTab||e?.sheet_tab_title||e?.sheetTabTitle,f=u?.sheetTabId||e?.sheet_tab_id||e?.sheetTabId,h=e?.output_destination||e?.outputDestination||e?.output_sheet_parameters||e?.outputSheetParameters,y=a.apiMode||!c||l&&ge(l),v;if(y&&l&&d){let R=a.tabularStore,P=f!==void 0?R.getTabByIndex(l,f):R.getTabByTitle(l,d);P&&(v=R.toAny2D(l,P.index,!0))}let I={siteId:a.siteId,...e,sheetId:l,sheetTabTitle:d,sheetTabId:f,sheetData:v,returnDataOnly:y,plannerPrevSteps:t,agentLog:{prevSteps:s?.prevSteps||[],chatLog:s?.chatLog||[]},llmIntegration:a.llmIntegration,apiMode:a.apiMode,apiToolsConfig:a.apiToolsConfig,authToken:c||"",timestamp:a.userTimestamp,trajectoryId:r,userProfile:a.userProfile,files:n},C=await me(a,Q.infer,I);if(!C?.success)return{error:C?.error||"infer_sheet_data failed"};let F=Array.isArray(C.data?.data)?C.data.data:[];if(y&&l&&d){let R=a.tabularStore;if(!R.hasSheet(l))return{error:`Memory sheet not found: ${l}`};let P=We(e?.schema,F),b=h?.new_tab_title||h?.newTabTitle||h?.new_tab_title_template;if(b){let E=F.map(g=>P.map(_=>g?.[_]??"")),{sheetInfo:p,headerRow:m}=Sn({store:R,target:{sheetId:l,sheetTitle:u?.sheetTitle,tabTitle:b},headers:P,rows:E,schema:e?.schema}),T=Se(R,p);return{output:F,schemaHeaderSheetInfo:[{headingInfo:{schema:e?.schema||{},headings:m,title:p.sheetTitle||p.sheetTab},sheetInfo:T,headerRow:m}],error:C.data?.error,errorDetails:C.data?.errorDetails,creditsUsed:C.data?.creditsUsed,warnings:C.data?.warnings}}let k=f!==void 0?R.getTab(l,f):R.getTabByTitle(l,d)||R.getTab(l,0);R.mergeHeaderRow(l,k.index,P),e?.schema&&R.setSchema(l,k.index,e.schema,{preserveHeader:!0});let M=!!e?.is_first_row_header||!!e?.isFirstRowHeader;for(let E of F){let p=E?.__row_number,m=typeof p=="number"?p-1-(M?1:0):void 0;if(m===void 0||m<0)continue;let T={};P.forEach(g=>{T[g]=E?.[g]??""}),R.upsertColumnsByHeader(l,k.index,m,T)}let $=R.toSheetInfo(l,k.index),x=Se(R,$),L=R.getTab(l,k.index).headerRow;return{output:F,schemaHeaderSheetInfo:[{headingInfo:{schema:e?.schema||{},headings:L,title:$.sheetTitle||$.sheetTab},sheetInfo:x,headerRow:L}],error:C.data?.error,errorDetails:C.data?.errorDetails,creditsUsed:C.data?.creditsUsed,warnings:C.data?.warnings}}return{output:F,schemaHeaderSheetInfo:C.data?.schemaHeaderSheetInfo,error:C.data?.error,errorDetails:C.data?.errorDetails,creditsUsed:C.data?.creditsUsed,warnings:C.data?.warnings}}async function so({userQuestion:e,trajectoryId:t,plannerPrevSteps:n,onStatusUpdate:r,agentLog:o,ctx:s}){r?.("Querying docs...","Calling query_rtrvr_docs","execute");let a={siteId:s.siteId,userQuestion:e,plannerPrevSteps:n,agentLog:{prevSteps:o?.prevSteps||[],chatLog:o?.chatLog||[]},llmIntegration:s.llmIntegration,apiMode:s.apiMode,apiToolsConfig:s.apiToolsConfig,authToken:"",timestamp:s.userTimestamp,trajectoryId:t,userProfile:s.userProfile},c=await me(s,Q.queryRtrvrDocs,a);return c?.success?{output:c.data?.text||c.data?.data,error:c.data?.error,errorDetails:c.data?.errorDetails,creditsUsed:c.data?.creditsUsed,warnings:c.data?.warnings}:{error:c?.error||"query_rtrvr_docs failed"}}function An(e){let t=Y(e),n=String(t.message||"").toLowerCase();return t.code==="MISSING_API_KEY"||t.code==="INVALID_API_KEY"||t.code==="UNAUTHENTICATED"||n.includes("oauth")||n.includes("auth token")||n.includes("access token")||n.includes("google")}function Pt(e,t=["authToken"]){let n={code:"MISSING_AUTH_TOKEN",message:`${e} requires authentication token.`,missing:t,requires_api_key:t.includes("apiKey"),retryable:!1,next_action:"Provide required auth token in tool args or rover.boot(...)."};return{output:dt(n),error:n.message,errorDetails:n,warnings:[`${e} skipped: missing ${t.join(", ")}`]}}function vn(e,t,n){let r=e==="doc"?"In-Memory Doc Draft":"In-Memory Slides Draft",o=e==="doc"?`# ${r}
1
+ var ot=class{tools=new Map;registerTool(t){t?.name&&this.tools.set(t.name,t)}getTool(t){return this.tools.get(t)}getToolFunctions(){let t={};for(let[a,o]of this.tools.entries())t[a]=o;return t}getFunctionDeclarations(){let t=[];for(let a of this.tools.values()){if(a.llmCallable===!1)continue;let o=a.schema??Xn(a.parameters||{},a.required||[]);t.push({name:a.name,description:a.description,parameters:o})}return t}};function Xn(e,t=[]){let a={};for(let[o,n]of Object.entries(e)){if(!n||typeof n!="object")continue;let r=String(n.type||"string"),s={type:Mt(r),description:n.description,nullable:!t.includes(o)};if(r==="array"&&n.items&&(s.items={type:Mt(n.items.type||"string"),description:n.items.description}),r==="object"&&n.properties){s.properties={};for(let[c,i]of Object.entries(n.properties))s.properties[c]={type:Mt(i?.type||"string"),description:i?.description};Array.isArray(n.required)&&(s.required=n.required)}a[o]=s}return{type:"object",properties:a,required:t}}function Mt(e){switch(e){case"string":case"number":case"integer":case"boolean":case"array":case"object":return e;default:return"string"}}var rt;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(rt||(rt={}));var Ia;(function(e){e[e.NativeHostConnected=0]="NativeHostConnected",e[e.NativeHostDisconnected=1]="NativeHostDisconnected"})(Ia||(Ia={}));var Ge="rtrvr_mem_",Yn=["image/png","image/jpeg","image/webp"],Qn=["application/pdf","text/plain"],Is=[...Yn,...Qn];var M;(function(e){e.ACT="act_on_tab",e.CRAWL="crawl_and_extract_from_tab",e.EXTRACT="extract_from_tab",e.SHEETS_WORKFLOW="sheets_workflow",e.INFER_SHEET_DATA="infer_sheet_data",e.GRAPHBOT="graph_bot",e.PDF_FILLER="pdf_filler",e.CUSTOM_TOOL_GENERATOR="custom_tool_generator",e.WEBPAGE_GENERATOR="webpage_generator",e.GOOGLE_DOC_GENERATOR="google_doc_generator",e.GOOGLE_SLIDES_GENERATOR="google_slides_generator",e.PROCESS_TEXT="process_text",e.CREATE_SHEET_FROM_DATA="create_sheet_from_data",e.ROVER_EXTERNAL_READ_CONTEXT="rover_external_read_context",e.ROVER_EXTERNAL_ACT_CONTEXT="rover_external_act_context",e.CONFIGURE_API_KEY="configure_api_key",e.TASK_COMPLETE="task_complete",e.ASK_USER="ask_user",e.EXECUTE_MULTIPLE_TOOLS="execute_multiple_tools",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(M||(M={}));var Y;(function(e){e.PLANNER="Planner",e.AGENTIC_SEEK="Agentic Action",e.CRAWL_PAGES="Crawl Pages",e.EXTRACT_PAGE="Extract Page",e.SHEETS_WORKFLOW="Sheets Workflow",e.INFER_SHEET_DATA="Infer Sheet Data",e.MULTI_STEPS="Multi Steps",e.PDF_FILLER="PDF Filler",e.CUSTOM_TOOL_GENERATOR="Custom Tool Generator",e.WEBPAGE_GENERATOR="WebPage Generator",e.GOOGLE_DOC_GENERATOR="Google Doc Generator",e.GOOGLE_SLIDES_GENERATOR="Google Slides Generator",e.PROCESS_TEXT="Process Text",e.CREATE_SHEET_FROM_DATA="Create Sheet From Data",e.ROVER_EXTERNAL_READ_CONTEXT="Rover External Read Context",e.ROVER_EXTERNAL_ACT_CONTEXT="Rover External Act Context",e.EXECUTE_MULTIPLE_TOOLS="Execute Multiple User Tools",e.CONFIGURE_API_KEY="Configure Gemini API Key",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(Y||(Y={}));var Es={[M.ACT]:Y.AGENTIC_SEEK,[M.CRAWL]:Y.CRAWL_PAGES,[M.EXTRACT]:Y.EXTRACT_PAGE,[M.SHEETS_WORKFLOW]:Y.SHEETS_WORKFLOW,[M.INFER_SHEET_DATA]:Y.INFER_SHEET_DATA,[M.PDF_FILLER]:Y.PDF_FILLER,[M.CUSTOM_TOOL_GENERATOR]:Y.CUSTOM_TOOL_GENERATOR,[M.WEBPAGE_GENERATOR]:Y.WEBPAGE_GENERATOR,[M.GOOGLE_DOC_GENERATOR]:Y.GOOGLE_DOC_GENERATOR,[M.GOOGLE_SLIDES_GENERATOR]:Y.GOOGLE_SLIDES_GENERATOR,[M.PROCESS_TEXT]:Y.PROCESS_TEXT,[M.CREATE_SHEET_FROM_DATA]:Y.CREATE_SHEET_FROM_DATA,[M.ROVER_EXTERNAL_READ_CONTEXT]:Y.ROVER_EXTERNAL_READ_CONTEXT,[M.ROVER_EXTERNAL_ACT_CONTEXT]:Y.ROVER_EXTERNAL_ACT_CONTEXT,[M.EXECUTE_MULTIPLE_TOOLS]:Y.EXECUTE_MULTIPLE_TOOLS,[M.CONFIGURE_API_KEY]:Y.CONFIGURE_API_KEY,[M.QUERY_RTRVR_AI_DOCUMENTATION]:Y.QUERY_RTRVR_AI_DOCUMENTATION},Nt=20;var Jn=30,Zn=320,eo=0,to=50,ao=1,Ea=rt.FLASH;var Rs=Y.PLANNER;var As=20*1024*1024;var Ra={maxParallelTabs:4,pageLoadDelay:2e3,disableAutoScroll:!1,makeNewTabsActive:!1,writeRowProcessingTime:!1,totalBudgetMs:25e3,pageDataTimeoutMs:22e3,adaptiveSettleDebounceMs:Jn,adaptiveSettleMaxWaitMs:Zn,adaptiveSettleRetries:eo,sparseTreeRetryDelayMs:to,sparseTreeRetryMaxAttempts:ao,pdfTextSelectionTimeoutMs:12e3,onlyTextContent:!1};function no(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function oo(e,t){let a=e.length-t.length-2,o=e.lastIndexOf(".",a);return o===-1?e:e.slice(o+1)}function Ut(e,t,a){if(a.validHosts!==null){let n=a.validHosts;for(let r of n)if(no(t,r))return r}let o=0;if(t.startsWith("."))for(;o<t.length&&t[o]===".";)o+=1;return e.length===t.length-o?null:oo(t,e)}function Lt(e,t){return e.slice(0,-t.length-1)}function st(e,t){let a=0,o=e.length,n=!1;if(!t){if(e.startsWith("data:"))return null;for(;a<e.length&&e.charCodeAt(a)<=32;)a+=1;for(;o>a+1&&e.charCodeAt(o-1)<=32;)o-=1;if(e.charCodeAt(a)===47&&e.charCodeAt(a+1)===47)a+=2;else{let u=e.indexOf(":/",a);if(u!==-1){let l=u-a,d=e.charCodeAt(a),m=e.charCodeAt(a+1),f=e.charCodeAt(a+2),k=e.charCodeAt(a+3),C=e.charCodeAt(a+4);if(!(l===5&&d===104&&m===116&&f===116&&k===112&&C===115)){if(!(l===4&&d===104&&m===116&&f===116&&k===112)){if(!(l===3&&d===119&&m===115&&f===115)){if(!(l===2&&d===119&&m===115))for(let x=a;x<u;x+=1){let R=e.charCodeAt(x)|32;if(!(R>=97&&R<=122||R>=48&&R<=57||R===46||R===45||R===43))return null}}}}for(a=u+2;e.charCodeAt(a)===47;)a+=1}}let s=-1,c=-1,i=-1;for(let u=a;u<o;u+=1){let l=e.charCodeAt(u);if(l===35||l===47||l===63){o=u;break}else l===64?s=u:l===93?c=u:l===58?i=u:l>=65&&l<=90&&(n=!0)}if(s!==-1&&s>a&&s<o&&(a=s+1),e.charCodeAt(a)===91)return c!==-1?e.slice(a+1,c).toLowerCase():null;i!==-1&&i>a&&i<o&&(o=i)}for(;o>a+1&&e.charCodeAt(o-1)===46;)o-=1;let r=a!==0||o!==e.length?e.slice(a,o):e;return n?r.toLowerCase():r}function ro(e){if(e.length<7||e.length>15)return!1;let t=0;for(let a=0;a<e.length;a+=1){let o=e.charCodeAt(a);if(o===46)t+=1;else if(o<48||o>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function so(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,a=e.length;if(e[a-1]==="]"&&(a-=1),a-t>39)return!1;let o=!1;for(;t<a;t+=1){let n=e.charCodeAt(t);if(n===58)o=!0;else if(!(n>=48&&n<=57||n>=97&&n<=102||n>=65&&n<=90))return!1}return o}function qt(e){return so(e)||ro(e)}function Aa(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function Ft(e){if(e.length>255||e.length===0||!Aa(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,a=-1,o=e.length;for(let n=0;n<o;n+=1){let r=e.charCodeAt(n);if(r===46){if(n-t>64||a===46||a===45||a===95)return!1;t=n}else if(!(Aa(r)||r===45||r===95))return!1;a=r}return o-t-1<=63&&a!==45}function Ca({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:a=!0,extractHostname:o=!0,mixedInputs:n=!0,validHosts:r=null,validateHostname:s=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:a,extractHostname:o,mixedInputs:n,validHosts:r,validateHostname:s}}var io=Ca({});function Ht(e){return e===void 0?io:Ca(e)}function Gt(e,t){return t.length===e.length?"":e.slice(0,-t.length-1)}function it(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null}}function $t(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null}function ct(e,t,a,o,n){let r=Ht(o);return typeof e!="string"||(r.extractHostname?r.mixedInputs?n.hostname=st(e,Ft(e)):n.hostname=st(e,!1):n.hostname=e,r.detectIp&&n.hostname!==null&&(n.isIp=qt(n.hostname),n.isIp))?n:r.validateHostname&&r.extractHostname&&n.hostname!==null&&!Ft(n.hostname)?(n.hostname=null,n):(t===0||n.hostname===null||(a(n.hostname,r,n),t===2||n.publicSuffix===null)||(n.domain=Ut(n.publicSuffix,n.hostname,r),t===3||n.domain===null)||(n.subdomain=Gt(n.hostname,n.domain),t===4)||(n.domainWithoutSuffix=Lt(n.domain,n.publicSuffix)),n)}function Wt(e,t,a){if(!t.allowPrivateDomains&&e.length>3){let o=e.length-1,n=e.charCodeAt(o),r=e.charCodeAt(o-1),s=e.charCodeAt(o-2),c=e.charCodeAt(o-3);if(n===109&&r===111&&s===99&&c===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="com",!0;if(n===103&&r===114&&s===111&&c===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="org",!0;if(n===117&&r===100&&s===101&&c===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="edu",!0;if(n===118&&r===111&&s===103&&c===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="gov",!0;if(n===116&&r===101&&s===110&&c===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="net",!0;if(n===101&&r===100&&s===46)return a.isIcann=!0,a.isPrivate=!1,a.publicSuffix="de",!0}return!1}var Da=(function(){let e=[1,{}],t=[0,{city:e}];return[0,{ck:[0,{www:e}],jp:[0,{kawasaki:t,kitakyushu:t,kobe:t,nagoya:t,sapporo:t,sendai:t,yokohama:t}]}]})(),Oa=(function(){let e=[1,{}],t=[2,{}],a=[1,{com:e,edu:e,gov:e,net:e,org:e}],o=[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e}],n=[0,{"*":t}],r=[2,{s:n}],s=[0,{relay:t}],c=[2,{id:t}],i=[1,{gov:e}],u=[0,{airflow:n,"lambda-url":t,"transfer-webapp":t}],l=[0,{airflow:n,"transfer-webapp":t}],d=[0,{"transfer-webapp":t}],m=[0,{"transfer-webapp":t,"transfer-webapp-fips":t}],f=[0,{notebook:t,studio:t}],k=[0,{labeling:t,notebook:t,studio:t}],C=[0,{notebook:t}],x=[0,{labeling:t,notebook:t,"notebook-fips":t,studio:t}],R=[0,{notebook:t,"notebook-fips":t,studio:t,"studio-fips":t}],N=[0,{shop:t}],v=[0,{"*":e}],O=[1,{co:t}],_=[0,{objects:t}],D=[2,{"eu-west-1":t,"us-east-1":t}],P=[2,{nodes:t}],F=[0,{my:t}],S=[0,{s3:t,"s3-accesspoint":t,"s3-website":t}],U=[0,{s3:t,"s3-accesspoint":t}],I=[0,{direct:t}],p=[0,{"webview-assets":t}],h=[0,{vfs:t,"webview-assets":t}],y=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":p,cloud9:h}],g=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:U,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":p,cloud9:h}],b=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":p,cloud9:h}],A=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],E=[0,{s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-website":t}],j=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:E,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":p,cloud9:h}],T=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:E,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t}],q=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:E,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":p,cloud9:h}],w=[0,{auth:t}],z=[0,{auth:t,"auth-fips":t}],H=[0,{"auth-fips":t}],G=[0,{apps:t}],W=[0,{paas:t}],ie=[2,{eu:t}],pe=[0,{app:t}],ne=[0,{site:t}],ze=[1,{com:e,edu:e,net:e,org:e}],Ot=[0,{j:t}],pa=[0,{dyn:t}],fa=[2,{web:t}],ga=[1,{co:e,com:e,edu:e,gov:e,net:e,org:e}],ha=[0,{p:t}],ba=[0,{user:t}],ka=[1,{ms:t}],He=[0,{cdn:t}],ya=[2,{raw:n}],jt=[0,{cust:t,reservd:t}],wa=[0,{cust:t}],Pt=[0,{s3:t}],xa=[1,{biz:e,com:e,edu:e,gov:e,info:e,net:e,org:e}],zt=[0,{ipfs:t}],at=[1,{framer:t}],va=[0,{forgot:t}],Vn=[0,{blob:t,file:t,web:t}],_a=[0,{core:Vn,servicebus:t}],X=[1,{gs:e}],Ta=[0,{nes:e}],L=[1,{k12:e,cc:e,lib:e}],Sa=[1,{cc:e}],nt=[1,{cc:e,lib:e}];return[0,{ac:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,drr:t,feedback:t,forms:t}],ad:e,ae:[1,{ac:e,co:e,gov:e,mil:e,net:e,org:e,sch:e}],aero:[1,{airline:e,airport:e,"accident-investigation":e,"accident-prevention":e,aerobatic:e,aeroclub:e,aerodrome:e,agents:e,"air-surveillance":e,"air-traffic-control":e,aircraft:e,airtraffic:e,ambulance:e,association:e,author:e,ballooning:e,broker:e,caa:e,cargo:e,catering:e,certification:e,championship:e,charter:e,civilaviation:e,club:e,conference:e,consultant:e,consulting:e,control:e,council:e,crew:e,design:e,dgca:e,educator:e,emergency:e,engine:e,engineer:e,entertainment:e,equipment:e,exchange:e,express:e,federation:e,flight:e,freight:e,fuel:e,gliding:e,government:e,groundhandling:e,group:e,hanggliding:e,homebuilt:e,insurance:e,journal:e,journalist:e,leasing:e,logistics:e,magazine:e,maintenance:e,marketplace:e,media:e,microlight:e,modelling:e,navigation:e,parachuting:e,paragliding:e,"passenger-association":e,pilot:e,press:e,production:e,recreation:e,repbody:e,res:e,research:e,rotorcraft:e,safety:e,scientist:e,services:e,show:e,skydiving:e,software:e,student:e,taxi:e,trader:e,trading:e,trainer:e,union:e,workinggroup:e,works:e}],af:a,ag:[1,{co:e,com:e,net:e,nom:e,org:e,obj:t}],ai:[1,{com:e,net:e,off:e,org:e,uwu:t,framer:t,kiloapps:t}],al:o,am:[1,{co:e,com:e,commune:e,net:e,org:e,radio:t}],ao:[1,{co:e,ed:e,edu:e,gov:e,gv:e,it:e,og:e,org:e,pb:e}],aq:e,ar:[1,{bet:e,com:e,coop:e,edu:e,gob:e,gov:e,int:e,mil:e,musica:e,mutual:e,net:e,org:e,seg:e,senasa:e,tur:e}],arpa:[1,{e164:e,home:e,"in-addr":e,ip6:e,iris:e,uri:e,urn:e}],as:i,asia:[1,{cloudns:t,daemon:t,dix:t}],at:[1,{4:t,ac:[1,{sth:e}],co:e,gv:e,or:e,funkfeuer:[0,{wien:t}],futurecms:[0,{"*":t,ex:n,in:n}],futurehosting:t,futuremailing:t,ortsinfo:[0,{ex:n,kunden:n}],biz:t,info:t,"123webseite":t,priv:t,my:t,myspreadshop:t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],au:[1,{asn:e,com:[1,{cloudlets:[0,{mel:t}],myspreadshop:t}],edu:[1,{act:e,catholic:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e}],gov:[1,{qld:e,sa:e,tas:e,vic:e,wa:e}],id:e,net:e,org:e,conf:e,oz:e,act:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e,hrsn:[0,{vps:t}]}],aw:[1,{com:e}],ax:e,az:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,int:e,mil:e,name:e,net:e,org:e,pp:e,pro:e}],ba:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,brendly:N,rs:t}],bb:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,net:e,org:e,store:e,tv:e}],bd:[1,{ac:e,ai:e,co:e,com:e,edu:e,gov:e,id:e,info:e,it:e,mil:e,net:e,org:e,sch:e,tv:e}],be:[1,{ac:e,cloudns:t,webhosting:t,interhostsolutions:[0,{cloud:t}],kuleuven:[0,{ezproxy:t}],my:t,"123website":t,myspreadshop:t,transurl:n}],bf:i,bg:[1,{0:e,1:e,2:e,3:e,4:e,5:e,6:e,7:e,8:e,9:e,a:e,b:e,c:e,d:e,e,f:e,g:e,h:e,i:e,j:e,k:e,l:e,m:e,n:e,o:e,p:e,q:e,r:e,s:e,t:e,u:e,v:e,w:e,x:e,y:e,z:e,barsy:t}],bh:a,bi:[1,{co:e,com:e,edu:e,or:e,org:e}],biz:[1,{activetrail:t,"cloud-ip":t,cloudns:t,jozi:t,dyndns:t,"for-better":t,"for-more":t,"for-some":t,"for-the":t,selfip:t,webhop:t,orx:t,mmafan:t,myftp:t,"no-ip":t,dscloud:t}],bj:[1,{africa:e,agro:e,architectes:e,assur:e,avocats:e,co:e,com:e,eco:e,econo:e,edu:e,info:e,loisirs:e,money:e,net:e,org:e,ote:e,restaurant:e,resto:e,tourism:e,univ:e}],bm:a,bn:[1,{com:e,edu:e,gov:e,net:e,org:e,co:t}],bo:[1,{com:e,edu:e,gob:e,int:e,mil:e,net:e,org:e,tv:e,web:e,academia:e,agro:e,arte:e,blog:e,bolivia:e,ciencia:e,cooperativa:e,democracia:e,deporte:e,ecologia:e,economia:e,empresa:e,indigena:e,industria:e,info:e,medicina:e,movimiento:e,musica:e,natural:e,nombre:e,noticias:e,patria:e,plurinacional:e,politica:e,profesional:e,pueblo:e,revista:e,salud:e,tecnologia:e,tksat:e,transporte:e,wiki:e}],br:[1,{"9guacu":e,abc:e,adm:e,adv:e,agr:e,aju:e,am:e,anani:e,aparecida:e,api:e,app:e,arq:e,art:e,ato:e,b:e,barueri:e,belem:e,bet:e,bhz:e,bib:e,bio:e,blog:e,bmd:e,boavista:e,bsb:e,campinagrande:e,campinas:e,caxias:e,cim:e,cng:e,cnt:e,com:[1,{simplesite:t}],contagem:e,coop:e,coz:e,cri:e,cuiaba:e,curitiba:e,def:e,des:e,det:e,dev:e,ecn:e,eco:e,edu:e,emp:e,enf:e,eng:e,esp:e,etc:e,eti:e,far:e,feira:e,flog:e,floripa:e,fm:e,fnd:e,fortal:e,fot:e,foz:e,fst:e,g12:e,geo:e,ggf:e,goiania:e,gov:[1,{ac:e,al:e,am:e,ap:e,ba:e,ce:e,df:e,es:e,go:e,ma:e,mg:e,ms:e,mt:e,pa:e,pb:e,pe:e,pi:e,pr:e,rj:e,rn:e,ro:e,rr:e,rs:e,sc:e,se:e,sp:e,to:e}],gru:e,ia:e,imb:e,ind:e,inf:e,jab:e,jampa:e,jdf:e,joinville:e,jor:e,jus:e,leg:[1,{ac:t,al:t,am:t,ap:t,ba:t,ce:t,df:t,es:t,go:t,ma:t,mg:t,ms:t,mt:t,pa:t,pb:t,pe:t,pi:t,pr:t,rj:t,rn:t,ro:t,rr:t,rs:t,sc:t,se:t,sp:t,to:t}],leilao:e,lel:e,log:e,londrina:e,macapa:e,maceio:e,manaus:e,maringa:e,mat:e,med:e,mil:e,morena:e,mp:e,mus:e,natal:e,net:e,niteroi:e,nom:v,not:e,ntr:e,odo:e,ong:e,org:e,osasco:e,palmas:e,poa:e,ppg:e,pro:e,psc:e,psi:e,pvh:e,qsl:e,radio:e,rec:e,recife:e,rep:e,ribeirao:e,rio:e,riobranco:e,riopreto:e,salvador:e,sampa:e,santamaria:e,santoandre:e,saobernardo:e,saogonca:e,seg:e,sjc:e,slg:e,slz:e,social:e,sorocaba:e,srv:e,taxi:e,tc:e,tec:e,teo:e,the:e,tmp:e,trd:e,tur:e,tv:e,udi:e,vet:e,vix:e,vlog:e,wiki:e,xyz:e,zlg:e,tche:t}],bs:[1,{com:e,edu:e,gov:e,net:e,org:e,we:t}],bt:a,bv:e,bw:[1,{ac:e,co:e,gov:e,net:e,org:e}],by:[1,{gov:e,mil:e,com:e,of:e,mediatech:t}],bz:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,za:t,mydns:t,gsj:t}],ca:[1,{ab:e,bc:e,mb:e,nb:e,nf:e,nl:e,ns:e,nt:e,nu:e,on:e,pe:e,qc:e,sk:e,yk:e,gc:e,barsy:t,awdev:n,co:t,"no-ip":t,onid:t,myspreadshop:t,box:t}],cat:e,cc:[1,{cleverapps:t,"cloud-ip":t,cloudns:t,ccwu:t,ftpaccess:t,"game-server":t,myphotos:t,scrapping:t,twmail:t,csx:t,fantasyleague:t,spawn:[0,{instances:t}],ec:t,eu:t,gu:t,uk:t,us:t}],cd:[1,{gov:e,cc:t}],cf:e,cg:e,ch:[1,{square7:t,cloudns:t,cloudscale:[0,{cust:t,lpg:_,rma:_}],objectstorage:[0,{lpg:t,rma:t}],flow:[0,{ae:[0,{alp1:t}],appengine:t}],"linkyard-cloud":t,gotdns:t,dnsking:t,"123website":t,myspreadshop:t,firenet:[0,{"*":t,svc:n}],"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],ci:[1,{ac:e,"xn--aroport-bya":e,a\u00E9roport:e,asso:e,co:e,com:e,ed:e,edu:e,go:e,gouv:e,int:e,net:e,or:e,org:e,us:t}],ck:v,cl:[1,{co:e,gob:e,gov:e,mil:e,cloudns:t}],cm:[1,{co:e,com:e,gov:e,net:e}],cn:[1,{ac:e,com:[1,{amazonaws:[0,{"cn-north-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:n,dualstack:S,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"cn-northwest-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:n,dualstack:U,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],compute:n,airflow:[0,{"cn-north-1":n,"cn-northwest-1":n}],eb:[0,{"cn-north-1":t,"cn-northwest-1":t}],elb:n}],amazonwebservices:[0,{on:[0,{"cn-north-1":l,"cn-northwest-1":l}]}],sagemaker:[0,{"cn-north-1":f,"cn-northwest-1":f}]}],edu:e,gov:e,mil:e,net:e,org:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,ah:e,bj:e,cq:e,fj:e,gd:e,gs:e,gx:e,gz:e,ha:e,hb:e,he:e,hi:e,hk:e,hl:e,hn:e,jl:e,js:e,jx:e,ln:e,mo:e,nm:e,nx:e,qh:e,sc:e,sd:e,sh:[1,{as:t}],sn:e,sx:e,tj:e,tw:e,xj:e,xz:e,yn:e,zj:e,"canva-apps":t,canvasite:F,myqnapcloud:t,quickconnect:I}],co:[1,{com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,carrd:t,crd:t,otap:n,hidns:t,leadpages:t,lpages:t,mypi:t,xmit:n,rdpa:[0,{clusters:n,srvrless:n}],firewalledreplit:c,repl:c,supabase:[2,{realtime:t,storage:t}],umso:t}],com:[1,{a2hosted:t,cpserver:t,adobeaemcloud:[2,{dev:n}],africa:t,auiusercontent:n,aivencloud:t,alibabacloudcs:t,kasserver:t,amazonaws:[0,{"af-south-1":y,"ap-east-1":g,"ap-northeast-1":b,"ap-northeast-2":b,"ap-northeast-3":y,"ap-south-1":b,"ap-south-2":A,"ap-southeast-1":b,"ap-southeast-2":b,"ap-southeast-3":A,"ap-southeast-4":A,"ap-southeast-5":[0,{"execute-api":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"ca-central-1":j,"ca-west-1":T,"eu-central-1":b,"eu-central-2":A,"eu-north-1":g,"eu-south-1":y,"eu-south-2":A,"eu-west-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":p,cloud9:h}],"eu-west-2":g,"eu-west-3":y,"il-central-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:S,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":p,cloud9:[0,{vfs:t}]}],"me-central-1":A,"me-south-1":g,"sa-east-1":y,"us-east-1":[2,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:E,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":p,cloud9:h}],"us-east-2":q,"us-gov-east-1":T,"us-gov-west-1":T,"us-west-1":j,"us-west-2":q,compute:n,"compute-1":n,airflow:[0,{"af-south-1":n,"ap-east-1":n,"ap-northeast-1":n,"ap-northeast-2":n,"ap-northeast-3":n,"ap-south-1":n,"ap-south-2":n,"ap-southeast-1":n,"ap-southeast-2":n,"ap-southeast-3":n,"ap-southeast-4":n,"ap-southeast-5":n,"ap-southeast-7":n,"ca-central-1":n,"ca-west-1":n,"eu-central-1":n,"eu-central-2":n,"eu-north-1":n,"eu-south-1":n,"eu-south-2":n,"eu-west-1":n,"eu-west-2":n,"eu-west-3":n,"il-central-1":n,"me-central-1":n,"me-south-1":n,"sa-east-1":n,"us-east-1":n,"us-east-2":n,"us-west-1":n,"us-west-2":n}],rds:[0,{"af-south-1":n,"ap-east-1":n,"ap-east-2":n,"ap-northeast-1":n,"ap-northeast-2":n,"ap-northeast-3":n,"ap-south-1":n,"ap-south-2":n,"ap-southeast-1":n,"ap-southeast-2":n,"ap-southeast-3":n,"ap-southeast-4":n,"ap-southeast-5":n,"ap-southeast-6":n,"ap-southeast-7":n,"ca-central-1":n,"ca-west-1":n,"eu-central-1":n,"eu-central-2":n,"eu-west-1":n,"eu-west-2":n,"eu-west-3":n,"il-central-1":n,"me-central-1":n,"me-south-1":n,"mx-central-1":n,"sa-east-1":n,"us-east-1":n,"us-east-2":n,"us-gov-east-1":n,"us-gov-west-1":n,"us-northeast-1":n,"us-west-1":n,"us-west-2":n}],s3:t,"s3-1":t,"s3-ap-east-1":t,"s3-ap-northeast-1":t,"s3-ap-northeast-2":t,"s3-ap-northeast-3":t,"s3-ap-south-1":t,"s3-ap-southeast-1":t,"s3-ap-southeast-2":t,"s3-ca-central-1":t,"s3-eu-central-1":t,"s3-eu-north-1":t,"s3-eu-west-1":t,"s3-eu-west-2":t,"s3-eu-west-3":t,"s3-external-1":t,"s3-fips-us-gov-east-1":t,"s3-fips-us-gov-west-1":t,"s3-global":[0,{accesspoint:[0,{mrap:t}]}],"s3-me-south-1":t,"s3-sa-east-1":t,"s3-us-east-2":t,"s3-us-gov-east-1":t,"s3-us-gov-west-1":t,"s3-us-west-1":t,"s3-us-west-2":t,"s3-website-ap-northeast-1":t,"s3-website-ap-southeast-1":t,"s3-website-ap-southeast-2":t,"s3-website-eu-west-1":t,"s3-website-sa-east-1":t,"s3-website-us-east-1":t,"s3-website-us-gov-west-1":t,"s3-website-us-west-1":t,"s3-website-us-west-2":t,elb:n}],amazoncognito:[0,{"af-south-1":w,"ap-east-1":w,"ap-northeast-1":w,"ap-northeast-2":w,"ap-northeast-3":w,"ap-south-1":w,"ap-south-2":w,"ap-southeast-1":w,"ap-southeast-2":w,"ap-southeast-3":w,"ap-southeast-4":w,"ap-southeast-5":w,"ap-southeast-7":w,"ca-central-1":w,"ca-west-1":w,"eu-central-1":w,"eu-central-2":w,"eu-north-1":w,"eu-south-1":w,"eu-south-2":w,"eu-west-1":w,"eu-west-2":w,"eu-west-3":w,"il-central-1":w,"me-central-1":w,"me-south-1":w,"mx-central-1":w,"sa-east-1":w,"us-east-1":z,"us-east-2":z,"us-gov-east-1":H,"us-gov-west-1":H,"us-west-1":z,"us-west-2":z}],amplifyapp:t,awsapprunner:n,awsapps:t,elasticbeanstalk:[2,{"af-south-1":t,"ap-east-1":t,"ap-northeast-1":t,"ap-northeast-2":t,"ap-northeast-3":t,"ap-south-1":t,"ap-southeast-1":t,"ap-southeast-2":t,"ap-southeast-3":t,"ap-southeast-5":t,"ap-southeast-7":t,"ca-central-1":t,"eu-central-1":t,"eu-north-1":t,"eu-south-1":t,"eu-south-2":t,"eu-west-1":t,"eu-west-2":t,"eu-west-3":t,"il-central-1":t,"me-central-1":t,"me-south-1":t,"sa-east-1":t,"us-east-1":t,"us-east-2":t,"us-gov-east-1":t,"us-gov-west-1":t,"us-west-1":t,"us-west-2":t}],awsglobalaccelerator:t,siiites:t,appspacehosted:t,appspaceusercontent:t,"on-aptible":t,myasustor:t,"balena-devices":t,boutir:t,bplaced:t,cafjs:t,"canva-apps":t,"canva-hosted-embed":t,canvacode:t,"rice-labs":t,"cdn77-storage":t,br:t,cn:t,de:t,eu:t,jpn:t,mex:t,ru:t,sa:t,uk:t,us:t,za:t,"clever-cloud":[0,{services:n}],abrdns:t,dnsabr:t,"ip-ddns":t,jdevcloud:t,wpdevcloud:t,"cf-ipfs":t,"cloudflare-ipfs":t,trycloudflare:t,co:t,devinapps:n,builtwithdark:t,datadetect:[0,{demo:t,instance:t}],dattolocal:t,dattorelay:t,dattoweb:t,mydatto:t,digitaloceanspaces:n,discordsays:t,discordsez:t,drayddns:t,dreamhosters:t,durumis:t,blogdns:t,cechire:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,"dyn-o-saur":t,dynalias:t,"dyndns-at-home":t,"dyndns-at-work":t,"dyndns-blog":t,"dyndns-free":t,"dyndns-home":t,"dyndns-ip":t,"dyndns-mail":t,"dyndns-office":t,"dyndns-pics":t,"dyndns-remote":t,"dyndns-server":t,"dyndns-web":t,"dyndns-wiki":t,"dyndns-work":t,"est-a-la-maison":t,"est-a-la-masion":t,"est-le-patron":t,"est-mon-blogueur":t,"from-ak":t,"from-al":t,"from-ar":t,"from-ca":t,"from-ct":t,"from-dc":t,"from-de":t,"from-fl":t,"from-ga":t,"from-hi":t,"from-ia":t,"from-id":t,"from-il":t,"from-in":t,"from-ks":t,"from-ky":t,"from-ma":t,"from-md":t,"from-mi":t,"from-mn":t,"from-mo":t,"from-ms":t,"from-mt":t,"from-nc":t,"from-nd":t,"from-ne":t,"from-nh":t,"from-nj":t,"from-nm":t,"from-nv":t,"from-oh":t,"from-ok":t,"from-or":t,"from-pa":t,"from-pr":t,"from-ri":t,"from-sc":t,"from-sd":t,"from-tn":t,"from-tx":t,"from-ut":t,"from-va":t,"from-vt":t,"from-wa":t,"from-wi":t,"from-wv":t,"from-wy":t,getmyip:t,gotdns:t,"hobby-site":t,homelinux:t,homeunix:t,iamallama:t,"is-a-anarchist":t,"is-a-blogger":t,"is-a-bookkeeper":t,"is-a-bulls-fan":t,"is-a-caterer":t,"is-a-chef":t,"is-a-conservative":t,"is-a-cpa":t,"is-a-cubicle-slave":t,"is-a-democrat":t,"is-a-designer":t,"is-a-doctor":t,"is-a-financialadvisor":t,"is-a-geek":t,"is-a-green":t,"is-a-guru":t,"is-a-hard-worker":t,"is-a-hunter":t,"is-a-landscaper":t,"is-a-lawyer":t,"is-a-liberal":t,"is-a-libertarian":t,"is-a-llama":t,"is-a-musician":t,"is-a-nascarfan":t,"is-a-nurse":t,"is-a-painter":t,"is-a-personaltrainer":t,"is-a-photographer":t,"is-a-player":t,"is-a-republican":t,"is-a-rockstar":t,"is-a-socialist":t,"is-a-student":t,"is-a-teacher":t,"is-a-techie":t,"is-a-therapist":t,"is-an-accountant":t,"is-an-actor":t,"is-an-actress":t,"is-an-anarchist":t,"is-an-artist":t,"is-an-engineer":t,"is-an-entertainer":t,"is-certified":t,"is-gone":t,"is-into-anime":t,"is-into-cars":t,"is-into-cartoons":t,"is-into-games":t,"is-leet":t,"is-not-certified":t,"is-slick":t,"is-uberleet":t,"is-with-theband":t,"isa-geek":t,"isa-hockeynut":t,issmarterthanyou:t,"likes-pie":t,likescandy:t,"neat-url":t,"saves-the-whales":t,selfip:t,"sells-for-less":t,"sells-for-u":t,servebbs:t,"simple-url":t,"space-to-rent":t,"teaches-yoga":t,writesthisblog:t,"1cooldns":t,bumbleshrimp:t,ddnsfree:t,ddnsgeek:t,ddnsguru:t,dynuddns:t,dynuhosting:t,giize:t,gleeze:t,kozow:t,loseyourip:t,ooguy:t,pivohosting:t,theworkpc:t,wiredbladehosting:t,emergentagent:[0,{preview:t}],mytuleap:t,"tuleap-partners":t,encoreapi:t,evennode:[0,{"eu-1":t,"eu-2":t,"eu-3":t,"eu-4":t,"us-1":t,"us-2":t,"us-3":t,"us-4":t}],onfabrica:t,"fastly-edge":t,"fastly-terrarium":t,"fastvps-server":t,mydobiss:t,firebaseapp:t,fldrv:t,framercanvas:t,"freebox-os":t,freeboxos:t,freemyip:t,aliases121:t,gentapps:t,gentlentapis:t,githubusercontent:t,"0emm":n,appspot:[2,{r:n}],blogspot:t,codespot:t,googleapis:t,googlecode:t,pagespeedmobilizer:t,withgoogle:t,withyoutube:t,grayjayleagues:t,hatenablog:t,hatenadiary:t,"hercules-app":t,"hercules-dev":t,herokuapp:t,gr:t,smushcdn:t,wphostedmail:t,wpmucdn:t,pixolino:t,"apps-1and1":t,"live-website":t,"webspace-host":t,dopaas:t,"hosted-by-previder":W,hosteur:[0,{"rag-cloud":t,"rag-cloud-ch":t}],"ik-server":[0,{jcloud:t,"jcloud-ver-jpc":t}],jelastic:[0,{demo:t}],massivegrid:W,wafaicloud:[0,{jed:t,ryd:t}],"eu1-plenit":t,"la1-plenit":t,"us1-plenit":t,webadorsite:t,"on-forge":t,"on-vapor":t,lpusercontent:t,linode:[0,{members:t,nodebalancer:n}],linodeobjects:n,linodeusercontent:[0,{ip:t}],localtonet:t,lovableproject:t,barsycenter:t,barsyonline:t,lutrausercontent:n,magicpatternsapp:t,modelscape:t,mwcloudnonprod:t,polyspace:t,miniserver:t,atmeta:t,fbsbx:G,meteorapp:ie,routingthecloud:t,"same-app":t,"same-preview":t,mydbserver:t,mochausercontent:t,hostedpi:t,"mythic-beasts":[0,{caracal:t,customer:t,fentiger:t,lynx:t,ocelot:t,oncilla:t,onza:t,sphinx:t,vs:t,x:t,yali:t}],nospamproxy:[0,{cloud:[2,{o365:t}]}],"4u":t,nfshost:t,"3utilities":t,blogsyte:t,ciscofreak:t,damnserver:t,ddnsking:t,ditchyourip:t,dnsiskinky:t,dynns:t,geekgalaxy:t,"health-carereform":t,homesecuritymac:t,homesecuritypc:t,myactivedirectory:t,mysecuritycamera:t,myvnc:t,"net-freaks":t,onthewifi:t,point2this:t,quicksytes:t,securitytactics:t,servebeer:t,servecounterstrike:t,serveexchange:t,serveftp:t,servegame:t,servehalflife:t,servehttp:t,servehumour:t,serveirc:t,servemp3:t,servep2p:t,servepics:t,servequake:t,servesarcasm:t,stufftoread:t,unusualperson:t,workisboring:t,myiphost:t,observableusercontent:[0,{static:t}],simplesite:t,oaiusercontent:n,orsites:t,operaunite:t,"customer-oci":[0,{"*":t,oci:n,ocp:n,ocs:n}],oraclecloudapps:n,oraclegovcloudapps:n,"authgear-staging":t,authgearapps:t,outsystemscloud:t,ownprovider:t,pgfog:t,pagexl:t,gotpantheon:t,paywhirl:n,forgeblocks:t,upsunapp:t,"postman-echo":t,prgmr:[0,{xen:t}],"project-study":[0,{dev:t}],pythonanywhere:ie,qa2:t,"alpha-myqnapcloud":t,"dev-myqnapcloud":t,mycloudnas:t,mynascloud:t,myqnapcloud:t,qualifioapp:t,ladesk:t,qualyhqpartner:n,qualyhqportal:n,qbuser:t,quipelements:n,rackmaze:t,"readthedocs-hosted":t,rhcloud:t,onrender:t,render:pe,"subsc-pay":t,"180r":t,dojin:t,sakuratan:t,sakuraweb:t,x0:t,code:[0,{builder:n,"dev-builder":n,"stg-builder":n}],salesforce:[0,{platform:[0,{"code-builder-stg":[0,{test:[0,{"001":n}]}]}]}],logoip:t,scrysec:t,"firewall-gateway":t,myshopblocks:t,myshopify:t,shopitsite:t,"1kapp":t,appchizi:t,applinzi:t,sinaapp:t,vipsinaapp:t,streamlitapp:t,"try-snowplow":t,"playstation-cloud":t,myspreadshop:t,"w-corp-staticblitz":t,"w-credentialless-staticblitz":t,"w-staticblitz":t,"stackhero-network":t,stdlib:[0,{api:t}],strapiapp:[2,{media:t}],"streak-link":t,streaklinks:t,streakusercontent:t,"temp-dns":t,dsmynas:t,familyds:t,mytabit:t,taveusercontent:t,"tb-hosting":ne,reservd:t,thingdustdata:t,"townnews-staging":t,typeform:[0,{pro:t}],hk:t,it:t,"deus-canvas":t,vultrobjects:n,wafflecell:t,hotelwithflight:t,"reserve-online":t,cprapid:t,pleskns:t,remotewd:t,wiardweb:[0,{pages:t}],"drive-platform":t,"base44-sandbox":t,wixsite:t,wixstudio:t,messwithdns:t,"woltlab-demo":t,wpenginepowered:[2,{js:t}],xnbay:[2,{u2:t,"u2-local":t}],xtooldevice:t,yolasite:t}],coop:e,cr:[1,{ac:e,co:e,ed:e,fi:e,go:e,or:e,sa:e}],cu:[1,{com:e,edu:e,gob:e,inf:e,nat:e,net:e,org:e}],cv:[1,{com:e,edu:e,id:e,int:e,net:e,nome:e,org:e,publ:e}],cw:ze,cx:[1,{gov:e,cloudns:t,ath:t,info:t,assessments:t,calculators:t,funnels:t,paynow:t,quizzes:t,researched:t,tests:t}],cy:[1,{ac:e,biz:e,com:[1,{scaleforce:Ot}],ekloges:e,gov:e,ltd:e,mil:e,net:e,org:e,press:e,pro:e,tm:e}],cz:[1,{gov:e,contentproxy9:[0,{rsc:t}],realm:t,e4:t,co:t,metacentrum:[0,{cloud:n,custom:t}],muni:[0,{cloud:[0,{flt:t,usr:t}]}]}],de:[1,{bplaced:t,square7:t,"bwcloud-os-instance":n,com:t,cosidns:pa,dnsupdater:t,"dynamisches-dns":t,"internet-dns":t,"l-o-g-i-n":t,ddnss:[2,{dyn:t,dyndns:t}],"dyn-ip24":t,dyndns1:t,"home-webserver":[2,{dyn:t}],"myhome-server":t,dnshome:t,fuettertdasnetz:t,isteingeek:t,istmein:t,lebtimnetz:t,leitungsen:t,traeumtgerade:t,frusky:n,goip:t,"xn--gnstigbestellen-zvb":t,g\u00FCnstigbestellen:t,"xn--gnstigliefern-wob":t,g\u00FCnstigliefern:t,"hs-heilbronn":[0,{it:[0,{pages:t,"pages-research":t}]}],"dyn-berlin":t,"in-berlin":t,"in-brb":t,"in-butter":t,"in-dsl":t,"in-vpn":t,iservschule:t,"mein-iserv":t,schuldock:t,schulplattform:t,schulserver:t,"test-iserv":t,keymachine:t,co:t,"git-repos":t,"lcube-server":t,"svn-repos":t,barsy:t,webspaceconfig:t,"123webseite":t,rub:t,"ruhr-uni-bochum":[2,{noc:[0,{io:t}]}],logoip:t,"firewall-gateway":t,"my-gateway":t,"my-router":t,spdns:t,my:t,speedpartner:[0,{customer:t}],myspreadshop:t,"taifun-dns":t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t,"virtual-user":t,virtualuser:t,"community-pro":t,diskussionsbereich:t,xenonconnect:n}],dj:e,dk:[1,{biz:t,co:t,firm:t,reg:t,store:t,"123hjemmeside":t,myspreadshop:t}],dm:ga,do:[1,{art:e,com:e,edu:e,gob:e,gov:e,mil:e,net:e,org:e,sld:e,web:e}],dz:[1,{art:e,asso:e,com:e,edu:e,gov:e,net:e,org:e,pol:e,soc:e,tm:e}],ec:[1,{abg:e,adm:e,agron:e,arqt:e,art:e,bar:e,chef:e,com:e,cont:e,cpa:e,cue:e,dent:e,dgn:e,disco:e,doc:e,edu:e,eng:e,esm:e,fin:e,fot:e,gal:e,gob:e,gov:e,gye:e,ibr:e,info:e,k12:e,lat:e,loj:e,med:e,mil:e,mktg:e,mon:e,net:e,ntr:e,odont:e,org:e,pro:e,prof:e,psic:e,psiq:e,pub:e,rio:e,rrpp:e,sal:e,tech:e,tul:e,tur:e,uio:e,vet:e,xxx:e,base:t,official:t}],edu:[1,{rit:[0,{"git-pages":t}]}],ee:[1,{aip:e,com:e,edu:e,fie:e,gov:e,lib:e,med:e,org:e,pri:e,riik:e}],eg:[1,{ac:e,com:e,edu:e,eun:e,gov:e,info:e,me:e,mil:e,name:e,net:e,org:e,sci:e,sport:e,tv:e}],er:v,es:[1,{com:e,edu:e,gob:e,nom:e,org:e,"123miweb":t,myspreadshop:t}],et:[1,{biz:e,com:e,edu:e,gov:e,info:e,name:e,net:e,org:e}],eu:[1,{amazonwebservices:[0,{on:[0,{"eusc-de-east-1":[0,{"cognito-idp":w}]}]}],cloudns:t,prvw:t,deuxfleurs:t,dogado:[0,{jelastic:t}],barsy:t,spdns:t,nxa:n,directwp:t,transurl:n}],fi:[1,{aland:e,dy:t,"xn--hkkinen-5wa":t,h\u00E4kkinen:t,iki:t,cloudplatform:[0,{fi:t}],datacenter:[0,{demo:t,paas:t}],kapsi:t,"123kotisivu":t,myspreadshop:t}],fj:[1,{ac:e,biz:e,com:e,edu:e,gov:e,id:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],fk:v,fm:[1,{com:e,edu:e,net:e,org:e,radio:t,user:n}],fo:e,fr:[1,{asso:e,com:e,gouv:e,nom:e,prd:e,tm:e,avoues:e,cci:e,greta:e,"huissier-justice":e,"fbx-os":t,fbxos:t,"freebox-os":t,freeboxos:t,goupile:t,kdns:t,"123siteweb":t,"on-web":t,"chirurgiens-dentistes-en-france":t,dedibox:t,aeroport:t,avocat:t,chambagri:t,"chirurgiens-dentistes":t,"experts-comptables":t,medecin:t,notaires:t,pharmacien:t,port:t,veterinaire:t,myspreadshop:t,ynh:t}],ga:e,gb:e,gd:[1,{edu:e,gov:e}],ge:[1,{com:e,edu:e,gov:e,net:e,org:e,pvt:e,school:e}],gf:e,gg:[1,{co:e,net:e,org:e,ply:[0,{at:n,d6:t}],botdash:t,kaas:t,stackit:t,panel:[2,{daemon:t}]}],gh:[1,{biz:e,com:e,edu:e,gov:e,mil:e,net:e,org:e}],gi:[1,{com:e,edu:e,gov:e,ltd:e,mod:e,org:e}],gl:[1,{co:e,com:e,edu:e,net:e,org:e}],gm:e,gn:[1,{ac:e,com:e,edu:e,gov:e,net:e,org:e}],gov:e,gp:[1,{asso:e,com:e,edu:e,mobi:e,net:e,org:e}],gq:e,gr:[1,{com:e,edu:e,gov:e,net:e,org:e,barsy:t,simplesite:t}],gs:e,gt:[1,{com:e,edu:e,gob:e,ind:e,mil:e,net:e,org:e}],gu:[1,{com:e,edu:e,gov:e,guam:e,info:e,net:e,org:e,web:e}],gw:[1,{nx:t}],gy:ga,hk:[1,{com:e,edu:e,gov:e,idv:e,net:e,org:e,"xn--ciqpn":e,\u4E2A\u4EBA:e,"xn--gmqw5a":e,\u500B\u4EBA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--lcvr32d":e,\u654E\u80B2:e,"xn--wcvs22d":e,\u6559\u80B2:e,"xn--gmq050i":e,\u7B87\u4EBA:e,"xn--uc0atv":e,\u7D44\u7E54:e,"xn--uc0ay4a":e,\u7D44\u7EC7:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--zf0avx":e,\u7DB2\u7EDC:e,"xn--mk0axi":e,\u7EC4\u7E54:e,"xn--tn0ag":e,\u7EC4\u7EC7:e,"xn--od0aq3b":e,\u7F51\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,inc:t,ltd:t}],hm:e,hn:[1,{com:e,edu:e,gob:e,mil:e,net:e,org:e}],hr:[1,{com:e,from:e,iz:e,name:e,brendly:N}],ht:[1,{adult:e,art:e,asso:e,com:e,coop:e,edu:e,firm:e,gouv:e,info:e,med:e,net:e,org:e,perso:e,pol:e,pro:e,rel:e,shop:e,rt:t}],hu:[1,{2e3:e,agrar:e,bolt:e,casino:e,city:e,co:e,erotica:e,erotika:e,film:e,forum:e,games:e,hotel:e,info:e,ingatlan:e,jogasz:e,konyvelo:e,lakas:e,media:e,news:e,org:e,priv:e,reklam:e,sex:e,shop:e,sport:e,suli:e,szex:e,tm:e,tozsde:e,utazas:e,video:e}],id:[1,{ac:e,biz:e,co:e,desa:e,go:e,kop:e,mil:e,my:e,net:e,or:e,ponpes:e,sch:e,web:e,"xn--9tfky":e,"\u1B29\u1B2E\u1B36":e,e:t,zone:t}],ie:[1,{gov:e,myspreadshop:t}],il:[1,{ac:e,co:[1,{ravpage:t,mytabit:t,tabitorder:t}],gov:e,idf:e,k12:e,muni:e,net:e,org:e}],"xn--4dbrk0ce":[1,{"xn--4dbgdty6c":e,"xn--5dbhl8d":e,"xn--8dbq2a":e,"xn--hebda8b":e}],\u05D9\u05E9\u05E8\u05D0\u05DC:[1,{\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4:e,\u05D9\u05E9\u05D5\u05D1:e,\u05E6\u05D4\u05DC:e,\u05DE\u05DE\u05E9\u05DC:e}],im:[1,{ac:e,co:[1,{ltd:e,plc:e}],com:e,net:e,org:e,tt:e,tv:e}],in:[1,{"5g":e,"6g":e,ac:e,ai:e,am:e,bank:e,bihar:e,biz:e,business:e,ca:e,cn:e,co:e,com:e,coop:e,cs:e,delhi:e,dr:e,edu:e,er:e,fin:e,firm:e,gen:e,gov:e,gujarat:e,ind:e,info:e,int:e,internet:e,io:e,me:e,mil:e,net:e,nic:e,org:e,pg:e,post:e,pro:e,res:e,travel:e,tv:e,uk:e,up:e,us:e,cloudns:t,barsy:t,web:t,indevs:t,supabase:t}],info:[1,{cloudns:t,"dynamic-dns":t,"barrel-of-knowledge":t,"barrell-of-knowledge":t,dyndns:t,"for-our":t,"groks-the":t,"groks-this":t,"here-for-more":t,knowsitall:t,selfip:t,webhop:t,barsy:t,mayfirst:t,mittwald:t,mittwaldserver:t,typo3server:t,dvrcam:t,ilovecollege:t,"no-ip":t,forumz:t,nsupdate:t,dnsupdate:t,"v-info":t}],int:[1,{eu:e}],io:[1,{2038:t,co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,"on-acorn":n,myaddr:t,apigee:t,"b-data":t,beagleboard:t,bitbucket:t,bluebite:t,boxfuse:t,brave:r,browsersafetymark:t,bubble:He,bubbleapps:t,bigv:[0,{uk0:t}],cleverapps:t,cloudbeesusercontent:t,dappnode:[0,{dyndns:t}],darklang:t,definima:t,dedyn:t,icp0:ya,icp1:ya,qzz:t,"fh-muenster":t,gitbook:t,github:t,gitlab:t,lolipop:t,"hasura-app":t,hostyhosting:t,hypernode:t,moonscale:n,beebyte:W,beebyteapp:[0,{sekd1:t}],jele:t,keenetic:t,kiloapps:t,webthings:t,loginline:t,barsy:t,azurecontainer:n,ngrok:[2,{ap:t,au:t,eu:t,in:t,jp:t,sa:t,us:t}],nodeart:[0,{stage:t}],pantheonsite:t,forgerock:[0,{id:t}],pstmn:[2,{mock:t}],protonet:t,qcx:[2,{sys:n}],qoto:t,vaporcloud:t,myrdbx:t,"rb-hosting":ne,"on-k3s":n,"on-rio":n,readthedocs:t,resindevice:t,resinstaging:[0,{devices:t}],hzc:t,sandcats:t,scrypted:[0,{client:t}],"mo-siemens":t,lair:G,stolos:n,musician:t,utwente:t,edugit:t,telebit:t,thingdust:[0,{dev:jt,disrec:jt,prod:wa,testing:jt}],tickets:t,webflow:t,webflowtest:t,"drive-platform":t,editorx:t,wixstudio:t,basicserver:t,virtualserver:t}],iq:o,ir:[1,{ac:e,co:e,gov:e,id:e,net:e,org:e,sch:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,arvanedge:t,vistablog:t}],is:e,it:[1,{edu:e,gov:e,abr:e,abruzzo:e,"aosta-valley":e,aostavalley:e,bas:e,basilicata:e,cal:e,calabria:e,cam:e,campania:e,"emilia-romagna":e,emiliaromagna:e,emr:e,"friuli-v-giulia":e,"friuli-ve-giulia":e,"friuli-vegiulia":e,"friuli-venezia-giulia":e,"friuli-veneziagiulia":e,"friuli-vgiulia":e,"friuliv-giulia":e,"friulive-giulia":e,friulivegiulia:e,"friulivenezia-giulia":e,friuliveneziagiulia:e,friulivgiulia:e,fvg:e,laz:e,lazio:e,lig:e,liguria:e,lom:e,lombardia:e,lombardy:e,lucania:e,mar:e,marche:e,mol:e,molise:e,piedmont:e,piemonte:e,pmn:e,pug:e,puglia:e,sar:e,sardegna:e,sardinia:e,sic:e,sicilia:e,sicily:e,taa:e,tos:e,toscana:e,"trentin-sud-tirol":e,"xn--trentin-sd-tirol-rzb":e,"trentin-s\xFCd-tirol":e,"trentin-sudtirol":e,"xn--trentin-sdtirol-7vb":e,"trentin-s\xFCdtirol":e,"trentin-sued-tirol":e,"trentin-suedtirol":e,trentino:e,"trentino-a-adige":e,"trentino-aadige":e,"trentino-alto-adige":e,"trentino-altoadige":e,"trentino-s-tirol":e,"trentino-stirol":e,"trentino-sud-tirol":e,"xn--trentino-sd-tirol-c3b":e,"trentino-s\xFCd-tirol":e,"trentino-sudtirol":e,"xn--trentino-sdtirol-szb":e,"trentino-s\xFCdtirol":e,"trentino-sued-tirol":e,"trentino-suedtirol":e,"trentinoa-adige":e,trentinoaadige:e,"trentinoalto-adige":e,trentinoaltoadige:e,"trentinos-tirol":e,trentinostirol:e,"trentinosud-tirol":e,"xn--trentinosd-tirol-rzb":e,"trentinos\xFCd-tirol":e,trentinosudtirol:e,"xn--trentinosdtirol-7vb":e,trentinos\u00FCdtirol:e,"trentinosued-tirol":e,trentinosuedtirol:e,"trentinsud-tirol":e,"xn--trentinsd-tirol-6vb":e,"trentins\xFCd-tirol":e,trentinsudtirol:e,"xn--trentinsdtirol-nsb":e,trentins\u00FCdtirol:e,"trentinsued-tirol":e,trentinsuedtirol:e,tuscany:e,umb:e,umbria:e,"val-d-aosta":e,"val-daosta":e,"vald-aosta":e,valdaosta:e,"valle-aosta":e,"valle-d-aosta":e,"valle-daosta":e,valleaosta:e,"valled-aosta":e,valledaosta:e,"vallee-aoste":e,"xn--valle-aoste-ebb":e,"vall\xE9e-aoste":e,"vallee-d-aoste":e,"xn--valle-d-aoste-ehb":e,"vall\xE9e-d-aoste":e,valleeaoste:e,"xn--valleaoste-e7a":e,vall\u00E9eaoste:e,valleedaoste:e,"xn--valledaoste-ebb":e,vall\u00E9edaoste:e,vao:e,vda:e,ven:e,veneto:e,ag:e,agrigento:e,al:e,alessandria:e,"alto-adige":e,altoadige:e,an:e,ancona:e,"andria-barletta-trani":e,"andria-trani-barletta":e,andriabarlettatrani:e,andriatranibarletta:e,ao:e,aosta:e,aoste:e,ap:e,aq:e,aquila:e,ar:e,arezzo:e,"ascoli-piceno":e,ascolipiceno:e,asti:e,at:e,av:e,avellino:e,ba:e,balsan:e,"balsan-sudtirol":e,"xn--balsan-sdtirol-nsb":e,"balsan-s\xFCdtirol":e,"balsan-suedtirol":e,bari:e,"barletta-trani-andria":e,barlettatraniandria:e,belluno:e,benevento:e,bergamo:e,bg:e,bi:e,biella:e,bl:e,bn:e,bo:e,bologna:e,bolzano:e,"bolzano-altoadige":e,bozen:e,"bozen-sudtirol":e,"xn--bozen-sdtirol-2ob":e,"bozen-s\xFCdtirol":e,"bozen-suedtirol":e,br:e,brescia:e,brindisi:e,bs:e,bt:e,bulsan:e,"bulsan-sudtirol":e,"xn--bulsan-sdtirol-nsb":e,"bulsan-s\xFCdtirol":e,"bulsan-suedtirol":e,bz:e,ca:e,cagliari:e,caltanissetta:e,"campidano-medio":e,campidanomedio:e,campobasso:e,"carbonia-iglesias":e,carboniaiglesias:e,"carrara-massa":e,carraramassa:e,caserta:e,catania:e,catanzaro:e,cb:e,ce:e,"cesena-forli":e,"xn--cesena-forl-mcb":e,"cesena-forl\xEC":e,cesenaforli:e,"xn--cesenaforl-i8a":e,cesenaforl\u00EC:e,ch:e,chieti:e,ci:e,cl:e,cn:e,co:e,como:e,cosenza:e,cr:e,cremona:e,crotone:e,cs:e,ct:e,cuneo:e,cz:e,"dell-ogliastra":e,dellogliastra:e,en:e,enna:e,fc:e,fe:e,fermo:e,ferrara:e,fg:e,fi:e,firenze:e,florence:e,fm:e,foggia:e,"forli-cesena":e,"xn--forl-cesena-fcb":e,"forl\xEC-cesena":e,forlicesena:e,"xn--forlcesena-c8a":e,forl\u00ECcesena:e,fr:e,frosinone:e,ge:e,genoa:e,genova:e,go:e,gorizia:e,gr:e,grosseto:e,"iglesias-carbonia":e,iglesiascarbonia:e,im:e,imperia:e,is:e,isernia:e,kr:e,"la-spezia":e,laquila:e,laspezia:e,latina:e,lc:e,le:e,lecce:e,lecco:e,li:e,livorno:e,lo:e,lodi:e,lt:e,lu:e,lucca:e,macerata:e,mantova:e,"massa-carrara":e,massacarrara:e,matera:e,mb:e,mc:e,me:e,"medio-campidano":e,mediocampidano:e,messina:e,mi:e,milan:e,milano:e,mn:e,mo:e,modena:e,monza:e,"monza-brianza":e,"monza-e-della-brianza":e,monzabrianza:e,monzaebrianza:e,monzaedellabrianza:e,ms:e,mt:e,na:e,naples:e,napoli:e,no:e,novara:e,nu:e,nuoro:e,og:e,ogliastra:e,"olbia-tempio":e,olbiatempio:e,or:e,oristano:e,ot:e,pa:e,padova:e,padua:e,palermo:e,parma:e,pavia:e,pc:e,pd:e,pe:e,perugia:e,"pesaro-urbino":e,pesarourbino:e,pescara:e,pg:e,pi:e,piacenza:e,pisa:e,pistoia:e,pn:e,po:e,pordenone:e,potenza:e,pr:e,prato:e,pt:e,pu:e,pv:e,pz:e,ra:e,ragusa:e,ravenna:e,rc:e,re:e,"reggio-calabria":e,"reggio-emilia":e,reggiocalabria:e,reggioemilia:e,rg:e,ri:e,rieti:e,rimini:e,rm:e,rn:e,ro:e,roma:e,rome:e,rovigo:e,sa:e,salerno:e,sassari:e,savona:e,si:e,siena:e,siracusa:e,so:e,sondrio:e,sp:e,sr:e,ss:e,"xn--sdtirol-n2a":e,s\u00FCdtirol:e,suedtirol:e,sv:e,ta:e,taranto:e,te:e,"tempio-olbia":e,tempioolbia:e,teramo:e,terni:e,tn:e,to:e,torino:e,tp:e,tr:e,"trani-andria-barletta":e,"trani-barletta-andria":e,traniandriabarletta:e,tranibarlettaandria:e,trapani:e,trento:e,treviso:e,trieste:e,ts:e,turin:e,tv:e,ud:e,udine:e,"urbino-pesaro":e,urbinopesaro:e,va:e,varese:e,vb:e,vc:e,ve:e,venezia:e,venice:e,verbania:e,vercelli:e,verona:e,vi:e,"vibo-valentia":e,vibovalentia:e,vicenza:e,viterbo:e,vr:e,vs:e,vt:e,vv:e,ibxos:t,iliadboxos:t,neen:[0,{jc:t}],"123homepage":t,"16-b":t,"32-b":t,"64-b":t,myspreadshop:t,syncloud:t}],je:[1,{co:e,net:e,org:e,of:t}],jm:v,jo:[1,{agri:e,ai:e,com:e,edu:e,eng:e,fm:e,gov:e,mil:e,net:e,org:e,per:e,phd:e,sch:e,tv:e}],jobs:e,jp:[1,{ac:e,ad:e,co:e,ed:e,go:e,gr:e,lg:e,ne:[1,{aseinet:ba,gehirn:t,ivory:t,"mail-box":t,mints:t,mokuren:t,opal:t,sakura:t,sumomo:t,topaz:t}],or:e,aichi:[1,{aisai:e,ama:e,anjo:e,asuke:e,chiryu:e,chita:e,fuso:e,gamagori:e,handa:e,hazu:e,hekinan:e,higashiura:e,ichinomiya:e,inazawa:e,inuyama:e,isshiki:e,iwakura:e,kanie:e,kariya:e,kasugai:e,kira:e,kiyosu:e,komaki:e,konan:e,kota:e,mihama:e,miyoshi:e,nishio:e,nisshin:e,obu:e,oguchi:e,oharu:e,okazaki:e,owariasahi:e,seto:e,shikatsu:e,shinshiro:e,shitara:e,tahara:e,takahama:e,tobishima:e,toei:e,togo:e,tokai:e,tokoname:e,toyoake:e,toyohashi:e,toyokawa:e,toyone:e,toyota:e,tsushima:e,yatomi:e}],akita:[1,{akita:e,daisen:e,fujisato:e,gojome:e,hachirogata:e,happou:e,higashinaruse:e,honjo:e,honjyo:e,ikawa:e,kamikoani:e,kamioka:e,katagami:e,kazuno:e,kitaakita:e,kosaka:e,kyowa:e,misato:e,mitane:e,moriyoshi:e,nikaho:e,noshiro:e,odate:e,oga:e,ogata:e,semboku:e,yokote:e,yurihonjo:e}],aomori:[1,{aomori:e,gonohe:e,hachinohe:e,hashikami:e,hiranai:e,hirosaki:e,itayanagi:e,kuroishi:e,misawa:e,mutsu:e,nakadomari:e,noheji:e,oirase:e,owani:e,rokunohe:e,sannohe:e,shichinohe:e,shingo:e,takko:e,towada:e,tsugaru:e,tsuruta:e}],chiba:[1,{abiko:e,asahi:e,chonan:e,chosei:e,choshi:e,chuo:e,funabashi:e,futtsu:e,hanamigawa:e,ichihara:e,ichikawa:e,ichinomiya:e,inzai:e,isumi:e,kamagaya:e,kamogawa:e,kashiwa:e,katori:e,katsuura:e,kimitsu:e,kisarazu:e,kozaki:e,kujukuri:e,kyonan:e,matsudo:e,midori:e,mihama:e,minamiboso:e,mobara:e,mutsuzawa:e,nagara:e,nagareyama:e,narashino:e,narita:e,noda:e,oamishirasato:e,omigawa:e,onjuku:e,otaki:e,sakae:e,sakura:e,shimofusa:e,shirako:e,shiroi:e,shisui:e,sodegaura:e,sosa:e,tako:e,tateyama:e,togane:e,tohnosho:e,tomisato:e,urayasu:e,yachimata:e,yachiyo:e,yokaichiba:e,yokoshibahikari:e,yotsukaido:e}],ehime:[1,{ainan:e,honai:e,ikata:e,imabari:e,iyo:e,kamijima:e,kihoku:e,kumakogen:e,masaki:e,matsuno:e,matsuyama:e,namikata:e,niihama:e,ozu:e,saijo:e,seiyo:e,shikokuchuo:e,tobe:e,toon:e,uchiko:e,uwajima:e,yawatahama:e}],fukui:[1,{echizen:e,eiheiji:e,fukui:e,ikeda:e,katsuyama:e,mihama:e,minamiechizen:e,obama:e,ohi:e,ono:e,sabae:e,sakai:e,takahama:e,tsuruga:e,wakasa:e}],fukuoka:[1,{ashiya:e,buzen:e,chikugo:e,chikuho:e,chikujo:e,chikushino:e,chikuzen:e,chuo:e,dazaifu:e,fukuchi:e,hakata:e,higashi:e,hirokawa:e,hisayama:e,iizuka:e,inatsuki:e,kaho:e,kasuga:e,kasuya:e,kawara:e,keisen:e,koga:e,kurate:e,kurogi:e,kurume:e,minami:e,miyako:e,miyama:e,miyawaka:e,mizumaki:e,munakata:e,nakagawa:e,nakama:e,nishi:e,nogata:e,ogori:e,okagaki:e,okawa:e,oki:e,omuta:e,onga:e,onojo:e,oto:e,saigawa:e,sasaguri:e,shingu:e,shinyoshitomi:e,shonai:e,soeda:e,sue:e,tachiarai:e,tagawa:e,takata:e,toho:e,toyotsu:e,tsuiki:e,ukiha:e,umi:e,usui:e,yamada:e,yame:e,yanagawa:e,yukuhashi:e}],fukushima:[1,{aizubange:e,aizumisato:e,aizuwakamatsu:e,asakawa:e,bandai:e,date:e,fukushima:e,furudono:e,futaba:e,hanawa:e,higashi:e,hirata:e,hirono:e,iitate:e,inawashiro:e,ishikawa:e,iwaki:e,izumizaki:e,kagamiishi:e,kaneyama:e,kawamata:e,kitakata:e,kitashiobara:e,koori:e,koriyama:e,kunimi:e,miharu:e,mishima:e,namie:e,nango:e,nishiaizu:e,nishigo:e,okuma:e,omotego:e,ono:e,otama:e,samegawa:e,shimogo:e,shirakawa:e,showa:e,soma:e,sukagawa:e,taishin:e,tamakawa:e,tanagura:e,tenei:e,yabuki:e,yamato:e,yamatsuri:e,yanaizu:e,yugawa:e}],gifu:[1,{anpachi:e,ena:e,gifu:e,ginan:e,godo:e,gujo:e,hashima:e,hichiso:e,hida:e,higashishirakawa:e,ibigawa:e,ikeda:e,kakamigahara:e,kani:e,kasahara:e,kasamatsu:e,kawaue:e,kitagata:e,mino:e,minokamo:e,mitake:e,mizunami:e,motosu:e,nakatsugawa:e,ogaki:e,sakahogi:e,seki:e,sekigahara:e,shirakawa:e,tajimi:e,takayama:e,tarui:e,toki:e,tomika:e,wanouchi:e,yamagata:e,yaotsu:e,yoro:e}],gunma:[1,{annaka:e,chiyoda:e,fujioka:e,higashiagatsuma:e,isesaki:e,itakura:e,kanna:e,kanra:e,katashina:e,kawaba:e,kiryu:e,kusatsu:e,maebashi:e,meiwa:e,midori:e,minakami:e,naganohara:e,nakanojo:e,nanmoku:e,numata:e,oizumi:e,ora:e,ota:e,shibukawa:e,shimonita:e,shinto:e,showa:e,takasaki:e,takayama:e,tamamura:e,tatebayashi:e,tomioka:e,tsukiyono:e,tsumagoi:e,ueno:e,yoshioka:e}],hiroshima:[1,{asaminami:e,daiwa:e,etajima:e,fuchu:e,fukuyama:e,hatsukaichi:e,higashihiroshima:e,hongo:e,jinsekikogen:e,kaita:e,kui:e,kumano:e,kure:e,mihara:e,miyoshi:e,naka:e,onomichi:e,osakikamijima:e,otake:e,saka:e,sera:e,seranishi:e,shinichi:e,shobara:e,takehara:e}],hokkaido:[1,{abashiri:e,abira:e,aibetsu:e,akabira:e,akkeshi:e,asahikawa:e,ashibetsu:e,ashoro:e,assabu:e,atsuma:e,bibai:e,biei:e,bifuka:e,bihoro:e,biratori:e,chippubetsu:e,chitose:e,date:e,ebetsu:e,embetsu:e,eniwa:e,erimo:e,esan:e,esashi:e,fukagawa:e,fukushima:e,furano:e,furubira:e,haboro:e,hakodate:e,hamatonbetsu:e,hidaka:e,higashikagura:e,higashikawa:e,hiroo:e,hokuryu:e,hokuto:e,honbetsu:e,horokanai:e,horonobe:e,ikeda:e,imakane:e,ishikari:e,iwamizawa:e,iwanai:e,kamifurano:e,kamikawa:e,kamishihoro:e,kamisunagawa:e,kamoenai:e,kayabe:e,kembuchi:e,kikonai:e,kimobetsu:e,kitahiroshima:e,kitami:e,kiyosato:e,koshimizu:e,kunneppu:e,kuriyama:e,kuromatsunai:e,kushiro:e,kutchan:e,kyowa:e,mashike:e,matsumae:e,mikasa:e,minamifurano:e,mombetsu:e,moseushi:e,mukawa:e,muroran:e,naie:e,nakagawa:e,nakasatsunai:e,nakatombetsu:e,nanae:e,nanporo:e,nayoro:e,nemuro:e,niikappu:e,niki:e,nishiokoppe:e,noboribetsu:e,numata:e,obihiro:e,obira:e,oketo:e,okoppe:e,otaru:e,otobe:e,otofuke:e,otoineppu:e,oumu:e,ozora:e,pippu:e,rankoshi:e,rebun:e,rikubetsu:e,rishiri:e,rishirifuji:e,saroma:e,sarufutsu:e,shakotan:e,shari:e,shibecha:e,shibetsu:e,shikabe:e,shikaoi:e,shimamaki:e,shimizu:e,shimokawa:e,shinshinotsu:e,shintoku:e,shiranuka:e,shiraoi:e,shiriuchi:e,sobetsu:e,sunagawa:e,taiki:e,takasu:e,takikawa:e,takinoue:e,teshikaga:e,tobetsu:e,tohma:e,tomakomai:e,tomari:e,toya:e,toyako:e,toyotomi:e,toyoura:e,tsubetsu:e,tsukigata:e,urakawa:e,urausu:e,uryu:e,utashinai:e,wakkanai:e,wassamu:e,yakumo:e,yoichi:e}],hyogo:[1,{aioi:e,akashi:e,ako:e,amagasaki:e,aogaki:e,asago:e,ashiya:e,awaji:e,fukusaki:e,goshiki:e,harima:e,himeji:e,ichikawa:e,inagawa:e,itami:e,kakogawa:e,kamigori:e,kamikawa:e,kasai:e,kasuga:e,kawanishi:e,miki:e,minamiawaji:e,nishinomiya:e,nishiwaki:e,ono:e,sanda:e,sannan:e,sasayama:e,sayo:e,shingu:e,shinonsen:e,shiso:e,sumoto:e,taishi:e,taka:e,takarazuka:e,takasago:e,takino:e,tamba:e,tatsuno:e,toyooka:e,yabu:e,yashiro:e,yoka:e,yokawa:e}],ibaraki:[1,{ami:e,asahi:e,bando:e,chikusei:e,daigo:e,fujishiro:e,hitachi:e,hitachinaka:e,hitachiomiya:e,hitachiota:e,ibaraki:e,ina:e,inashiki:e,itako:e,iwama:e,joso:e,kamisu:e,kasama:e,kashima:e,kasumigaura:e,koga:e,miho:e,mito:e,moriya:e,naka:e,namegata:e,oarai:e,ogawa:e,omitama:e,ryugasaki:e,sakai:e,sakuragawa:e,shimodate:e,shimotsuma:e,shirosato:e,sowa:e,suifu:e,takahagi:e,tamatsukuri:e,tokai:e,tomobe:e,tone:e,toride:e,tsuchiura:e,tsukuba:e,uchihara:e,ushiku:e,yachiyo:e,yamagata:e,yawara:e,yuki:e}],ishikawa:[1,{anamizu:e,hakui:e,hakusan:e,kaga:e,kahoku:e,kanazawa:e,kawakita:e,komatsu:e,nakanoto:e,nanao:e,nomi:e,nonoichi:e,noto:e,shika:e,suzu:e,tsubata:e,tsurugi:e,uchinada:e,wajima:e}],iwate:[1,{fudai:e,fujisawa:e,hanamaki:e,hiraizumi:e,hirono:e,ichinohe:e,ichinoseki:e,iwaizumi:e,iwate:e,joboji:e,kamaishi:e,kanegasaki:e,karumai:e,kawai:e,kitakami:e,kuji:e,kunohe:e,kuzumaki:e,miyako:e,mizusawa:e,morioka:e,ninohe:e,noda:e,ofunato:e,oshu:e,otsuchi:e,rikuzentakata:e,shiwa:e,shizukuishi:e,sumita:e,tanohata:e,tono:e,yahaba:e,yamada:e}],kagawa:[1,{ayagawa:e,higashikagawa:e,kanonji:e,kotohira:e,manno:e,marugame:e,mitoyo:e,naoshima:e,sanuki:e,tadotsu:e,takamatsu:e,tonosho:e,uchinomi:e,utazu:e,zentsuji:e}],kagoshima:[1,{akune:e,amami:e,hioki:e,isa:e,isen:e,izumi:e,kagoshima:e,kanoya:e,kawanabe:e,kinko:e,kouyama:e,makurazaki:e,matsumoto:e,minamitane:e,nakatane:e,nishinoomote:e,satsumasendai:e,soo:e,tarumizu:e,yusui:e}],kanagawa:[1,{aikawa:e,atsugi:e,ayase:e,chigasaki:e,ebina:e,fujisawa:e,hadano:e,hakone:e,hiratsuka:e,isehara:e,kaisei:e,kamakura:e,kiyokawa:e,matsuda:e,minamiashigara:e,miura:e,nakai:e,ninomiya:e,odawara:e,oi:e,oiso:e,sagamihara:e,samukawa:e,tsukui:e,yamakita:e,yamato:e,yokosuka:e,yugawara:e,zama:e,zushi:e}],kochi:[1,{aki:e,geisei:e,hidaka:e,higashitsuno:e,ino:e,kagami:e,kami:e,kitagawa:e,kochi:e,mihara:e,motoyama:e,muroto:e,nahari:e,nakamura:e,nankoku:e,nishitosa:e,niyodogawa:e,ochi:e,okawa:e,otoyo:e,otsuki:e,sakawa:e,sukumo:e,susaki:e,tosa:e,tosashimizu:e,toyo:e,tsuno:e,umaji:e,yasuda:e,yusuhara:e}],kumamoto:[1,{amakusa:e,arao:e,aso:e,choyo:e,gyokuto:e,kamiamakusa:e,kikuchi:e,kumamoto:e,mashiki:e,mifune:e,minamata:e,minamioguni:e,nagasu:e,nishihara:e,oguni:e,ozu:e,sumoto:e,takamori:e,uki:e,uto:e,yamaga:e,yamato:e,yatsushiro:e}],kyoto:[1,{ayabe:e,fukuchiyama:e,higashiyama:e,ide:e,ine:e,joyo:e,kameoka:e,kamo:e,kita:e,kizu:e,kumiyama:e,kyotamba:e,kyotanabe:e,kyotango:e,maizuru:e,minami:e,minamiyamashiro:e,miyazu:e,muko:e,nagaokakyo:e,nakagyo:e,nantan:e,oyamazaki:e,sakyo:e,seika:e,tanabe:e,uji:e,ujitawara:e,wazuka:e,yamashina:e,yawata:e}],mie:[1,{asahi:e,inabe:e,ise:e,kameyama:e,kawagoe:e,kiho:e,kisosaki:e,kiwa:e,komono:e,kumano:e,kuwana:e,matsusaka:e,meiwa:e,mihama:e,minamiise:e,misugi:e,miyama:e,nabari:e,shima:e,suzuka:e,tado:e,taiki:e,taki:e,tamaki:e,toba:e,tsu:e,udono:e,ureshino:e,watarai:e,yokkaichi:e}],miyagi:[1,{furukawa:e,higashimatsushima:e,ishinomaki:e,iwanuma:e,kakuda:e,kami:e,kawasaki:e,marumori:e,matsushima:e,minamisanriku:e,misato:e,murata:e,natori:e,ogawara:e,ohira:e,onagawa:e,osaki:e,rifu:e,semine:e,shibata:e,shichikashuku:e,shikama:e,shiogama:e,shiroishi:e,tagajo:e,taiwa:e,tome:e,tomiya:e,wakuya:e,watari:e,yamamoto:e,zao:e}],miyazaki:[1,{aya:e,ebino:e,gokase:e,hyuga:e,kadogawa:e,kawaminami:e,kijo:e,kitagawa:e,kitakata:e,kitaura:e,kobayashi:e,kunitomi:e,kushima:e,mimata:e,miyakonojo:e,miyazaki:e,morotsuka:e,nichinan:e,nishimera:e,nobeoka:e,saito:e,shiiba:e,shintomi:e,takaharu:e,takanabe:e,takazaki:e,tsuno:e}],nagano:[1,{achi:e,agematsu:e,anan:e,aoki:e,asahi:e,azumino:e,chikuhoku:e,chikuma:e,chino:e,fujimi:e,hakuba:e,hara:e,hiraya:e,iida:e,iijima:e,iiyama:e,iizuna:e,ikeda:e,ikusaka:e,ina:e,karuizawa:e,kawakami:e,kiso:e,kisofukushima:e,kitaaiki:e,komagane:e,komoro:e,matsukawa:e,matsumoto:e,miasa:e,minamiaiki:e,minamimaki:e,minamiminowa:e,minowa:e,miyada:e,miyota:e,mochizuki:e,nagano:e,nagawa:e,nagiso:e,nakagawa:e,nakano:e,nozawaonsen:e,obuse:e,ogawa:e,okaya:e,omachi:e,omi:e,ookuwa:e,ooshika:e,otaki:e,otari:e,sakae:e,sakaki:e,saku:e,sakuho:e,shimosuwa:e,shinanomachi:e,shiojiri:e,suwa:e,suzaka:e,takagi:e,takamori:e,takayama:e,tateshina:e,tatsuno:e,togakushi:e,togura:e,tomi:e,ueda:e,wada:e,yamagata:e,yamanouchi:e,yasaka:e,yasuoka:e}],nagasaki:[1,{chijiwa:e,futsu:e,goto:e,hasami:e,hirado:e,iki:e,isahaya:e,kawatana:e,kuchinotsu:e,matsuura:e,nagasaki:e,obama:e,omura:e,oseto:e,saikai:e,sasebo:e,seihi:e,shimabara:e,shinkamigoto:e,togitsu:e,tsushima:e,unzen:e}],nara:[1,{ando:e,gose:e,heguri:e,higashiyoshino:e,ikaruga:e,ikoma:e,kamikitayama:e,kanmaki:e,kashiba:e,kashihara:e,katsuragi:e,kawai:e,kawakami:e,kawanishi:e,koryo:e,kurotaki:e,mitsue:e,miyake:e,nara:e,nosegawa:e,oji:e,ouda:e,oyodo:e,sakurai:e,sango:e,shimoichi:e,shimokitayama:e,shinjo:e,soni:e,takatori:e,tawaramoto:e,tenkawa:e,tenri:e,uda:e,yamatokoriyama:e,yamatotakada:e,yamazoe:e,yoshino:e}],niigata:[1,{aga:e,agano:e,gosen:e,itoigawa:e,izumozaki:e,joetsu:e,kamo:e,kariwa:e,kashiwazaki:e,minamiuonuma:e,mitsuke:e,muika:e,murakami:e,myoko:e,nagaoka:e,niigata:e,ojiya:e,omi:e,sado:e,sanjo:e,seiro:e,seirou:e,sekikawa:e,shibata:e,tagami:e,tainai:e,tochio:e,tokamachi:e,tsubame:e,tsunan:e,uonuma:e,yahiko:e,yoita:e,yuzawa:e}],oita:[1,{beppu:e,bungoono:e,bungotakada:e,hasama:e,hiji:e,himeshima:e,hita:e,kamitsue:e,kokonoe:e,kuju:e,kunisaki:e,kusu:e,oita:e,saiki:e,taketa:e,tsukumi:e,usa:e,usuki:e,yufu:e}],okayama:[1,{akaiwa:e,asakuchi:e,bizen:e,hayashima:e,ibara:e,kagamino:e,kasaoka:e,kibichuo:e,kumenan:e,kurashiki:e,maniwa:e,misaki:e,nagi:e,niimi:e,nishiawakura:e,okayama:e,satosho:e,setouchi:e,shinjo:e,shoo:e,soja:e,takahashi:e,tamano:e,tsuyama:e,wake:e,yakage:e}],okinawa:[1,{aguni:e,ginowan:e,ginoza:e,gushikami:e,haebaru:e,higashi:e,hirara:e,iheya:e,ishigaki:e,ishikawa:e,itoman:e,izena:e,kadena:e,kin:e,kitadaito:e,kitanakagusuku:e,kumejima:e,kunigami:e,minamidaito:e,motobu:e,nago:e,naha:e,nakagusuku:e,nakijin:e,nanjo:e,nishihara:e,ogimi:e,okinawa:e,onna:e,shimoji:e,taketomi:e,tarama:e,tokashiki:e,tomigusuku:e,tonaki:e,urasoe:e,uruma:e,yaese:e,yomitan:e,yonabaru:e,yonaguni:e,zamami:e}],osaka:[1,{abeno:e,chihayaakasaka:e,chuo:e,daito:e,fujiidera:e,habikino:e,hannan:e,higashiosaka:e,higashisumiyoshi:e,higashiyodogawa:e,hirakata:e,ibaraki:e,ikeda:e,izumi:e,izumiotsu:e,izumisano:e,kadoma:e,kaizuka:e,kanan:e,kashiwara:e,katano:e,kawachinagano:e,kishiwada:e,kita:e,kumatori:e,matsubara:e,minato:e,minoh:e,misaki:e,moriguchi:e,neyagawa:e,nishi:e,nose:e,osakasayama:e,sakai:e,sayama:e,sennan:e,settsu:e,shijonawate:e,shimamoto:e,suita:e,tadaoka:e,taishi:e,tajiri:e,takaishi:e,takatsuki:e,tondabayashi:e,toyonaka:e,toyono:e,yao:e}],saga:[1,{ariake:e,arita:e,fukudomi:e,genkai:e,hamatama:e,hizen:e,imari:e,kamimine:e,kanzaki:e,karatsu:e,kashima:e,kitagata:e,kitahata:e,kiyama:e,kouhoku:e,kyuragi:e,nishiarita:e,ogi:e,omachi:e,ouchi:e,saga:e,shiroishi:e,taku:e,tara:e,tosu:e,yoshinogari:e}],saitama:[1,{arakawa:e,asaka:e,chichibu:e,fujimi:e,fujimino:e,fukaya:e,hanno:e,hanyu:e,hasuda:e,hatogaya:e,hatoyama:e,hidaka:e,higashichichibu:e,higashimatsuyama:e,honjo:e,ina:e,iruma:e,iwatsuki:e,kamiizumi:e,kamikawa:e,kamisato:e,kasukabe:e,kawagoe:e,kawaguchi:e,kawajima:e,kazo:e,kitamoto:e,koshigaya:e,kounosu:e,kuki:e,kumagaya:e,matsubushi:e,minano:e,misato:e,miyashiro:e,miyoshi:e,moroyama:e,nagatoro:e,namegawa:e,niiza:e,ogano:e,ogawa:e,ogose:e,okegawa:e,omiya:e,otaki:e,ranzan:e,ryokami:e,saitama:e,sakado:e,satte:e,sayama:e,shiki:e,shiraoka:e,soka:e,sugito:e,toda:e,tokigawa:e,tokorozawa:e,tsurugashima:e,urawa:e,warabi:e,yashio:e,yokoze:e,yono:e,yorii:e,yoshida:e,yoshikawa:e,yoshimi:e}],shiga:[1,{aisho:e,gamo:e,higashiomi:e,hikone:e,koka:e,konan:e,kosei:e,koto:e,kusatsu:e,maibara:e,moriyama:e,nagahama:e,nishiazai:e,notogawa:e,omihachiman:e,otsu:e,ritto:e,ryuoh:e,takashima:e,takatsuki:e,torahime:e,toyosato:e,yasu:e}],shimane:[1,{akagi:e,ama:e,gotsu:e,hamada:e,higashiizumo:e,hikawa:e,hikimi:e,izumo:e,kakinoki:e,masuda:e,matsue:e,misato:e,nishinoshima:e,ohda:e,okinoshima:e,okuizumo:e,shimane:e,tamayu:e,tsuwano:e,unnan:e,yakumo:e,yasugi:e,yatsuka:e}],shizuoka:[1,{arai:e,atami:e,fuji:e,fujieda:e,fujikawa:e,fujinomiya:e,fukuroi:e,gotemba:e,haibara:e,hamamatsu:e,higashiizu:e,ito:e,iwata:e,izu:e,izunokuni:e,kakegawa:e,kannami:e,kawanehon:e,kawazu:e,kikugawa:e,kosai:e,makinohara:e,matsuzaki:e,minamiizu:e,mishima:e,morimachi:e,nishiizu:e,numazu:e,omaezaki:e,shimada:e,shimizu:e,shimoda:e,shizuoka:e,susono:e,yaizu:e,yoshida:e}],tochigi:[1,{ashikaga:e,bato:e,haga:e,ichikai:e,iwafune:e,kaminokawa:e,kanuma:e,karasuyama:e,kuroiso:e,mashiko:e,mibu:e,moka:e,motegi:e,nasu:e,nasushiobara:e,nikko:e,nishikata:e,nogi:e,ohira:e,ohtawara:e,oyama:e,sakura:e,sano:e,shimotsuke:e,shioya:e,takanezawa:e,tochigi:e,tsuga:e,ujiie:e,utsunomiya:e,yaita:e}],tokushima:[1,{aizumi:e,anan:e,ichiba:e,itano:e,kainan:e,komatsushima:e,matsushige:e,mima:e,minami:e,miyoshi:e,mugi:e,nakagawa:e,naruto:e,sanagochi:e,shishikui:e,tokushima:e,wajiki:e}],tokyo:[1,{adachi:e,akiruno:e,akishima:e,aogashima:e,arakawa:e,bunkyo:e,chiyoda:e,chofu:e,chuo:e,edogawa:e,fuchu:e,fussa:e,hachijo:e,hachioji:e,hamura:e,higashikurume:e,higashimurayama:e,higashiyamato:e,hino:e,hinode:e,hinohara:e,inagi:e,itabashi:e,katsushika:e,kita:e,kiyose:e,kodaira:e,koganei:e,kokubunji:e,komae:e,koto:e,kouzushima:e,kunitachi:e,machida:e,meguro:e,minato:e,mitaka:e,mizuho:e,musashimurayama:e,musashino:e,nakano:e,nerima:e,ogasawara:e,okutama:e,ome:e,oshima:e,ota:e,setagaya:e,shibuya:e,shinagawa:e,shinjuku:e,suginami:e,sumida:e,tachikawa:e,taito:e,tama:e,toshima:e}],tottori:[1,{chizu:e,hino:e,kawahara:e,koge:e,kotoura:e,misasa:e,nanbu:e,nichinan:e,sakaiminato:e,tottori:e,wakasa:e,yazu:e,yonago:e}],toyama:[1,{asahi:e,fuchu:e,fukumitsu:e,funahashi:e,himi:e,imizu:e,inami:e,johana:e,kamiichi:e,kurobe:e,nakaniikawa:e,namerikawa:e,nanto:e,nyuzen:e,oyabe:e,taira:e,takaoka:e,tateyama:e,toga:e,tonami:e,toyama:e,unazuki:e,uozu:e,yamada:e}],wakayama:[1,{arida:e,aridagawa:e,gobo:e,hashimoto:e,hidaka:e,hirogawa:e,inami:e,iwade:e,kainan:e,kamitonda:e,katsuragi:e,kimino:e,kinokawa:e,kitayama:e,koya:e,koza:e,kozagawa:e,kudoyama:e,kushimoto:e,mihama:e,misato:e,nachikatsuura:e,shingu:e,shirahama:e,taiji:e,tanabe:e,wakayama:e,yuasa:e,yura:e}],yamagata:[1,{asahi:e,funagata:e,higashine:e,iide:e,kahoku:e,kaminoyama:e,kaneyama:e,kawanishi:e,mamurogawa:e,mikawa:e,murayama:e,nagai:e,nakayama:e,nanyo:e,nishikawa:e,obanazawa:e,oe:e,oguni:e,ohkura:e,oishida:e,sagae:e,sakata:e,sakegawa:e,shinjo:e,shirataka:e,shonai:e,takahata:e,tendo:e,tozawa:e,tsuruoka:e,yamagata:e,yamanobe:e,yonezawa:e,yuza:e}],yamaguchi:[1,{abu:e,hagi:e,hikari:e,hofu:e,iwakuni:e,kudamatsu:e,mitou:e,nagato:e,oshima:e,shimonoseki:e,shunan:e,tabuse:e,tokuyama:e,toyota:e,ube:e,yuu:e}],yamanashi:[1,{chuo:e,doshi:e,fuefuki:e,fujikawa:e,fujikawaguchiko:e,fujiyoshida:e,hayakawa:e,hokuto:e,ichikawamisato:e,kai:e,kofu:e,koshu:e,kosuge:e,"minami-alps":e,minobu:e,nakamichi:e,nanbu:e,narusawa:e,nirasaki:e,nishikatsura:e,oshino:e,otsuki:e,showa:e,tabayama:e,tsuru:e,uenohara:e,yamanakako:e,yamanashi:e}],"xn--ehqz56n":e,\u4E09\u91CD:e,"xn--1lqs03n":e,\u4EAC\u90FD:e,"xn--qqqt11m":e,\u4F50\u8CC0:e,"xn--f6qx53a":e,\u5175\u5EAB:e,"xn--djrs72d6uy":e,\u5317\u6D77\u9053:e,"xn--mkru45i":e,\u5343\u8449:e,"xn--0trq7p7nn":e,\u548C\u6B4C\u5C71:e,"xn--5js045d":e,\u57FC\u7389:e,"xn--kbrq7o":e,\u5927\u5206:e,"xn--pssu33l":e,\u5927\u962A:e,"xn--ntsq17g":e,\u5948\u826F:e,"xn--uisz3g":e,\u5BAE\u57CE:e,"xn--6btw5a":e,\u5BAE\u5D0E:e,"xn--1ctwo":e,\u5BCC\u5C71:e,"xn--6orx2r":e,\u5C71\u53E3:e,"xn--rht61e":e,\u5C71\u5F62:e,"xn--rht27z":e,\u5C71\u68A8:e,"xn--nit225k":e,\u5C90\u961C:e,"xn--rht3d":e,\u5CA1\u5C71:e,"xn--djty4k":e,\u5CA9\u624B:e,"xn--klty5x":e,\u5CF6\u6839:e,"xn--kltx9a":e,\u5E83\u5CF6:e,"xn--kltp7d":e,\u5FB3\u5CF6:e,"xn--c3s14m":e,\u611B\u5A9B:e,"xn--vgu402c":e,\u611B\u77E5:e,"xn--efvn9s":e,\u65B0\u6F5F:e,"xn--1lqs71d":e,\u6771\u4EAC:e,"xn--4pvxs":e,\u6803\u6728:e,"xn--uuwu58a":e,\u6C96\u7E04:e,"xn--zbx025d":e,\u6ECB\u8CC0:e,"xn--8pvr4u":e,\u718A\u672C:e,"xn--5rtp49c":e,\u77F3\u5DDD:e,"xn--ntso0iqx3a":e,\u795E\u5948\u5DDD:e,"xn--elqq16h":e,\u798F\u4E95:e,"xn--4it168d":e,\u798F\u5CA1:e,"xn--klt787d":e,\u798F\u5CF6:e,"xn--rny31h":e,\u79CB\u7530:e,"xn--7t0a264c":e,\u7FA4\u99AC:e,"xn--uist22h":e,\u8328\u57CE:e,"xn--8ltr62k":e,\u9577\u5D0E:e,"xn--2m4a15e":e,\u9577\u91CE:e,"xn--32vp30h":e,\u9752\u68EE:e,"xn--4it797k":e,\u9759\u5CA1:e,"xn--5rtq34k":e,\u9999\u5DDD:e,"xn--k7yn95e":e,\u9AD8\u77E5:e,"xn--tor131o":e,\u9CE5\u53D6:e,"xn--d5qv7z876c":e,\u9E7F\u5150\u5CF6:e,kawasaki:v,kitakyushu:v,kobe:v,nagoya:v,sapporo:v,sendai:v,yokohama:v,buyshop:t,fashionstore:t,handcrafted:t,kawaiishop:t,supersale:t,theshop:t,"0am":t,"0g0":t,"0j0":t,"0t0":t,mydns:t,pgw:t,wjg:t,usercontent:t,angry:t,babyblue:t,babymilk:t,backdrop:t,bambina:t,bitter:t,blush:t,boo:t,boy:t,boyfriend:t,but:t,candypop:t,capoo:t,catfood:t,cheap:t,chicappa:t,chillout:t,chips:t,chowder:t,chu:t,ciao:t,cocotte:t,coolblog:t,cranky:t,cutegirl:t,daa:t,deca:t,deci:t,digick:t,egoism:t,fakefur:t,fem:t,flier:t,floppy:t,fool:t,frenchkiss:t,girlfriend:t,girly:t,gloomy:t,gonna:t,greater:t,hacca:t,heavy:t,her:t,hiho:t,hippy:t,holy:t,hungry:t,icurus:t,itigo:t,jellybean:t,kikirara:t,kill:t,kilo:t,kuron:t,littlestar:t,lolipopmc:t,lolitapunk:t,lomo:t,lovepop:t,lovesick:t,main:t,mods:t,mond:t,mongolian:t,moo:t,namaste:t,nikita:t,nobushi:t,noor:t,oops:t,parallel:t,parasite:t,pecori:t,peewee:t,penne:t,pepper:t,perma:t,pigboat:t,pinoko:t,punyu:t,pupu:t,pussycat:t,pya:t,raindrop:t,readymade:t,sadist:t,schoolbus:t,secret:t,staba:t,stripper:t,sub:t,sunnyday:t,thick:t,tonkotsu:t,under:t,upper:t,velvet:t,verse:t,versus:t,vivian:t,watson:t,weblike:t,whitesnow:t,zombie:t,hateblo:t,hatenablog:t,hatenadiary:t,"2-d":t,bona:t,crap:t,daynight:t,eek:t,flop:t,halfmoon:t,jeez:t,matrix:t,mimoza:t,netgamers:t,nyanta:t,o0o0:t,rdy:t,rgr:t,rulez:t,sakurastorage:[0,{isk01:Pt,isk02:Pt}],saloon:t,sblo:t,skr:t,tank:t,"uh-oh":t,undo:t,webaccel:[0,{rs:t,user:t}],websozai:t,xii:t}],ke:[1,{ac:e,co:e,go:e,info:e,me:e,mobi:e,ne:e,or:e,sc:e}],kg:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,us:t,xx:t,ae:t}],kh:a,ki:xa,km:[1,{ass:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e,tm:e,asso:e,coop:e,gouv:e,medecin:e,notaires:e,pharmaciens:e,presse:e,veterinaire:e}],kn:[1,{edu:e,gov:e,net:e,org:e}],kp:[1,{com:e,edu:e,gov:e,org:e,rep:e,tra:e}],kr:[1,{ac:e,ai:e,co:e,es:e,go:e,hs:e,io:e,it:e,kg:e,me:e,mil:e,ms:e,ne:e,or:e,pe:e,re:e,sc:e,busan:e,chungbuk:e,chungnam:e,daegu:e,daejeon:e,gangwon:e,gwangju:e,gyeongbuk:e,gyeonggi:e,gyeongnam:e,incheon:e,jeju:e,jeonbuk:e,jeonnam:e,seoul:e,ulsan:e,c01:t,"eliv-api":t,"eliv-cdn":t,"eliv-dns":t,mmv:t,vki:t}],kw:[1,{com:e,edu:e,emb:e,gov:e,ind:e,net:e,org:e}],ky:ze,kz:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,jcloud:t}],la:[1,{com:e,edu:e,gov:e,info:e,int:e,net:e,org:e,per:e,bnr:t}],lb:a,lc:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,oy:t}],li:e,lk:[1,{ac:e,assn:e,com:e,edu:e,gov:e,grp:e,hotel:e,int:e,ltd:e,net:e,ngo:e,org:e,sch:e,soc:e,web:e}],lr:a,ls:[1,{ac:e,biz:e,co:e,edu:e,gov:e,info:e,net:e,org:e,sc:e}],lt:i,lu:[1,{"123website":t}],lv:[1,{asn:e,com:e,conf:e,edu:e,gov:e,id:e,mil:e,net:e,org:e}],ly:[1,{com:e,edu:e,gov:e,id:e,med:e,net:e,org:e,plc:e,sch:e}],ma:[1,{ac:e,co:e,gov:e,net:e,org:e,press:e}],mc:[1,{asso:e,tm:e}],md:[1,{ir:t}],me:[1,{ac:e,co:e,edu:e,gov:e,its:e,net:e,org:e,priv:e,c66:t,craft:t,edgestack:t,mybox:t,filegear:t,"filegear-sg":t,lohmus:t,barsy:t,mcdir:t,brasilia:t,ddns:t,dnsfor:t,hopto:t,loginto:t,noip:t,webhop:t,soundcast:t,tcp4:t,vp4:t,diskstation:t,dscloud:t,i234:t,myds:t,synology:t,transip:ne,nohost:t}],mg:[1,{co:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e}],mh:e,mil:e,mk:[1,{com:e,edu:e,gov:e,inf:e,name:e,net:e,org:e}],ml:[1,{ac:e,art:e,asso:e,com:e,edu:e,gouv:e,gov:e,info:e,inst:e,net:e,org:e,pr:e,presse:e}],mm:v,mn:[1,{edu:e,gov:e,org:e,nyc:t}],mo:a,mobi:[1,{barsy:t,dscloud:t}],mp:[1,{ju:t}],mq:e,mr:i,ms:[1,{com:e,edu:e,gov:e,net:e,org:e,minisite:t}],mt:ze,mu:[1,{ac:e,co:e,com:e,gov:e,net:e,or:e,org:e}],museum:e,mv:[1,{aero:e,biz:e,com:e,coop:e,edu:e,gov:e,info:e,int:e,mil:e,museum:e,name:e,net:e,org:e,pro:e}],mw:[1,{ac:e,biz:e,co:e,com:e,coop:e,edu:e,gov:e,int:e,net:e,org:e}],mx:[1,{com:e,edu:e,gob:e,net:e,org:e}],my:[1,{biz:e,com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e}],mz:[1,{ac:e,adv:e,co:e,edu:e,gov:e,mil:e,net:e,org:e}],na:[1,{alt:e,co:e,com:e,gov:e,net:e,org:e}],name:[1,{her:va,his:va,ispmanager:t,keenetic:t}],nc:[1,{asso:e,nom:e}],ne:e,net:[1,{adobeaemcloud:t,"adobeio-static":t,adobeioruntime:t,akadns:t,akamai:t,"akamai-staging":t,akamaiedge:t,"akamaiedge-staging":t,akamaihd:t,"akamaihd-staging":t,akamaiorigin:t,"akamaiorigin-staging":t,akamaized:t,"akamaized-staging":t,edgekey:t,"edgekey-staging":t,edgesuite:t,"edgesuite-staging":t,alwaysdata:t,myamaze:t,cloudfront:t,appudo:t,"atlassian-dev":[0,{prod:He}],myfritz:t,shopselect:t,blackbaudcdn:t,boomla:t,bplaced:t,square7:t,cdn77:[0,{r:t}],"cdn77-ssl":t,gb:t,hu:t,jp:t,se:t,uk:t,clickrising:t,"ddns-ip":t,"dns-cloud":t,"dns-dynamic":t,cloudaccess:t,cloudflare:[2,{cdn:t}],cloudflareanycast:He,cloudflarecn:He,cloudflareglobal:He,ctfcloud:t,"feste-ip":t,"knx-server":t,"static-access":t,cryptonomic:n,dattolocal:t,mydatto:t,debian:t,definima:t,deno:[2,{sandbox:t}],icp:n,de5:t,"at-band-camp":t,blogdns:t,"broke-it":t,buyshouses:t,dnsalias:t,dnsdojo:t,"does-it":t,dontexist:t,dynalias:t,dynathome:t,endofinternet:t,"from-az":t,"from-co":t,"from-la":t,"from-ny":t,"gets-it":t,"ham-radio-op":t,homeftp:t,homeip:t,homelinux:t,homeunix:t,"in-the-band":t,"is-a-chef":t,"is-a-geek":t,"isa-geek":t,"kicks-ass":t,"office-on-the":t,podzone:t,"scrapper-site":t,selfip:t,"sells-it":t,servebbs:t,serveftp:t,thruhere:t,webhop:t,casacam:t,dynu:t,dynuddns:t,mysynology:t,opik:t,spryt:t,dynv6:t,twmail:t,ru:t,channelsdvr:[2,{u:t}],fastly:[0,{freetls:t,map:t,prod:[0,{a:t,global:t}],ssl:[0,{a:t,b:t,global:t}]}],fastlylb:[2,{map:t}],"keyword-on":t,"live-on":t,"server-on":t,"cdn-edges":t,heteml:t,cloudfunctions:t,"grafana-dev":t,iobb:t,moonscale:t,"in-dsl":t,"in-vpn":t,oninferno:t,botdash:t,"apps-1and1":t,ipifony:t,cloudjiffy:[2,{"fra1-de":t,"west1-us":t}],elastx:[0,{"jls-sto1":t,"jls-sto2":t,"jls-sto3":t}],massivegrid:[0,{paas:[0,{"fr-1":t,"lon-1":t,"lon-2":t,"ny-1":t,"ny-2":t,"sg-1":t}]}],saveincloud:[0,{jelastic:t,"nordeste-idc":t}],scaleforce:Ot,kinghost:t,uni5:t,krellian:t,ggff:t,localto:n,barsy:t,luyani:t,memset:t,"azure-api":t,"azure-mobile":t,azureedge:t,azurefd:t,azurestaticapps:[2,{1:t,2:t,3:t,4:t,5:t,6:t,7:t,centralus:t,eastasia:t,eastus2:t,westeurope:t,westus2:t}],azurewebsites:t,cloudapp:t,trafficmanager:t,usgovcloudapi:_a,usgovcloudapp:t,usgovtrafficmanager:t,windows:_a,mynetname:[0,{sn:t}],routingthecloud:t,bounceme:t,ddns:t,"eating-organic":t,mydissent:t,myeffect:t,mymediapc:t,mypsx:t,mysecuritycamera:t,nhlfan:t,"no-ip":t,pgafan:t,privatizehealthinsurance:t,redirectme:t,serveblog:t,serveminecraft:t,sytes:t,dnsup:t,hicam:t,"now-dns":t,ownip:t,vpndns:t,cloudycluster:t,ovh:[0,{hosting:n,webpaas:n}],rackmaze:t,myradweb:t,in:t,"subsc-pay":t,squares:t,schokokeks:t,"firewall-gateway":t,seidat:t,senseering:t,siteleaf:t,mafelo:t,myspreadshop:t,"vps-host":[2,{jelastic:[0,{atl:t,njs:t,ric:t}]}],srcf:[0,{soc:t,user:t}],supabase:t,dsmynas:t,familyds:t,ts:[2,{c:n}],torproject:[2,{pages:t}],tunnelmole:t,vusercontent:t,"reserve-online":t,localcert:t,"community-pro":t,meinforum:t,yandexcloud:[2,{storage:t,website:t}],za:t,zabc:t}],nf:[1,{arts:e,com:e,firm:e,info:e,net:e,other:e,per:e,rec:e,store:e,web:e}],ng:[1,{com:e,edu:e,gov:e,i:e,mil:e,mobi:e,name:e,net:e,org:e,sch:e,biz:[2,{co:t,dl:t,go:t,lg:t,on:t}],col:t,firm:t,gen:t,ltd:t,ngo:t,plc:t}],ni:[1,{ac:e,biz:e,co:e,com:e,edu:e,gob:e,in:e,info:e,int:e,mil:e,net:e,nom:e,org:e,web:e}],nl:[1,{co:t,"hosting-cluster":t,gov:t,khplay:t,"123website":t,myspreadshop:t,transurl:n,cistron:t,demon:t}],no:[1,{fhs:e,folkebibl:e,fylkesbibl:e,idrett:e,museum:e,priv:e,vgs:e,dep:e,herad:e,kommune:e,mil:e,stat:e,aa:X,ah:X,bu:X,fm:X,hl:X,hm:X,"jan-mayen":X,mr:X,nl:X,nt:X,of:X,ol:X,oslo:X,rl:X,sf:X,st:X,svalbard:X,tm:X,tr:X,va:X,vf:X,akrehamn:e,"xn--krehamn-dxa":e,\u00E5krehamn:e,algard:e,"xn--lgrd-poac":e,\u00E5lg\u00E5rd:e,arna:e,bronnoysund:e,"xn--brnnysund-m8ac":e,br\u00F8nn\u00F8ysund:e,brumunddal:e,bryne:e,drobak:e,"xn--drbak-wua":e,dr\u00F8bak:e,egersund:e,fetsund:e,floro:e,"xn--flor-jra":e,flor\u00F8:e,fredrikstad:e,hokksund:e,honefoss:e,"xn--hnefoss-q1a":e,h\u00F8nefoss:e,jessheim:e,jorpeland:e,"xn--jrpeland-54a":e,j\u00F8rpeland:e,kirkenes:e,kopervik:e,krokstadelva:e,langevag:e,"xn--langevg-jxa":e,langev\u00E5g:e,leirvik:e,mjondalen:e,"xn--mjndalen-64a":e,mj\u00F8ndalen:e,"mo-i-rana":e,mosjoen:e,"xn--mosjen-eya":e,mosj\u00F8en:e,nesoddtangen:e,orkanger:e,osoyro:e,"xn--osyro-wua":e,os\u00F8yro:e,raholt:e,"xn--rholt-mra":e,r\u00E5holt:e,sandnessjoen:e,"xn--sandnessjen-ogb":e,sandnessj\u00F8en:e,skedsmokorset:e,slattum:e,spjelkavik:e,stathelle:e,stavern:e,stjordalshalsen:e,"xn--stjrdalshalsen-sqb":e,stj\u00F8rdalshalsen:e,tananger:e,tranby:e,vossevangen:e,aarborte:e,aejrie:e,afjord:e,"xn--fjord-lra":e,\u00E5fjord:e,agdenes:e,akershus:Ta,aknoluokta:e,"xn--koluokta-7ya57h":e,\u00E1k\u014Boluokta:e,al:e,"xn--l-1fa":e,\u00E5l:e,alaheadju:e,"xn--laheadju-7ya":e,\u00E1laheadju:e,alesund:e,"xn--lesund-hua":e,\u00E5lesund:e,alstahaug:e,alta:e,"xn--lt-liac":e,\u00E1lt\u00E1:e,alvdal:e,amli:e,"xn--mli-tla":e,\u00E5mli:e,amot:e,"xn--mot-tla":e,\u00E5mot:e,andasuolo:e,andebu:e,andoy:e,"xn--andy-ira":e,and\u00F8y:e,ardal:e,"xn--rdal-poa":e,\u00E5rdal:e,aremark:e,arendal:e,"xn--s-1fa":e,\u00E5s:e,aseral:e,"xn--seral-lra":e,\u00E5seral:e,asker:e,askim:e,askoy:e,"xn--asky-ira":e,ask\u00F8y:e,askvoll:e,asnes:e,"xn--snes-poa":e,\u00E5snes:e,audnedaln:e,aukra:e,aure:e,aurland:e,"aurskog-holand":e,"xn--aurskog-hland-jnb":e,"aurskog-h\xF8land":e,austevoll:e,austrheim:e,averoy:e,"xn--avery-yua":e,aver\u00F8y:e,badaddja:e,"xn--bdddj-mrabd":e,b\u00E5d\u00E5ddj\u00E5:e,"xn--brum-voa":e,b\u00E6rum:e,bahcavuotna:e,"xn--bhcavuotna-s4a":e,b\u00E1hcavuotna:e,bahccavuotna:e,"xn--bhccavuotna-k7a":e,b\u00E1hccavuotna:e,baidar:e,"xn--bidr-5nac":e,b\u00E1id\u00E1r:e,bajddar:e,"xn--bjddar-pta":e,b\u00E1jddar:e,balat:e,"xn--blt-elab":e,b\u00E1l\u00E1t:e,balestrand:e,ballangen:e,balsfjord:e,bamble:e,bardu:e,barum:e,batsfjord:e,"xn--btsfjord-9za":e,b\u00E5tsfjord:e,bearalvahki:e,"xn--bearalvhki-y4a":e,bearalv\u00E1hki:e,beardu:e,beiarn:e,berg:e,bergen:e,berlevag:e,"xn--berlevg-jxa":e,berlev\u00E5g:e,bievat:e,"xn--bievt-0qa":e,biev\u00E1t:e,bindal:e,birkenes:e,bjerkreim:e,bjugn:e,bodo:e,"xn--bod-2na":e,bod\u00F8:e,bokn:e,bomlo:e,"xn--bmlo-gra":e,b\u00F8mlo:e,bremanger:e,bronnoy:e,"xn--brnny-wuac":e,br\u00F8nn\u00F8y:e,budejju:e,buskerud:Ta,bygland:e,bykle:e,cahcesuolo:e,"xn--hcesuolo-7ya35b":e,\u010D\u00E1hcesuolo:e,davvenjarga:e,"xn--davvenjrga-y4a":e,davvenj\u00E1rga:e,davvesiida:e,deatnu:e,dielddanuorri:e,divtasvuodna:e,divttasvuotna:e,donna:e,"xn--dnna-gra":e,d\u00F8nna:e,dovre:e,drammen:e,drangedal:e,dyroy:e,"xn--dyry-ira":e,dyr\u00F8y:e,eid:e,eidfjord:e,eidsberg:e,eidskog:e,eidsvoll:e,eigersund:e,elverum:e,enebakk:e,engerdal:e,etne:e,etnedal:e,evenassi:e,"xn--eveni-0qa01ga":e,even\u00E1\u0161\u0161i:e,evenes:e,"evje-og-hornnes":e,farsund:e,fauske:e,fedje:e,fet:e,finnoy:e,"xn--finny-yua":e,finn\u00F8y:e,fitjar:e,fjaler:e,fjell:e,fla:e,"xn--fl-zia":e,fl\u00E5:e,flakstad:e,flatanger:e,flekkefjord:e,flesberg:e,flora:e,folldal:e,forde:e,"xn--frde-gra":e,f\u00F8rde:e,forsand:e,fosnes:e,"xn--frna-woa":e,fr\u00E6na:e,frana:e,frei:e,frogn:e,froland:e,frosta:e,froya:e,"xn--frya-hra":e,fr\u00F8ya:e,fuoisku:e,fuossko:e,fusa:e,fyresdal:e,gaivuotna:e,"xn--givuotna-8ya":e,g\u00E1ivuotna:e,galsa:e,"xn--gls-elac":e,g\u00E1ls\u00E1:e,gamvik:e,gangaviika:e,"xn--ggaviika-8ya47h":e,g\u00E1\u014Bgaviika:e,gaular:e,gausdal:e,giehtavuoatna:e,gildeskal:e,"xn--gildeskl-g0a":e,gildesk\u00E5l:e,giske:e,gjemnes:e,gjerdrum:e,gjerstad:e,gjesdal:e,gjovik:e,"xn--gjvik-wua":e,gj\u00F8vik:e,gloppen:e,gol:e,gran:e,grane:e,granvin:e,gratangen:e,grimstad:e,grong:e,grue:e,gulen:e,guovdageaidnu:e,ha:e,"xn--h-2fa":e,h\u00E5:e,habmer:e,"xn--hbmer-xqa":e,h\u00E1bmer:e,hadsel:e,"xn--hgebostad-g3a":e,h\u00E6gebostad:e,hagebostad:e,halden:e,halsa:e,hamar:e,hamaroy:e,hammarfeasta:e,"xn--hmmrfeasta-s4ac":e,h\u00E1mm\u00E1rfeasta:e,hammerfest:e,hapmir:e,"xn--hpmir-xqa":e,h\u00E1pmir:e,haram:e,hareid:e,harstad:e,hasvik:e,hattfjelldal:e,haugesund:e,hedmark:[0,{os:e,valer:e,"xn--vler-qoa":e,v\u00E5ler:e}],hemne:e,hemnes:e,hemsedal:e,hitra:e,hjartdal:e,hjelmeland:e,hobol:e,"xn--hobl-ira":e,hob\u00F8l:e,hof:e,hol:e,hole:e,holmestrand:e,holtalen:e,"xn--holtlen-hxa":e,holt\u00E5len:e,hordaland:[0,{os:e}],hornindal:e,horten:e,hoyanger:e,"xn--hyanger-q1a":e,h\u00F8yanger:e,hoylandet:e,"xn--hylandet-54a":e,h\u00F8ylandet:e,hurdal:e,hurum:e,hvaler:e,hyllestad:e,ibestad:e,inderoy:e,"xn--indery-fya":e,inder\u00F8y:e,iveland:e,ivgu:e,jevnaker:e,jolster:e,"xn--jlster-bya":e,j\u00F8lster:e,jondal:e,kafjord:e,"xn--kfjord-iua":e,k\u00E5fjord:e,karasjohka:e,"xn--krjohka-hwab49j":e,k\u00E1r\u00E1\u0161johka:e,karasjok:e,karlsoy:e,karmoy:e,"xn--karmy-yua":e,karm\u00F8y:e,kautokeino:e,klabu:e,"xn--klbu-woa":e,kl\u00E6bu:e,klepp:e,kongsberg:e,kongsvinger:e,kraanghke:e,"xn--kranghke-b0a":e,kr\u00E5anghke:e,kragero:e,"xn--krager-gya":e,krager\u00F8:e,kristiansand:e,kristiansund:e,krodsherad:e,"xn--krdsherad-m8a":e,kr\u00F8dsherad:e,"xn--kvfjord-nxa":e,kv\u00E6fjord:e,"xn--kvnangen-k0a":e,kv\u00E6nangen:e,kvafjord:e,kvalsund:e,kvam:e,kvanangen:e,kvinesdal:e,kvinnherad:e,kviteseid:e,kvitsoy:e,"xn--kvitsy-fya":e,kvits\u00F8y:e,laakesvuemie:e,"xn--lrdal-sra":e,l\u00E6rdal:e,lahppi:e,"xn--lhppi-xqa":e,l\u00E1hppi:e,lardal:e,larvik:e,lavagis:e,lavangen:e,leangaviika:e,"xn--leagaviika-52b":e,lea\u014Bgaviika:e,lebesby:e,leikanger:e,leirfjord:e,leka:e,leksvik:e,lenvik:e,lerdal:e,lesja:e,levanger:e,lier:e,lierne:e,lillehammer:e,lillesand:e,lindas:e,"xn--linds-pra":e,lind\u00E5s:e,lindesnes:e,loabat:e,"xn--loabt-0qa":e,loab\u00E1t:e,lodingen:e,"xn--ldingen-q1a":e,l\u00F8dingen:e,lom:e,loppa:e,lorenskog:e,"xn--lrenskog-54a":e,l\u00F8renskog:e,loten:e,"xn--lten-gra":e,l\u00F8ten:e,lund:e,lunner:e,luroy:e,"xn--lury-ira":e,lur\u00F8y:e,luster:e,lyngdal:e,lyngen:e,malatvuopmi:e,"xn--mlatvuopmi-s4a":e,m\u00E1latvuopmi:e,malselv:e,"xn--mlselv-iua":e,m\u00E5lselv:e,malvik:e,mandal:e,marker:e,marnardal:e,masfjorden:e,masoy:e,"xn--msy-ula0h":e,m\u00E5s\u00F8y:e,"matta-varjjat":e,"xn--mtta-vrjjat-k7af":e,"m\xE1tta-v\xE1rjjat":e,meland:e,meldal:e,melhus:e,meloy:e,"xn--mely-ira":e,mel\u00F8y:e,meraker:e,"xn--merker-kua":e,mer\u00E5ker:e,midsund:e,"midtre-gauldal":e,moareke:e,"xn--moreke-jua":e,mo\u00E5reke:e,modalen:e,modum:e,molde:e,"more-og-romsdal":[0,{heroy:e,sande:e}],"xn--mre-og-romsdal-qqb":[0,{"xn--hery-ira":e,sande:e}],"m\xF8re-og-romsdal":[0,{her\u00F8y:e,sande:e}],moskenes:e,moss:e,muosat:e,"xn--muost-0qa":e,muos\u00E1t:e,naamesjevuemie:e,"xn--nmesjevuemie-tcba":e,n\u00E5\u00E5mesjevuemie:e,"xn--nry-yla5g":e,n\u00E6r\u00F8y:e,namdalseid:e,namsos:e,namsskogan:e,nannestad:e,naroy:e,narviika:e,narvik:e,naustdal:e,navuotna:e,"xn--nvuotna-hwa":e,n\u00E1vuotna:e,"nedre-eiker":e,nesna:e,nesodden:e,nesseby:e,nesset:e,nissedal:e,nittedal:e,"nord-aurdal":e,"nord-fron":e,"nord-odal":e,norddal:e,nordkapp:e,nordland:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e,heroy:e,"xn--hery-ira":e,her\u00F8y:e}],"nordre-land":e,nordreisa:e,"nore-og-uvdal":e,notodden:e,notteroy:e,"xn--nttery-byae":e,n\u00F8tter\u00F8y:e,odda:e,oksnes:e,"xn--ksnes-uua":e,\u00F8ksnes:e,omasvuotna:e,oppdal:e,oppegard:e,"xn--oppegrd-ixa":e,oppeg\u00E5rd:e,orkdal:e,orland:e,"xn--rland-uua":e,\u00F8rland:e,orskog:e,"xn--rskog-uua":e,\u00F8rskog:e,orsta:e,"xn--rsta-fra":e,\u00F8rsta:e,osen:e,osteroy:e,"xn--ostery-fya":e,oster\u00F8y:e,ostfold:[0,{valer:e}],"xn--stfold-9xa":[0,{"xn--vler-qoa":e}],\u00F8stfold:[0,{v\u00E5ler:e}],"ostre-toten":e,"xn--stre-toten-zcb":e,"\xF8stre-toten":e,overhalla:e,"ovre-eiker":e,"xn--vre-eiker-k8a":e,"\xF8vre-eiker":e,oyer:e,"xn--yer-zna":e,\u00F8yer:e,oygarden:e,"xn--ygarden-p1a":e,\u00F8ygarden:e,"oystre-slidre":e,"xn--ystre-slidre-ujb":e,"\xF8ystre-slidre":e,porsanger:e,porsangu:e,"xn--porsgu-sta26f":e,pors\u00E1\u014Bgu:e,porsgrunn:e,rade:e,"xn--rde-ula":e,r\u00E5de:e,radoy:e,"xn--rady-ira":e,rad\u00F8y:e,"xn--rlingen-mxa":e,r\u00E6lingen:e,rahkkeravju:e,"xn--rhkkervju-01af":e,r\u00E1hkker\u00E1vju:e,raisa:e,"xn--risa-5na":e,r\u00E1isa:e,rakkestad:e,ralingen:e,rana:e,randaberg:e,rauma:e,rendalen:e,rennebu:e,rennesoy:e,"xn--rennesy-v1a":e,rennes\u00F8y:e,rindal:e,ringebu:e,ringerike:e,ringsaker:e,risor:e,"xn--risr-ira":e,ris\u00F8r:e,rissa:e,roan:e,rodoy:e,"xn--rdy-0nab":e,r\u00F8d\u00F8y:e,rollag:e,romsa:e,romskog:e,"xn--rmskog-bya":e,r\u00F8mskog:e,roros:e,"xn--rros-gra":e,r\u00F8ros:e,rost:e,"xn--rst-0na":e,r\u00F8st:e,royken:e,"xn--ryken-vua":e,r\u00F8yken:e,royrvik:e,"xn--ryrvik-bya":e,r\u00F8yrvik:e,ruovat:e,rygge:e,salangen:e,salat:e,"xn--slat-5na":e,s\u00E1lat:e,"xn--slt-elab":e,s\u00E1l\u00E1t:e,saltdal:e,samnanger:e,sandefjord:e,sandnes:e,sandoy:e,"xn--sandy-yua":e,sand\u00F8y:e,sarpsborg:e,sauda:e,sauherad:e,sel:e,selbu:e,selje:e,seljord:e,siellak:e,sigdal:e,siljan:e,sirdal:e,skanit:e,"xn--sknit-yqa":e,sk\u00E1nit:e,skanland:e,"xn--sknland-fxa":e,sk\u00E5nland:e,skaun:e,skedsmo:e,ski:e,skien:e,skierva:e,"xn--skierv-uta":e,skierv\u00E1:e,skiptvet:e,skjak:e,"xn--skjk-soa":e,skj\u00E5k:e,skjervoy:e,"xn--skjervy-v1a":e,skjerv\u00F8y:e,skodje:e,smola:e,"xn--smla-hra":e,sm\u00F8la:e,snaase:e,"xn--snase-nra":e,sn\u00E5ase:e,snasa:e,"xn--snsa-roa":e,sn\u00E5sa:e,snillfjord:e,snoasa:e,sogndal:e,sogne:e,"xn--sgne-gra":e,s\u00F8gne:e,sokndal:e,sola:e,solund:e,somna:e,"xn--smna-gra":e,s\u00F8mna:e,"sondre-land":e,"xn--sndre-land-0cb":e,"s\xF8ndre-land":e,songdalen:e,"sor-aurdal":e,"xn--sr-aurdal-l8a":e,"s\xF8r-aurdal":e,"sor-fron":e,"xn--sr-fron-q1a":e,"s\xF8r-fron":e,"sor-odal":e,"xn--sr-odal-q1a":e,"s\xF8r-odal":e,"sor-varanger":e,"xn--sr-varanger-ggb":e,"s\xF8r-varanger":e,sorfold:e,"xn--srfold-bya":e,s\u00F8rfold:e,sorreisa:e,"xn--srreisa-q1a":e,s\u00F8rreisa:e,sortland:e,sorum:e,"xn--srum-gra":e,s\u00F8rum:e,spydeberg:e,stange:e,stavanger:e,steigen:e,steinkjer:e,stjordal:e,"xn--stjrdal-s1a":e,stj\u00F8rdal:e,stokke:e,"stor-elvdal":e,stord:e,stordal:e,storfjord:e,strand:e,stranda:e,stryn:e,sula:e,suldal:e,sund:e,sunndal:e,surnadal:e,sveio:e,svelvik:e,sykkylven:e,tana:e,telemark:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e}],time:e,tingvoll:e,tinn:e,tjeldsund:e,tjome:e,"xn--tjme-hra":e,tj\u00F8me:e,tokke:e,tolga:e,tonsberg:e,"xn--tnsberg-q1a":e,t\u00F8nsberg:e,torsken:e,"xn--trna-woa":e,tr\u00E6na:e,trana:e,tranoy:e,"xn--trany-yua":e,tran\u00F8y:e,troandin:e,trogstad:e,"xn--trgstad-r1a":e,tr\u00F8gstad:e,tromsa:e,tromso:e,"xn--troms-zua":e,troms\u00F8:e,trondheim:e,trysil:e,tvedestrand:e,tydal:e,tynset:e,tysfjord:e,tysnes:e,"xn--tysvr-vra":e,tysv\u00E6r:e,tysvar:e,ullensaker:e,ullensvang:e,ulvik:e,unjarga:e,"xn--unjrga-rta":e,unj\u00E1rga:e,utsira:e,vaapste:e,vadso:e,"xn--vads-jra":e,vads\u00F8:e,"xn--vry-yla5g":e,v\u00E6r\u00F8y:e,vaga:e,"xn--vg-yiab":e,v\u00E5g\u00E5:e,vagan:e,"xn--vgan-qoa":e,v\u00E5gan:e,vagsoy:e,"xn--vgsy-qoa0j":e,v\u00E5gs\u00F8y:e,vaksdal:e,valle:e,vang:e,vanylven:e,vardo:e,"xn--vard-jra":e,vard\u00F8:e,varggat:e,"xn--vrggt-xqad":e,v\u00E1rgg\u00E1t:e,varoy:e,vefsn:e,vega:e,vegarshei:e,"xn--vegrshei-c0a":e,veg\u00E5rshei:e,vennesla:e,verdal:e,verran:e,vestby:e,vestfold:[0,{sande:e}],vestnes:e,"vestre-slidre":e,"vestre-toten":e,vestvagoy:e,"xn--vestvgy-ixa6o":e,vestv\u00E5g\u00F8y:e,vevelstad:e,vik:e,vikna:e,vindafjord:e,voagat:e,volda:e,voss:e,co:t,"123hjemmeside":t,myspreadshop:t}],np:v,nr:xa,nu:[1,{merseine:t,mine:t,shacknet:t,enterprisecloud:t}],nz:[1,{ac:e,co:e,cri:e,geek:e,gen:e,govt:e,health:e,iwi:e,kiwi:e,maori:e,"xn--mori-qsa":e,m\u0101ori:e,mil:e,net:e,org:e,parliament:e,school:e,cloudns:t}],om:[1,{co:e,com:e,edu:e,gov:e,med:e,museum:e,net:e,org:e,pro:e}],onion:e,org:[1,{altervista:t,pimienta:t,poivron:t,potager:t,sweetpepper:t,cdn77:[0,{c:t,rsc:t}],"cdn77-secure":[0,{origin:[0,{ssl:t}]}],ae:t,cloudns:t,"ip-dynamic":t,ddnss:t,dpdns:t,duckdns:t,tunk:t,blogdns:t,blogsite:t,boldlygoingnowhere:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,dvrdns:t,dynalias:t,dyndns:[2,{go:t,home:t}],endofinternet:t,endoftheinternet:t,"from-me":t,"game-host":t,gotdns:t,"hobby-site":t,homedns:t,homeftp:t,homelinux:t,homeunix:t,"is-a-bruinsfan":t,"is-a-candidate":t,"is-a-celticsfan":t,"is-a-chef":t,"is-a-geek":t,"is-a-knight":t,"is-a-linux-user":t,"is-a-patsfan":t,"is-a-soxfan":t,"is-found":t,"is-lost":t,"is-saved":t,"is-very-bad":t,"is-very-evil":t,"is-very-good":t,"is-very-nice":t,"is-very-sweet":t,"isa-geek":t,"kicks-ass":t,misconfused:t,podzone:t,readmyblog:t,selfip:t,sellsyourhome:t,servebbs:t,serveftp:t,servegame:t,"stuff-4-sale":t,webhop:t,accesscam:t,camdvr:t,freeddns:t,mywire:t,roxa:t,webredirect:t,twmail:t,eu:[2,{al:t,asso:t,at:t,au:t,be:t,bg:t,ca:t,cd:t,ch:t,cn:t,cy:t,cz:t,de:t,dk:t,edu:t,ee:t,es:t,fi:t,fr:t,gr:t,hr:t,hu:t,ie:t,il:t,in:t,int:t,is:t,it:t,jp:t,kr:t,lt:t,lu:t,lv:t,me:t,mk:t,mt:t,my:t,net:t,ng:t,nl:t,no:t,nz:t,pl:t,pt:t,ro:t,ru:t,se:t,si:t,sk:t,tr:t,uk:t,us:t}],fedorainfracloud:t,fedorapeople:t,fedoraproject:[0,{cloud:t,os:pe,stg:[0,{os:pe}]}],freedesktop:t,hatenadiary:t,hepforge:t,"in-dsl":t,"in-vpn":t,js:t,barsy:t,mayfirst:t,routingthecloud:t,bmoattachments:t,"cable-modem":t,collegefan:t,couchpotatofries:t,hopto:t,mlbfan:t,myftp:t,mysecuritycamera:t,nflfan:t,"no-ip":t,"read-books":t,ufcfan:t,zapto:t,dynserv:t,"now-dns":t,"is-local":t,httpbin:t,pubtls:t,jpn:t,"my-firewall":t,myfirewall:t,spdns:t,"small-web":t,dsmynas:t,familyds:t,teckids:Pt,tuxfamily:t,hk:t,us:t,toolforge:t,wmcloud:[2,{beta:t}],wmflabs:t,za:t}],pa:[1,{abo:e,ac:e,com:e,edu:e,gob:e,ing:e,med:e,net:e,nom:e,org:e,sld:e}],pe:[1,{com:e,edu:e,gob:e,mil:e,net:e,nom:e,org:e}],pf:[1,{com:e,edu:e,org:e}],pg:v,ph:[1,{com:e,edu:e,gov:e,i:e,mil:e,net:e,ngo:e,org:e,cloudns:t}],pk:[1,{ac:e,biz:e,com:e,edu:e,fam:e,gkp:e,gob:e,gog:e,gok:e,gop:e,gos:e,gov:e,net:e,org:e,web:e}],pl:[1,{com:e,net:e,org:e,agro:e,aid:e,atm:e,auto:e,biz:e,edu:e,gmina:e,gsm:e,info:e,mail:e,media:e,miasta:e,mil:e,nieruchomosci:e,nom:e,pc:e,powiat:e,priv:e,realestate:e,rel:e,sex:e,shop:e,sklep:e,sos:e,szkola:e,targi:e,tm:e,tourism:e,travel:e,turystyka:e,gov:[1,{ap:e,griw:e,ic:e,is:e,kmpsp:e,konsulat:e,kppsp:e,kwp:e,kwpsp:e,mup:e,mw:e,oia:e,oirm:e,oke:e,oow:e,oschr:e,oum:e,pa:e,pinb:e,piw:e,po:e,pr:e,psp:e,psse:e,pup:e,rzgw:e,sa:e,sdn:e,sko:e,so:e,sr:e,starostwo:e,ug:e,ugim:e,um:e,umig:e,upow:e,uppo:e,us:e,uw:e,uzs:e,wif:e,wiih:e,winb:e,wios:e,witd:e,wiw:e,wkz:e,wsa:e,wskr:e,wsse:e,wuoz:e,wzmiuw:e,zp:e,zpisdn:e}],augustow:e,"babia-gora":e,bedzin:e,beskidy:e,bialowieza:e,bialystok:e,bielawa:e,bieszczady:e,boleslawiec:e,bydgoszcz:e,bytom:e,cieszyn:e,czeladz:e,czest:e,dlugoleka:e,elblag:e,elk:e,glogow:e,gniezno:e,gorlice:e,grajewo:e,ilawa:e,jaworzno:e,"jelenia-gora":e,jgora:e,kalisz:e,karpacz:e,kartuzy:e,kaszuby:e,katowice:e,"kazimierz-dolny":e,kepno:e,ketrzyn:e,klodzko:e,kobierzyce:e,kolobrzeg:e,konin:e,konskowola:e,kutno:e,lapy:e,lebork:e,legnica:e,lezajsk:e,limanowa:e,lomza:e,lowicz:e,lubin:e,lukow:e,malbork:e,malopolska:e,mazowsze:e,mazury:e,mielec:e,mielno:e,mragowo:e,naklo:e,nowaruda:e,nysa:e,olawa:e,olecko:e,olkusz:e,olsztyn:e,opoczno:e,opole:e,ostroda:e,ostroleka:e,ostrowiec:e,ostrowwlkp:e,pila:e,pisz:e,podhale:e,podlasie:e,polkowice:e,pomorskie:e,pomorze:e,prochowice:e,pruszkow:e,przeworsk:e,pulawy:e,radom:e,"rawa-maz":e,rybnik:e,rzeszow:e,sanok:e,sejny:e,skoczow:e,slask:e,slupsk:e,sosnowiec:e,"stalowa-wola":e,starachowice:e,stargard:e,suwalki:e,swidnica:e,swiebodzin:e,swinoujscie:e,szczecin:e,szczytno:e,tarnobrzeg:e,tgory:e,turek:e,tychy:e,ustka:e,walbrzych:e,warmia:e,warszawa:e,waw:e,wegrow:e,wielun:e,wlocl:e,wloclawek:e,wodzislaw:e,wolomin:e,wroclaw:e,zachpomor:e,zagan:e,zarow:e,zgora:e,zgorzelec:e,art:t,gliwice:t,krakow:t,poznan:t,wroc:t,zakopane:t,beep:t,"ecommerce-shop":t,cfolks:t,dfirma:t,dkonto:t,you2:t,shoparena:t,homesklep:t,sdscloud:t,unicloud:t,lodz:t,pabianice:t,plock:t,sieradz:t,skierniewice:t,zgierz:t,krasnik:t,leczna:t,lubartow:t,lublin:t,poniatowa:t,swidnik:t,co:t,torun:t,simplesite:t,myspreadshop:t,gda:t,gdansk:t,gdynia:t,med:t,sopot:t,bielsko:t}],pm:[1,{own:t,name:t}],pn:[1,{co:e,edu:e,gov:e,net:e,org:e}],post:e,pr:[1,{biz:e,com:e,edu:e,gov:e,info:e,isla:e,name:e,net:e,org:e,pro:e,ac:e,est:e,prof:e}],pro:[1,{aaa:e,aca:e,acct:e,avocat:e,bar:e,cpa:e,eng:e,jur:e,law:e,med:e,recht:e,cloudns:t,keenetic:t,barsy:t,ngrok:t}],ps:[1,{com:e,edu:e,gov:e,net:e,org:e,plo:e,sec:e}],pt:[1,{com:e,edu:e,gov:e,int:e,net:e,nome:e,org:e,publ:e,"123paginaweb":t}],pw:[1,{gov:e,cloudns:t,x443:t}],py:[1,{com:e,coop:e,edu:e,gov:e,mil:e,net:e,org:e}],qa:[1,{com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e,sch:e}],re:[1,{asso:e,com:e,netlib:t,can:t}],ro:[1,{arts:e,com:e,firm:e,info:e,nom:e,nt:e,org:e,rec:e,store:e,tm:e,www:e,co:t,shop:t,barsy:t}],rs:[1,{ac:e,co:e,edu:e,gov:e,in:e,org:e,brendly:N,barsy:t,ox:t}],ru:[1,{ac:t,edu:t,gov:t,int:t,mil:t,eurodir:t,adygeya:t,bashkiria:t,bir:t,cbg:t,com:t,dagestan:t,grozny:t,kalmykia:t,kustanai:t,marine:t,mordovia:t,msk:t,mytis:t,nalchik:t,nov:t,pyatigorsk:t,spb:t,vladikavkaz:t,vladimir:t,na4u:t,mircloud:t,myjino:[2,{hosting:n,landing:n,spectrum:n,vps:n}],cldmail:[0,{hb:t}],mcdir:[2,{vps:t}],mcpre:t,net:t,org:t,pp:t,ras:t}],rw:[1,{ac:e,co:e,coop:e,gov:e,mil:e,net:e,org:e}],sa:[1,{com:e,edu:e,gov:e,med:e,net:e,org:e,pub:e,sch:e}],sb:a,sc:a,sd:[1,{com:e,edu:e,gov:e,info:e,med:e,net:e,org:e,tv:e}],se:[1,{a:e,ac:e,b:e,bd:e,brand:e,c:e,d:e,e,f:e,fh:e,fhsk:e,fhv:e,g:e,h:e,i:e,k:e,komforb:e,kommunalforbund:e,komvux:e,l:e,lanbib:e,m:e,n:e,naturbruksgymn:e,o:e,org:e,p:e,parti:e,pp:e,press:e,r:e,s:e,t:e,tm:e,u:e,w:e,x:e,y:e,z:e,com:t,iopsys:t,"123minsida":t,itcouldbewor:t,myspreadshop:t}],sg:[1,{com:e,edu:e,gov:e,net:e,org:e,enscaled:t}],sh:[1,{com:e,gov:e,mil:e,net:e,org:e,hashbang:t,botda:t,lovable:t,platform:[0,{ent:t,eu:t,us:t}],teleport:t,now:t}],si:[1,{f5:t,gitapp:t,gitpage:t}],sj:e,sk:[1,{org:e}],sl:a,sm:e,sn:[1,{art:e,com:e,edu:e,gouv:e,org:e,univ:e}],so:[1,{com:e,edu:e,gov:e,me:e,net:e,org:e,surveys:t}],sr:e,ss:[1,{biz:e,co:e,com:e,edu:e,gov:e,me:e,net:e,org:e,sch:e}],st:[1,{co:e,com:e,consulado:e,edu:e,embaixada:e,mil:e,net:e,org:e,principe:e,saotome:e,store:e,helioho:t,cn:n,kirara:t,noho:t}],su:[1,{abkhazia:t,adygeya:t,aktyubinsk:t,arkhangelsk:t,armenia:t,ashgabad:t,azerbaijan:t,balashov:t,bashkiria:t,bryansk:t,bukhara:t,chimkent:t,dagestan:t,"east-kazakhstan":t,exnet:t,georgia:t,grozny:t,ivanovo:t,jambyl:t,kalmykia:t,kaluga:t,karacol:t,karaganda:t,karelia:t,khakassia:t,krasnodar:t,kurgan:t,kustanai:t,lenug:t,mangyshlak:t,mordovia:t,msk:t,murmansk:t,nalchik:t,navoi:t,"north-kazakhstan":t,nov:t,obninsk:t,penza:t,pokrovsk:t,sochi:t,spb:t,tashkent:t,termez:t,togliatti:t,troitsk:t,tselinograd:t,tula:t,tuva:t,vladikavkaz:t,vladimir:t,vologda:t}],sv:[1,{com:e,edu:e,gob:e,org:e,red:e}],sx:i,sy:o,sz:[1,{ac:e,co:e,org:e}],tc:e,td:e,tel:e,tf:[1,{sch:t}],tg:e,th:[1,{ac:e,co:e,go:e,in:e,mi:e,net:e,or:e,online:t,shop:t}],tj:[1,{ac:e,biz:e,co:e,com:e,edu:e,go:e,gov:e,int:e,mil:e,name:e,net:e,nic:e,org:e,test:e,web:e}],tk:e,tl:i,tm:[1,{co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e}],tn:[1,{com:e,ens:e,fin:e,gov:e,ind:e,info:e,intl:e,mincom:e,nat:e,net:e,org:e,perso:e,tourism:e,orangecloud:t}],to:[1,{611:t,com:e,edu:e,gov:e,mil:e,net:e,org:e,oya:t,x0:t,quickconnect:I,vpnplus:t,nett:t}],tr:[1,{av:e,bbs:e,bel:e,biz:e,com:e,dr:e,edu:e,gen:e,gov:e,info:e,k12:e,kep:e,mil:e,name:e,net:e,org:e,pol:e,tel:e,tsk:e,tv:e,web:e,nc:i}],tt:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],tv:[1,{"better-than":t,dyndns:t,"on-the-web":t,"worse-than":t,from:t,sakura:t}],tw:[1,{club:e,com:[1,{mymailer:t}],ebiz:e,edu:e,game:e,gov:e,idv:e,mil:e,net:e,org:e,url:t,mydns:t}],tz:[1,{ac:e,co:e,go:e,hotel:e,info:e,me:e,mil:e,mobi:e,ne:e,or:e,sc:e,tv:e}],ua:[1,{com:e,edu:e,gov:e,in:e,net:e,org:e,cherkassy:e,cherkasy:e,chernigov:e,chernihiv:e,chernivtsi:e,chernovtsy:e,ck:e,cn:e,cr:e,crimea:e,cv:e,dn:e,dnepropetrovsk:e,dnipropetrovsk:e,donetsk:e,dp:e,if:e,"ivano-frankivsk":e,kh:e,kharkiv:e,kharkov:e,kherson:e,khmelnitskiy:e,khmelnytskyi:e,kiev:e,kirovograd:e,km:e,kr:e,kropyvnytskyi:e,krym:e,ks:e,kv:e,kyiv:e,lg:e,lt:e,lugansk:e,luhansk:e,lutsk:e,lv:e,lviv:e,mk:e,mykolaiv:e,nikolaev:e,od:e,odesa:e,odessa:e,pl:e,poltava:e,rivne:e,rovno:e,rv:e,sb:e,sebastopol:e,sevastopol:e,sm:e,sumy:e,te:e,ternopil:e,uz:e,uzhgorod:e,uzhhorod:e,vinnica:e,vinnytsia:e,vn:e,volyn:e,yalta:e,zakarpattia:e,zaporizhzhe:e,zaporizhzhia:e,zhitomir:e,zhytomyr:e,zp:e,zt:e,cc:t,inf:t,ltd:t,cx:t,biz:t,co:t,pp:t,v:t}],ug:[1,{ac:e,co:e,com:e,edu:e,go:e,gov:e,mil:e,ne:e,or:e,org:e,sc:e,us:e}],uk:[1,{ac:e,co:[1,{bytemark:[0,{dh:t,vm:t}],layershift:Ot,barsy:t,barsyonline:t,retrosnub:wa,"nh-serv":t,"no-ip":t,adimo:t,myspreadshop:t}],gov:[1,{api:t,campaign:t,service:t}],ltd:e,me:e,net:e,nhs:e,org:[1,{glug:t,lug:t,lugs:t,affinitylottery:t,raffleentry:t,weeklylottery:t}],plc:e,police:e,sch:v,conn:t,copro:t,hosp:t,"independent-commission":t,"independent-inquest":t,"independent-inquiry":t,"independent-panel":t,"independent-review":t,"public-inquiry":t,"royal-commission":t,pymnt:t,barsy:t,nimsite:t,oraclegovcloudapps:n}],us:[1,{dni:e,isa:e,nsn:e,ak:L,al:L,ar:L,as:L,az:L,ca:L,co:L,ct:L,dc:L,de:Sa,fl:L,ga:L,gu:L,hi:nt,ia:L,id:L,il:L,in:L,ks:L,ky:L,la:L,ma:[1,{k12:[1,{chtr:e,paroch:e,pvt:e}],cc:e,lib:e}],md:L,me:L,mi:[1,{k12:e,cc:e,lib:e,"ann-arbor":e,cog:e,dst:e,eaton:e,gen:e,mus:e,tec:e,washtenaw:e}],mn:L,mo:L,ms:[1,{k12:e,cc:e}],mt:L,nc:L,nd:nt,ne:L,nh:L,nj:L,nm:L,nv:L,ny:L,oh:L,ok:L,or:L,pa:L,pr:L,ri:nt,sc:L,sd:nt,tn:L,tx:L,ut:L,va:L,vi:L,vt:L,wa:L,wi:L,wv:Sa,wy:L,cloudns:t,"is-by":t,"land-4-sale":t,"stuff-4-sale":t,heliohost:t,enscaled:[0,{phx:t}],mircloud:t,"azure-api":t,azurewebsites:t,ngo:t,golffan:t,noip:t,pointto:t,freeddns:t,srv:[2,{gh:t,gl:t}],servername:t}],uy:[1,{com:e,edu:e,gub:e,mil:e,net:e,org:e,gv:t}],uz:[1,{co:e,com:e,net:e,org:e}],va:e,vc:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,gv:[2,{d:t}],"0e":n,mydns:t}],ve:[1,{arts:e,bib:e,co:e,com:e,e12:e,edu:e,emprende:e,firm:e,gob:e,gov:e,ia:e,info:e,int:e,mil:e,net:e,nom:e,org:e,rar:e,rec:e,store:e,tec:e,web:e}],vg:[1,{edu:e}],vi:[1,{co:e,com:e,k12:e,net:e,org:e}],vn:[1,{ac:e,ai:e,biz:e,com:e,edu:e,gov:e,health:e,id:e,info:e,int:e,io:e,name:e,net:e,org:e,pro:e,angiang:e,bacgiang:e,backan:e,baclieu:e,bacninh:e,"baria-vungtau":e,bentre:e,binhdinh:e,binhduong:e,binhphuoc:e,binhthuan:e,camau:e,cantho:e,caobang:e,daklak:e,daknong:e,danang:e,dienbien:e,dongnai:e,dongthap:e,gialai:e,hagiang:e,haiduong:e,haiphong:e,hanam:e,hanoi:e,hatinh:e,haugiang:e,hoabinh:e,hue:e,hungyen:e,khanhhoa:e,kiengiang:e,kontum:e,laichau:e,lamdong:e,langson:e,laocai:e,longan:e,namdinh:e,nghean:e,ninhbinh:e,ninhthuan:e,phutho:e,phuyen:e,quangbinh:e,quangnam:e,quangngai:e,quangninh:e,quangtri:e,soctrang:e,sonla:e,tayninh:e,thaibinh:e,thainguyen:e,thanhhoa:e,thanhphohochiminh:e,thuathienhue:e,tiengiang:e,travinh:e,tuyenquang:e,vinhlong:e,vinhphuc:e,yenbai:e}],vu:ze,wf:[1,{biz:t,sch:t}],ws:[1,{com:e,edu:e,gov:e,net:e,org:e,advisor:n,cloud66:t,dyndns:t,mypets:t}],yt:[1,{org:t}],"xn--mgbaam7a8h":e,\u0627\u0645\u0627\u0631\u0627\u062A:e,"xn--y9a3aq":e,\u0570\u0561\u0575:e,"xn--54b7fta0cc":e,\u09AC\u09BE\u0982\u09B2\u09BE:e,"xn--90ae":e,\u0431\u0433:e,"xn--mgbcpq6gpa1a":e,\u0627\u0644\u0628\u062D\u0631\u064A\u0646:e,"xn--90ais":e,\u0431\u0435\u043B:e,"xn--fiqs8s":e,\u4E2D\u56FD:e,"xn--fiqz9s":e,\u4E2D\u570B:e,"xn--lgbbat1ad8j":e,\u0627\u0644\u062C\u0632\u0627\u0626\u0631:e,"xn--wgbh1c":e,\u0645\u0635\u0631:e,"xn--e1a4c":e,\u0435\u044E:e,"xn--qxa6a":e,\u03B5\u03C5:e,"xn--mgbah1a3hjkrd":e,\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627:e,"xn--node":e,\u10D2\u10D4:e,"xn--qxam":e,\u03B5\u03BB:e,"xn--j6w193g":[1,{"xn--gmqw5a":e,"xn--55qx5d":e,"xn--mxtq1m":e,"xn--wcvs22d":e,"xn--uc0atv":e,"xn--od0alg":e}],\u9999\u6E2F:[1,{\u500B\u4EBA:e,\u516C\u53F8:e,\u653F\u5E9C:e,\u6559\u80B2:e,\u7D44\u7E54:e,\u7DB2\u7D61:e}],"xn--2scrj9c":e,\u0CAD\u0CBE\u0CB0\u0CA4:e,"xn--3hcrj9c":e,\u0B2D\u0B3E\u0B30\u0B24:e,"xn--45br5cyl":e,\u09AD\u09BE\u09F0\u09A4:e,"xn--h2breg3eve":e,\u092D\u093E\u0930\u0924\u092E\u094D:e,"xn--h2brj9c8c":e,\u092D\u093E\u0930\u094B\u0924:e,"xn--mgbgu82a":e,\u0680\u0627\u0631\u062A:e,"xn--rvc1e0am3e":e,\u0D2D\u0D3E\u0D30\u0D24\u0D02:e,"xn--h2brj9c":e,\u092D\u093E\u0930\u0924:e,"xn--mgbbh1a":e,\u0628\u0627\u0631\u062A:e,"xn--mgbbh1a71e":e,\u0628\u06BE\u0627\u0631\u062A:e,"xn--fpcrj9c3d":e,\u0C2D\u0C3E\u0C30\u0C24\u0C4D:e,"xn--gecrj9c":e,\u0AAD\u0ABE\u0AB0\u0AA4:e,"xn--s9brj9c":e,\u0A2D\u0A3E\u0A30\u0A24:e,"xn--45brj9c":e,\u09AD\u09BE\u09B0\u09A4:e,"xn--xkc2dl3a5ee0h":e,\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,"xn--mgbtx2b":e,\u0639\u0631\u0627\u0642:e,"xn--mgbayh7gpa":e,\u0627\u0644\u0627\u0631\u062F\u0646:e,"xn--3e0b707e":e,\uD55C\uAD6D:e,"xn--80ao21a":e,\u049B\u0430\u0437:e,"xn--q7ce6a":e,\u0EA5\u0EB2\u0EA7:e,"xn--fzc2c9e2c":e,\u0DBD\u0D82\u0D9A\u0DCF:e,"xn--xkc2al3hye2a":e,\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8:e,"xn--mgbc0a9azcg":e,\u0627\u0644\u0645\u063A\u0631\u0628:e,"xn--d1alf":e,\u043C\u043A\u0434:e,"xn--l1acc":e,\u043C\u043E\u043D:e,"xn--mix891f":e,\u6FB3\u9580:e,"xn--mix082f":e,\u6FB3\u95E8:e,"xn--mgbx4cd0ab":e,\u0645\u0644\u064A\u0633\u064A\u0627:e,"xn--mgb9awbf":e,\u0639\u0645\u0627\u0646:e,"xn--mgbai9azgqp6j":e,\u067E\u0627\u06A9\u0633\u062A\u0627\u0646:e,"xn--mgbai9a5eva00b":e,\u067E\u0627\u0643\u0633\u062A\u0627\u0646:e,"xn--ygbi2ammx":e,\u0641\u0644\u0633\u0637\u064A\u0646:e,"xn--90a3ac":[1,{"xn--80au":e,"xn--90azh":e,"xn--d1at":e,"xn--c1avg":e,"xn--o1ac":e,"xn--o1ach":e}],\u0441\u0440\u0431:[1,{\u0430\u043A:e,\u043E\u0431\u0440:e,\u043E\u0434:e,\u043E\u0440\u0433:e,\u043F\u0440:e,\u0443\u043F\u0440:e}],"xn--p1ai":e,\u0440\u0444:e,"xn--wgbl6a":e,\u0642\u0637\u0631:e,"xn--mgberp4a5d4ar":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629:e,"xn--mgberp4a5d4a87g":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629:e,"xn--mgbqly7c0a67fbc":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3:e,"xn--mgbqly7cvafr":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647:e,"xn--mgbpl2fh":e,\u0633\u0648\u062F\u0627\u0646:e,"xn--yfro4i67o":e,\u65B0\u52A0\u5761:e,"xn--clchc0ea0b2g2a9gcd":e,\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD:e,"xn--ogbpf8fl":e,\u0633\u0648\u0631\u064A\u0629:e,"xn--mgbtf8fl":e,\u0633\u0648\u0631\u064A\u0627:e,"xn--o3cw4h":[1,{"xn--o3cyx2a":e,"xn--12co0c3b4eva":e,"xn--m3ch0j3a":e,"xn--h3cuzk1di":e,"xn--12c1fe0br":e,"xn--12cfi8ixb8l":e}],\u0E44\u0E17\u0E22:[1,{\u0E17\u0E2B\u0E32\u0E23:e,\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08:e,\u0E40\u0E19\u0E47\u0E15:e,\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25:e,\u0E28\u0E36\u0E01\u0E29\u0E32:e,\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23:e}],"xn--pgbs0dh":e,\u062A\u0648\u0646\u0633:e,"xn--kpry57d":e,\u53F0\u7063:e,"xn--kprw13d":e,\u53F0\u6E7E:e,"xn--nnx388a":e,\u81FA\u7063:e,"xn--j1amh":e,\u0443\u043A\u0440:e,"xn--mgb2ddes":e,\u0627\u0644\u064A\u0645\u0646:e,xxx:e,ye:o,za:[0,{ac:e,agric:e,alt:e,co:e,edu:e,gov:e,grondar:e,law:e,mil:e,net:e,ngo:e,nic:e,nis:e,nom:e,org:e,school:e,tm:e,web:e}],zm:[1,{ac:e,biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,net:e,org:e,sch:e}],zw:[1,{ac:e,co:e,gov:e,mil:e,org:e}],aaa:e,aarp:e,abb:e,abbott:e,abbvie:e,abc:e,able:e,abogado:e,abudhabi:e,academy:[1,{official:t}],accenture:e,accountant:e,accountants:e,aco:e,actor:e,ads:e,adult:e,aeg:e,aetna:e,afl:e,africa:e,agakhan:e,agency:e,aig:e,airbus:e,airforce:e,airtel:e,akdn:e,alibaba:e,alipay:e,allfinanz:e,allstate:e,ally:e,alsace:e,alstom:e,amazon:e,americanexpress:e,americanfamily:e,amex:e,amfam:e,amica:e,amsterdam:e,analytics:e,android:e,anquan:e,anz:e,aol:e,apartments:e,app:[1,{adaptable:t,aiven:t,beget:n,brave:r,clerk:t,clerkstage:t,cloudflare:t,wnext:t,csb:[2,{preview:t}],convex:t,corespeed:t,deta:t,ondigitalocean:t,easypanel:t,encr:[2,{frontend:t}],evervault:s,expo:[2,{on:t,staging:[2,{on:t}]}],edgecompute:t,"on-fleek":t,flutterflow:t,sprites:t,e2b:t,framer:t,gadget:t,github:t,hosted:n,run:[0,{"*":t,mtls:n}],web:t,hackclub:t,hasura:t,onhercules:t,botdash:t,shiptoday:t,leapcell:t,loginline:t,lovable:t,luyani:t,magicpatterns:t,medusajs:t,messerli:t,miren:t,mocha:t,netlify:t,ngrok:t,"ngrok-free":t,developer:n,noop:t,northflank:n,upsun:n,railway:[0,{up:t}],replit:c,nyat:t,snowflake:[0,{"*":t,privatelink:n}],streamlit:t,spawnbase:t,telebit:t,typedream:t,vercel:t,wal:t,wasmer:t,bookonline:t,windsurf:t,base44:t,zeabur:t,zerops:n}],apple:[1,{int:[2,{cloud:[0,{"*":t,r:[0,{"*":t,"ap-north-1":n,"ap-south-1":n,"ap-south-2":n,"eu-central-1":n,"eu-north-1":n,"us-central-1":n,"us-central-2":n,"us-east-1":n,"us-east-2":n,"us-west-1":n,"us-west-2":n,"us-west-3":n}]}]}]}],aquarelle:e,arab:e,aramco:e,archi:e,army:e,art:e,arte:e,asda:e,associates:e,athleta:e,attorney:e,auction:e,audi:e,audible:e,audio:e,auspost:e,author:e,auto:e,autos:e,aws:[1,{on:[0,{"af-south-1":u,"ap-east-1":u,"ap-northeast-1":u,"ap-northeast-2":u,"ap-northeast-3":u,"ap-south-1":u,"ap-south-2":l,"ap-southeast-1":u,"ap-southeast-2":u,"ap-southeast-3":u,"ap-southeast-4":l,"ap-southeast-5":l,"ca-central-1":u,"ca-west-1":l,"eu-central-1":u,"eu-central-2":l,"eu-north-1":u,"eu-south-1":u,"eu-south-2":l,"eu-west-1":u,"eu-west-2":u,"eu-west-3":u,"il-central-1":l,"me-central-1":l,"me-south-1":u,"sa-east-1":u,"us-east-1":u,"us-east-2":u,"us-west-1":u,"us-west-2":u,"ap-southeast-7":d,"mx-central-1":d,"us-gov-east-1":m,"us-gov-west-1":m}],sagemaker:[0,{"ap-northeast-1":k,"ap-northeast-2":k,"ap-south-1":k,"ap-southeast-1":k,"ap-southeast-2":k,"ca-central-1":x,"eu-central-1":k,"eu-west-1":k,"eu-west-2":k,"us-east-1":x,"us-east-2":x,"us-west-2":x,"af-south-1":f,"ap-east-1":f,"ap-northeast-3":f,"ap-south-2":C,"ap-southeast-3":f,"ap-southeast-4":C,"ca-west-1":[0,{notebook:t,"notebook-fips":t}],"eu-central-2":f,"eu-north-1":f,"eu-south-1":f,"eu-south-2":f,"eu-west-3":f,"il-central-1":f,"me-central-1":f,"me-south-1":f,"sa-east-1":f,"us-gov-east-1":R,"us-gov-west-1":R,"us-west-1":[0,{notebook:t,"notebook-fips":t,studio:t}],experiments:n}],repost:[0,{private:n}]}],axa:e,azure:e,baby:e,baidu:e,banamex:e,band:e,bank:e,bar:e,barcelona:e,barclaycard:e,barclays:e,barefoot:e,bargains:e,baseball:e,basketball:[1,{aus:t,nz:t}],bauhaus:e,bayern:e,bbc:e,bbt:e,bbva:e,bcg:e,bcn:e,beats:e,beauty:e,beer:e,berlin:e,best:e,bestbuy:e,bet:e,bharti:e,bible:e,bid:e,bike:e,bing:e,bingo:e,bio:e,black:e,blackfriday:e,blockbuster:e,blog:e,bloomberg:e,blue:e,bms:e,bmw:e,bnpparibas:e,boats:e,boehringer:e,bofa:e,bom:e,bond:e,boo:e,book:e,booking:e,bosch:e,bostik:e,boston:e,bot:e,boutique:e,box:e,bradesco:e,bridgestone:e,broadway:e,broker:e,brother:e,brussels:e,build:[1,{shiptoday:t,v0:t,windsurf:t}],builders:[1,{cloudsite:t}],business:O,buy:e,buzz:e,bzh:e,cab:e,cafe:e,cal:e,call:e,calvinklein:e,cam:e,camera:e,camp:[1,{emf:[0,{at:t}]}],canon:e,capetown:e,capital:e,capitalone:e,car:e,caravan:e,cards:e,care:e,career:e,careers:e,cars:e,casa:[1,{nabu:[0,{ui:t}]}],case:[1,{sav:t}],cash:e,casino:e,catering:e,catholic:e,cba:e,cbn:e,cbre:e,center:e,ceo:e,cern:e,cfa:e,cfd:e,chanel:e,channel:e,charity:e,chase:e,chat:e,cheap:e,chintai:e,christmas:e,chrome:e,church:e,cipriani:e,circle:e,cisco:e,citadel:e,citi:e,citic:e,city:e,claims:e,cleaning:e,click:e,clinic:e,clinique:e,clothing:e,cloud:[1,{antagonist:t,begetcdn:n,convex:D,elementor:t,emergent:t,encoway:[0,{eu:t}],statics:n,ravendb:t,axarnet:[0,{"es-1":t}],diadem:t,jelastic:[0,{vip:t}],jele:t,"jenv-aruba":[0,{aruba:[0,{eur:[0,{it1:t}]}],it1:t}],keliweb:[2,{cs:t}],oxa:[2,{tn:t,uk:t}],primetel:[2,{uk:t}],reclaim:[0,{ca:t,uk:t,us:t}],trendhosting:[0,{ch:t,de:t}],jote:t,jotelulu:t,kuleuven:t,laravel:t,linkyard:t,magentosite:n,matlab:t,observablehq:t,perspecta:t,vapor:t,"on-rancher":n,scw:[0,{baremetal:[0,{"fr-par-1":t,"fr-par-2":t,"nl-ams-1":t}],"fr-par":[0,{cockpit:t,ddl:t,dtwh:t,fnc:[2,{functions:t}],ifr:t,k8s:P,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],instances:[0,{priv:t,pub:t}],k8s:t,"nl-ams":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:P,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],"pl-waw":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:P,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t}],scalebook:t,smartlabeling:t}],servebolt:t,onstackit:[0,{runs:t}],trafficplex:t,"unison-services":t,urown:t,voorloper:t,zap:t}],club:[1,{cloudns:t,jele:t,barsy:t}],clubmed:e,coach:e,codes:[1,{owo:n}],coffee:e,college:e,cologne:e,commbank:e,community:[1,{nog:t,ravendb:t,myforum:t}],company:[1,{mybox:t}],compare:e,computer:e,comsec:e,condos:e,construction:e,consulting:e,contact:e,contractors:e,cooking:e,cool:[1,{elementor:t,de:t}],corsica:e,country:e,coupon:e,coupons:e,courses:e,cpa:e,credit:e,creditcard:e,creditunion:e,cricket:e,crown:e,crs:e,cruise:e,cruises:e,cuisinella:e,cymru:e,cyou:e,dad:e,dance:e,data:e,date:e,dating:e,datsun:e,day:e,dclk:e,dds:e,deal:e,dealer:e,deals:e,degree:e,delivery:e,dell:e,deloitte:e,delta:e,democrat:e,dental:e,dentist:e,desi:e,design:[1,{graphic:t,bss:t}],dev:[1,{myaddr:t,panel:t,bearblog:t,brave:r,lcl:n,lclstage:n,stg:n,stgstage:n,pages:t,r2:t,workers:t,deno:t,"deno-staging":t,deta:t,lp:[2,{api:t,objects:t}],evervault:s,fly:t,githubpreview:t,gateway:n,grebedoc:t,botdash:t,inbrowser:n,"is-a-good":t,iserv:t,leapcell:t,runcontainers:t,localcert:[0,{user:n}],loginline:t,barsy:t,mediatech:t,"mocha-sandbox":t,modx:t,ngrok:t,"ngrok-free":t,"is-a-fullstack":t,"is-cool":t,"is-not-a":t,localplayer:t,xmit:t,"platter-app":t,replit:[2,{archer:t,bones:t,canary:t,global:t,hacker:t,id:t,janeway:t,kim:t,kira:t,kirk:t,odo:t,paris:t,picard:t,pike:t,prerelease:t,reed:t,riker:t,sisko:t,spock:t,staging:t,sulu:t,tarpit:t,teams:t,tucker:t,wesley:t,worf:t}],crm:[0,{aa:n,ab:n,ac:n,ad:n,ae:n,af:n,ci:n,d:n,pa:n,pb:n,pc:n,pd:n,pe:n,pf:n,w:n,wa:n,wb:n,wc:n,wd:n,we:n,wf:n}],erp:fa,vercel:t,webhare:n,hrsn:t,"is-a":t}],dhl:e,diamonds:e,diet:e,digital:[1,{cloudapps:[2,{london:t}]}],direct:[1,{libp2p:t}],directory:e,discount:e,discover:e,dish:e,diy:[1,{discourse:t,imagine:t}],dnp:e,docs:e,doctor:e,dog:e,domains:e,dot:e,download:e,drive:e,dtv:e,dubai:e,dupont:e,durban:e,dvag:e,dvr:e,earth:e,eat:e,eco:e,edeka:e,education:O,email:[1,{crisp:[0,{on:t}],intouch:t,tawk:ha,tawkto:ha}],emerck:e,energy:e,engineer:e,engineering:e,enterprises:e,epson:e,equipment:e,ericsson:e,erni:e,esq:e,estate:[1,{compute:n}],eurovision:e,eus:[1,{party:ba}],events:[1,{koobin:t,co:t}],exchange:e,expert:e,exposed:e,express:e,extraspace:e,fage:e,fail:e,fairwinds:e,faith:e,family:e,fan:e,fans:e,farm:[1,{storj:t}],farmers:e,fashion:e,fast:e,fedex:e,feedback:e,ferrari:e,ferrero:e,fidelity:e,fido:e,film:e,final:e,finance:e,financial:O,fire:e,firestone:e,firmdale:e,fish:e,fishing:e,fit:e,fitness:e,flickr:e,flights:e,flir:e,florist:e,flowers:e,fly:e,foo:e,food:e,football:e,ford:e,forex:e,forsale:e,forum:e,foundation:e,fox:e,free:e,fresenius:e,frl:e,frogans:e,frontier:e,ftr:e,fujitsu:e,fun:ka,fund:e,furniture:e,futbol:e,fyi:e,gal:e,gallery:e,gallo:e,gallup:e,game:e,games:[1,{pley:t,sheezy:t}],gap:e,garden:e,gay:[1,{pages:t}],gbiz:e,gdn:[1,{cnpy:t}],gea:e,gent:e,genting:e,george:e,ggee:e,gift:e,gifts:e,gives:e,giving:e,glass:e,gle:e,global:[1,{appwrite:t}],globo:e,gmail:e,gmbh:e,gmo:e,gmx:e,godaddy:e,gold:e,goldpoint:e,golf:e,goodyear:e,goog:[1,{cloud:t,translate:t,usercontent:n}],google:e,gop:e,got:e,grainger:e,graphics:e,gratis:e,green:e,gripe:e,grocery:e,group:[1,{discourse:t}],gucci:e,guge:e,guide:e,guitars:e,guru:e,hair:e,hamburg:e,hangout:e,haus:e,hbo:e,hdfc:e,hdfcbank:e,health:[1,{hra:t}],healthcare:e,help:e,helsinki:e,here:e,hermes:e,hiphop:e,hisamitsu:e,hitachi:e,hiv:e,hkt:e,hockey:e,holdings:e,holiday:e,homedepot:e,homegoods:e,homes:e,homesense:e,honda:e,horse:e,hospital:e,host:[1,{cloudaccess:t,freesite:t,easypanel:t,emergent:t,fastvps:t,myfast:t,gadget:t,tempurl:t,wpmudev:t,iserv:t,jele:t,mircloud:t,bolt:t,wp2:t,half:t}],hosting:[1,{opencraft:t}],hot:e,hotel:e,hotels:e,hotmail:e,house:e,how:e,hsbc:e,hughes:e,hyatt:e,hyundai:e,ibm:e,icbc:e,ice:e,icu:e,ieee:e,ifm:e,ikano:e,imamat:e,imdb:e,immo:e,immobilien:e,inc:e,industries:e,infiniti:e,ing:e,ink:e,institute:e,insurance:e,insure:e,international:e,intuit:e,investments:e,ipiranga:e,irish:e,ismaili:e,ist:e,istanbul:e,itau:e,itv:e,jaguar:e,java:e,jcb:e,jeep:e,jetzt:e,jewelry:e,jio:e,jll:e,jmp:e,jnj:e,joburg:e,jot:e,joy:e,jpmorgan:e,jprs:e,juegos:e,juniper:e,kaufen:e,kddi:e,kerryhotels:e,kerryproperties:e,kfh:e,kia:e,kids:e,kim:e,kindle:e,kitchen:e,kiwi:e,koeln:e,komatsu:e,kosher:e,kpmg:e,kpn:e,krd:[1,{co:t,edu:t}],kred:e,kuokgroup:e,kyoto:e,lacaixa:e,lamborghini:e,lamer:e,land:e,landrover:e,lanxess:e,lasalle:e,lat:e,latino:e,latrobe:e,law:e,lawyer:e,lds:e,lease:e,leclerc:e,lefrak:e,legal:e,lego:e,lexus:e,lgbt:e,lidl:e,life:e,lifeinsurance:e,lifestyle:e,lighting:e,like:e,lilly:e,limited:e,limo:e,lincoln:e,link:[1,{myfritz:t,cyon:t,joinmc:t,dweb:n,inbrowser:n,keenetic:t,nftstorage:zt,mypep:t,storacha:zt,w3s:zt}],live:[1,{aem:t,hlx:t,ewp:n}],living:e,llc:e,llp:e,loan:e,loans:e,locker:e,locus:e,lol:[1,{omg:t}],london:e,lotte:e,lotto:e,love:e,lpl:e,lplfinancial:e,ltd:e,ltda:e,lundbeck:e,luxe:e,luxury:e,madrid:e,maif:e,maison:e,makeup:e,man:e,management:e,mango:e,map:e,market:e,marketing:e,markets:e,marriott:e,marshalls:e,mattel:e,mba:e,mckinsey:e,med:e,media:at,meet:e,melbourne:e,meme:e,memorial:e,men:e,menu:[1,{barsy:t,barsyonline:t}],merck:e,merckmsd:e,miami:e,microsoft:e,mini:e,mint:e,mit:e,mitsubishi:e,mlb:e,mls:e,mma:e,mobile:e,moda:e,moe:e,moi:e,mom:e,monash:e,money:e,monster:e,mormon:e,mortgage:e,moscow:e,moto:e,motorcycles:e,mov:e,movie:e,msd:e,mtn:e,mtr:e,music:e,nab:e,nagoya:e,navy:e,nba:e,nec:e,netbank:e,netflix:e,network:[1,{aem:t,alces:n,appwrite:t,co:t,arvo:t,azimuth:t,tlon:t}],neustar:e,new:e,news:[1,{noticeable:t}],next:e,nextdirect:e,nexus:e,nfl:e,ngo:e,nhk:e,nico:e,nike:e,nikon:e,ninja:e,nissan:e,nissay:e,nokia:e,norton:e,now:e,nowruz:e,nowtv:e,nra:e,nrw:e,ntt:e,nyc:e,obi:e,observer:e,office:e,okinawa:e,olayan:e,olayangroup:e,ollo:e,omega:e,one:[1,{kin:n,service:t,website:t}],ong:e,onl:e,online:[1,{eero:t,"eero-stage":t,websitebuilder:t,leapcell:t,barsy:t}],ooo:e,open:e,oracle:e,orange:[1,{tech:t}],organic:e,origins:e,osaka:e,otsuka:e,ott:e,ovh:[1,{nerdpol:t}],page:[1,{aem:t,hlx:t,codeberg:t,deuxfleurs:t,mybox:t,heyflow:t,prvcy:t,rocky:t,statichost:t,pdns:t,plesk:t}],panasonic:e,paris:e,pars:e,partners:e,parts:e,party:e,pay:e,pccw:e,pet:e,pfizer:e,pharmacy:e,phd:e,philips:e,phone:e,photo:e,photography:e,photos:at,physio:e,pics:e,pictet:e,pictures:[1,{1337:t}],pid:e,pin:e,ping:e,pink:e,pioneer:e,pizza:[1,{ngrok:t}],place:O,play:e,playstation:e,plumbing:e,plus:[1,{playit:[2,{at:n,with:t}]}],pnc:e,pohl:e,poker:e,politie:e,porn:e,praxi:e,press:e,prime:e,prod:e,productions:e,prof:e,progressive:e,promo:e,properties:e,property:e,protection:e,pru:e,prudential:e,pub:[1,{id:n,kin:n,barsy:t}],pwc:e,qpon:e,quebec:e,quest:e,racing:e,radio:e,read:e,realestate:e,realtor:e,realty:e,recipes:e,red:e,redumbrella:e,rehab:e,reise:e,reisen:e,reit:e,reliance:e,ren:e,rent:e,rentals:e,repair:e,report:e,republican:e,rest:e,restaurant:e,review:e,reviews:[1,{aem:t}],rexroth:e,rich:e,richardli:e,ricoh:e,ril:e,rio:e,rip:[1,{clan:t}],rocks:[1,{myddns:t,stackit:t,"lima-city":t,webspace:t}],rodeo:e,rogers:e,room:e,rsvp:e,rugby:e,ruhr:e,run:[1,{appwrite:n,canva:t,development:t,ravendb:t,liara:[2,{iran:t}],lovable:t,needle:t,build:n,code:n,database:n,migration:n,onporter:t,repl:t,stackit:t,val:fa,vercel:t,wix:t}],rwe:e,ryukyu:e,saarland:e,safe:e,safety:e,sakura:e,sale:e,salon:e,samsclub:e,samsung:e,sandvik:e,sandvikcoromant:e,sanofi:e,sap:e,sarl:e,sas:e,save:e,saxo:e,sbi:e,sbs:e,scb:e,schaeffler:e,schmidt:e,scholarships:e,school:e,schule:e,schwarz:e,science:e,scot:[1,{co:t,me:t,org:t,gov:[2,{service:t}]}],search:e,seat:e,secure:e,security:e,seek:e,select:e,sener:e,services:[1,{loginline:t}],seven:e,sew:e,sex:e,sexy:e,sfr:e,shangrila:e,sharp:e,shell:e,shia:e,shiksha:e,shoes:e,shop:[1,{base:t,hoplix:t,barsy:t,barsyonline:t,shopware:t}],shopping:e,shouji:e,show:ka,silk:e,sina:e,singles:e,site:[1,{square:t,canva:F,cloudera:n,convex:D,cyon:t,caffeine:t,fastvps:t,figma:t,"figma-gov":t,preview:t,heyflow:t,jele:t,jouwweb:t,loginline:t,barsy:t,co:t,notion:t,omniwe:t,opensocial:t,madethis:t,support:t,platformsh:n,tst:n,byen:t,sol:t,srht:t,novecore:t,cpanel:t,wpsquared:t,sourcecraft:t}],ski:e,skin:e,sky:e,skype:e,sling:e,smart:e,smile:e,sncf:e,soccer:e,social:e,softbank:e,software:e,sohu:e,solar:e,solutions:e,song:e,sony:e,soy:e,spa:e,space:[1,{myfast:t,heiyu:t,hf:[2,{static:t}],"app-ionos":t,project:t,uber:t,xs4all:t}],sport:e,spot:e,srl:e,stada:e,staples:e,star:e,statebank:e,statefarm:e,stc:e,stcgroup:e,stockholm:e,storage:e,store:[1,{barsy:t,sellfy:t,shopware:t,storebase:t}],stream:e,studio:e,study:e,style:e,sucks:e,supplies:e,supply:e,support:[1,{barsy:t}],surf:e,surgery:e,suzuki:e,swatch:e,swiss:e,sydney:e,systems:[1,{knightpoint:t,miren:t}],tab:e,taipei:e,talk:e,taobao:e,target:e,tatamotors:e,tatar:e,tattoo:e,tax:e,taxi:e,tci:e,tdk:e,team:[1,{discourse:t,jelastic:t}],tech:[1,{cleverapps:t}],technology:O,temasek:e,tennis:e,teva:e,thd:e,theater:e,theatre:e,tiaa:e,tickets:e,tienda:e,tips:e,tires:e,tirol:e,tjmaxx:e,tjx:e,tkmaxx:e,tmall:e,today:[1,{prequalifyme:t}],tokyo:e,tools:[1,{addr:pa,myaddr:t}],top:[1,{ntdll:t,wadl:n}],toray:e,toshiba:e,total:e,tours:e,town:e,toyota:e,toys:e,trade:e,trading:e,training:e,travel:e,travelers:e,travelersinsurance:e,trust:e,trv:e,tube:e,tui:e,tunes:e,tushu:e,tvs:e,ubank:e,ubs:e,unicom:e,university:e,uno:e,uol:e,ups:e,vacations:e,vana:e,vanguard:e,vegas:e,ventures:e,verisign:e,versicherung:e,vet:e,viajes:e,video:e,vig:e,viking:e,villas:e,vin:e,vip:[1,{hidns:t}],virgin:e,visa:e,vision:e,viva:e,vivo:e,vlaanderen:e,vodka:e,volvo:e,vote:e,voting:e,voto:e,voyage:e,wales:e,walmart:e,walter:e,wang:e,wanggou:e,watch:e,watches:e,weather:e,weatherchannel:e,webcam:e,weber:e,website:at,wed:e,wedding:e,weibo:e,weir:e,whoswho:e,wien:e,wiki:at,williamhill:e,win:e,windows:e,wine:e,winners:e,wme:e,woodside:e,work:[1,{"imagine-proxy":t}],works:e,world:e,wow:e,wtc:e,wtf:e,xbox:e,xerox:e,xihuan:e,xin:e,"xn--11b4c3d":e,\u0915\u0949\u092E:e,"xn--1ck2e1b":e,\u30BB\u30FC\u30EB:e,"xn--1qqw23a":e,\u4F5B\u5C71:e,"xn--30rr7y":e,\u6148\u5584:e,"xn--3bst00m":e,\u96C6\u56E2:e,"xn--3ds443g":e,\u5728\u7EBF:e,"xn--3pxu8k":e,\u70B9\u770B:e,"xn--42c2d9a":e,\u0E04\u0E2D\u0E21:e,"xn--45q11c":e,\u516B\u5366:e,"xn--4gbrim":e,\u0645\u0648\u0642\u0639:e,"xn--55qw42g":e,\u516C\u76CA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--5su34j936bgsg":e,\u9999\u683C\u91CC\u62C9:e,"xn--5tzm5g":e,\u7F51\u7AD9:e,"xn--6frz82g":e,\u79FB\u52A8:e,"xn--6qq986b3xl":e,\u6211\u7231\u4F60:e,"xn--80adxhks":e,\u043C\u043E\u0441\u043A\u0432\u0430:e,"xn--80aqecdr1a":e,\u043A\u0430\u0442\u043E\u043B\u0438\u043A:e,"xn--80asehdb":e,\u043E\u043D\u043B\u0430\u0439\u043D:e,"xn--80aswg":e,\u0441\u0430\u0439\u0442:e,"xn--8y0a063a":e,\u8054\u901A:e,"xn--9dbq2a":e,\u05E7\u05D5\u05DD:e,"xn--9et52u":e,\u65F6\u5C1A:e,"xn--9krt00a":e,\u5FAE\u535A:e,"xn--b4w605ferd":e,\u6DE1\u9A6C\u9521:e,"xn--bck1b9a5dre4c":e,\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3:e,"xn--c1avg":e,\u043E\u0440\u0433:e,"xn--c2br7g":e,\u0928\u0947\u091F:e,"xn--cck2b3b":e,\u30B9\u30C8\u30A2:e,"xn--cckwcxetd":e,\u30A2\u30DE\u30BE\u30F3:e,"xn--cg4bki":e,\uC0BC\uC131:e,"xn--czr694b":e,\u5546\u6807:e,"xn--czrs0t":e,\u5546\u5E97:e,"xn--czru2d":e,\u5546\u57CE:e,"xn--d1acj3b":e,\u0434\u0435\u0442\u0438:e,"xn--eckvdtc9d":e,\u30DD\u30A4\u30F3\u30C8:e,"xn--efvy88h":e,\u65B0\u95FB:e,"xn--fct429k":e,\u5BB6\u96FB:e,"xn--fhbei":e,\u0643\u0648\u0645:e,"xn--fiq228c5hs":e,\u4E2D\u6587\u7F51:e,"xn--fiq64b":e,\u4E2D\u4FE1:e,"xn--fjq720a":e,\u5A31\u4E50:e,"xn--flw351e":e,\u8C37\u6B4C:e,"xn--fzys8d69uvgm":e,\u96FB\u8A0A\u76C8\u79D1:e,"xn--g2xx48c":e,\u8D2D\u7269:e,"xn--gckr3f0f":e,\u30AF\u30E9\u30A6\u30C9:e,"xn--gk3at1e":e,\u901A\u8CA9:e,"xn--hxt814e":e,\u7F51\u5E97:e,"xn--i1b6b1a6a2e":e,\u0938\u0902\u0917\u0920\u0928:e,"xn--imr513n":e,\u9910\u5385:e,"xn--io0a7i":e,\u7F51\u7EDC:e,"xn--j1aef":e,\u043A\u043E\u043C:e,"xn--jlq480n2rg":e,\u4E9A\u9A6C\u900A:e,"xn--jvr189m":e,\u98DF\u54C1:e,"xn--kcrx77d1x4a":e,\u98DE\u5229\u6D66:e,"xn--kput3i":e,\u624B\u673A:e,"xn--mgba3a3ejt":e,\u0627\u0631\u0627\u0645\u0643\u0648:e,"xn--mgba7c0bbn0a":e,\u0627\u0644\u0639\u0644\u064A\u0627\u0646:e,"xn--mgbab2bd":e,\u0628\u0627\u0632\u0627\u0631:e,"xn--mgbca7dzdo":e,\u0627\u0628\u0648\u0638\u0628\u064A:e,"xn--mgbi4ecexp":e,\u0643\u0627\u062B\u0648\u0644\u064A\u0643:e,"xn--mgbt3dhd":e,\u0647\u0645\u0631\u0627\u0647:e,"xn--mk1bu44c":e,\uB2F7\uCEF4:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--ngbc5azd":e,\u0634\u0628\u0643\u0629:e,"xn--ngbe9e0a":e,\u0628\u064A\u062A\u0643:e,"xn--ngbrx":e,\u0639\u0631\u0628:e,"xn--nqv7f":e,\u673A\u6784:e,"xn--nqv7fs00ema":e,\u7EC4\u7EC7\u673A\u6784:e,"xn--nyqy26a":e,\u5065\u5EB7:e,"xn--otu796d":e,\u62DB\u8058:e,"xn--p1acf":[1,{"xn--90amc":t,"xn--j1aef":t,"xn--j1ael8b":t,"xn--h1ahn":t,"xn--j1adp":t,"xn--c1avg":t,"xn--80aaa0cvac":t,"xn--h1aliz":t,"xn--90a1af":t,"xn--41a":t}],\u0440\u0443\u0441:[1,{\u0431\u0438\u0437:t,\u043A\u043E\u043C:t,\u043A\u0440\u044B\u043C:t,\u043C\u0438\u0440:t,\u043C\u0441\u043A:t,\u043E\u0440\u0433:t,\u0441\u0430\u043C\u0430\u0440\u0430:t,\u0441\u043E\u0447\u0438:t,\u0441\u043F\u0431:t,\u044F:t}],"xn--pssy2u":e,\u5927\u62FF:e,"xn--q9jyb4c":e,\u307F\u3093\u306A:e,"xn--qcka1pmc":e,\u30B0\u30FC\u30B0\u30EB:e,"xn--rhqv96g":e,\u4E16\u754C:e,"xn--rovu88b":e,\u66F8\u7C4D:e,"xn--ses554g":e,\u7F51\u5740:e,"xn--t60b56a":e,\uB2F7\uB137:e,"xn--tckwe":e,\u30B3\u30E0:e,"xn--tiq49xqyj":e,\u5929\u4E3B\u6559:e,"xn--unup4y":e,\u6E38\u620F:e,"xn--vermgensberater-ctb":e,verm\u00F6gensberater:e,"xn--vermgensberatung-pwb":e,verm\u00F6gensberatung:e,"xn--vhquv":e,\u4F01\u4E1A:e,"xn--vuq861b":e,\u4FE1\u606F:e,"xn--w4r85el8fhu5dnra":e,\u5609\u91CC\u5927\u9152\u5E97:e,"xn--w4rs40l":e,\u5609\u91CC:e,"xn--xhq521b":e,\u5E7F\u4E1C:e,"xn--zfr164b":e,\u653F\u52A1:e,xyz:[1,{caffeine:t,exe:t,botdash:t,telebit:n}],yachts:e,yahoo:e,yamaxun:e,yandex:e,yodobashi:e,yoga:e,yokohama:e,you:e,youtube:e,yun:e,zappos:e,zara:e,zero:e,zip:e,zone:[1,{stackit:t,lima:t,triton:n}],zuerich:e}]})();function ja(e,t,a,o){let n=null,r=t;for(;r!==void 0&&((r[0]&o)!==0&&(n={index:a+1,isIcann:(r[0]&1)!==0,isPrivate:(r[0]&2)!==0}),a!==-1);){let s=r[1];r=Object.prototype.hasOwnProperty.call(s,e[a])?s[e[a]]:s["*"],a-=1}return n}function ut(e,t,a){var o;if(Wt(e,t,a))return;let n=e.split("."),r=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0),s=ja(n,Da,n.length-1,r);if(s!==null){a.isIcann=s.isIcann,a.isPrivate=s.isPrivate,a.publicSuffix=n.slice(s.index+1).join(".");return}let c=ja(n,Oa,n.length-1,r);if(c!==null){a.isIcann=c.isIcann,a.isPrivate=c.isPrivate,a.publicSuffix=n.slice(c.index).join(".");return}a.isIcann=!1,a.isPrivate=!1,a.publicSuffix=(o=n[n.length-1])!==null&&o!==void 0?o:null}var Pa=it();function za(e,t={}){return ct(e,5,ut,t,it())}function Ma(e,t={}){return $t(Pa),ct(e,3,ut,t,Pa).domain}function Bt(e){let t=String(e||"").trim().toLowerCase().replace(/\.$/,"");return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function co(e){let t=String(e||"").trim().toLowerCase();if(!t||t.includes("://")||t.startsWith("//"))return!1;let a=t.split(/[/?#]/)[0]?.trim()||"";return!a||a.startsWith("[")?!1:(a.match(/:/g)||[]).length>=2}function uo(e){let t=String(e||"").trim();return t?/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:t.startsWith("//")?`https:${t}`:co(t)?`https://[${t}]`:`https://${t}`:""}function lo(e){let t=uo(e);if(!t)return"";try{return Bt(new URL(t).hostname)}catch{return""}}function mo(e){return/^\d{1,3}(?:\.\d{1,3}){3}$/.test(e)?e.split(".").every(t=>{let a=Number(t);return Number.isInteger(a)&&a>=0&&a<=255}):!1}function po(e){if(!e.includes(":"))return!1;try{return Bt(new URL(`https://[${e}]`).hostname)===e}catch{return!1}}function fo(e){let t=Bt(e);return za(t).isIp===!0||mo(t)||po(t)}function $e(e){return lo(String(e||"").trim().toLowerCase())}function Kt(e){let t=String(e||"").trim().toLowerCase();if(!t)return"";if(t==="*")return"*";let a=t.startsWith("="),o=!a&&t.startsWith("*."),n=a?t.slice(1):o?t.slice(2):t,r=$e(n);return r?a?`=${r}`:o?`*.${r}`:r:""}function Na(e){let t=$e(e);return t?t==="localhost"||fo(t)?t:Ma(t,{allowPrivateDomains:!0})||t:""}function Ua(e,t){let a=$e(e),o=Kt(t);if(!a||!o)return!1;if(o==="*")return!0;if(o.startsWith("=")){let n=o.slice(1);return!!n&&a===n}if(o.startsWith("*.")){let n=o.slice(2);return!n||a===n?!1:a.endsWith(`.${n}`)}return a===o?!0:a.endsWith(`.${o}`)}function go(e){let t={...Ra,...e??{}},a=Number(e?.pdfTextSelectionTimeoutMs);return Number.isFinite(a)&&(t.pdfTextSelectionTimeoutMs=Math.floor(a)),t.totalBudgetMs!==void 0&&(t.totalBudgetMs=Math.max(1500,Math.floor(t.totalBudgetMs))),t.pageDataTimeoutMs!==void 0&&(t.pageDataTimeoutMs=Math.max(500,Math.floor(t.pageDataTimeoutMs))),t.pdfTextSelectionTimeoutMs!==void 0&&(t.pdfTextSelectionTimeoutMs=Math.max(150,Math.floor(t.pdfTextSelectionTimeoutMs))),t.adaptiveSettleDebounceMs!==void 0&&(t.adaptiveSettleDebounceMs=Math.max(20,Math.min(500,Math.floor(t.adaptiveSettleDebounceMs)))),t.adaptiveSettleMaxWaitMs!==void 0&&(t.adaptiveSettleMaxWaitMs=Math.max(120,Math.min(5e3,Math.floor(t.adaptiveSettleMaxWaitMs)))),t.adaptiveSettleRetries!==void 0&&(t.adaptiveSettleRetries=Math.max(0,Math.min(6,Math.floor(t.adaptiveSettleRetries)))),t.sparseTreeRetryDelayMs!==void 0&&(t.sparseTreeRetryDelayMs=Math.max(40,Math.min(1e3,Math.floor(t.sparseTreeRetryDelayMs)))),t.sparseTreeRetryMaxAttempts!==void 0&&(t.sparseTreeRetryMaxAttempts=Math.max(0,Math.min(4,Math.floor(t.sparseTreeRetryMaxAttempts)))),t}var ho=["disableAutoScroll","onlyTextContent","totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];function La(e){if(!e||typeof e!="object")return;let t=e,a={};typeof t.disableAutoScroll=="boolean"&&(a.disableAutoScroll=t.disableAutoScroll),typeof t.onlyTextContent=="boolean"&&(a.onlyTextContent=t.onlyTextContent);let o=["totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];for(let s of o){let c=Number(t[s]);Number.isFinite(c)&&(a[s]=Math.trunc(c))}if(!Object.keys(a).length)return;let n=go(a),r={};for(let s of ho)a[s]!==void 0&&n[s]!==void 0&&(r[s]=n[s]);return Object.keys(r).length?r:void 0}var bo=()=>typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;function lt(e){return(e||"").trim()||"Data"}function qa(e,t){return e.length>=t?e:[...e,...new Array(t-e.length).fill("")]}function Vt(e,t){if(e.length===t)return e;if(e.length>t)return e.slice(0,t);let a=e.slice();for(;a.length<t;)a.push("");return a}function Fa(e){return e?.properties?Object.keys(e.properties):[]}function Ha(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}function ko(e){return!e||typeof e!="object"?!1:"properties"in e||"anyOf"in e||"type"in e}var be=class{label;memSheets=new Map;constructor(t){this.label=t}createSheet(t,a){let o=`${Ge}${bo()}`;return this.createSheetWithId(o,t,a)}createSheetWithId(t,a,o){let n=Date.now(),r={id:t,title:lt(a),tabs:new Map,tabTitleToIndex:new Map,nextTabIndex:0,createdAt:n,updatedAt:n,meta:o};return this.memSheets.set(t,r),this.addTab(t,{title:r.title||"Data",headerRow:[],data:[]}),r}getOrCreateSheet(t,a,o){return t&&this.memSheets.has(t)?this.memSheets.get(t):t&&t.startsWith(Ge)?(console.warn(`[TabularStore] getOrCreateSheet: memory sheet ${t} not found. Recreating empty sheet.`),this.createSheetWithId(t,a,o)):this.createSheet(a||t,o)}hasSheet(t){return this.memSheets.has(t)}getSheet(t){let a=this.memSheets.get(t);if(!a)throw new Error(`Memory sheet not found: ${t}`);return a}deleteSheet(t){return this.memSheets.delete(t)}listSheets(){return[...this.memSheets.values()]}clearAll(){this.memSheets.clear()}addTab(t,a){let o=this.getSheet(t),n=o.nextTabIndex++,r=Date.now(),s=this.makeUniqueTabTitle(o,a.title),c={index:n,title:s,headerRow:a.headerRow||[],data:a.data||[],schema:a.schema,createdAt:r,updatedAt:r,meta:a.meta};return o.tabs.set(n,c),o.tabTitleToIndex.set(s.toLowerCase(),n),o.updatedAt=r,c}getTab(t,a=0){let n=this.getSheet(t).tabs.get(a);if(!n)throw new Error(`Memory tab not found: ${t}/tab/${a}`);return n}getTabByTitle(t,a){let o=this.memSheets.get(t);if(!o)return null;let n=o.tabTitleToIndex.get(a.toLowerCase());return n===void 0?null:o.tabs.get(n)??null}hasTab(t,a){let o=this.memSheets.get(t);return!!o&&o.tabs.has(a)}getTabByIndex(t,a=0){let o=this.memSheets.get(t);return o?o.tabs.get(a)??null:null}ensureTab(t,a,o={}){let n=this.getSheet(t),r=lt(a),s=this.getTabByTitle(t,r);if(s)return s;if(o.createIfMissing??!0)return this.addTab(t,{title:r,headerRow:[],data:[]});let c=this.getTabByIndex(t,0);return c||this.addTab(t,{title:r,headerRow:[],data:[]})}makeUniqueTabTitle(t,a,o){let n=lt(a),r=n.toLowerCase(),s=t.tabTitleToIndex.get(r);if(s===void 0||s===o)return n;let c=2;for(;t.tabTitleToIndex.has(`${n} (${c})`.toLowerCase());)c++;return`${n} (${c})`}renameTab(t,a,o){let n=this.getSheet(t),r=this.getTab(t,a),s=r.title.toLowerCase(),c=lt(o);if(c.toLowerCase()===s){r.title=c,r.updatedAt=Date.now(),n.updatedAt=r.updatedAt,n.tabTitleToIndex.set(s,a);return}n.tabTitleToIndex.delete(s);let u=this.makeUniqueTabTitle(n,c,a);r.title=u,r.updatedAt=Date.now(),n.tabTitleToIndex.set(u.toLowerCase(),a),n.updatedAt=r.updatedAt}deleteTab(t,a){let o=this.getSheet(t),n=o.tabs.get(a);return n?(o.tabTitleToIndex.delete(n.title.toLowerCase()),o.tabs.delete(a),o.updatedAt=Date.now(),!0):!1}listTabs(t){return[...this.getSheet(t).tabs.values()].sort((o,n)=>o.index-n.index)}setHeaderRow(t,a,o){let n=this.getTab(t,a);n.headerRow=o.map(String),n.data=n.data.map(r=>Vt(r,n.headerRow.length)),n.updatedAt=Date.now(),this.touchSheet(t)}mergeHeaderRow(t,a,o){let n=this.getTab(t,a),r=n.headerRow.length,s=new Set(n.headerRow.map(i=>i.toLowerCase()));for(let i of o){let u=String(i).toLowerCase();s.has(u)||(n.headerRow.push(String(i)),s.add(u))}let c=n.headerRow.length;return c>r&&(n.data=n.data.map(i=>qa(i,c))),n.updatedAt=Date.now(),this.touchSheet(t),n.headerRow}setSchema(t,a,o,n={}){let r=this.getTab(t,a);if(r.schema=o,!n.preserveHeader&&o?.properties){let s=Fa(o);if(s.length){let c=r.headerRow;if(!c.length)r.headerRow=s.slice();else{let u=new Set(s.map(d=>d.toLowerCase())),l=[];for(let d of s)l.push(d);for(let d of c)u.has(d.toLowerCase())||l.push(d);r.headerRow=l}let i=r.headerRow.length;r.data=r.data.map(u=>Vt(u,i))}}r.updatedAt=Date.now(),this.touchSheet(t)}appendRows(t,a,o,n={}){let r=this.getTab(t,a),s=n.alignToHeader!==!1,c=r.headerRow.length;for(let i of o){let u=s&&c>0?Vt(i,c):i.slice();r.data.push(u)}r.updatedAt=Date.now(),this.touchSheet(t)}upsertColumnsByHeader(t,a,o,n,r={}){let s=this.getTab(t,a),c=r.createMissingHeaders??!0,i=new Map;s.headerRow.forEach((d,m)=>i.set(d,m));for(let d of Object.keys(n))if(!i.has(d)){if(!c)continue;let m=s.headerRow.length;s.headerRow.push(d),i.set(d,m),s.data=s.data.map(f=>qa(f,s.headerRow.length))}let u=s.headerRow.length;for(;s.data.length<=o;)s.data.push(new Array(u).fill(""));let l=s.data[o];for(let[d,m]of Object.entries(n)){let f=i.get(d);f!==void 0&&(l[f]=m)}s.updatedAt=Date.now(),this.touchSheet(t)}toAny2D(t,a=0,o=!0){let n=this.getTab(t,a),r=n.data.map(s=>s.slice());return o?[n.headerRow.slice(),...r]:r}toObjects(t,a=0,o={}){let n=this.getTab(t,a),r=n.headerRow,s=o.maxRows??n.data.length,c=[];for(let i=0;i<n.data.length&&i<s;i++){let u=n.data[i],l={};for(let d=0;d<r.length;d++)l[r[d]]=u[d];c.push(l)}return c}toSheetInfo(t,a=0){let o=this.getSheet(t),n=this.getTab(t,a);return{sheetId:t,sheetTitle:o.title,sheetTab:n.title,sheetTabId:n.index,sheetTabs:this.listTabs(t).map(r=>({id:r.index,title:r.title})),kind:"memory"}}publishFromObjects(t,a,o={}){let n=t.headerRow||t.headingInfo.headings||Object.keys(t.headingInfo.schema?.properties??{}),r=a.map(c=>n.map(i=>c[i]??"")),s=n.length?[n,...r]:r;return this.publishFromSheetWorkflow(t,s,o)}publishFromSheetWorkflow(t,a,o={}){let n=t.sheetInfo,r=o.sheetTitle||t.headingInfo.title||n?.sheetTitle||"Data",s=o.tabTitle||n?.newTabTitle||n?.sheetTab||"Data",c=o.schema||t.headingInfo.schema,i=Fa(c),u=this.getOrCreateSheet(n?.sheetId&&n.sheetId.startsWith(Ge)?n.sheetId:void 0,r),l=this.ensureTab(u.id,s,{createIfMissing:!0}),d=o.mergeWithExistingHeader??!0,m=l.headerRow.length>0;i.length?m&&d?this.mergeHeaderRow(u.id,l.index,i):this.setHeaderRow(u.id,l.index,i):t.headerRow?.length&&(m&&d?this.mergeHeaderRow(u.id,l.index,t.headerRow):this.setHeaderRow(u.id,l.index,t.headerRow)),this.setSchema(u.id,l.index,c,{preserveHeader:!0});let f=this.getTab(u.id,l.index).headerRow,k=a.length&&f.length&&a[0].length===f.length&&a[0].every((C,x)=>String(C).trim().toLowerCase()===f[x].trim().toLowerCase())?a.slice(1):a;return this.appendRows(u.id,l.index,k,{alignToHeader:o.alignToHeader??!0}),t.sheetInfo={sheetId:u.id,sheetTitle:u.title,sheetTab:l.title,sheetTabId:l.index,sheetTabs:this.listTabs(u.id).map(C=>({title:C.title,id:C.index})),kind:"memory"},t.headerRow=f,t.headingInfo.headings=f,t}publishNewTab(t,a,o,n,r){let s;r?ko(r)&&!("sheetTitle"in r)?s={schema:r}:s=r:s={};let c=this.getOrCreateSheet(t),i,u=s.mergeWithExistingHeader??!0;if(s.createTabIfMissing===!1){let l=this.getTabByTitle(c.id,a);l?(i=l,i.headerRow.length?u&&this.mergeHeaderRow(c.id,i.index,o):this.setHeaderRow(c.id,i.index,o)):i=this.addTab(c.id,{title:a,headerRow:o,data:[],schema:s.schema,meta:void 0})}else i=this.addTab(c.id,{title:a,headerRow:o,data:[],schema:s.schema,meta:void 0});return this.appendRows(c.id,i.index,n,{alignToHeader:s.alignToHeader??!0}),i}estimateTabSizeBytes(t,a=0){let o=this.getTab(t,a),n=Ha(o.headerRow),r=o.data,s=500,c=0,i=Math.min(r.length,s);for(let u=0;u<i;u++)c+=Ha(r[u]);return r.length>i&&i>0&&(c=Math.round(c*(r.length/i))),n+c}touchSheet(t){let a=this.memSheets.get(t);a&&(a.updatedAt=Date.now())}},ke=e=>!!e&&e.startsWith(Ge);function Ga(e){let t=String(e||"").toLowerCase();return t.includes("stale_seq")||t.includes("stale seq")?"STALE_SEQ":t.includes("stale_epoch")||t.includes("stale epoch")?"STALE_EPOCH":t.includes("session token")&&t.includes("expired")?"SESSION_TOKEN_EXPIRED":t.includes("session token")&&t.includes("invalid")?"SESSION_TOKEN_INVALID":t.includes("bootstrap")&&t.includes("required")?"BOOTSTRAP_REQUIRED":t.includes("navigation handoff")?"NAVIGATION_HANDOFF_PENDING":(t.includes("auth token")||t.includes("authentication token"))&&(t.includes("missing")||t.includes("required"))?"MISSING_AUTH_TOKEN":t.includes("missing auth")||t.includes("requires auth")||t.includes("requires authentication")?"MISSING_AUTH":t.includes("api key")&&(t.includes("missing")||t.includes("required"))?"MISSING_API_KEY":t.includes("invalid")&&t.includes("api key")?"INVALID_API_KEY":t.includes("unauthenticated")||t.includes("authentication")?"UNAUTHENTICATED":t.includes("permission")?"PERMISSION_DENIED":t.includes("insufficient credits")||t.includes("credits")?"INSUFFICIENT_CREDITS":t.includes("not supported")||t.includes("unsupported")?"TOOL_UNSUPPORTED":t.includes("network")||t.includes("fetch")?"NETWORK_ERROR":"UNKNOWN_ERROR"}function dt(e){if(e==="MISSING_AUTH"||e==="MISSING_AUTH_TOKEN")return"Provide a valid rvrsess_* sessionToken from /v2/rover/session/open in rover.boot(...).";if(e==="MISSING_API_KEY")return"Use a Rover session token (rvrsess_*) from /v2/rover/session/open.";if(e==="INVALID_API_KEY")return"Use a valid active Rover session token or rotate your site public key.";if(e==="STALE_SEQ")return"Sync session projection and retry with latest seq.";if(e==="STALE_EPOCH")return"Refresh session token/projection and retry with latest epoch.";if(e==="SESSION_TOKEN_EXPIRED")return"Refresh session via /v2/rover/session/open using bootstrap public key (pk_site_*), then retry.";if(e==="SESSION_TOKEN_INVALID")return"Initialize a fresh session token via /v2/rover/session/open and retry.";if(e==="BOOTSTRAP_REQUIRED")return"Provide a valid pk_site_* key in bootstrapToken/publicKey and retry session start.";if(e==="NAVIGATION_HANDOFF_PENDING")return"Wait for post-navigation hydration/projection sync and retry."}function J(e,t="Operation failed"){let a=String(e?.error||"").trim().toLowerCase();if(a==="stale_seq"||a==="stale_epoch"||a==="session_token_expired"||a==="session_token_invalid"||a==="bootstrap_required"){let i=a==="stale_epoch"?"STALE_EPOCH":a==="session_token_expired"?"SESSION_TOKEN_EXPIRED":a==="session_token_invalid"?"SESSION_TOKEN_INVALID":a==="bootstrap_required"?"BOOTSTRAP_REQUIRED":"STALE_SEQ",u=e?.data&&typeof e.data=="object"?e.data:{},l=typeof u?.reason=="string"?u.reason:a==="stale_epoch"?"Session epoch is stale.":a==="session_token_expired"?"Session token expired.":a==="session_token_invalid"?"Session token invalid.":a==="bootstrap_required"?"Bootstrap token required.":"Run sequence is stale.";return{code:i,message:l,next_action:dt(i),retryable:i==="STALE_SEQ"||i==="STALE_EPOCH"||i==="SESSION_TOKEN_EXPIRED",details:e}}let o=e&&typeof e=="object"&&typeof e.code=="string"&&typeof e.message=="string"?e:void 0,n=e?.roverError||e?.errorDetails||(typeof e?.error=="object"?e.error:void 0)||o;if(n&&typeof n=="object"&&n.code&&n.message){let i=String(n.code||"").trim(),l=i==="stale_seq"?"STALE_SEQ":i==="stale_epoch"?"STALE_EPOCH":i==="session_token_expired"?"SESSION_TOKEN_EXPIRED":i==="session_token_invalid"?"SESSION_TOKEN_INVALID":i==="bootstrap_required"?"BOOTSTRAP_REQUIRED":i==="navigation_handoff_pending"?"NAVIGATION_HANDOFF_PENDING":i,d=typeof n.retryable=="boolean"?n.retryable:l==="STALE_SEQ"||l==="STALE_EPOCH"||l==="SESSION_TOKEN_EXPIRED"||l==="NAVIGATION_HANDOFF_PENDING";return{code:l,message:n.message,requires_api_key:!!n.requires_api_key,missing:Array.isArray(n.missing)?n.missing:void 0,next_action:n.next_action||dt(l),retryable:d,degraded:n.degraded,details:n.details}}if(typeof e=="string"){let i=e||t,u=Ga(i);return{code:u,message:i,requires_api_key:u==="MISSING_API_KEY"||u==="INVALID_API_KEY",missing:u==="MISSING_AUTH"||u==="MISSING_AUTH_TOKEN"?["authToken"]:void 0,next_action:dt(u),retryable:u==="NETWORK_ERROR"||u==="STALE_SEQ"||u==="STALE_EPOCH"||u==="SESSION_TOKEN_EXPIRED"||u==="NAVIGATION_HANDOFF_PENDING"}}let r=String(e?.message||e?.error||t),s=Ga(r),c=s==="MISSING_API_KEY"||s==="INVALID_API_KEY";return{code:s,message:r,requires_api_key:c,missing:c?["publicKey"]:s==="MISSING_AUTH"||s==="MISSING_AUTH_TOKEN"?["authToken"]:void 0,next_action:dt(s),retryable:s==="NETWORK_ERROR"||s==="STALE_SEQ"||s==="STALE_EPOCH"||s==="SESSION_TOKEN_EXPIRED"||s==="NAVIGATION_HANDOFF_PENDING",details:e}}function Ae(e){let t=new Error(e.message);return t.roverError=e,t}function $a(e){let t=J(e);return!!t.requires_api_key||t.code==="MISSING_API_KEY"||t.code==="INVALID_API_KEY"}var Va="https://agent.rtrvr.ai",yo=new Set(["generate_sheets","generate_docs","generate_slides","generate_websites"]),wo={generate_pdfs:"generate_docs",pdf_filling:"generate_docs",generate_web_pages:"generate_websites"},Wa={enableExternalWebContext:!1,scrapeMode:"off"};function xo(e){if(!e)return;let t=Array.isArray(e.enableAdditionalTools)?e.enableAdditionalTools:[],a=Array.from(new Set(t.map(o=>{let n=wo[o]||o;return yo.has(n)?n:null}).filter(o=>!!o)));return{mode:e.mode||"none",userDefined:Array.isArray(e.userDefined)?e.userDefined:[],enableAdditionalTools:a}}function Ba(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let o of e){let n=Kt(String(o||""));!n||t.has(n)||(t.add(n),a.push(n))}return a}function Xa(e){let t=String(e||"").trim();if(t)return t.slice(0,64)}function vo(e){try{return new URL(String(e||"")).hostname.toLowerCase()}catch{return}}function Ka(e,t){return Ua(e,t)}function _o(e){return{enableExternalWebContext:e?.enableExternalWebContext??Wa.enableExternalWebContext,scrapeMode:e?.scrapeMode==="on_demand"?"on_demand":Wa.scrapeMode,allowDomains:Ba(e?.allowDomains),denyDomains:Ba(e?.denyDomains)}}function To(e,t){let a=vo(e);return a?t.denyDomains.some(o=>Ka(a,o))?{allowed:!1,reason:"deny_rule"}:t.allowDomains.length?t.allowDomains.some(o=>Ka(a,o))?{allowed:!0}:{allowed:!1,reason:"not_in_allowlist"}:{allowed:!0}:{allowed:!1,reason:"invalid_url"}}function So(e){if(!Array.isArray(e))return[];let t=new Map;for(let a of e){let o=Number(a?.tabId);if(!Number.isFinite(o))continue;let n=a?.accessMode==="external_scraped"?"external_scraped":"external_placeholder",r=String(a?.host||"").trim()||void 0,s=String(a?.title||"").trim()||void 0,c=String(a?.reason||"").trim()||void 0;t.set(o,{tabId:o,accessMode:n,host:r,title:s,reason:c})}return Array.from(t.values())}function Io(e,t){if(e==="act")return"act";if(e==="read_context")return"read_context";if(e==="open_only")return"open_only";let a=String(t||"").toLowerCase();if(!a.trim())return"read_context";let o=/\b(fill|submit|book|buy|purchase|apply|sign up|signup|log in|login|register|delete|update|create|post|send|checkout|pay)\b/i,n=/\b(search|search for|look up|lookup|browse|filter|sort|select|choose|pick|add to cart|compare prices|find reviews|pull reviews)\b/i,r=/\b(open|navigate|go to|visit|take me to|bring me to)\b/i,s=/\b(read|summarize|extract|inspect|analyze|check|find|lookup|list|show|compare|review)\b/i;return o.test(a)&&!/\b(do not|don't)\b/i.test(a)||n.test(a)?"act":(r.test(a)&&!s.test(a)||s.test(a),"read_context")}function Eo(e){let t=Va,a=String(e||t).trim().replace(/\/+$/,"");if(!a)return t;if(a.endsWith("/extensionRouter"))return a;try{let o=new URL(a),n=o.pathname.replace(/\/+$/,"");if(n&&n!=="/"||o.hostname.toLowerCase()==="extensionrouter.rtrvr.ai")return a}catch{}return`${a}/extensionRouter`}function Ro(e){let t=Va,a=String(e||t).trim().replace(/\/+$/,"");return a?a.endsWith("/extensionRouter")?`${a.slice(0,-16)}/v2/rover`:a.endsWith("/v2/rover")?a:`${a}/v2/rover`:`${t}/v2/rover`}function Xt(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}function Ao(e){let t=e.runtimeContext;if(!t||t.mode!=="rover_embed")return;let a=So(t.externalTabs).slice(0,8);return{mode:"rover_embed",agentName:Xa(t.agentName)||"Rover",externalNavigationPolicy:t.externalNavigationPolicy||e.externalNavigationPolicy,tabIdContract:t.tabIdContract||"tree_index_mapped_by_tab_order",...a.length?{externalTabs:a}:{}}}function Yt(e){let t=Xa(e.agentName)||"Rover",a=e.reason||"external_domain_inaccessible",o=e.title||"External Tab (Inaccessible)",n=e.url||"",r=a?` Reason: ${a}.`:"";return{url:n,title:o,contentType:"text/html",content:`${t} cannot access this external page directly. To read this page's content when you know its exact URL, use 'rover_external_read_context' with the URL (supports multiple URLs via 'urls' param). For tasks requiring search, navigation, or interaction (e.g. searching Google, browsing results, filtering), use 'rover_external_act_context' with the FULL task description in 'message'.${r}`,metadata:{inaccessible:!0,external:!0,accessMode:"external_placeholder",reason:a,logicalTabId:e.tabId}}}function Co(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),n=e.getHours(),r=String(e.getMinutes()).padStart(2,"0"),s=n>=12?"PM":"AM";n=n%12,n=n||12;let c=String(n).padStart(2,"0");return`${t}/${a}/${o} ${c}:${r} ${s}`}function Ya(e,t,a){let o=Co(),n=typeof e.apiMode=="boolean"?e.apiMode:!!String(e.sessionToken||e.authToken||"").trim(),r={model:e.llmIntegration?.model||e.model||Ea},s=e.googleAiStudioApiKeys||e.llmIntegration?.apiKeys,c=e.googleAiStudioApiKey||e.llmIntegration?.apiKey;s&&s.length>0?(r.enableGoogleAiStudioApiKey=!0,r.apiKeys=s):c?(r.enableGoogleAiStudioApiKey=!0,r.apiKey=c):e.llmIntegration?.enableGoogleAiStudioApiKey&&(r.enableGoogleAiStudioApiKey=!0);let i=Eo(e.apiBase),u=Ro(e.apiBase),l=Ao(e),d=_o(e.tools?.web),m=new Map,f=new Map,k,C=0,x=0,R=[1e3,3e3],N=R.length,v=250,O=45e3,_=async(I,p)=>{let h=String(e.sessionToken||e.authToken||"").trim();if(!h||!h.startsWith("rvrsess_"))for(let g=0;g<3&&(await new Promise(b=>setTimeout(b,800)),h=String(e.sessionToken||e.authToken||"").trim(),!(h&&h.startsWith("rvrsess_")));g++);if(!h||!h.startsWith("rvrsess_"))throw Ae({code:"MISSING_AUTH_TOKEN",message:"Rover session token is required to call backend action routes.",requires_api_key:!1,next_action:"Initialize Rover session via /v2/rover/session/open and pass sessionToken to rover.boot(...).",retryable:!1});let y;for(let g=0;g<=N;g++){g>0&&await new Promise(E=>setTimeout(E,R[g-1]));let b=await fetch(i,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({action:I,data:p&&typeof p=="object"?{...p,sessionToken:h,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(e.activeRunId||"").trim()||void 0,requestNonce:Xt(),...!p.runtimeContext&&l?{runtimeContext:l}:{}}:{payload:p,sessionToken:h,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(e.activeRunId||"").trim()||void 0,requestNonce:Xt()}}),signal:e.signal});if(!b.ok){if(b.status===429){let T=Number(b.headers.get("Retry-After"))||0,q=Ae({code:"RATE_LIMITED",message:"Rate limited by backend",retryable:!0,details:{status:429,retryAfter:T}});if(g<N){y=q;continue}throw q}let E;try{E=await b.json()}catch{let T=await b.text().catch(()=>"");T&&(E={error:T})}let j=J(E,`HTTP ${b.status}`);throw Ae({...j,details:{status:b.status,endpoint:i,action:I,response:E}})}let A=await b.json();if(A?.success===!1){let E=J(A,A?.error||"extensionRouter returned success=false");throw Ae({...E,details:{endpoint:i,action:I,response:A}})}return A}throw y||new Error("callExtensionRouter: unexpected retry exhaustion")},D=async(I,p)=>{let h=String(I||"").trim();if(!h)throw new Error("external page data requires url");let y=Number(p?.tabId)||0,g=p?.source||"direct_url",b=p?.intent==="act"?"act":p?.intent==="open_only"?"open_only":"read_context",A=`${y}:${b}:${g}:${h}`,E=Date.now(),j=m.get(A);if(j&&E-j.ts<=O)return j.data;m.delete(A);let T=f.get(A);if(T&&E-T.ts<=O)throw new Error(T.message||"external page data fetch failed");if(f.delete(A),k)throw new Error(k);let q=String(e.sessionToken||"").trim();if(!q.startsWith("rvrsess_"))throw Ae({code:"MISSING_AUTH_TOKEN",message:"External context requires a Rover session token.",next_action:"Initialize Rover v2 session/open before requesting external context.",retryable:!1});try{let w=await fetch(`${u}/context/external`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({requestNonce:Xt(),sessionToken:q,sessionId:String(e.sessionId||"").trim()||void 0,runId:String(p?.runId||e.activeRunId||"").trim()||void 0,expectedEpoch:Number.isFinite(Number(e.sessionEpoch))?Number(e.sessionEpoch):void 0,expectedSeq:Number.isFinite(Number(e.sessionSeq))?Number(e.sessionSeq):void 0,logicalTabId:Number(p?.tabId)>0?String(Math.trunc(Number(p?.tabId))):void 0,intent:b,url:h,source:g,message:p?.message,timeoutMs:b==="act"?72e4:3e5}),signal:e.signal}),z=await w.json().catch(()=>{});if(!w.ok||z?.success===!1){let G=J(z,z?.error||`external context request failed (${w.status})`);throw Ae({...G,details:{endpoint:`${u}/context/external`,status:w.status,response:z}})}let H=z?.data?.pageData||z?.data;return m.set(A,{data:H,ts:E}),H}catch(w){let z=J(w,"external page data fetch failed"),H=z?.message||"external page data fetch failed";throw f.set(A,{message:H,ts:E}),(z.code==="PERMISSION_DENIED"||z.code==="MISSING_API_KEY"||z.code==="INVALID_API_KEY")&&(k=`${z.code}: ${H}`),w}},P=async()=>{let I=Date.now();if(C>0&&I-x<=v)return C;try{let p=await t("getTabContext"),h=Number(p?.activeLogicalTabId||p?.logicalTabId||p?.id);if(Number.isFinite(h)&&h>0)return C=h,x=I,h}catch{}},F=async(I,p)=>{let h=Number(I),y=p&&typeof p=="object"?p:void 0,g=y?.__roverAllowExternalFetch===!0,b=y?.__roverExternalIntent==="act"||y?.__roverExternalIntent==="open_only"||y?.__roverExternalIntent==="read_context"||y?.__roverExternalIntent==="auto"?y.__roverExternalIntent:"auto",A=typeof y?.__roverExternalMessage=="string"?String(y.__roverExternalMessage):void 0,E=Io(b,A),j=y&&typeof y=="object"?Object.fromEntries(Object.entries(y).filter(([ne])=>ne!=="__roverAllowExternalFetch"&&ne!=="__roverExternalIntent"&&ne!=="__roverExternalMessage")):void 0,T=La({...e.pageConfig||{},...j||{}}),q=!!T&&Object.keys(T).length>0,w=y?await t("getPageData",q?{pageConfig:T,tabId:h}:{tabId:h}):await t("getPageData",{tabId:h}),z=w?.metadata||{};if(!(!!z?.external||z?.accessMode==="external_placeholder"||z?.accessMode==="external_scraped"))return w;let G=typeof w?.url=="string"?w.url.trim():"";if(!d.enableExternalWebContext||d.scrapeMode==="off"||!G)return w;if(k)return Yt({tabId:h,url:G,title:w?.title,agentName:l?.agentName,reason:`cloud_fetch_disabled:${k}`});let W=To(G,{allowDomains:d.allowDomains,denyDomains:d.denyDomains});if(!W.allowed)return Yt({tabId:h,url:G,title:w?.title,agentName:l?.agentName,reason:`policy_blocked:${W.reason||"blocked"}`});let ie=await P();if(!(g||(ie?ie===h:!1)))return w;try{let ne=await D(G,{tabId:h,source:G.includes("google.com/search")?"google_search":"direct_url",intent:E,message:A});return E==="open_only"?w:ne&&typeof ne=="object"?{...ne,metadata:{...ne.metadata||{},external:!0,accessMode:"external_scraped",logicalTabId:h}}:w}catch(ne){let ze=J(ne,"external page data fetch failed");return Yt({tabId:h,url:G,title:w?.title,agentName:l?.agentName,reason:`cloud_fetch_failed:${ze?.code||"unknown"}`})}},S=e.userProfile||(e.userContext?{userContext:e.userContext}:void 0),U=n?{enableAdditionalTools:["generate_sheets","generate_docs","generate_slides","generate_websites"],mode:"none"}:void 0;return{userTimestamp:o,siteId:e.siteId,llmIntegration:r,userProfile:S,rootUserInput:typeof e.rootUserInput=="string"&&e.rootUserInput.trim()?e.rootUserInput.trim():void 0,getPageData:F,getExternalPageData:D,callExtensionRouter:_,apiMode:n,apiToolsConfig:xo(e.apiToolsConfig??U),tabularStore:a??new be(`rover-${o}`),signal:e.signal}}var Do=async(e,t)=>{let a=await t();if(!e||!a)throw new Error("Missing sheetId or authToken. Cannot fetch metadata.");let o=await fetch(`https://sheets.googleapis.com/v4/spreadsheets/${e}`,{headers:{Authorization:`Bearer ${a}`}});if(!o.ok){let r=new Error(`HTTP error ${o.status}: ${o.statusText}`);throw r.status=o.status,r}return await o.json()};var Ja=async(e,t)=>{let a=await Do(e,t);if(!a||!a.sheets)throw new Error("Sheet Data missing or malformed after successful fetch");let o=a.sheets.map(n=>({id:n.properties.sheetId,title:n.properties.title}));return{sheetTitle:a.properties?.title,sheetTabs:o}};async function Za(e,t,a){return Oo(e,t,a)}var Oo=async(e,t,a)=>{let o=await a();if(!(!e||!t||!o))try{let n=encodeURIComponent(`'${t}'`),r=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${n}?valueRenderOption=FORMATTED_VALUE`,s=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${n}?valueRenderOption=FORMULA`,c={Authorization:`Bearer ${o}`},[i,u]=await Promise.all([fetch(r,{headers:c}),fetch(s,{headers:c})]);if(!i.ok)throw new Error("Values fetch failed: "+i.statusText);if(!u.ok)throw new Error("Formulas fetch failed: "+u.statusText);let l=await i.json(),d=await u.json(),m=l?.values??[],f=d?.values??[];return Po(m,f)}catch(n){console.error("Error fetching sheet tab data:",n);return}},Qa=e=>e.reduce((t,a)=>Math.max(t,a?.length??0),0),jo=e=>e==null?"null":Array.isArray(e)?"array":typeof e,Po=(e,t)=>{let a=Math.max(e.length,t.length),o=Math.max(Qa(e),Qa(t)),n=new Array(a);for(let r=0;r<a;r++){let s=new Array(o);for(let c=0;c<o;c++){let i=e[r]?.[c]??null,u=t[r]?.[c],l=typeof u=="string"&&u.startsWith("=");s[c]=l?{v:i,f:u,t:jo(i)}:i}n[r]=s}return n};var We=async(e,t,a,o={},n="POST")=>{let r=await t();if(!r)throw new Error("Google authentication token is not available.");let s,c;if(a==="batchUpdate")s=`https://sheets.googleapis.com/v4/spreadsheets/${e}:batchUpdate`,c=JSON.stringify(o),n="POST";else if(a==="values.update"){let{range:l,valueInputOption:d,resource:m}=o;s=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}?valueInputOption=${encodeURIComponent(d)}`,c=JSON.stringify(m),n="PUT"}else if(a==="values.append"){let{range:l,valueInputOption:d,insertDataOption:m,resource:f}=o,k=encodeURIComponent(d??"USER_ENTERED"),C=encodeURIComponent(m??"INSERT_ROWS");s=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}:append?valueInputOption=${k}&insertDataOption=${C}`,c=JSON.stringify(f),n="POST"}else if(a==="values.get"){let{range:l,...d}=o,m=new URLSearchParams(d).toString();s=`https://sheets.googleapis.com/v4/spreadsheets/${e}/values/${encodeURIComponent(l)}${m?`?${m}`:""}`,c=void 0,n="GET"}else if(a==="addSheet")s=`https://sheets.googleapis.com/v4/spreadsheets/${e}:batchUpdate`,c=JSON.stringify({requests:[{addSheet:o}]}),n="POST";else if(a==="get"){let l=new URLSearchParams(o).toString();s=`https://sheets.googleapis.com/v4/spreadsheets/${e}?${l}`,c=void 0,n="GET"}else{let l=new URLSearchParams(o).toString();s=`https://sheets.googleapis.com/v4/spreadsheets/${e}?${l}`,c=void 0,n="GET"}let i=await fetch(s,{method:n,headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},...c&&{body:c}});if(!i.ok){let l=await i.json().catch(()=>({error:{message:"Unknown API error"}}));throw console.error("Google Sheets API Error:",l),new Error(l.error?.message||`API request failed with status ${i.status}`)}let u=await i.json();return a==="addSheet"?u.replies[0].addSheet:u};var en;(function(e){e.Extract="Extract",e.Crawl="Crawl",e.Infer="Infer"})(en||(en={}));var Be;(function(e){e.COLUMNS="columns",e.NEWTAB="new_tab",e.CONTEXT="context_only"})(Be||(Be={}));var tn;(function(e){e.ROWBYROW="row_by_row",e.ALLATONCE="all_at_once"})(tn||(tn={}));var an;(function(e){e.AUTO="auto",e.REUSE_SINGLE_TAB="reuse_single_tab",e.REUSE_BY_URL="reuse_by_url",e.NEVER="never"})(an||(an={}));var nn;(function(e){e.Code="Code",e.Cron="Cron",e.Graph="Graph",e.PDFFill="PDFFill",e.ToolGenerate="ToolGenerate",e.WebPageGenerate="WebPageGenerate",e.GoogleDocGenerate="GoogleDocGenerate",e.GoogleSlidesGenerate="GoogleSlidesGenerate",e.ProcessText="ProcessText",e.CreateSheetFromData="CreateSheetFromData",e.QueryRtrvrAIDocs="QueryRtrvrAIDocs",e.EnhancePrompt="EnhancePrompt"})(nn||(nn={}));var on;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(on||(on={}));var Z;(function(e){e.enhance="enhance",e.plan="plan",e.actOnTabs="actOnTabs",e.extract="extract",e.infer="infer",e.processTabWorkflows="processTabWorkflows",e.processText="processText",e.createSheetFromData="createSheetFromData",e.queryRtrvrDocs="queryRtrvrDocs",e.googleDocGenerator="googleDocGenerator",e.googleSlidesGenerator="googleSlidesGenerator",e.webpageGenerator="webpageGenerator",e.pdfFiller="pdfFiller",e.customToolGenerator="customToolGenerator",e.getPageData="getPageData",e.roverExternalPageData="roverExternalPageData"})(Z||(Z={}));var Ke={plannerHistory:16,prevSteps:8,uiMessages:40,timelineEvents:60,localPersistBytes:131072,snapshotBytes:262144};var B;(function(e){e.click_element="click_element",e.type_into_element="type_into_element",e.type_and_enter="type_and_enter",e.select_dropdown_value="select_dropdown_value",e.clear_element="clear_element",e.focus_element="focus_element",e.check_field_validity="check_field_validity",e.select_text="select_text",e.hover_element="hover_element",e.right_click_element="right_click_element",e.double_click_element="double_click_element",e.press_key="press_key",e.mouse_wheel="mouse_wheel",e.dispatch_pointer_path="dispatch_pointer_path",e.drag_element="drag_element",e.drag_and_drop="drag_and_drop",e.adjust_slider="adjust_slider",e.scroll_page="scroll_page",e.scroll_to_element="scroll_to_element",e.swipe_element="swipe_element",e.long_press_element="long_press_element",e.pinch_zoom="pinch_zoom",e.go_back="go_back",e.go_forward="go_forward",e.goto_url="goto_url",e.refresh_page="refresh_page",e.open_new_tab="open_new_tab",e.switch_tab="switch_tab",e.close_tab="close_tab",e.describe_images="describe_images",e.google_search="google_search",e.network_run_recipe="network_run_recipe",e.rover_external_read_context="rover_external_read_context",e.rover_external_act_context="rover_external_act_context",e.copy_text="copy_text",e.paste_text="paste_text",e.wait_action="wait_action",e.wait_for_element="wait_for_element",e.answer_task="answer_task",e.upload_file="upload_file",e.solve_captcha="solve_captcha"})(B||(B={}));var mt=new Set(Object.values(B));var zo=new Set([B.goto_url,B.google_search,B.go_back,B.go_forward,B.refresh_page,B.open_new_tab,B.switch_tab,B.close_tab]),Mo=new Set([B.scroll_page,B.scroll_to_element,B.mouse_wheel,B.swipe_element,B.pinch_zoom,B.dispatch_pointer_path,B.hover_element,B.focus_element]),rn=600,No=new Set(["same_tab_scheduled","same_host_navigated","subdomain_navigated","new_tab_opened","blocked","switch_tab"]);function pt(e){if(e?.())throw new DOMException("Run cancelled","AbortError")}async function sn({calls:e,bridgeRpc:t,isCancelled:a}){let o=[],n=!1,r=!1,s,c,i;for(let l of e){pt(a);let d=l.name,m=l.args||{};if(r){let x={name:d||"unknown",args:m,response:{status:"Failure",error:`Tool '${d}' skipped because navigation tool '${s}' already ran. Re-plan using new page state.`,output:void 0,allowFallback:!0}};o.push(x);continue}let f;try{pt(a),f=await t("executeTool",{call:l})}catch(x){pt(a),f={success:!1,error:x?.message||String(x),allowFallback:!0}}let k={status:f?.success?"Success":"Failure",error:f?.error,output:f?.output,allowFallback:f?.allowFallback},C={name:d||"unknown",args:m,response:k};if(o.push(C),f?.success){let x=f?.output&&typeof f.output=="object"?f.output:void 0,R=String(x?.navigationOutcome||"").trim().toLowerCase(),N=No.has(R)?R:void 0,v=x?.navigationPending===!0,O=x?.openedInNewTab===!0,_=!!N||v||O;if(zo.has(d)||_){r=!0,s=d,n=!1,N?c=N:O?c="new_tab_opened":d===B.switch_tab?c="switch_tab":d===B.open_new_tab?c="new_tab_opened":c="same_tab_scheduled";let D=Number(x?.logicalTabId??x?.logical_tab_id??x?.tabId??x?.tab_id??m?.logical_tab_id??m?.tab_id);Number.isFinite(D)&&D>0&&(i=D)}else Mo.has(d)&&(n=!0)}rn>0&&(await new Promise(x=>setTimeout(x,rn)),pt(a))}return{results:o,disableAutoScroll:n&&!r,navigationOccurred:r,navigationTool:s,navigationOutcome:c,logicalTabId:i}}var Uo={open_url_new_tab:"open_new_tab"};async function gt(e){if(e)for(;e.current.state==="paused";)await new Promise(t=>setTimeout(t,100))}function ht(e){return e.isCancelled?{state:"cancel_requested",reason:e.reason||"worker_cancelled"}:{state:"continue"}}async function bt({request:e,response:t,tabId:a,prevSteps:o,thought:n,bridgeRpc:r,isCancelled:s,userFunctionDeclarations:c,onStatusUpdate:i,onPrevStepsUpdate:u}){let l=()=>{if(s?.())throw new DOMException("Run cancelled","AbortError")};l();let{functionCalls:d,modelParts:m,data:f,accTreeId:k}=t||{},C=Qt(m),x=!1;if(f&&Array.isArray(f)&&f.length>0)return o.push({accTreeId:k,thought:n,modelParts:m,data:JSON.stringify(f)}),ve(o),u?.(o),i?.("Data extracted successfully",n,"verify"),{needsRetry:!1,data:f};if(Array.isArray(d)&&d.length>0){let R=d.find(_=>String(_?.name||"").trim().toLowerCase()==="ask_user");if(R){let _=d.filter(P=>P&&P!==R&&typeof P.name=="string"&&P.name.trim()).map(P=>({name:String(P.name||"unknown"),args:P.args||{},response:{status:"Failure",error:"Skipped because ask_user was called. Wait for user answers before executing other tools.",allowFallback:!0,output:{status:"deferred_after_ask_user"}}})),D=Lo(R?.args?.questions_to_ask);return D.length?(o.push({accTreeId:k,thought:n,modelParts:m,functions:[{name:"ask_user",args:{questions_to_ask:D.map(P=>({key:P.key,query:P.query,...P.required===!1?{required:!1}:{}}))},response:{status:"Success",output:{status:"waiting_input",needsUserInput:!0,questions:D}}},..._]}),ve(o),u?.(o),i?.("Need user clarification to continue",n,"verify"),{needsRetry:!1,needsUserInput:!0,questions:D}):(o.push({accTreeId:k,thought:n,modelParts:m,fail:"ask_user called with invalid or empty 'questions_to_ask'",functions:[{name:"ask_user",args:R?.args||{},response:{status:"Failure",error:"Missing/invalid 'questions_to_ask'",allowFallback:!1}},..._]}),ve(o),u?.(o),{needsRetry:!0})}let N=[],v=[],O=[];for(let _=0;_<d.length;_++){let D=d[_],P=String(D?.name||""),F=Uo[P];if(F){N.push({...D,name:F}),O.push(_);continue}D?.name&&mt.has(D.name)?(N.push(D),O.push(_)):v.push(D)}if(v.length>0){if(l(),c?.length){for(let _ of v)if(!c.find(P=>P.name===_.name))return o.push({accTreeId:k,thought:n,modelParts:m,fail:`Invalid tool name "${_.name}"`,functions:v.map(P=>({name:P.name||"unknown",args:P.args||{},response:{status:"Failure",error:"Invalid tool"}}))}),ve(o),u?.(o),{needsRetry:!0}}return i?.(`Requesting external functions: ${v.map(_=>_.name).join(", ")}`,n,"execute"),ve(o),u?.(o),{needsRetry:!1,functionCalls:v}}if(N.length>0){l(),i?.(`Executing browser actions: ${N.map(p=>p.name).join(", ")}`,n,"execute"),o.push({accTreeId:k,thought:n,modelParts:m,functions:N.map((p,h)=>{let y=C[O[h]];return{name:p.name||"unknown",args:y?ft({...p.args||{}},y):p.args||{},response:{status:"Pending execution"}}})}),ve(o),u?.(o);let _=o.length-1,{results:D,disableAutoScroll:P,navigationOccurred:F,navigationTool:S,navigationOutcome:U,logicalTabId:I}=await sn({calls:N,bridgeRpc:r,isCancelled:s});if(x=P,l(),_>=0&&_<o.length){o[_].functions=D.map((h,y)=>{let g=C[O[y]];return g?{...h,args:ft({...h.args},g)}:h});let p=D.filter(h=>h.response.status==="Failure").length;p>0&&(o[_].fail=`${p} tool(s) failed.`)}if(U==="blocked"){let p=D.find(g=>g.response?.output&&typeof g.response.output=="object"&&g.response.output.navigationOutcome==="blocked")?.response?.output,h=p&&typeof p=="object"?String(p.blockedDomain||""):"",y=p&&typeof p=="object"?String(p.agentInstruction||""):"";o.push({thought:`[System] Navigation was blocked${h?` to ${h}`:""}. ${y||"Acknowledge to user and proceed with next step."}`,functions:[{name:"_system_observation",args:{type:"navigation_blocked",blockedDomain:h},response:{status:"Success",output:{observation:"navigation_blocked",blockedDomain:h,instruction:y}}}]})}return ve(o),u?.(o),{needsRetry:!1,disableAutoScroll:x,navigationOccurred:F,navigationTool:S,navigationOutcome:U,logicalTabId:I}}}return o.push({accTreeId:k,thought:n,modelParts:m,fail:"Empty or unusable response"}),ve(o),u?.(o),{needsRetry:!0}}function Lo(e){if(!Array.isArray(e))return[];let t=[],a=new Set;for(let o of e){if(!o||typeof o!="object")continue;let n=String(o.key||"").trim(),r=qo(o);if(!n||!r||a.has(n))continue;a.add(n);let s=typeof o.required=="boolean",c=typeof o.optional=="boolean",i=s?!!o.required:c?!o.optional:!0;t.push({key:n,query:r,...typeof o.question=="string"&&o.question.trim()?{question:String(o.question).trim()}:{},...typeof o.id=="string"&&o.id.trim()?{id:String(o.id).trim()}:{},...Array.isArray(o.choices)?{choices:o.choices}:{},required:i})}return t.slice(0,6)}function qo(e){if(!e||typeof e!="object")return"";let t=String(e.query||e.question||"").trim();return t||""}function ve(e){if(e.length<=Nt)return;let t=Nt-1,a=e[0],o=e.slice(-t);e.length=0,e.push(a,...o)}function kt(e,t=3){if(t<1||e.length===0)return;let a=-1;for(let r=0;r<e.length;r++)if(e[r].accTreeId!==void 0){a=r;break}if(a===-1)return;let o=Math.max(0,t-1),n=0;for(let r=e.length-1;r>=0;r--)if(e[r].accTreeId!==void 0){if(r===a)continue;n<o?n++:delete e[r].accTreeId}}var cn=["tab_id","source_tab_id","source_tab_ids"];function Qt(e){return Array.isArray(e)?e.filter(t=>t?.functionCall).map(t=>t.functionCall.args||{}):[]}function ft(e,t){for(let a of cn)a in t&&(e[a]=t[a]);if(delete e._tab_id_mapping_error,Array.isArray(e.tool_calls)&&Array.isArray(t.tool_calls))for(let a=0;a<e.tool_calls.length&&a<t.tool_calls.length;a++){let o=e.tool_calls[a]?.tool_args,n=t.tool_calls[a]?.tool_args;if(!(!o||!n)){for(let r of cn)r in n&&(o[r]=n[r]);delete o._tab_id_mapping_error}}return e}function un(e,t){let a=[];for(let o of t){let n=o.name||"unknown",r=o.callId??n,s=e[r]??e[n];a.push({functions:[{name:n,args:o.args||{},response:{status:s?.success?"Success":"Failure",error:s?.error?.message||s?.error,output:s?.result}}]})}return a}function _e(e){let t=new Set,a=[];for(let o of e){let n=Number(o);!Number.isFinite(n)||n<=0||t.has(n)||(t.add(n),a.push(n))}return a}function ln(e,t){return e==="external_scraped"||e==="external_placeholder"||e==="live_dom"?e:t?"external_placeholder":"live_dom"}function Fo(e){return e.map(t=>({id:Number(t?.id),url:typeof t?.url=="string"?t.url:void 0,title:typeof t?.title=="string"?t.title:void 0,external:!!t?.external,accessMode:ln(t?.accessMode,!!t?.external),inaccessibleReason:typeof t?.inaccessibleReason=="string"?t.inaccessibleReason:void 0})).filter(t=>Number.isFinite(t.id)&&t.id>0)}function Ho(e){return Array.isArray(e)?e.map(t=>{let a=Number(t?.logicalTabId||t?.id);if(!Number.isFinite(a)||a<=0)return;let o=!!t?.external;return{id:a,runtimeId:typeof t?.runtimeId=="string"?t.runtimeId:void 0,url:typeof t?.url=="string"?t.url:void 0,title:typeof t?.title=="string"?t.title:void 0,external:o,accessMode:ln(t?.accessMode,o),inaccessibleReason:typeof t?.inaccessibleReason=="string"?t.inaccessibleReason:void 0,updatedAt:Number(t?.updatedAt)||0}}).filter(t=>!!t):[]}function Jt(e,t,a){let o=_e(e);if(!o.length)return[];let r=o.includes(t)?t:o[0];return[r,...o.filter(c=>c!==r)].slice(0,a)}function Go(e,t){if(!t.length)return _e(e);let a=new Set(t);return _e(e).filter(o=>a.has(o))}async function fe(e,t,a){let o=Math.max(1,Number(a?.maxContextTabs)||8),n=Math.max(5e3,Number(a?.detachedExternalTabMaxAgeMs)||9e4),r=Math.max(1e4,Number(a?.staleRuntimeTabMaxAgeMs)||45e3),s=_e(a?.scopedTabIds||[]),c=s.length>0,i=[...s],u=new Set(i),l=Fo(t),d=_e((s.length>0?l.filter(S=>s.includes(S.id)):l).map(S=>S.id)),m=[...d],f=[],k=[],C=S=>c?u.has(S):!0;if(e)try{let S=await e("listSessionTabs");f=Ho(Array.isArray(S)?S:[]),k=_e(f.map(U=>U.id)),k.length>0?m=c?Go(k,i):k:c&&(m=[...i])}catch{}c&&(m=_e(m).filter(S=>C(S)),!m.length&&i.length&&(m=[...i]));let x=Number(a?.seedTabId)>0?Number(a?.seedTabId):m[0]||d[0]||1;if(e)try{let S=await e("getTabContext"),U=Number(S?.activeLogicalTabId||S?.logicalTabId||S?.id);Number.isFinite(U)&&U>0&&C(U)&&(x=U)}catch{}c&&!C(x)&&i.length>0&&(x=i[0]);let R=Date.now(),N=new Map;for(let S of f)N.set(S.id,S);let v=f.filter(S=>!!S.runtimeId&&R-(S.updatedAt||0)<=r).map(S=>S.id);if(v.length>0&&!v.includes(x)){let S=[...v].sort((U,I)=>Number(N.get(I)?.updatedAt||0)-Number(N.get(U)?.updatedAt||0))[0];Number.isFinite(S)&&S>0&&C(S)&&(x=S)}m.length?m.includes(x)||(c?m=i.length>0?[...i]:m:f.length>0?x=m[0]:m=[x,...m]):m=c?i.length>0?[...i]:[x]:[x];let O=c?[...i]:f.length>0?_e(f.map(S=>S.id)):[...m],_=O.filter(S=>{if(S===x)return!0;let U=N.get(S);return U?U.runtimeId?R-(U.updatedAt||0)<=r:U.external?R-(U.updatedAt||0)<=n:R-(U.updatedAt||0)<=r:c}),D=c?Jt(i,x,o):[...new Set(_.length?_:O.length?O:m)];c||(D.includes(x)?D=[x,...D.filter(S=>S!==x)]:D=[x,...D],D=D.slice(0,o)),D.length||(D=c?i.length>0?Jt(i,x||i[0],o):[x||1]:[x||1]);let P={};for(let S of l)P[S.id]=S;for(let S of f)P[S.id]={...P[S.id]||{},...S};for(let S of i)P[S]||(P[S]={id:S,accessMode:"live_dom",inaccessibleReason:"detached_runtime_placeholder"});for(let S of D)P[S]||(P[S]={id:S,accessMode:"live_dom",inaccessibleReason:"detached_runtime_placeholder"});let F={hasExplicitScope:c,scopedTabIdsInput:s,listedTabIds:k,keptScopedTabIds:i,resolvedTabOrder:D};if(c){i.length&&!u.has(x)&&(x=i[0]),D=Jt(i,x,o);let S={};for(let U of i)S[U]=P[U]||{id:U};return a?.onDiagnostics?.({...F,resolvedTabOrder:D}),{tabOrder:D,activeTabId:x,tabMetaById:S}}return a?.onDiagnostics?.(F),{tabOrder:D,activeTabId:x,tabMetaById:P}}function dn(e,t){let a=String(t||"").trim();return a||String(e||"").trim()}var mn=3;function Zt(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let o of e){let n=Number(o);!Number.isFinite(n)||n<=0||t.has(n)||(t.add(n),a.push(n))}return a}async function pn(e){let{tabOrder:t,scopedTabIds:a,seedTabId:o,onScopedTabIdsTouched:n,userInput:r,schema:s,previousSteps:c=[],plannerPrevSteps:i=[],files:u=[],chatLog:l=[],recordingContext:d,trajectoryId:m,onStatusUpdate:f,functionDeclarations:k,bridgeRpc:C,ctx:x,onPrevStepsUpdate:R}=e,N=dn(r,x.rootUserInput);if(!t?.length)return{error:"No tabs available for processing",warnings:["No active tab found"]};let v=0,O=[],_=Array.isArray(c)?c:[],D=t.map(I=>({id:I})),P=Zt(a||[]);Number(o)>0&&!P.includes(Number(o))&&P.unshift(Number(o));let F=I=>{let p=Zt(I);if(!p.length)return;let h=Zt([...P,...p]);h.length===P.length&&h.every((y,g)=>y===P[g])||(P=h,n?.(h))},S=0,U;for(;S<mn;){if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};try{if(await gt(void 0),x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};f?.("Analyzing page content...","Calling seek workflow","analyze");let{tabOrder:I,activeTabId:p}=await fe(C,D,{scopedTabIds:P,seedTabId:o});if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};let h=I.length?I:t,y={};try{y[p]=await x.getPageData(p,{...U||{},__roverAllowExternalFetch:!0,__roverExternalIntent:"auto",__roverExternalMessage:N||r})}catch{S++;continue}let g=h.filter(w=>w!==p),b=await Promise.all(g.map(async w=>{try{let z=await x.getPageData(w);return{tabId:w,pageData:z}}catch{return{tabId:w,pageData:void 0}}}));if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};for(let w of b)w.pageData?y[w.tabId]=w.pageData:O.push(`Could not load page data for tab ${w.tabId}; continuing with remaining tabs.`);if(!y[p]){S++;continue}let A={siteId:x.siteId,customTabWorkflow:"Seek",webPageMap:y,tabOrder:h,activeTabId:p,userInput:N||r,dataJsonSchema:s,files:u,recordingContext:d,agentLog:{prevSteps:_,chatLog:l},plannerPrevSteps:i,llmIntegration:x.llmIntegration,apiMode:x.apiMode,apiToolsConfig:x.apiToolsConfig,functionDeclarations:k,authToken:void 0,timestamp:x.userTimestamp,trajectoryId:m,userProfile:x.userProfile,stop:ht({isCancelled:!!x.isCancelled?.()})},E=await x.callExtensionRouter(Z.processTabWorkflows,A);if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};if(!E?.success)return{error:E?.error||"Failed to process tab workflows",errorDetails:E?.errorDetails||void 0,creditsUsed:v};let j=E.data;v+=j?.creditsUsed||0;let T=j?.tabResponses?.[p];if(!T){S++;continue}if(T?.warnings?.length&&O.push(...T.warnings),T?.stopState&&T.stopState!=="continue")return{error:String(T.stopReason||T.error||"").trim()||`Execution stopped (${T.stopState})`,prevSteps:_,creditsUsed:v,warnings:O};if(T?.error){S++;continue}let q=await bt({request:A,response:T,tabId:p,prevSteps:_,thought:T.thought,bridgeRpc:C,isCancelled:x.isCancelled,userFunctionDeclarations:k,onStatusUpdate:f,onPrevStepsUpdate:R});if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};if(q.needsRetry){U=q.disableAutoScroll?{disableAutoScroll:!0}:void 0,S++;continue}if(q.navigationOccurred){let w=q.navigationOutcome,z=Number(q.logicalTabId);if(Number.isFinite(z)&&z>0&&F([z]),(w==="new_tab_opened"||w==="switch_tab")&&Number.isFinite(z)&&z>0)try{await C("executeTool",{call:{name:"switch_tab",args:{logical_tab_id:z,tab_id:z}},payload:{reason:"act_loop_navigation_continue"}})}catch{}U=q.disableAutoScroll?{disableAutoScroll:!0}:void 0;continue}if(q.data)return kt(_),R?.(_),{data:q.data,prevSteps:_,creditsUsed:v,warnings:O};if(q.needsUserInput&&Array.isArray(q.questions)&&q.questions.length>0)return kt(_),R?.(_),{prevSteps:_,creditsUsed:v,warnings:O,needsUserInput:!0,questions:q.questions};if(q.functionCalls?.length){let w=q.functionCalls.map((H,G)=>({...H,callId:`${H.name||"fn"}:${G}`})),z={};for(let H of w){if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};try{let G=await C("executeClientTool",{name:H.name,args:H.args});if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};z[H.callId]={success:!0,result:G}}catch(G){if(x.isCancelled?.())return{error:"Run cancelled",prevSteps:_,creditsUsed:v};z[H.callId]={success:!1,error:{message:G?.message||String(G)}}}}_.push(...un(z,w)),kt(_),R?.(_)}U=q.disableAutoScroll?{disableAutoScroll:!0}:void 0}catch(I){if(I?.name==="AbortError")return{error:"Run cancelled",prevSteps:_,creditsUsed:v};if(S++,S>=mn)return{error:I?.message||"Agentic seek failed",errorDetails:I?.roverError||void 0,prevSteps:_,creditsUsed:v};await new Promise(p=>setTimeout(p,500*S))}}return{error:"Max retries reached",prevSteps:_,creditsUsed:v,warnings:O}}var $o=3;function ea(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let o of e){let n=Number(o);!Number.isFinite(n)||n<=0||t.has(n)||(t.add(n),a.push(n))}return a}async function yt(e){let{tabOrder:t,scopedTabIds:a,seedTabId:o,onScopedTabIdsTouched:n,userInput:r,schema:s,outputDestination:c,trajectoryId:i,recordingContext:u,plannerPrevSteps:l=[],files:d=[],onStatusUpdate:m,schemaHeaderSheetInfo:f,returnDataOnly:k,previousSteps:C=[],bridgeRpc:x,ctx:R,onPrevStepsUpdate:N}=e;if(!t?.length)return{error:"No tabs available for extraction",warnings:["No active tab found"]};let v=0,O=[],_=t.map(U=>({id:U})),D=ea(a||[]);Number(o)>0&&!D.includes(Number(o))&&D.unshift(Number(o));let P=U=>{let I=ea(U);if(!I.length)return;let p=ea([...D,...I]);p.length===D.length&&p.every((h,y)=>h===D[y])||(D=p,n?.(p))},F=Array.isArray(C)?C:[],S;for(let U=0;U<$o;U++){if(await gt(void 0),R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O};let{activeTabId:I}=await fe(x,_,{scopedTabIds:D,seedTabId:o});if(R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O};let p=I,h;try{h=await R.getPageData(p,S)}catch{O.push(`Could not load page data for tab ${p}; retrying.`);continue}let y={siteId:R.siteId,userInput:r,schema:s,outputDestination:c,schemaHeaderSheetInfo:f,webPageMap:{[I]:h},tabOrder:[I],plannerPrevSteps:l,llmIntegration:R.llmIntegration,apiMode:R.apiMode,apiToolsConfig:R.apiToolsConfig,authToken:void 0,timestamp:R.userTimestamp,trajectoryId:i,userProfile:R.userProfile,recordingContext:u,files:d,returnDataOnly:k,stop:ht({isCancelled:!!R.isCancelled?.()})};m?.("Extracting data...","Calling extract sub-agent","execute");let g=await R.callExtensionRouter(Z.extract,y);if(R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O};if(!g?.success)return{error:g?.error||"Extract request failed",creditsUsed:v};let b=g.data;if(v+=b?.creditsUsed||0,b?.warnings?.length&&O.push(...b.warnings),b?.data&&Array.isArray(b.data))return{data:b.data,schemaHeaderSheetInfo:b.schemaHeaderSheetInfo,prevSteps:F,creditsUsed:v,warnings:O};let A=b?.tabResponses?.[I];if(A){if(A?.stopState&&A.stopState!=="continue")return{error:String(A.stopReason||A.error||"").trim()||`Execution stopped (${A.stopState})`,prevSteps:F,creditsUsed:v,warnings:O};let E=await bt({request:y,response:A,tabId:I,prevSteps:F,thought:A.thought,bridgeRpc:x,isCancelled:R.isCancelled,onPrevStepsUpdate:N});if(R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O};if(E.needsRetry){S=E.disableAutoScroll?{disableAutoScroll:!0}:void 0;continue}if(E.navigationOccurred){let j=Number(E.logicalTabId);Number.isFinite(j)&&j>0&&P([j])}if(S=E.disableAutoScroll?{disableAutoScroll:!0}:void 0,E.data)return{data:E.data,schemaHeaderSheetInfo:b.schemaHeaderSheetInfo,prevSteps:F,creditsUsed:v,warnings:O};if(E.functionCalls?.length)for(let j of E.functionCalls){if(R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O};try{if(await x("executeClientTool",{name:j.name,args:j.args}),R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O}}catch{if(R.isCancelled?.())return{error:"Run cancelled",prevSteps:F,creditsUsed:v,warnings:O}}}}}return{error:"Extract failed after retries",prevSteps:F,creditsUsed:v,warnings:O}}async function fn(e){let t=await yt({tabOrder:e.tabOrder,userInput:e.userInput,schema:e.schema,trajectoryId:e.trajectoryId,recordingContext:e.recordingContext,plannerPrevSteps:e.plannerPrevSteps,previousSteps:e.previousSteps,files:e.files,onStatusUpdate:e.onStatusUpdate,returnDataOnly:e.returnDataOnly,bridgeRpc:e.bridgeRpc,ctx:e.ctx,onPrevStepsUpdate:e.onPrevStepsUpdate}),a=t.warnings?[...t.warnings]:[];return a.push("Crawl workflow is limited in embed context; processed current page only."),{data:t.data,schemaHeaderSheetInfo:t.schemaHeaderSheetInfo,prevSteps:t.prevSteps,error:t.error,warnings:a,creditsUsed:t.creditsUsed}}var Wo=/history\.step\[\s*(\d+)\s*\]\.sheet\[\s*(\d+)\s*\](?:\.tab\[(.*?)\])?/i;function Ve(e,t){if(!e||!t?.length)return;let a=e.match(Wo);if(!a)return;let o=parseInt(a[1],10),n=parseInt(a[2],10),r=a[3];if(!o||o<1||o>t.length)return;let s=t[o-1],c=s?.schemaHeaderSheetInfo?.[n]?.sheetInfo||s?.schemaHeaderSheetInfo?.[0]?.sheetInfo;if(!c)return;let i={...c};if(r){let u=r.trim();if(/^['"].*['"]$/.test(u)){let l=u.slice(1,-1),d=c.sheetTabs?.find(m=>String(m.title).toLowerCase()===l.toLowerCase());d&&(i.sheetTab=d.title,i.sheetTabId=d.id)}else{let l=parseInt(u,10);if(!Number.isNaN(l)){let d=c.sheetTabs?.[l]||c.sheetTabs?.[l-1];d&&(i.sheetTab=d.title,i.sheetTabId=d.id)}}}return i}function Ce(e,t){let a=e||{},o=a.existing_sheet_from_history||a.existingSheetFromHistory||a.existing_sheet_id||a.existingSheetId,n;typeof o=="string"?(n=Ve(o,t),!n&&o.trim()&&(n={sheetId:o.trim(),sheetTab:a.existingTabTitle||a.existing_tab_title||"Data"})):o&&typeof o=="object"&&(n=o);let r=a.new_sheet_title||a.newSheetTitle,s=a.new_tab_title||a.newTabTitle,c=a.existing_tab_title||a.existingTabTitle;return n?.sheetId&&ke(n.sheetId)?{sheetId:n.sheetId,sheetTitle:n.sheetTitle||r,tabTitle:c||n.sheetTab||s||"Data",mergeHeaders:!0}:{sheetId:void 0,sheetTitle:r,tabTitle:s||c,mergeHeaders:!1}}function Xe(e,t){if(e?.properties&&typeof e.properties=="object")return Object.keys(e.properties);let a=new Set;if(Array.isArray(t))for(let o of t)o&&typeof o=="object"&&!Array.isArray(o)&&Object.keys(o).forEach(n=>a.add(n));return a.size?[...a]:[]}function Bo(e,t){return t.map(a=>e.map(o=>a?.[o]??""))}function wt(e){let{store:t,target:a,headers:o,objects:n,schema:r}=e,s=t.getOrCreateSheet(a.sheetId,a.sheetTitle),c=a.tabTitle||"Data",i=t.ensureTab(s.id,c,{createIfMissing:!0});i.headerRow.length&&a.mergeHeaders?t.mergeHeaderRow(s.id,i.index,o):t.setHeaderRow(s.id,i.index,o),r&&t.setSchema(s.id,i.index,r,{preserveHeader:!0});let u=t.getTab(s.id,i.index).headerRow,l=Bo(u,n);return t.appendRows(s.id,i.index,l,{alignToHeader:!0}),{sheetInfo:t.toSheetInfo(s.id,i.index),headerRow:u}}function gn(e){let{store:t,target:a,headers:o,rows:n,schema:r}=e,s=t.getOrCreateSheet(a.sheetId,a.sheetTitle),c=a.tabTitle||"Data",i=t.ensureTab(s.id,c,{createIfMissing:!0});return i.headerRow.length&&a.mergeHeaders?t.mergeHeaderRow(s.id,i.index,o):t.setHeaderRow(s.id,i.index,o),r&&t.setSchema(s.id,i.index,r,{preserveHeader:!0}),t.appendRows(s.id,i.index,n,{alignToHeader:!0}),{sheetInfo:t.toSheetInfo(s.id,i.index),headerRow:t.getTab(s.id,i.index).headerRow}}function Te(e,t){let a=t.sheetTabId??0,o=e.toAny2D(t.sheetId,a,!0);return{...t,sheetData:o,kind:"memory"}}async function kn(e){let{workflow:t,userInput:a,trajectoryId:o,plannerPrevSteps:n,agentLog:r,files:s,onStatusUpdate:c,ctx:i,bridgeRpc:u,driveAuthToken:l}=e,d=()=>{if(i.isCancelled?.())throw new DOMException("Run cancelled","AbortError")};try{d();let m=t.sourceSheetFromHistory?Ve(t.sourceSheetFromHistory,n):void 0,f=m?.sheetId||t.sheetId,k=m?.sheetTab||t.sheetTabTitle,C=m?.sheetTabId||t.sheetTabId;if(!f)return{error:"sheets_workflow requires sheetId in workflow."};let x=i.apiMode||!l||ke(f),R=async()=>l||"",N=[],v=[];if(x){let g=i.tabularStore,b=C!==void 0?g.getTabByIndex(f,C):k?g.getTabByTitle(f,k):g.getTab(f,0);if(!b)return{error:"Memory sheet tab not found for workflow."};k=b.title,C=b.index,N=g.toAny2D(f,b.index,!0),v=g.listTabs(f).map(A=>({id:A.index,title:A.title}))}else{if(v=(await Ja(f,R)).sheetTabs,!k&&typeof C=="number"&&(k=v.find(b=>b.id===C)?.title),k||(k=v[0]?.title),!k)return{error:"Could not resolve sheet tab title for workflow."};d(),c?.("Loading sheet rows...",k,"analyze"),N=await Za(f,k,R)||[]}if(!N.length)return{error:"Sheet is empty or inaccessible."};let O=N.map(g=>(g||[]).map(b=>Vo(b))),_=t.isFirstRowHeader?O[0]:null,D=t.isFirstRowHeader?O.slice(1):O.slice(),P=_&&_.length?_:Xo(O),F=Jo(t,P),S=Zo(t,P),U=Math.max(0,(t.startRowIndex??1)-1-(t.isFirstRowHeader?1:0)),I=t.endRowIndex?Math.min(D.length,t.endRowIndex-(t.isFirstRowHeader?1:0)):D.length,p=[],h=[],y={};for(let g=U;g<I;g++){d();let b=D[g]||[],A=Yo(P,b),E=Qo(P,b,S),j={input_value:b[F]??"",row_number:g+1+(t.isFirstRowHeader?1:0),row_data:A,context:E},T={},q=[];for(let w of t.workflowSteps){d();let z=w.stepName||w.tool,H=ta(w.userInputTemplate||a,j,T);if(w.tabManagement?.urlTemplate){let pe=ta(w.tabManagement.urlTemplate,j,T);pe&&(d(),await u("executeTool",{call:{name:"goto_url",args:{tab_id:0,url:pe}}}))}let G=w.toolArgs?aa(w.toolArgs,j,T):void 0,W=await Ko({step:w,userInput:H,trajectoryId:o,plannerPrevSteps:n,agentLog:r,files:s,onStatusUpdate:c,ctx:i,bridgeRpc:u,driveAuthToken:l,toolArgs:G});if(T[z]=W,d(),w.outputMapping===Be.CONTEXT)continue;if(w.outputMapping===Be.NEWTAB){y[z]||(y[z]=[]),y[z].push(er(W));continue}let ie=z||w.tool;p.includes(ie)||p.push(ie),q.push(Ye(W))}h.push(q)}if(x){d();let g=i.tabularStore,b=C!==void 0?g.getTab(f,C):g.getTabByTitle(f,k)||g.getTab(f,0);if(p.length){g.mergeHeaderRow(f,b.index,p);for(let j=0;j<h.length;j++){let T=U+j,q={};p.forEach((w,z)=>{q[w]=h[j]?.[z]??""}),g.upsertColumnsByHeader(f,b.index,T,q)}}for(let[j,T]of Object.entries(y)){let q=hn(j),w=bn(T);g.publishNewTab(f,q,w,T,{})}let A=Te(g,g.toSheetInfo(f,b.index)),E=g.getTab(f,b.index).headerRow;return{output:{sheetId:f,sheetTabTitle:k,rowsProcessed:Math.max(0,I-U),outputColumns:p,newTabs:Object.keys(y)},schemaHeaderSheetInfo:[{headingInfo:{schema:{},headings:E,title:k},sheetInfo:A,headerRow:E}]}}p.length&&(d(),await tr({sheetId:f,sheetTabTitle:k,header:P,outputHeaders:p,outputRows:h,startRowIndex:t.isFirstRowHeader?2:1,getAuthToken:R}));for(let[g,b]of Object.entries(y)){d();let A=hn(g),E=await ar(f,A,R),j=bn(b);await nr({sheetId:f,sheetTabTitle:E,values:[j,...b],getAuthToken:R})}return{output:{sheetId:f,sheetTabTitle:k,rowsProcessed:Math.max(0,I-U),outputColumns:p,newTabs:Object.keys(y)},schemaHeaderSheetInfo:[{headingInfo:{schema:{},headings:[...P,...p],title:k},sheetInfo:{sheetId:f,sheetTab:k,sheetTabId:C,sheetTabs:v},headerRow:[...P,...p]}]}}catch(m){return{error:m?.message||String(m)}}}async function Ko({step:e,userInput:t,trajectoryId:a,plannerPrevSteps:o,agentLog:n,files:r,onStatusUpdate:s,ctx:c,bridgeRpc:i,driveAuthToken:u,toolArgs:l}){if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");let d=e.tool;if(d===M.PROCESS_TEXT){let m=await Se({toolName:d,toolArgs:{textInputs:e.textInputs||[],taskInstruction:e.taskInstruction||t,schema:e.schema},userInput:t,tabs:[{id:1}],trajectoryId:a,plannerPrevSteps:o,agentLog:n,files:r,onStatusUpdate:s,ctx:c,bridgeRpc:i,driveAuthToken:u});return n&&Array.isArray(m.prevSteps)&&m.prevSteps.length>0&&(n.prevSteps=m.prevSteps),m.output??m}if(d===M.ACT||d===M.EXTRACT||d===M.CRAWL){let m=await Se({toolName:d,toolArgs:{user_input:t,schema:e.schema,followLinks:e.followLinks,maxPages:e.maxPages},userInput:t,tabs:[{id:1}],trajectoryId:a,plannerPrevSteps:o,agentLog:n,files:r,onStatusUpdate:s,ctx:c,bridgeRpc:i,driveAuthToken:u});return n&&Array.isArray(m.prevSteps)&&m.prevSteps.length>0&&(n.prevSteps=m.prevSteps),m.output??m}if(l||e.toolArgs||typeof d=="string"){if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");let m=await i("executeClientTool",{name:d,args:l||e.toolArgs||{}});if(c.isCancelled?.())throw new DOMException("Run cancelled","AbortError");return m}return{error:`Unsupported step tool: ${d}`}}function Vo(e){return e&&typeof e=="object"&&"v"in e?e.v:e??""}function Xo(e){let t=e.reduce((o,n)=>Math.max(o,n.length),0),a=[];for(let o=0;o<t;o++)a.push(`Column ${o+1}`);return a}function Yo(e,t){let a={};return e.forEach((o,n)=>{a[o]=t[n]}),a}function Qo(e,t,a){let o={};for(let n of a){let r=e[n]||`Column ${n+1}`;o[r]=t[n]}return o}function Jo(e,t){if(e.inputColumnHeader){let a=t.findIndex(o=>o===e.inputColumnHeader);if(a>=0)return a}return typeof e.inputColumnOrdinalPosition=="number"?Math.max(0,e.inputColumnOrdinalPosition-1):0}function Zo(e,t){let a=[];if(e.contextColumnHeaders?.length)for(let o of e.contextColumnHeaders){let n=t.findIndex(r=>r===o);n>=0&&a.push(n)}if(e.contextColumnOrdinals?.length)for(let o of e.contextColumnOrdinals){let n=Math.max(0,o-1);a.includes(n)||a.push(n)}return a}function Ye(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function er(e){return Array.isArray(e)?e.length&&typeof e[0]=="object"&&!Array.isArray(e[0])?e.map(t=>Ye(t)):e.map(t=>Ye(t)):e&&typeof e=="object"?[Ye(e)]:[Ye(e)]}async function tr({sheetId:e,sheetTabTitle:t,header:a,outputHeaders:o,outputRows:n,startRowIndex:r,getAuthToken:s}){let c=a.length+1,i=c+o.length-1,u=`${t}!${Qe(c)}1:${Qe(i)}1`;if(await We(e,s,"values.update",{range:u,valueInputOption:"RAW",resource:{values:[o]}},"PUT"),!n.length)return;let l=r+n.length-1,d=`${t}!${Qe(c)}${r}:${Qe(i)}${l}`;await We(e,s,"values.update",{range:d,valueInputOption:"RAW",resource:{values:n}},"PUT")}async function ar(e,t,a){return await We(e,a,"addSheet",{properties:{title:t}},"POST"),t}async function nr({sheetId:e,sheetTabTitle:t,values:a,getAuthToken:o}){let n=Math.max(1,a.reduce((c,i)=>Math.max(c,i.length),0)),r=a.length,s=`${t}!A1:${Qe(n)}${r}`;await We(e,o,"values.update",{range:s,valueInputOption:"RAW",resource:{values:a}},"PUT")}function Qe(e){let t=e,a="";for(;t>0;){let o=(t-1)%26;a=String.fromCharCode(65+o)+a,t=Math.floor((t-o)/26)}return a}function hn(e){let t=e.replace(/[^a-zA-Z0-9 _-]/g,"").trim();return(t.length>80?t.slice(0,80):t)||`Rover-${Math.random().toString(36).slice(2,6)}`}function bn(e){if(!e.length)return["result"];let t=e.reduce((o,n)=>Math.max(o,n.length),0);if(t<=1)return["result"];let a=[];for(let o=0;o<t;o++)a.push(`value_${o+1}`);return a}function ta(e,t,a){if(!e)return"";let o=/\{\{\s*([^}]+)\s*\}\}/g;return e.replace(o,(n,r)=>{let s=String(r).trim(),[c,...i]=or(s),u;switch(c){case"input_value":u=t.input_value;break;case"row_number":u=t.row_number;break;case"row_data":u=t.row_data;break;case"context":u=t.context;break;case"step":u=a;break;default:u=t}let l=rr(u,i.join("."));if(l==null)return"";if(typeof l=="string")return l;try{return JSON.stringify(l)}catch{return String(l)}})}function aa(e,t,a){if(e==null)return e;if(typeof e=="string")return ta(e,t,a);if(Array.isArray(e))return e.map(o=>aa(o,t,a));if(typeof e=="object"){let o={};for(let[n,r]of Object.entries(e))o[n]=aa(r,t,a);return o}return e}function or(e){return e.replace(/\["([^"]+)"\]/g,".$1").replace(/\['([^']+)'\]/g,".$1").split(".").filter(Boolean)}function rr(e,t){if(!t)return e;let a=t.split(".").filter(Boolean),o=e;for(let n of a){if(o==null)return;o=o[n]}return o}var na=12;function yn(e,t){return{error:t,warnings:[t],output:[{tool:e,status:"unsupported_in_embed",message:t}]}}function vt(e){let t=e.code||"UNKNOWN_ERROR",a=e.message||"Operation failed",o=Array.isArray(e.missing)?e.missing:[],n=!!e.retryable;return{success:!1,error:{code:t,message:a,missing:o,next_action:e.next_action,retryable:n,requires_api_key:!!e.requires_api_key},missing:o,next_action:e.next_action,retryable:n}}function sr(e){let t=Array.isArray(e?.prevSteps)?e.prevSteps:[],a=i=>String(i||"").replace(/\s+/g," ").trim(),o=Array.isArray(e?.chatLog)?e.chatLog.map(i=>({role:i?.role==="user"?"user":"model",message:typeof i?.message=="string"?a(i.message):""})).filter(i=>!!i.message):[],n=[];for(let i of o){let u=n[n.length-1];u&&u.role===i.role&&u.message===i.message||n.push(i)}let r=n.slice(-na),s=new Set,c=[];for(let i=r.length-1;i>=0;i-=1){let u=r[i],l=`${u.role}::${u.message.toLowerCase()}`;s.has(l)||(s.add(l),c.push(u))}return r=c.reverse(),r.length>na&&(r=r.slice(-na)),{prevSteps:t,chatLog:r}}function Ie(e){if(!e?.isCancelled)return!1;try{return!!e.isCancelled()}catch{return!1}}function wn(e){if(Ie(e))throw new DOMException("Run cancelled","AbortError")}function xt(){return{error:"Run cancelled"}}async function ir(e){let t=e.bridgeRpc;if(!t)return{error:`Bridge RPC unavailable for ${e.toolName}`};let a=String(e.toolArgs?.message||e.toolArgs?.user_input||e.toolArgs?.task_instruction||e.userInput||"").trim();e.onStatusUpdate?.(e.toolName===M.ROVER_EXTERNAL_ACT_CONTEXT?"Fetching external action context...":"Fetching external context...",`Calling ${e.toolName}`,"execute");let o=await t("executeTool",{call:{name:e.toolName,args:{...e.toolArgs,...a?{message:a}:{}}}});if(!(o?.success===!0)){let r=String(o?.output?.error?.message||o?.error||`${e.toolName} failed`);return{error:r,output:o?.output,warnings:r?[r]:void 0}}return{output:o?.output,warnings:Array.isArray(o?.output?.warnings)?o.output.warnings:void 0}}async function ye(e,t,a){wn(e);let o=await e.callExtensionRouter(t,a);return wn(e),o}async function Se(e){let{toolName:t,toolArgs:a,userInput:o,tabs:n,scopedTabIds:r,seedTabId:s,getScopedTabRuntimeContext:c,onScopedTabIdsTouched:i,trajectoryId:u,plannerPrevSteps:l,files:d,onStatusUpdate:m,recordingContext:f,toolFunctions:k,bridgeRpc:C,ctx:x,functionDeclarations:R,driveAuthToken:N,agentLog:v,onPrevStepsUpdate:O}=e,_=x;if(!_)return{error:"Agent context unavailable"};if(Ie(_))return xt();let D=Array.isArray(n)&&n.length?n:[{id:1}],P=c?.()||{},F=P.scopedTabIds??r,S=P.seedTabId??s,U=Array.isArray(F)&&F.length?Array.from(new Set(F.map(g=>Number(g)).filter(g=>Number.isFinite(g)&&g>0))):Array.from(new Set(D.map(g=>Number(g?.id)).filter(g=>Number.isFinite(g)&&g>0))),I=Number(S)>0?Number(S):U[0],p=await fe(C,D,{scopedTabIds:U,seedTabId:I});if(Ie(_))return xt();let h=p.tabOrder.length?p.tabOrder:D.map(g=>g.id),y=sr(v);try{switch(t){case M.ACT:{let g=a?.user_input||a?.prompt||a?.task_instruction||o,b=await pn({tabOrder:h,scopedTabIds:U,seedTabId:I,onScopedTabIdsTouched:i,userInput:g,schema:a?.schema,previousSteps:y.prevSteps,plannerPrevSteps:l,files:d,chatLog:y.chatLog,recordingContext:f,trajectoryId:u,onStatusUpdate:m,functionDeclarations:R,bridgeRpc:C,ctx:_,onPrevStepsUpdate:O}),A=b.data??(b.needsUserInput?{status:"waiting_input",needsUserInput:!0,questions:Array.isArray(b.questions)?b.questions:[]}:b.navigationPending?{status:"in_progress",taskStatus:"in_progress",navigationPending:!0,navigationTool:b.navigationTool,navigationOutcome:b.navigationOutcome,logicalTabId:b.logicalTabId}:void 0);return{...b,output:A}}case M.EXTRACT:{let g=a?.user_input||a?.prompt||a?.task_instruction||o,b=a?.output_destination||a?.outputDestination,A=b?Ce(b,l):void 0,E=_.apiMode||!N||A?.sheetId&&ke(A.sheetId),j=a?.return_data_only??a?.returnDataOnly??E,T=await yt({tabOrder:h,scopedTabIds:U,seedTabId:I,onScopedTabIdsTouched:i,userInput:g,schema:a?.schema,outputDestination:b,schemaHeaderSheetInfo:a?.schema_header_sheet_info||a?.schemaHeaderSheetInfo,plannerPrevSteps:l,files:d,recordingContext:f,previousSteps:y.prevSteps,trajectoryId:u,returnDataOnly:j,onStatusUpdate:m,bridgeRpc:C,ctx:_,onPrevStepsUpdate:O});if(T.data&&Array.isArray(T.data)&&b&&E){let q=Xe(a?.schema,T.data),w=A||Ce(b,l),z=_.tabularStore,{sheetInfo:H,headerRow:G}=wt({store:z,target:w,headers:q,objects:T.data,schema:a?.schema}),W=Te(z,H);return{...T,output:T.data,schemaHeaderSheetInfo:[{headingInfo:{schema:a?.schema||{},headings:G,title:H.sheetTitle||H.sheetTab},sheetInfo:W,headerRow:G}]}}return{...T,output:T.data}}case M.CRAWL:{let g=a?.user_input||a?.prompt||a?.task_instruction||o,b=a?.output_destination||a?.outputDestination,A=b?Ce(b,l):void 0,E=_.apiMode||!N||A?.sheetId&&ke(A.sheetId),j=a?.return_data_only??a?.returnDataOnly??E,T=await fn({tabOrder:h,userInput:g,schema:a?.schema,plannerPrevSteps:l,files:d,recordingContext:f,previousSteps:y.prevSteps,trajectoryId:u,onStatusUpdate:m,returnDataOnly:j,bridgeRpc:C,ctx:_,onPrevStepsUpdate:O});if(T.data&&Array.isArray(T.data)&&b&&E){let q=Xe(a?.schema,T.data),w=A||Ce(b,l),z=_.tabularStore,{sheetInfo:H,headerRow:G}=wt({store:z,target:w,headers:q,objects:T.data,schema:a?.schema}),W=Te(z,H);return{...T,output:T.data,schemaHeaderSheetInfo:[{headingInfo:{schema:a?.schema||{},headings:G,title:H.sheetTitle||H.sheetTab},sheetInfo:W,headerRow:G}]}}return{...T,output:T.data}}case M.PROCESS_TEXT:{let g=a?.text_inputs||a?.textInputs||[],b=a?.task_instruction||a?.taskInstruction||o;return cr({textInputs:g,taskInstruction:b,schema:a?.schema,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N})}case M.ROVER_EXTERNAL_READ_CONTEXT:case M.ROVER_EXTERNAL_ACT_CONTEXT:return a?.serverResult?a.serverResult.success?{output:a.serverResult.data}:{error:a.serverResult.error||"Server-side execution failed"}:ir({toolName:t,toolArgs:a||{},userInput:o,bridgeRpc:C,onStatusUpdate:m});case M.CREATE_SHEET_FROM_DATA:{let g=a?.data_inputs||a?.dataInputs||[],b=a?.task_instruction||a?.taskInstruction||o;return ur({dataInputs:g,taskInstruction:b,schema:a?.schema,outputSheetParameters:a?.output_sheet_parameters||a?.outputSheetParameters,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N})}case M.INFER_SHEET_DATA:return lr({toolArgs:a,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N});case M.QUERY_RTRVR_AI_DOCUMENTATION:{let g=a?.user_question||a?.userQuestion||o;return dr({userQuestion:g,trajectoryId:u,plannerPrevSteps:l,onStatusUpdate:m,agentLog:y,ctx:_})}case M.GOOGLE_DOC_GENERATOR:{let g=a?.user_input||a?.prompt||a?.task_instruction||o;return mr({userInput:g,toolArgs:a,tabOrder:h,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N})}case M.GOOGLE_SLIDES_GENERATOR:{let g=a?.user_input||a?.prompt||a?.task_instruction||o;return pr({userInput:g,toolArgs:a,tabOrder:h,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N})}case M.WEBPAGE_GENERATOR:{let g=a?.user_input||a?.prompt||a?.task_instruction||o;return fr({userInput:g,toolArgs:a,tabOrder:h,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_})}case M.PDF_FILLER:{let g=a?.user_input||a?.prompt||a?.task_instruction||o;return gr({userInput:g,toolArgs:a,tabOrder:h,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_,driveAuthToken:a?.authToken||a?.driveAuthToken||N})}case M.CUSTOM_TOOL_GENERATOR:{let g=a?.user_input||a?.prompt||a?.task_instruction||o;return hr({userInput:g,plannerPrevSteps:l,files:d,trajectoryId:u,onStatusUpdate:m,agentLog:y,ctx:_})}case M.SHEETS_WORKFLOW:return kn({workflow:a,userInput:o,trajectoryId:u,plannerPrevSteps:l,files:d,onStatusUpdate:m,agentLog:y,ctx:_,bridgeRpc:C,driveAuthToken:N});case M.GRAPHBOT:return yn(M.GRAPHBOT,"graph_bot is not available in rover embed mode. Use webpage_generator or process_text.");case M.EXECUTE_MULTIPLE_TOOLS:{let g=a?.tool_calls||a?.toolCalls||[],b=[];if(Array.isArray(g))for(let A of g){if(Ie(_))return{error:"Run cancelled",output:b};let E=A.tool_name||A.name,j=A.tool_args||A.args||{};try{let T;if(E&&mt.has(E)?T=await C?.("executeTool",{call:{name:E,args:j}}):T=await C?.("executeClientTool",{name:E,args:j}),Ie(_))return{error:"Run cancelled",output:b};b.push({name:E,result:T,success:!0})}catch(T){if(Ie(_))return{error:"Run cancelled",output:b};b.push({name:E,error:T?.message||String(T),success:!1})}}return{output:b}}case M.CONFIGURE_API_KEY:return yn(M.CONFIGURE_API_KEY,"configure_api_key is not supported in rover embed mode. Provide publicKey (pk_site_*) via rover.boot(...) or an rvrsess_* sessionToken.");default:{if(k&&k[t])try{if(Ie(_))return xt();let g=await C?.("executeClientTool",{name:t,args:a});return Ie(_)?xt():{output:g}}catch(g){return{error:g?.message||String(g)}}return{error:`Unsupported tool: ${t}`}}}}catch(g){if(g?.name==="AbortError")throw g;let b=J(g,`Failed to execute tool: ${t}`);return{output:vt(b),error:b.message,errorDetails:b,warnings:b.message?[b.message]:void 0}}}async function cr({textInputs:e,taskInstruction:t,schema:a,plannerPrevSteps:o,files:n,trajectoryId:r,onStatusUpdate:s,agentLog:c,ctx:i,driveAuthToken:u}){s?.("Processing text...","Calling process_text","execute");let l={siteId:i.siteId,textInputs:e,taskInstruction:t,schema:a,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},plannerPrevSteps:o,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:r,userProfile:i.userProfile,files:n},d=await ye(i,Z.processText,l);return d?.success?{output:d.data?.text?[d.data.text]:d.data?.data,error:d.data?.error,errorDetails:d.data?.errorDetails,creditsUsed:d.data?.creditsUsed,warnings:d.data?.warnings}:{error:d?.error||"process_text failed"}}async function ur({dataInputs:e,taskInstruction:t,schema:a,outputSheetParameters:o,plannerPrevSteps:n,files:r,trajectoryId:s,onStatusUpdate:c,agentLog:i,ctx:u,driveAuthToken:l}){c?.("Creating sheet...","Calling create_sheet_from_data","execute");let d=Ce(o,n),m=u.apiMode||!l||d.sheetId&&ke(d.sheetId),f={siteId:u.siteId,dataInputs:e,taskInstruction:t,schema:a,outputSheetParameters:o,agentLog:{prevSteps:i?.prevSteps||[],chatLog:i?.chatLog||[]},plannerPrevSteps:n,llmIntegration:u.llmIntegration,apiMode:u.apiMode,apiToolsConfig:u.apiToolsConfig,authToken:l||"",timestamp:u.userTimestamp,trajectoryId:s,userProfile:u.userProfile,files:r,returnDataOnly:m},k=await ye(u,Z.createSheetFromData,f);if(!k?.success)return{error:k?.error||"create_sheet_from_data failed"};if(m){let C=k.data?.jsonData||k.data?.data||[],x=Array.isArray(C)?C:[C],R=Xe(a,x),N=d||Ce(o,n),v=u.tabularStore,{sheetInfo:O,headerRow:_}=wt({store:v,target:N,headers:R,objects:x,schema:a}),D=Te(v,O);return{output:x,error:k.data?.error,errorDetails:k.data?.errorDetails,creditsUsed:k.data?.creditsUsed,warnings:k.data?.warnings,schemaHeaderSheetInfo:[{headingInfo:{schema:a||{},headings:_,title:O.sheetTitle||O.sheetTab},sheetInfo:D,headerRow:_}]}}return{output:k.data?.statusText?[k.data.statusText]:k.data?.sheetInfo,error:k.data?.error,errorDetails:k.data?.errorDetails,creditsUsed:k.data?.creditsUsed,warnings:k.data?.warnings,schemaHeaderSheetInfo:k.data?.schemaHeaderSheetInfo}}async function lr({toolArgs:e,plannerPrevSteps:t,files:a,trajectoryId:o,onStatusUpdate:n,agentLog:r,ctx:s,driveAuthToken:c}){n?.("Inferring sheet data...","Calling infer_sheet_data","execute");let i=e?.source_sheet_from_history||e?.sourceSheetFromHistory,u=i?Ve(i,t):void 0,l=u?.sheetId||e?.sheet_id||e?.sheetId,d=u?.sheetTab||e?.sheet_tab_title||e?.sheetTabTitle,m=u?.sheetTabId||e?.sheet_tab_id||e?.sheetTabId,f=e?.output_destination||e?.outputDestination||e?.output_sheet_parameters||e?.outputSheetParameters,k=s.apiMode||!c||l&&ke(l),C;if(k&&l&&d){let v=s.tabularStore,O=m!==void 0?v.getTabByIndex(l,m):v.getTabByTitle(l,d);O&&(C=v.toAny2D(l,O.index,!0))}let x={siteId:s.siteId,...e,sheetId:l,sheetTabTitle:d,sheetTabId:m,sheetData:C,returnDataOnly:k,plannerPrevSteps:t,agentLog:{prevSteps:r?.prevSteps||[],chatLog:r?.chatLog||[]},llmIntegration:s.llmIntegration,apiMode:s.apiMode,apiToolsConfig:s.apiToolsConfig,authToken:c||"",timestamp:s.userTimestamp,trajectoryId:o,userProfile:s.userProfile,files:a},R=await ye(s,Z.infer,x);if(!R?.success)return{error:R?.error||"infer_sheet_data failed"};let N=Array.isArray(R.data?.data)?R.data.data:[];if(k&&l&&d){let v=s.tabularStore;if(!v.hasSheet(l))return{error:`Memory sheet not found: ${l}`};let O=Xe(e?.schema,N),_=f?.new_tab_title||f?.newTabTitle||f?.new_tab_title_template;if(_){let I=N.map(g=>O.map(b=>g?.[b]??"")),{sheetInfo:p,headerRow:h}=gn({store:v,target:{sheetId:l,sheetTitle:u?.sheetTitle,tabTitle:_},headers:O,rows:I,schema:e?.schema}),y=Te(v,p);return{output:N,schemaHeaderSheetInfo:[{headingInfo:{schema:e?.schema||{},headings:h,title:p.sheetTitle||p.sheetTab},sheetInfo:y,headerRow:h}],error:R.data?.error,errorDetails:R.data?.errorDetails,creditsUsed:R.data?.creditsUsed,warnings:R.data?.warnings}}let D=m!==void 0?v.getTab(l,m):v.getTabByTitle(l,d)||v.getTab(l,0);v.mergeHeaderRow(l,D.index,O),e?.schema&&v.setSchema(l,D.index,e.schema,{preserveHeader:!0});let P=!!e?.is_first_row_header||!!e?.isFirstRowHeader;for(let I of N){let p=I?.__row_number,h=typeof p=="number"?p-1-(P?1:0):void 0;if(h===void 0||h<0)continue;let y={};O.forEach(g=>{y[g]=I?.[g]??""}),v.upsertColumnsByHeader(l,D.index,h,y)}let F=v.toSheetInfo(l,D.index),S=Te(v,F),U=v.getTab(l,D.index).headerRow;return{output:N,schemaHeaderSheetInfo:[{headingInfo:{schema:e?.schema||{},headings:U,title:F.sheetTitle||F.sheetTab},sheetInfo:S,headerRow:U}],error:R.data?.error,errorDetails:R.data?.errorDetails,creditsUsed:R.data?.creditsUsed,warnings:R.data?.warnings}}return{output:N,schemaHeaderSheetInfo:R.data?.schemaHeaderSheetInfo,error:R.data?.error,errorDetails:R.data?.errorDetails,creditsUsed:R.data?.creditsUsed,warnings:R.data?.warnings}}async function dr({userQuestion:e,trajectoryId:t,plannerPrevSteps:a,onStatusUpdate:o,agentLog:n,ctx:r}){o?.("Querying docs...","Calling query_rtrvr_docs","execute");let s={siteId:r.siteId,userQuestion:e,plannerPrevSteps:a,agentLog:{prevSteps:n?.prevSteps||[],chatLog:n?.chatLog||[]},llmIntegration:r.llmIntegration,apiMode:r.apiMode,apiToolsConfig:r.apiToolsConfig,authToken:"",timestamp:r.userTimestamp,trajectoryId:t,userProfile:r.userProfile},c=await ye(r,Z.queryRtrvrDocs,s);return c?.success?{output:c.data?.text||c.data?.data,error:c.data?.error,errorDetails:c.data?.errorDetails,creditsUsed:c.data?.creditsUsed,warnings:c.data?.warnings}:{error:c?.error||"query_rtrvr_docs failed"}}function xn(e){let t=J(e),a=String(t.message||"").toLowerCase();return t.code==="MISSING_API_KEY"||t.code==="INVALID_API_KEY"||t.code==="UNAUTHENTICATED"||a.includes("oauth")||a.includes("auth token")||a.includes("access token")||a.includes("google")}function oa(e,t=["authToken"]){let a={code:"MISSING_AUTH_TOKEN",message:`${e} requires authentication token.`,missing:t,requires_api_key:t.includes("apiKey"),retryable:!1,next_action:"Provide required auth token in tool args or rover.boot(...)."};return{output:vt(a),error:a.message,errorDetails:a,warnings:[`${e} skipped: missing ${t.join(", ")}`]}}function vn(e,t,a){let o=e==="doc"?"In-Memory Doc Draft":"In-Memory Slides Draft",n=e==="doc"?`# ${o}
2
2
 
3
3
  Prompt:
4
- ${t}`:`# ${r}
4
+ ${t}`:`# ${o}
5
5
 
6
6
  Slide 1: ${t}
7
7
 
8
8
  Slide 2: Key points
9
9
 
10
- Slide 3: Summary`,s=n||`${e==="doc"?"Google Doc":"Google Slides"} generation fell back to in-memory draft.`;return{output:[o],generatedContentRef:{type:`${e}_draft`,title:r,content:o,degraded:!0,fallback_mode:"memory"},warnings:[s]}}async function ao({userInput:e,toolArgs:t,tabOrder:n,plannerPrevSteps:r,files:o,trajectoryId:s,onStatusUpdate:a,agentLog:c,ctx:i,driveAuthToken:u}){if(a?.("Generating doc...","Calling google_doc_generator","execute"),!u)return Pt("google_doc_generator",["authToken"]);let l=await i.getPageData(n[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[n[0]]:l},tabOrder:n,outputDestination:t?.output_destination||t?.outputDestination,plannerPrevSteps:r,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:s,userProfile:i.userProfile,files:o},f;try{f=await me(i,Q.googleDocGenerator,d)}catch(h){if(An(h)){let v=Y(h);return vn("doc",e,v.message)}let y=Y(h,"google_doc_generator failed");return{output:dt(y),error:y.message,errorDetails:y,warnings:y.message?[y.message]:void 0}}return{output:f.data?.llmOutput||f.data?.generatedContentRef,generatedContentRef:f.data?.generatedContentRef,error:f.data?.error,errorDetails:f.data?.errorDetails,creditsUsed:f.data?.creditsUsed,warnings:f.data?.warnings}}async function io({userInput:e,toolArgs:t,tabOrder:n,plannerPrevSteps:r,files:o,trajectoryId:s,onStatusUpdate:a,agentLog:c,ctx:i,driveAuthToken:u}){if(a?.("Generating slides...","Calling google_slides_generator","execute"),!u)return Pt("google_slides_generator",["authToken"]);let l=await i.getPageData(n[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[n[0]]:l},tabOrder:n,outputDestination:t?.output_destination||t?.outputDestination,plannerPrevSteps:r,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:s,userProfile:i.userProfile,files:o},f;try{f=await me(i,Q.googleSlidesGenerator,d)}catch(h){if(An(h)){let v=Y(h);return vn("slides",e,v.message)}let y=Y(h,"google_slides_generator failed");return{output:dt(y),error:y.message,errorDetails:y,warnings:y.message?[y.message]:void 0}}return{output:f.data?.llmOutput||f.data?.generatedContentRef,generatedContentRef:f.data?.generatedContentRef,error:f.data?.error,errorDetails:f.data?.errorDetails,creditsUsed:f.data?.creditsUsed,warnings:f.data?.warnings}}async function co({userInput:e,toolArgs:t,tabOrder:n,plannerPrevSteps:r,files:o,trajectoryId:s,onStatusUpdate:a,agentLog:c,ctx:i}){a?.("Generating webpage...","Calling webpage_generator","execute");let u=await i.getPageData(n[0]),l={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[n[0]]:u},tabOrder:n,plannerPrevSteps:r,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:"",timestamp:i.userTimestamp,trajectoryId:s,userProfile:i.userProfile,files:o,outputDestination:t?.output_destination||t?.outputDestination},d=await me(i,Q.webpageGenerator,l);return d?.success?{output:d.data?.llmOutput||d.data?.generatedContentRef,generatedContentRef:d.data?.generatedContentRef,error:d.data?.error,errorDetails:d.data?.errorDetails,creditsUsed:d.data?.creditsUsed,warnings:d.data?.warnings}:{error:d?.error||"webpage_generator failed"}}async function uo({userInput:e,toolArgs:t,tabOrder:n,plannerPrevSteps:r,files:o,trajectoryId:s,onStatusUpdate:a,agentLog:c,ctx:i,driveAuthToken:u}){if(a?.("Filling PDF...","Calling pdf_filler","execute"),!u)return Pt("pdf_filler",["authToken"]);let l=await i.getPageData(n[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[n[0]]:l},tabOrder:n,plannerPrevSteps:r,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:s,userProfile:i.userProfile,files:o,outputDestination:t?.output_destination||t?.outputDestination},f=await me(i,Q.pdfFiller,d);return f?.success?{output:f.data?.llmOutput||f.data?.generatedContentRef,generatedContentRef:f.data?.generatedContentRef,error:f.data?.error,errorDetails:f.data?.errorDetails,creditsUsed:f.data?.creditsUsed,warnings:f.data?.warnings}:{error:f?.error||"pdf_filler failed"}}async function lo({userInput:e,plannerPrevSteps:t,files:n,trajectoryId:r,onStatusUpdate:o,agentLog:s,ctx:a}){o?.("Generating custom tool...","Calling custom_tool_generator","execute");let c={siteId:a.siteId,userInput:e,plannerPrevSteps:t,agentLog:{prevSteps:s?.prevSteps||[],chatLog:s?.chatLog||[]},llmIntegration:a.llmIntegration,apiMode:a.apiMode,apiToolsConfig:a.apiToolsConfig,authToken:"",timestamp:a.userTimestamp,trajectoryId:r,userProfile:a.userProfile,files:n},i=await me(a,Q.customToolGenerator,c);return i?.success?{output:i.data?.generatedTools||i.data?.output||i.data,generatedTools:i.data?.generatedTools,error:i.data?.error,errorDetails:i.data?.errorDetails,creditsUsed:i.data?.creditsUsed,warnings:i.data?.warnings}:{error:i?.error||"custom_tool_generator failed"}}var Cn=15,Mt=12;function kn(e){if(!Array.isArray(e)||!e.length)return[];let t=e.map(a=>({role:a?.role==="user"?"user":"model",message:String(a?.message||"").replace(/\s+/g," ").trim()})).filter(a=>!!a.message),n=[];for(let a of t){let c=n[n.length-1];c&&c.role===a.role&&c.message===a.message||n.push(a)}let r=n.slice(-Mt),o=new Set,s=[];for(let a=r.length-1;a>=0;a-=1){let c=r[a],i=`${c.role}::${c.message.toLowerCase()}`;o.has(i)||(o.add(i),s.push(c))}return r=s.reverse(),r.length>Mt&&(r=r.slice(-Mt)),r}async function fo(e){let{userInput:t,tabs:n,scopedTabIds:r,seedTabId:o,getScopedTabRuntimeContext:s,previousMessages:a=[],trajectoryId:c,previousSteps:i=[],files:u,continuePlanning:l=!1,recordingContext:d,driveAuthToken:f,agentLog:h,lastToolPreviousSteps:y,ctx:v,bridgeRpc:I,functionDeclarations:C}=e,F=s?.()||{},R=F.scopedTabIds??r,P=F.seedTabId??o,b=Array.isArray(n)&&n.length?n:[{id:1}],k=await le(I,b,{scopedTabIds:R,seedTabId:P}),M=k.tabOrder.length?k.tabOrder:b.map(w=>w.id),$=k.activeTabId,x=k.tabMetaById,L={},E=async(w,D)=>{try{return await v.getPageData(w,{onlyTextContent:!1,...D?.allowExternalFetch?{__roverAllowExternalFetch:!0}:{},...D?.allowExternalFetch?{__roverExternalIntent:"auto"}:{},...D?.allowExternalFetch?{__roverExternalMessage:t}:{}})}catch{let S=x[w];return{url:S?.url||"",title:S?.title||(S?.external?"External Tab (Inaccessible)":""),content:"",contentType:"text/html"}}};L[$]=await E($,{allowExternalFetch:!0});let p=M.filter(w=>w!==$),m=await Promise.all(p.map(async w=>({tabId:w,pageData:await E(w)})));for(let{tabId:w,pageData:D}of m)L[w]=D;let T=h?.chatLog?.length?kn(h.chatLog):kn(a.filter(w=>w.role==="user"||w.role==="assistant").map(w=>({role:w.role==="user"?"user":"model",message:w.content}))),g={siteId:v.siteId,userInput:t,webPageMap:Object.keys(L).length?L:void 0,tabOrder:M,recordingContext:d,previousSteps:i,lastToolPreviousSteps:y,chatLog:T.length?T:void 0,llmIntegration:v.llmIntegration,apiMode:v.apiMode,apiToolsConfig:v.apiToolsConfig,files:u,userFunctionDeclarations:C,authToken:f||"",timestamp:v.userTimestamp,continuePlanning:l,trajectoryId:c,userProfile:v.userProfile},_=await v.callExtensionRouter(Q.plan,g);if(!_?.success)return{taskComplete:!1,error:_?.error||"Planner failed"};let A=_.data;return{plan:A.plan,questions:A.questions,taskComplete:A.taskComplete||!1,modelParts:A.modelParts,overallThought:A.overallThought,accTreeIds:A.accTreeIds,error:A.error,errorDetails:A.errorDetails,warnings:A.warnings,userUsageData:A.userUsageData||{creditsUsed:A.creditsUsed||0}}}async function ft(e,t=[],n=0){if(n>=Cn)return{response:{taskComplete:!1,error:`Max planner recursion depth reached (${Cn})`},toolResults:t,completedWorkflow:void 0,previousSteps:e.previousSteps||[]};if(e.ctx.isCancelled?.())return{response:{taskComplete:!1,error:"Run cancelled"},toolResults:t,completedWorkflow:void 0,previousSteps:e.previousSteps||[]};let r=e.previousSteps||[],o=e.lastToolPreviousSteps||e.agentLog?.prevSteps,s=await fo({...e,previousSteps:r,ctx:e.ctx,functionDeclarations:e.functionDeclarations});if(s.questions&&s.questions.length>0){e.onStatusUpdate?.("Planner needs more input",s.overallThought,"verify");let a={modelParts:s.modelParts,thought:s.overallThought,questionsAsked:s.questions};return r=[...r,a],e.onPlannerHistoryUpdate?.(r),{response:s,toolResults:t,completedWorkflow:void 0,previousSteps:r}}if(s.plan&&!s.error){let a=s.plan;e.onStatusUpdate?.(`Planner selected ${a.toolName}`,a.thought??s.overallThought,"execute");let c=a.serverResult,i=c?{output:c.success?c.data:void 0,error:c.success?void 0:c.error||"Server-side execution failed"}:await Ie({...e,toolName:a.toolName,toolArgs:a.parameters,plannerPrevSteps:r,agentLog:{prevSteps:o||e.agentLog?.prevSteps,chatLog:e.agentLog?.chatLog},ctx:e.ctx,bridgeRpc:e.bridgeRpc,functionDeclarations:e.functionDeclarations,onPrevStepsUpdate:e.onPrevStepsUpdate});t.push(i),i.prevSteps?.length&&(o=i.prevSteps,e.onPrevStepsUpdate?.(i.prevSteps));let l=xt(s.modelParts)[0],d={modelParts:s.modelParts,thought:a.thought??s.overallThought,toolCall:{name:a.toolName,args:l?rt({...a.parameters},l):a.parameters},textOutput:i.output,error:i.error,schemaHeaderSheetInfo:i.schemaHeaderSheetInfo,generatedContentRef:i.generatedContentRef,lastToolPreviousSteps:i.prevSteps};return r=[...r,d],e.onPlannerHistoryUpdate?.(r),i.error&&!s.taskComplete?ft({...e,previousSteps:r,lastToolPreviousSteps:o||e.lastToolPreviousSteps,continuePlanning:!0},t,n+1):!s.taskComplete&&!i.error?ft({...e,previousSteps:r,lastToolPreviousSteps:o||e.lastToolPreviousSteps,continuePlanning:!0},t,n+1):{response:s,toolResults:t,completedWorkflow:void 0,previousSteps:r}}if(s.taskComplete){e.onStatusUpdate?.("Planner marked task complete",s.overallThought,"complete");let a={modelParts:s.modelParts,thought:s.overallThought||"Task completed"};return r=[...r,a],e.onPlannerHistoryUpdate?.(r),{response:s,toolResults:t,completedWorkflow:void 0,previousSteps:r}}return{response:s,toolResults:t,completedWorkflow:void 0,previousSteps:r}}var oe;(function(e){e.Act="actOnTab",e.Crawl="crawlWebPages",e.Extract="extractToSheets",e.PdfFiller="fillPdfForms",e.CreateCustomTool="createCustomTool",e.CreateWebPage="createWebPage",e.CreateGoogleDoc="createGoogleDoc",e.CreateGoogleSlides="createGoogleSlides"})(oe||(oe={}));var On=new Set(Object.values(oe)),Dn={[oe.Act]:N.ACT,[oe.Crawl]:N.CRAWL,[oe.Extract]:N.EXTRACT,[oe.PdfFiller]:N.PDF_FILLER,[oe.CreateCustomTool]:N.CUSTOM_TOOL_GENERATOR,[oe.CreateWebPage]:N.WEBPAGE_GENERATOR,[oe.CreateGoogleDoc]:N.GOOGLE_DOC_GENERATOR,[oe.CreateGoogleSlides]:N.GOOGLE_SLIDES_GENERATOR};function Mn(e){let t=po(e),n=e,r=[...t].sort((o,s)=>s.startIndex-o.startIndex);for(let o of r)n=n.slice(0,o.startIndex)+n.slice(o.endIndex);return n=n.replace(/\s+/g," ").trim(),{originalMessage:e,cleanedMessage:n,functionCalls:t,hasOnlyFunctionCalls:n===""}}function po(e){let t=[],n=/@([\w.]+)\s*\(/g,r;for(;r=n.exec(e);){let o=r.index,s=r[1],{endIndex:a,paramsString:c}=mo(e,o+r[0].length);if(a!==-1){let i=ho(c);t.push({functionName:s,parameters:i,rawExpression:e.substring(o,a+1),startIndex:o,endIndex:a+1}),n.lastIndex=a+1}}return t}function go(e){return On.has(e)}function mo(e,t){let n=1,r=!1,o=!1,s=!1,a=t;for(;a<e.length&&n>0;){let c=e[a];if(s){s=!1,a++;continue}c==="\\"&&(r||o)?s=!0:c==='"'&&!r?o=!o:c==="'"&&!o?r=!r:!r&&!o&&(c==="("?n++:c===")"&&n--),a++}return n===0?{endIndex:a-1,paramsString:e.substring(t,a-1).trim()}:{endIndex:-1,paramsString:""}}function ho(e){if(!e)return{};let t={},n=_o(e);for(let r of n){let o=r.indexOf("=");if(o===-1)t.prompt=Pn(r.trim());else{let s=r.substring(0,o).trim(),a=r.substring(o+1).trim();t[s]=Pn(a)}}return t}function _o(e){let t=[],n="",r=!1,o=!1,s=0,a=0,c=!1;for(let i=0;i<e.length;i++){let u=e[i];if(c){n+=u,c=!1;continue}if(u==="\\"){c=!0,n+=u;continue}if(u==='"'&&!r?o=!o:u==="'"&&!o&&(r=!r),!r&&!o){if(u==="(")s++;else if(u===")")s--;else if(u==="[")a++;else if(u==="]")a--;else if(u===","&&s===0&&a===0){t.push(n.trim()),n="";continue}}n+=u}return n.trim()&&t.push(n.trim()),t}function Pn(e){if(!e)return"";if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1).replace(/\\"/g,'"').replace(/\\'/g,"'");if(e.startsWith("[")||e.startsWith("{"))try{return JSON.parse(e)}catch{}return/^-?\d+(\.\d+)?$/.test(e)?parseFloat(e):e.toLowerCase()==="true"?!0:e.toLowerCase()==="false"?!1:e}function Nn(e,t){if(go(e))return{isValid:!0,isRequired:!0,isUserDefined:!1,isMcp:!1,mappedFunction:Dn[e]};if(t[e]){let r=t[e];return{isValid:!0,isRequired:!1,isUserDefined:!r.mcpUrl,isMcp:!!r.mcpUrl,functionDef:r}}let n=Object.entries(t).find(([r,o])=>o.mcpUrl?r.split(".").pop()===e:!1);if(n){let[,r]=n;return{isValid:!0,isRequired:!1,isUserDefined:!1,isMcp:!0,functionDef:r}}return{isValid:!1,isRequired:!1,isUserDefined:!1,isMcp:!1,error:`Function "${e}" not found`}}function Un(e,t){if(!t||!t.parameters)return e;let n={};for(let[r,o]of Object.entries(e)){let s=t.parameters?.[r];if(!s||!s.type){n[r]=o;continue}switch(s.type){case"number":case"integer":{let a=Number(o);n[r]=Number.isFinite(a)?a:o;break}case"boolean":{typeof o=="boolean"?n[r]=o:typeof o=="string"?n[r]=o.toLowerCase()==="true":n[r]=!!o;break}case"array":{if(Array.isArray(o))n[r]=o;else if(typeof o=="string")try{let a=JSON.parse(o);n[r]=Array.isArray(a)?a:[a]}catch{n[r]=[o]}else n[r]=[o];break}case"object":{if(typeof o=="object")n[r]=o;else if(typeof o=="string")try{n[r]=JSON.parse(o)}catch{n[r]={value:o}}else n[r]={value:o};break}default:n[r]=o}}return n}var To=new Set(["same_tab_scheduled","same_host_navigated","subdomain_navigated","new_tab_opened","switch_tab"]);function we(e){let t=String(e.navigationOutcome||"").trim().toLowerCase(),n=String(e.navigationMode||"").trim().toLowerCase(),r=e.navigationPending===!0,o=t==="same_tab_scheduled"||r&&!t&&n==="same_tab",s=r||To.has(t);return{isNavigationProgress:s,isSameTabHandoff:o,continuationReason:s?o?"same_tab_navigation_handoff":"loop_continue":null,normalizedOutcome:t,normalizedMode:n}}var bo=["extract","compare","list","across","multiple","many","report","document","spreadsheet","sheet","table","csv","json","pdf","slides"],yo=new Set(["co.uk","org.uk","gov.uk","ac.uk","com.au","net.au","org.au","co.jp","com.br","com.mx","com.sg","co.in"]);function gt(e){let t=String(e||"").trim();if(!t)return"";try{return new URL(t).hostname.toLowerCase()}catch{return""}}function mt(e){let t=String(e||"").trim().toLowerCase().replace(/^\.+/,"");if(!t)return"";if(t==="localhost"||/^\d+\.\d+\.\d+\.\d+$/.test(t))return t;let n=t.split(".").filter(Boolean);if(n.length<2)return t;let r=`${n[n.length-2]}.${n[n.length-1]}`;return n.length>=3&&yo.has(r)?`${n[n.length-3]}.${r}`:r}function So(e,t){let n=String(t?.find(s=>typeof s?.url=="string"&&String(s.url||"").trim())?.url||""),r=mt(gt(n));if(!r)return!1;let o=String(e||"").match(/https?:\/\/[^\s)]+/g)||[];return o.length?o.some(s=>{let a=mt(gt(s));return!!a&&a!==r}):!1}function Ln(e,t){let n=String(t?.find(a=>typeof a?.url=="string"&&String(a.url||"").trim())?.url||""),r=mt(gt(n)),o=String(e||"").match(/https?:\/\/[^\s)]+/g)||[];if(!o.length||!r)return 0;let s=new Set;for(let a of o){let c=mt(gt(a));!c||c===r||s.add(c)}return s.size}function Fn(e){let t=String(e||"").toLowerCase();return t?(t.match(/\b(first|second|third|then|after that|next|finally)\b/g)||[]).length>=2||(t.match(/\bstep\s*[1-9]\b/g)||[]).length>=2||(t.match(/\b\d+\.\s+/g)||[]).length>=2:!1}function pt(e){let t=String(e||"").toLowerCase().trim();if(!t)return 0;let n=0,r=new Set((t.match(/\b(click|open|go|navigate|fill|type|submit|extract|find|search|compare|summarize|collect|download|upload|create|generate|report)\b/g)||[]).map(s=>s.toLowerCase()));t.length>120&&(n+=1),r.size>=2&&(n+=1),(t.match(/\b(and then|then|after|next|finally|first|second|third)\b/g)||[]).length>=1&&(n+=2),(t.match(/\b(extract|compare|list|all|each|every|across|multiple|many)\b/g)||[]).length>=2&&(n+=2),/https?:\/\/|www\./.test(t)&&(n+=2),(t.match(/\b(report|document|doc|spreadsheet|sheet|table|csv|json|pdf|slides|summary)\b/g)||[]).length>=1&&(n+=2);for(let s of bo)t.includes(s)&&(n+=.25);let o=t.split(/\s+/).filter(Boolean);return/^(click|type|fill|open|go to|scroll|press|select)\b/.test(t)&&o.length<=10&&(n=Math.max(0,n-2)),Math.max(0,Math.min(10,Math.round(n)))}function Io(e,t){let n=t.taskRouting?.mode||"act";if(n==="planner")return{mode:"planner",reason:"Configured planner mode"};if(n==="act")return{mode:"act",reason:"Configured act mode"};if(Array.isArray(t.previousSteps)&&t.previousSteps.some(c=>Array.isArray(c?.questionsAsked)&&c.questionsAsked.length>0&&!(c?.userAnswers&&Object.keys(c.userAnswers).length>0)))return{mode:"planner",score:pt(e),reason:"Forced planner due to awaiting_user continuation chain."};if(Fn(e))return{mode:"planner",score:pt(e),reason:"Forced planner due to multi-step dependency markers in prompt."};let o=Ln(e,t.tabs||[]);if(o>1)return{mode:"planner",score:pt(e),reason:`Forced planner due to ${o} cross-domain dependencies.`};let s=pt(e),a=Math.max(3,Math.min(10,Number(t.taskRouting?.actHeuristicThreshold)||7));return s>=a?{mode:"planner",score:s,reason:`Complexity score ${s} >= ${a}`}:{mode:"act",score:s,reason:`Complexity score ${s} < ${a}`}}function Eo(e){if(!e||typeof e!="object"||e.error)return!1;let t=s=>Array.isArray(s)?s.length>0:s&&typeof s=="object"?Object.keys(s).length>0:typeof s=="string"?s.trim().length>0:s!=null;if(t(e.data)||we({navigationPending:e.navigationPending,navigationOutcome:e.navigationOutcome,navigationMode:e.navigation}).isNavigationProgress||e.needsUserInput===!0)return!0;let r=e.output;return r?typeof r=="string"?r.trim().length>0:typeof r!="object"?t(r):r.success===!1||r.error?!1:!!(we({navigationPending:r.navigationPending,navigationOutcome:r.navigationOutcome,navigationMode:r.navigation}).isNavigationProgress||r.needsUserInput===!0||r.waitingForUserInput===!0||Array.isArray(r.questions)&&r.questions.length>0||String(r.taskStatus||"").trim().toLowerCase()==="in_progress"||r.taskComplete===!0||t(r.data)||typeof r.response=="string"&&String(r.response||"").trim()||t(r)):!1}async function wo(e){let{message:t,toolFunctions:n}=e,r=Mn(t),o=[];if(r.functionCalls.length===0)return{processedMessage:t,executedFunctions:[],shouldRunPlanner:!0};let s=r.functionCalls.map(l=>({call:l,validation:Nn(l.functionName,n||{})})),a=s.filter(l=>!l.validation.isValid);if(a.length>0)return{processedMessage:r.cleanedMessage,executedFunctions:[],shouldRunPlanner:!1,error:a.map(l=>l.validation.error).join("; ")};let c=s.every(l=>l.validation.isRequired),i=s.every(l=>l.validation.isUserDefined||l.validation.isMcp);if(r.hasOnlyFunctionCalls&&(c||i)){for(let{call:l,validation:d}of s)if(d.isRequired&&d.mappedFunction){let f={user_input:l.parameters.prompt||l.parameters.user_input||l.parameters.task_instruction||"",...l.parameters},h=await Ie({...e,toolName:d.mappedFunction,toolArgs:f,userInput:f.user_input,tabs:e.tabs,trajectoryId:e.trajectoryId,plannerPrevSteps:e.previousSteps,agentLog:e.agentLog,ctx:e.ctx,bridgeRpc:e.bridgeRpc,functionDeclarations:e.functionDeclarations,onPrevStepsUpdate:e.onPrevStepsUpdate});o.push({name:l.functionName,parameters:l.parameters,result:h.output,error:h.error,isRequired:!0,prevSteps:h.prevSteps})}else if(d.functionDef)try{let f=Un(l.parameters,d.functionDef),h=await e.bridgeRpc("executeClientTool",{name:l.functionName,args:f});o.push({name:l.functionName,parameters:f,result:h,isRequired:!1})}catch(f){o.push({name:l.functionName,parameters:l.parameters,error:f?.message||String(f),isRequired:!1})}return{processedMessage:r.cleanedMessage,executedFunctions:o,shouldRunPlanner:!1}}return{processedMessage:t,executedFunctions:[],shouldRunPlanner:!0}}async function Gn(e,t){t.onStatusUpdate?.("Analyzing request",e,"analyze");let n=await wo({...t,message:e});if(n.error)return{success:!1,processedMessage:n.processedMessage,error:n.error};if(n.executedFunctions.length>0&&!n.shouldRunPlanner)return{success:!0,processedMessage:n.processedMessage,executedFunctions:n.executedFunctions};if(n.shouldRunPlanner){let r=Io(e,t);t.onStatusUpdate?.(`Route selected: ${r.mode}`,r.reason,"route");let o=t.agentLog?.prevSteps;if(r.mode==="act"){t.onStatusUpdate?.("Executing action plan","Using ACT tool loop","execute");let c=Date.now(),i=await Ie({...t,toolName:N.ACT,toolArgs:{user_input:e},userInput:e,tabs:t.tabs,trajectoryId:t.trajectoryId,plannerPrevSteps:t.previousSteps,agentLog:t.agentLog,ctx:t.ctx,bridgeRpc:t.bridgeRpc,functionDeclarations:t.functionDeclarations,onPrevStepsUpdate:t.onPrevStepsUpdate});Array.isArray(i.prevSteps)&&i.prevSteps.length>0&&(o=i.prevSteps,t.onPrevStepsUpdate?.(o));let u=Date.now()-c,l=Array.isArray(i.prevSteps?.[i.prevSteps.length-1]?.functions)?i.prevSteps[i.prevSteps.length-1].functions.length:0,d=Array.isArray(i.prevSteps)?i.prevSteps.reduce((C,F)=>{let R=Array.isArray(F.functions)?F.functions.filter(P=>P?.response?.status==="Failure").length:0;return C+R},0):0,f=So(e,t.tabs||[]),h=Ln(e,t.tabs||[]),y=Fn(e);if(!(!Eo(i)&&(!!i.error&&(t.taskRouting?.plannerOnActError??!0)&&t.taskRouting?.mode!=="act"||u>8e3||l>3||d>=2||h>1||f||y)))return{success:!i.error,processedMessage:n.processedMessage,directToolResult:i,route:r,error:i.error}}let s={...t,userInput:e,continuePlanning:!1,agentLog:{prevSteps:o||t.agentLog?.prevSteps,chatLog:t.agentLog?.chatLog},lastToolPreviousSteps:o||t.lastToolPreviousSteps,ctx:t.ctx,bridgeRpc:t.bridgeRpc,functionDeclarations:t.functionDeclarations,onPrevStepsUpdate:t.onPrevStepsUpdate,onPlannerHistoryUpdate:t.onPlannerHistoryUpdate},a=await ft(s,[]);return{success:!a.response.error,processedMessage:n.processedMessage,plannerResponse:a,route:r,error:a.response.error}}return{success:!0,processedMessage:n.processedMessage}}function $n(e){return!e.resume&&!e.preserveHistory}var te=[],j=null,Z=null,Ce=new Qe,se=[],ie=[],z,ne="",Ue=[],_t="",fe=crypto.randomUUID(),ce=crypto.randomUUID(),ae=[],Me,Re=null,Ro=new Set(Object.values(N)),X=null,re=new Set,Ne=null,Ft="",Pe=new Set,Gt="",ke=new Map,bt=3e4,xo=9e4,Ao=2e4;function vo(e){let t=String(e?.ui?.agent?.name||"").trim();return t?t.slice(0,64):"Rover"}function Co(e){let t=String(e||"").trim();if(t)try{return new URL(t).hostname.toLowerCase()}catch{return}}function ko(e){if(!(!e?.tools||Array.isArray(e.tools)))return e.tools.web}function Oo(e){if(e&&(e.externalNavigationPolicy==="open_new_tab_notice"||e.externalNavigationPolicy==="block"||e.externalNavigationPolicy==="allow"))return e.externalNavigationPolicy}function Do(e){let t=e.tabs.map((n,r)=>{if(!n.external&&n.accessMode!=="external_placeholder"&&n.accessMode!=="external_scraped")return;let o=n.accessMode==="external_scraped"?"external_scraped":"external_placeholder";return{tabId:r,host:Co(n.url),title:String(n.title||"").trim()||void 0,accessMode:o,reason:String(n.inaccessibleReason||"").trim()||void 0}}).filter(n=>!!n).slice(0,8);return{mode:"rover_embed",agentName:e.agentName,externalNavigationPolicy:e.externalNavigationPolicy,tabIdContract:"tree_index_mapped_by_tab_order",taskBoundaryId:e.taskBoundaryId,...t.length?{externalTabs:t}:{}}}function Po(e,t){return t===void 0?e:Array.isArray(t)?t:Array.isArray(e)?{...t,client:t.client??e,web:{...t.web||{}}}:{...e,...t,client:t.client??e?.client,web:{...e?.web||{},...t.web||{}}}}function Mo(e,t){return t?{...e,...t,agent:{...e?.agent||{},...t.agent||{}}}:e}function No(e){let t=new Map;return e.onmessage=n=>{let r=n.data;if(!r||r.t!=="res")return;let o=t.get(r.id);o&&(t.delete(r.id),o(r))},async function(r,o){let s=crypto.randomUUID(),a=new Promise((c,i)=>{let u=setTimeout(()=>{t.delete(s),i(new Error(`RPC timeout: ${r} (${bt}ms)`))},bt);t.set(s,l=>{clearTimeout(u),l.ok?c(l.result):i(new Error(l.error?.message||"RPC error"))})});return e.postMessage({t:"req",id:s,method:r,params:o}),a}}async function Uo(){if(!Z)return{id:1};try{let e=await Z("getTabContext");if(e&&typeof e=="object")return{id:Number(e.logicalTabId||e.id||1),url:e.url,title:e.title,external:!1,accessMode:"live_dom"}}catch{}try{let e=await Z("getPageData");return{id:1,url:e?.url,title:e?.title,external:!1,accessMode:"live_dom"}}catch{return{id:1,external:!1,accessMode:"live_dom"}}}async function Lo(){if(!Z)return[{id:1}];try{let e=await Z("listSessionTabs");if(Array.isArray(e)&&e.length>0){let t=Date.now(),n=e.map(r=>{let o=Number(r?.logicalTabId||r?.id||0),s=!!r?.external;return{id:o,runtimeId:typeof r?.runtimeId=="string"?r.runtimeId:void 0,updatedAt:Number(r?.updatedAt)||0,detachedAt:Number(r?.detachedAt)||0,detachedReason:typeof r?.detachedReason=="string"?r.detachedReason:void 0,url:typeof r?.url=="string"?r.url:void 0,title:typeof r?.title=="string"?r.title:void 0,external:s,accessMode:r?.accessMode==="external_scraped"||r?.accessMode==="external_placeholder"?r.accessMode:s?"external_placeholder":"live_dom",inaccessibleReason:typeof r?.inaccessibleReason=="string"?r.inaccessibleReason:void 0}}).filter(r=>Number.isFinite(r.id)&&r.id>0).filter(r=>{let o=Math.max(Number(r.updatedAt)||0,Number(r.detachedAt)||0);return r.runtimeId?!0:r.external?t-o<=xo:r.detachedReason==="opened_pending_attach"?t-o<=Ao:!1}).map(r=>({id:r.id,url:r.url,title:r.title,external:r.external,accessMode:r.accessMode,inaccessibleReason:r.inaccessibleReason}));if(n.length)return n}}catch{}return[await Uo()]}function Fo(e,t,n){if(n)return n;let r=`${String(e||"")} ${String(t||"")}`.toLowerCase();return r.trim()?/route|routing|complexity/.test(r)?"route":/complete|completed|done|finished|task complete/.test(r)?"complete":/verify|validated|checking|question/.test(r)?"verify":/execute|executing|running|calling|processing|generating|filling|inferring|extracting/.test(r)?"execute":"analyze":"analyze"}function Go(e,t){let n=String(t||e||"").trim();return n?n.length<=120?n:`${n.slice(0,119)}\u2026`:""}function J(e,t,n){let r=Fo(e,t,n),o=Go(e,t),s=X?.runId||"no-run";if(s!=="no-run"&&re.has(s))return;let a=`${s}|${r}|${String(e||"").trim().toLowerCase()}|${o.toLowerCase()}`;if(!(a===Ft||Pe.has(a))){if(Ft=a,Pe.add(a),Pe.size>60){let c=Array.from(Pe).slice(-30);Pe=new Set(c)}self.postMessage({type:"status",message:e,thought:t,stage:r,compactThought:o,runId:X?.runId}),B()}}function $o(e){let t=X?.runId||"no-run";if(t!=="no-run"&&re.has(t))return;let n=[t,e.hasExplicitScope?"1":"0",e.scopedTabIdsInput.join(","),e.listedTabIds.join(","),e.keptScopedTabIds.join(","),e.resolvedTabOrder.join(",")].join("|");n!==Gt&&(Gt=n,self.postMessage({type:"runtime_tabs_diagnostics",runId:X?.runId,diagnostics:e}))}function Xe(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function Jn(e){return e.filter(t=>t?.role==="user").slice(-20).map(t=>({role:"user",content:String(t?.content??"")}))}function Oe(e){if(!Array.isArray(e))return[];if(e.length<=qe.plannerHistory)return e.map(r=>Xe(r)).filter(r=>r!==void 0);let t=[e[0],...e.slice(-(qe.plannerHistory-1))],n=[];for(let r of t){let o=Xe(r);o!==void 0&&n.push(o)}return n}function Hn(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let r=0;r<e.length;r+=1){let o=e[r]?.accTreeId;typeof o=="string"&&o.trim()&&t.push(r)}if(t.length<=3)return;let n=new Set([t[0],...t.slice(-2)]);for(let r of t)n.has(r)||delete e[r].accTreeId}function Ye(e){if(!Array.isArray(e))return[];if(e.length<=qe.prevSteps){let r=[];for(let o of e){let s=Xe(o);s&&typeof s=="object"&&r.push(s)}return Hn(r),r}let t=[e[0],...e.slice(-(qe.prevSteps-1))],n=[];for(let r of t){let o=Xe(r);o&&typeof o=="object"&&n.push(o)}return Hn(n),n}function Ho(e,t){if(!e||typeof e!="object")return;let n=String(e.key||e.id||"").trim(),r=String(e.query||e.question||"").trim(),o=n||`clarification_${t+1}`;if(!r)return;let s=typeof e.required=="boolean",a=typeof e.optional=="boolean",c=s?!!e.required:a?!e.optional:!0;return{key:o,query:r,...typeof e.id=="string"&&e.id.trim()?{id:e.id.trim()}:{},...typeof e.question=="string"&&e.question.trim()?{question:e.question.trim()}:{},...Array.isArray(e.choices)?{choices:e.choices}:{},required:c}}function ee(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r=0;r<e.length;r+=1){let o=Ho(e[r],r);if(!o)continue;let s=`${o.key}::${o.query}`.toLowerCase();n.has(s)||(n.add(s),t.push(o))}return t.slice(0,6)}function qn(e){return String(e.query||e.question||"").trim()}function jn(e,t,n){let r=new Set(t.map(i=>i.key)),o={},s=Array.isArray(e?.keys)?e.keys.map(i=>String(i||"").trim()).filter(i=>!!i&&r.has(i)):[];if(e?.answersByKey&&typeof e.answersByKey=="object")for(let[i,u]of Object.entries(e.answersByKey)){if(!r.has(i))continue;let l=String(u||"").trim();l&&(o[i]=l)}let a=String(n||"").trim();if(Object.keys(o).length===0&&a)if(t.length===1)o[t[0].key]=a;else{let i=a.split(`
11
- `).map(u=>u.trim()).filter(Boolean);for(let u of i){let l=u.indexOf(":");if(l<=0)continue;let d=u.slice(0,l).trim(),f=u.slice(l+1).trim();!d||!f||!r.has(d)||(o[d]=f)}}let c=String(e?.rawText||a||"").trim();return!c&&Object.keys(o).length===0?s.length?{answersByKey:o,rawText:s.map(i=>`${i}: (no answer provided)`).join(`
12
- `)}:void 0:{answersByKey:o,rawText:c}}function qo(e,t){let n=["[ASK_USER_ANSWERS]"];for(let r of e){let o=String(t.answersByKey[r.key]||"").trim();n.push(`${r.key}: ${o||"(no answer provided)"}`)}return t.rawText&&(n.push("[RAW_USER_REPLY]"),n.push(t.rawText)),n.join(`
13
- `)}function he(e){return String(e||"").trim()||void 0}function Le(e){if(!Array.isArray(e))return[];let t=e.map(r=>({role:r?.role==="user"?"user":"model",message:String(r?.message||"").replace(/\s+/g," ").trim()})).filter(r=>!!r.message);if(!t.length)return[];let n=[];for(let r of t){let o=n[n.length-1];o&&o.role===r.role&&o.message===r.message||n.push(r)}return n.slice(-12)}function Ve(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let o=Number(r);!Number.isFinite(o)||o<=0||t.has(o)||(t.add(o),n.push(o))}return n}function jo(e){let t=Ve(e?.scopedTabIds),n=e?.taskTabScope,r=Ve(n?.touchedTabIds),o=Number(n?.seedTabId),s=Number.isFinite(o)&&o>0?o:void 0,a=Ve(t.length>0?t:r.length>0?r:s?[s]:[]);return s&&!a.includes(s)&&a.unshift(s),{scoped:a,seedTabId:s}}function ht(e){if(!e||typeof e!="object")return;let t=Object.prototype.hasOwnProperty.call(e,"scopedTabIds"),n=Object.prototype.hasOwnProperty.call(e,"taskTabScope");if(!t&&!n)return;let r=jo(e);ae=r.scoped,Me=r.seedTabId}function Nt(e){let t=Ve(Array.isArray(e)?e:[e]);if(!t.length)return ae;let n=Ve([...Number(Me)>0?[Number(Me)]:[],...ae,...t]);return n.length===ae.length&&n.every((r,o)=>r===ae[o])||(ae=n),ae}function Zn(){for(let e of te){if(e.role!=="user")continue;let t=he(String(e.content||""));if(t)return t}}function Wn(e,t,n){let r=String(t||"").trim(),o=String(e||"").trim(),s=[r?`The tool \`${r}\` just finished executing.`:"No tool was issued previously.",`Please analyze the progress based on the complete history and determine the single next best step required to fulfill the overall request: ${o||"(none)"}.`,`If the request is complete, invoke tool \`${N.TASK_COMPLETE}\` via \`tool_code\`. If not, invoke the appropriate tool.`],a=String(n||"").trim();return a&&(s.push("[LAST_TOOL_OUTPUT]"),s.push(a)),s.join(`
14
- `)}function Wo(e){if(!(!Array.isArray(e)||e.length===0))for(let t=e.length-1;t>=0;t-=1){let n=e[t],r=Array.isArray(n?.functions)?n.functions:[];for(let o=r.length-1;o>=0;o-=1){let s=r[o];if(String(s?.name||"").trim().toLowerCase()==="ask_user")return{stepIndex:t,functionIndex:o}}}}function Bo(e,t){let n=t?.stepRef;if(n&&t?.boundaryId&&t.boundaryId===ce&&Number.isFinite(n.stepIndex)&&n.stepIndex>=0&&Number.isFinite(n.functionIndex)&&n.functionIndex>=0&&n.stepIndex<e.length){let o=e[n.stepIndex],a=(Array.isArray(o?.functions)?o.functions:[])[n.functionIndex];if(String(a?.name||"").trim().toLowerCase()==="ask_user")return{stepIndex:n.stepIndex,functionIndex:n.functionIndex}}let r=[];for(let o=0;o<e.length;o+=1){let s=e[o],a=Array.isArray(s?.functions)?s.functions:[];for(let c=0;c<a.length;c+=1){let i=a[c];String(i?.name||"").trim().toLowerCase()==="ask_user"&&r.push({stepIndex:o,functionIndex:c})}}if(r.length===1)return r[0];if(r.length>1)return r[r.length-1]}function zo(e){let t=Wo(e);if(!t)return;let n=e[t.stepIndex];return{stepIndex:t.stepIndex,functionIndex:t.functionIndex,...typeof n?.accTreeId=="string"&&String(n.accTreeId).trim()?{accTreeId:String(n.accTreeId).trim()}:{}}}function Bn(e,t){let n=zo(ie);return{questions:t,source:e,askedAt:Date.now(),boundaryId:ce,...n?{stepRef:n}:{}}}function Ko(e,t,n){let r=Ye(Array.isArray(e)?e:[]),o=ee(t?.questions);if(!o.length)return r;let s=Bo(r,t),a=ee(o).map(d=>({key:d.key,query:d.query,...d.required===!1?{required:!1}:{}})),c=d=>{let f=d&&typeof d=="object"&&!Array.isArray(d)?d:{},h=ee(f.questions),y=h.length?h:ee(o);return{...f,status:"answered",needsUserInput:!1,...y.length?{questions:y}:{},ask_user_answers:{...n.answersByKey},...n.rawText?{raw_user_reply:n.rawText}:{},answeredAt:Date.now()}};if(!s)return r;let i=r[s.stepIndex];Array.isArray(i.functions)||(i.functions=[]);let l=i.functions[s.functionIndex]?.response?.output;return i.functions[s.functionIndex]={name:"ask_user",args:{questions_to_ask:a},response:{status:"Success",output:c(l)}},r}function Vo(e,t,n){let r=Oe(Array.isArray(e)?e:[]);for(let o=r.length-1;o>=0;o-=1){let s=r[o];if(!s||typeof s!="object")continue;let a=ee(s.questionsAsked);if(!a.length)continue;let c=new Set(a.map(l=>l.key.toLowerCase()));if(!t.some(l=>c.has(String(l.key||"").toLowerCase())))continue;let u=s.userAnswers&&typeof s.userAnswers=="object"&&!Array.isArray(s.userAnswers)?s.userAnswers:{};return s.userAnswers={...u,...n},Oe(r)}return r.push({thought:"User provided clarification answers.",questionsAsked:t,userAnswers:n}),Oe(r)}function Xo(){let e=Ye(Array.isArray(ie)?ie:[]),t=he(ne),n=z?.stepRef,r=n&&Number.isFinite(n.stepIndex)&&n.stepIndex>=0&&Number.isFinite(n.functionIndex)&&n.functionIndex>=0?{stepIndex:n.stepIndex,functionIndex:n.functionIndex,...typeof n.accTreeId=="string"&&n.accTreeId.trim()?{accTreeId:n.accTreeId.trim()}:{}}:void 0;return{trajectoryId:fe,taskBoundaryId:ce,...t?{rootUserInput:t}:{},...Ue.length?{seedChatLog:Le(Ue)}:{},history:Jn(te),plannerHistory:Oe(Array.isArray(se)?se:[]),agentPrevSteps:e,lastToolPreviousSteps:e,pendingAskUser:z?{questions:ee(z.questions),source:z.source,askedAt:Number(z.askedAt)||Date.now(),...typeof z.boundaryId=="string"&&z.boundaryId.trim()?{boundaryId:z.boundaryId.trim()}:{},...r?{stepRef:r}:{}}:void 0}}function B(){self.postMessage({type:"state_snapshot",state:Xo(),activeRun:X?{runId:X.runId,text:X.text,startedAt:X.startedAt,resume:X.resume}:null})}function Yo(e){let t=e;if(!t)return;if(Ue=Le(t.seedChatLog),Array.isArray(t.history)){te.length=0;for(let a of Jn(t.history))te.push(a)}Array.isArray(t.plannerHistory)&&(se=Oe(t.plannerHistory)),Array.isArray(t.agentPrevSteps)?ie=Ye(t.agentPrevSteps):Array.isArray(t.lastToolPreviousSteps)&&(ie=Ye(t.lastToolPreviousSteps));let n=ee(t.pendingAskUser?.questions),r=t.pendingAskUser?.stepRef,o=r&&Number.isFinite(Number(r.stepIndex))&&Number(r.stepIndex)>=0&&Number.isFinite(Number(r.functionIndex))&&Number(r.functionIndex)>=0?{stepIndex:Number(r.stepIndex),functionIndex:Number(r.functionIndex),...typeof r.accTreeId=="string"&&r.accTreeId.trim()?{accTreeId:r.accTreeId.trim()}:{}}:void 0;n.length>0?z={questions:n,source:t.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(t.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof t.pendingAskUser?.boundaryId=="string"&&String(t.pendingAskUser.boundaryId).trim()||void 0,...o?{stepRef:o}:{}}:z=void 0,typeof t.trajectoryId=="string"&&t.trajectoryId.trim()&&(fe=t.trajectoryId.trim()),typeof t.taskBoundaryId=="string"&&String(t.taskBoundaryId).trim()&&(ce=String(t.taskBoundaryId).trim()),ne=he(t.rootUserInput)||he(Zn())||"",Re||(Re=new pe(`rover-${fe}`)),B()}function Qo(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let r=n.type;if(r==="text"){let o=String(n.text||"").trim();if(!o)continue;t.push({type:"text",text:o});continue}(r==="tool_output"||r==="json")&&t.push({type:r,data:_e(n.data),label:typeof n.label=="string"?n.label:void 0,toolName:typeof n.toolName=="string"?n.toolName:void 0})}return t.length?t:void 0}function _e(e){let t=Xe(e);return t==null?null:typeof t=="string"||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)||typeof t=="object"?t:String(t)}function Fe(e){if(e!=null){if(typeof e=="string")return e.trim()||void 0;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e)){let t=[];for(let n of e.slice(0,4)){let r=Fe(n);if(r&&t.push(r),t.length>=3)break}return t.length?t.join(`
15
- `):void 0}if(typeof e=="object"){let t=["response","message","summary","text","content","result","description"];for(let n of t){let r=e[n];if(typeof r=="string"&&r.trim())return r.trim()}return}}}function zn(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.entries(e).filter(([,s])=>s!=null);if(t.length!==1)return!1;let[n,r]=t[0];return typeof r!="string"||!r.trim()?!1:new Set(["response","message","summary","text","content","result","description"]).has(n)}function $t(e,t){if(e==null)return!1;if(typeof e=="string"){let n=e.trim();return n?!t||n!==t.trim():!1}if(Array.isArray(e)){let n=e.filter(r=>r!=null);if(n.length===1){let r=n[0];if(typeof r=="string"||typeof r=="number"||typeof r=="boolean"||zn(r))return!1}return!0}return!zn(e)}function Jo(e,t){let n=Fe(e),r=n||t?.fallbackText||"",o=[];return $t(e,n)&&o.push({type:"tool_output",label:t?.label,toolName:t?.toolName,data:_e(e)}),{text:r,blocks:o.length?o:void 0}}function de(e){let t=typeof e=="string"?String(e||"").trim():String(e?.text||"").trim(),n=typeof e=="string"?void 0:Qo(e.blocks),r=n?.find(c=>c.type==="text"),o=n?.find(c=>c.type==="tool_output"||c.type==="json"),s=t||r?.text||Fe(o?.data)||"";if(!s&&(!n||n.length===0))return"";let a=X?.runId;return a&&re.has(a)||self.postMessage({type:"assistant",text:s,blocks:n,runId:a}),s}function Zo(e){let t=new Set,n=[];for(let r of e)!r?.name||t.has(r.name)||(t.add(r.name),n.push(r));return n}function es(e){return e.filter(t=>!!t?.name&&!Ro.has(t.name))}function Tt(e){let t=X?.runId;if(t&&re.has(t))return;let n=e&&typeof e=="object"&&e.code&&e.message?Y({errorDetails:e},"Rover API key is required."):Y(e,"Rover API key is required.");self.postMessage({type:"auth_required",error:n,runId:t})}var ts=new Set(["goto_url","google_search","go_back","go_forward","refresh_page","open_new_tab"]);function yt(e,t="Operation failed"){let n=Y(e,t);return{success:!1,error:{code:n.code,message:n.message,missing:n.missing,next_action:n.next_action,retryable:n.retryable,requires_api_key:n.requires_api_key},missing:n.missing,next_action:n.next_action,retryable:n.retryable}}function ns(e){if(!e||typeof e!="object")return;let t=e.output;if(t&&typeof t=="object"&&t.success===!1&&t.error){let n=typeof t.error=="object"?t.error:{message:String(t.error||"Operation failed")};return yt({errorDetails:{...n,missing:t.missing??n.missing,next_action:t.next_action??n.next_action,retryable:t.retryable??n.retryable}},"Operation failed")}if(e.errorDetails||e.error)return yt(e.errorDetails||{message:e.error},"Operation failed")}function rs(e){if(!Array.isArray(e)||e.length===0)return!1;let t=0;for(let n=e.length-1;n>=0;n-=1){let r=e[n],o=Array.isArray(r?.functions)?r.functions:[];if(o.length){t+=1;for(let s=o.length-1;s>=0;s-=1){let a=o[s],c=String(a?.name||a?.toolName||a?.functionName||"").trim();if(!c||!ts.has(c))continue;if(String(a?.response?.status||a?.status||"").trim().toLowerCase()==="success")return!0}if(t>=2)break}}return!1}var os=new Set(["UNKNOWN_ERROR","MISSING_AUTH_TOKEN","MISSING_AUTH","SESSION_TOKEN_EXPIRED","SESSION_TOKEN_INVALID","BOOTSTRAP_REQUIRED"]);function ss(e,t){let n=String(e?.error?.code||"").trim().toUpperCase();return n&&!os.has(n)||!rs(t)?e:{...e,error:{...e.error,code:"NAVIGATION_HANDOFF_PENDING",message:e.error?.message||"Navigation handoff is in progress.",retryable:!0,next_action:"Wait for post-navigation resume and continue the task."},retryable:!0,next_action:"Wait for post-navigation resume and continue the task."}}function Ut(e){if(!e||typeof e!="object")return;let t=e.output,n=e.errorDetails,r=t?.policy_action||t?.policyAction||(t?.policyBlocked?"open_new_tab_notice":void 0)||(n?.code==="DOMAIN_SCOPE_BLOCKED"?"block":void 0);r&&self.postMessage({type:"navigation_guardrail",runId:X?.runId,blockedUrl:t?.blocked_url||t?.url||n?.details?.blockedUrl,currentUrl:t?.current_url||n?.details?.currentUrl,reason:t?.error?.message||n?.message||t?.message,policyAction:r,openedInNewTab:!!t?.openedInNewTab,allowedDomains:t?.allowed_domains||n?.details?.allowedDomains})}function as(e){let t=String(e||"").toLowerCase();if(!t.trim())return{blocked:!1,score:0,reasons:[]};let n=[{reason:"prompt_injection",pattern:/\b(ignore|bypass|override)\b.{0,40}\b(instruction|policy|guardrail|system|developer)\b/i,weight:2},{reason:"secret_exfiltration",pattern:/\b(token|cookie|password|secret|api key|session key)\b.{0,40}\b(extract|dump|reveal|steal|exfiltrat)/i,weight:3},{reason:"credential_harvest",pattern:/\b(phish|credential|login prompt|social engineering)\b/i,weight:3},{reason:"policy_evasion",pattern:/\b(do not tell|without asking|silently|hidden|covert)\b/i,weight:1}],r=[],o=0;for(let a of n)a.pattern.test(t)&&(r.push(a.reason),o+=a.weight);return{blocked:o>=3,score:o,reasons:r}}function Ke(e,t){!Array.isArray(e)||!e.length||(ie=Ye(e),t?.snapshot!==!1&&B())}function is(e){let t=[],n=e?.generatedContentRef||{},r=Array.isArray(n.docs)?n.docs:[];for(let i of r)i?.url&&t.push(`[Doc: ${i.url}](${i.url})`);let o=Array.isArray(n.slides)?n.slides:[];for(let i of o)i?.url&&t.push(`[Slides: ${i.url}](${i.url})`);let s=Array.isArray(n.webpages)?n.webpages:[];for(let i of s){let u=i?.storageUrl||i?.downloadUrl;u&&t.push(`[Webpage: ${u}](${u})`)}let a=Array.isArray(n.pdfs)?n.pdfs:[];for(let i of a){let u=i?.storageUrl||i?.downloadUrl;u&&t.push(`[PDF: ${u}](${u})`)}let c=Array.isArray(e?.schemaHeaderSheetInfo)?e.schemaHeaderSheetInfo:[];for(let i of c){let u=i?.sheetInfo?.sheetId;if(!u)continue;let l=i?.sheetInfo?.sheetTabId,d=l?`https://docs.google.com/spreadsheets/d/${u}/edit#gid=${l}`:`https://docs.google.com/spreadsheets/d/${u}/edit`;t.push(`[Sheet: ${d}](${d})`)}return t}function cs(e){if(!Array.isArray(e)||!e.length)return;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(!r)continue;let o=`Step ${n+1}`,s=r.output??r.generatedContentRef??r.schemaHeaderSheetInfo,a=Fe(s);s!==void 0&&$t(s,a)&&t.push({type:"tool_output",label:r.toolName?`${o}: ${r.toolName}`:o,toolName:typeof r.toolName=="string"?r.toolName:void 0,data:_e(s)}),(r.error||r.errorDetails)&&t.push({type:"json",label:`${o} error`,data:_e({error:r.error,errorDetails:r.errorDetails})});let c=is(r);c.length&&t.push({type:"text",text:`${o} artifacts:
10
+ Slide 3: Summary`,r=a||`${e==="doc"?"Google Doc":"Google Slides"} generation fell back to in-memory draft.`;return{output:[n],generatedContentRef:{type:`${e}_draft`,title:o,content:n,degraded:!0,fallback_mode:"memory"},warnings:[r]}}async function mr({userInput:e,toolArgs:t,tabOrder:a,plannerPrevSteps:o,files:n,trajectoryId:r,onStatusUpdate:s,agentLog:c,ctx:i,driveAuthToken:u}){if(s?.("Generating doc...","Calling google_doc_generator","execute"),!u)return oa("google_doc_generator",["authToken"]);let l=await i.getPageData(a[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[a[0]]:l},tabOrder:a,outputDestination:t?.output_destination||t?.outputDestination,plannerPrevSteps:o,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:r,userProfile:i.userProfile,files:n},m;try{m=await ye(i,Z.googleDocGenerator,d)}catch(f){if(xn(f)){let C=J(f);return vn("doc",e,C.message)}let k=J(f,"google_doc_generator failed");return{output:vt(k),error:k.message,errorDetails:k,warnings:k.message?[k.message]:void 0}}return{output:m.data?.llmOutput||m.data?.generatedContentRef,generatedContentRef:m.data?.generatedContentRef,error:m.data?.error,errorDetails:m.data?.errorDetails,creditsUsed:m.data?.creditsUsed,warnings:m.data?.warnings}}async function pr({userInput:e,toolArgs:t,tabOrder:a,plannerPrevSteps:o,files:n,trajectoryId:r,onStatusUpdate:s,agentLog:c,ctx:i,driveAuthToken:u}){if(s?.("Generating slides...","Calling google_slides_generator","execute"),!u)return oa("google_slides_generator",["authToken"]);let l=await i.getPageData(a[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[a[0]]:l},tabOrder:a,outputDestination:t?.output_destination||t?.outputDestination,plannerPrevSteps:o,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:r,userProfile:i.userProfile,files:n},m;try{m=await ye(i,Z.googleSlidesGenerator,d)}catch(f){if(xn(f)){let C=J(f);return vn("slides",e,C.message)}let k=J(f,"google_slides_generator failed");return{output:vt(k),error:k.message,errorDetails:k,warnings:k.message?[k.message]:void 0}}return{output:m.data?.llmOutput||m.data?.generatedContentRef,generatedContentRef:m.data?.generatedContentRef,error:m.data?.error,errorDetails:m.data?.errorDetails,creditsUsed:m.data?.creditsUsed,warnings:m.data?.warnings}}async function fr({userInput:e,toolArgs:t,tabOrder:a,plannerPrevSteps:o,files:n,trajectoryId:r,onStatusUpdate:s,agentLog:c,ctx:i}){s?.("Generating webpage...","Calling webpage_generator","execute");let u=await i.getPageData(a[0]),l={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[a[0]]:u},tabOrder:a,plannerPrevSteps:o,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:"",timestamp:i.userTimestamp,trajectoryId:r,userProfile:i.userProfile,files:n,outputDestination:t?.output_destination||t?.outputDestination},d=await ye(i,Z.webpageGenerator,l);return d?.success?{output:d.data?.llmOutput||d.data?.generatedContentRef,generatedContentRef:d.data?.generatedContentRef,error:d.data?.error,errorDetails:d.data?.errorDetails,creditsUsed:d.data?.creditsUsed,warnings:d.data?.warnings}:{error:d?.error||"webpage_generator failed"}}async function gr({userInput:e,toolArgs:t,tabOrder:a,plannerPrevSteps:o,files:n,trajectoryId:r,onStatusUpdate:s,agentLog:c,ctx:i,driveAuthToken:u}){if(s?.("Filling PDF...","Calling pdf_filler","execute"),!u)return oa("pdf_filler",["authToken"]);let l=await i.getPageData(a[0]),d={siteId:i.siteId,userInput:e,agentLog:{prevSteps:c?.prevSteps||[],chatLog:c?.chatLog||[]},webPageMap:{[a[0]]:l},tabOrder:a,plannerPrevSteps:o,llmIntegration:i.llmIntegration,apiMode:i.apiMode,apiToolsConfig:i.apiToolsConfig,authToken:u||"",timestamp:i.userTimestamp,trajectoryId:r,userProfile:i.userProfile,files:n,outputDestination:t?.output_destination||t?.outputDestination},m=await ye(i,Z.pdfFiller,d);return m?.success?{output:m.data?.llmOutput||m.data?.generatedContentRef,generatedContentRef:m.data?.generatedContentRef,error:m.data?.error,errorDetails:m.data?.errorDetails,creditsUsed:m.data?.creditsUsed,warnings:m.data?.warnings}:{error:m?.error||"pdf_filler failed"}}async function hr({userInput:e,plannerPrevSteps:t,files:a,trajectoryId:o,onStatusUpdate:n,agentLog:r,ctx:s}){n?.("Generating custom tool...","Calling custom_tool_generator","execute");let c={siteId:s.siteId,userInput:e,plannerPrevSteps:t,agentLog:{prevSteps:r?.prevSteps||[],chatLog:r?.chatLog||[]},llmIntegration:s.llmIntegration,apiMode:s.apiMode,apiToolsConfig:s.apiToolsConfig,authToken:"",timestamp:s.userTimestamp,trajectoryId:o,userProfile:s.userProfile,files:a},i=await ye(s,Z.customToolGenerator,c);return i?.success?{output:i.data?.generatedTools||i.data?.output||i.data,generatedTools:i.data?.generatedTools,error:i.data?.error,errorDetails:i.data?.errorDetails,creditsUsed:i.data?.creditsUsed,warnings:i.data?.warnings}:{error:i?.error||"custom_tool_generator failed"}}var _n=15,ra=12;function Tn(e){if(!Array.isArray(e)||!e.length)return[];let t=e.map(s=>({role:s?.role==="user"?"user":"model",message:String(s?.message||"").replace(/\s+/g," ").trim()})).filter(s=>!!s.message),a=[];for(let s of t){let c=a[a.length-1];c&&c.role===s.role&&c.message===s.message||a.push(s)}let o=a.slice(-ra),n=new Set,r=[];for(let s=o.length-1;s>=0;s-=1){let c=o[s],i=`${c.role}::${c.message.toLowerCase()}`;n.has(i)||(n.add(i),r.push(c))}return o=r.reverse(),o.length>ra&&(o=o.slice(-ra)),o}async function br(e){let{userInput:t,tabs:a,scopedTabIds:o,seedTabId:n,getScopedTabRuntimeContext:r,previousMessages:s=[],trajectoryId:c,previousSteps:i=[],files:u,continuePlanning:l=!1,recordingContext:d,driveAuthToken:m,agentLog:f,lastToolPreviousSteps:k,ctx:C,bridgeRpc:x,functionDeclarations:R}=e,N=r?.()||{},v=N.scopedTabIds??o,O=N.seedTabId??n,_=Array.isArray(a)&&a.length?a:[{id:1}],D=await fe(x,_,{scopedTabIds:v,seedTabId:O}),P=D.tabOrder.length?D.tabOrder:_.map(E=>E.id),F=D.activeTabId,S=D.tabMetaById,U={},I=async(E,j)=>{try{return await C.getPageData(E,{onlyTextContent:!1,...j?.allowExternalFetch?{__roverAllowExternalFetch:!0}:{},...j?.allowExternalFetch?{__roverExternalIntent:"auto"}:{},...j?.allowExternalFetch?{__roverExternalMessage:t}:{}})}catch{let T=S[E];return{url:T?.url||"",title:T?.title||(T?.external?"External Tab (Inaccessible)":""),content:"",contentType:"text/html"}}};U[F]=await I(F,{allowExternalFetch:!0});let p=P.filter(E=>E!==F),h=await Promise.all(p.map(async E=>({tabId:E,pageData:await I(E)})));for(let{tabId:E,pageData:j}of h)U[E]=j;let y=f?.chatLog?.length?Tn(f.chatLog):Tn(s.filter(E=>E.role==="user"||E.role==="assistant").map(E=>({role:E.role==="user"?"user":"model",message:E.content}))),g={siteId:C.siteId,userInput:t,webPageMap:Object.keys(U).length?U:void 0,tabOrder:P,recordingContext:d,previousSteps:i,lastToolPreviousSteps:k,chatLog:y.length?y:void 0,llmIntegration:C.llmIntegration,apiMode:C.apiMode,apiToolsConfig:C.apiToolsConfig,files:u,userFunctionDeclarations:R,authToken:m||"",timestamp:C.userTimestamp,continuePlanning:l,trajectoryId:c,userProfile:C.userProfile},b=await C.callExtensionRouter(Z.plan,g);if(!b?.success)return{taskComplete:!1,error:b?.error||"Planner failed"};let A=b.data;return{plan:A.plan,questions:A.questions,taskComplete:A.taskComplete||!1,modelParts:A.modelParts,overallThought:A.overallThought,accTreeIds:A.accTreeIds,error:A.error,errorDetails:A.errorDetails,warnings:A.warnings,userUsageData:A.userUsageData||{creditsUsed:A.creditsUsed||0}}}async function _t(e,t=[],a=0){if(a>=_n)return{response:{taskComplete:!1,error:`Max planner recursion depth reached (${_n})`},toolResults:t,completedWorkflow:void 0,previousSteps:e.previousSteps||[]};if(e.ctx.isCancelled?.())return{response:{taskComplete:!1,error:"Run cancelled"},toolResults:t,completedWorkflow:void 0,previousSteps:e.previousSteps||[]};let o=e.previousSteps||[],n=e.lastToolPreviousSteps||e.agentLog?.prevSteps,r=await br({...e,previousSteps:o,ctx:e.ctx,functionDeclarations:e.functionDeclarations});if(r.questions&&r.questions.length>0){e.onStatusUpdate?.("Planner needs more input",r.overallThought,"verify");let s={modelParts:r.modelParts,thought:r.overallThought,questionsAsked:r.questions};return o=[...o,s],e.onPlannerHistoryUpdate?.(o),{response:r,toolResults:t,completedWorkflow:void 0,previousSteps:o}}if(r.plan&&!r.error){let s=r.plan;e.onStatusUpdate?.(`Planner selected ${s.toolName}`,s.thought??r.overallThought,"execute");let c=s.serverResult,i=c?{output:c.success?c.data:void 0,error:c.success?void 0:c.error||"Server-side execution failed"}:await Se({...e,toolName:s.toolName,toolArgs:s.parameters,plannerPrevSteps:o,agentLog:{prevSteps:n||e.agentLog?.prevSteps,chatLog:e.agentLog?.chatLog},ctx:e.ctx,bridgeRpc:e.bridgeRpc,functionDeclarations:e.functionDeclarations,onPrevStepsUpdate:e.onPrevStepsUpdate});t.push(i),i.prevSteps?.length&&(n=i.prevSteps,e.onPrevStepsUpdate?.(i.prevSteps));let l=Qt(r.modelParts)[0],d={modelParts:r.modelParts,thought:s.thought??r.overallThought,toolCall:{name:s.toolName,args:l?ft({...s.parameters},l):s.parameters},textOutput:i.output,error:i.error,schemaHeaderSheetInfo:i.schemaHeaderSheetInfo,generatedContentRef:i.generatedContentRef,lastToolPreviousSteps:i.prevSteps};return o=[...o,d],e.onPlannerHistoryUpdate?.(o),i.error&&!r.taskComplete?_t({...e,previousSteps:o,lastToolPreviousSteps:n||e.lastToolPreviousSteps,continuePlanning:!0},t,a+1):!r.taskComplete&&!i.error?_t({...e,previousSteps:o,lastToolPreviousSteps:n||e.lastToolPreviousSteps,continuePlanning:!0},t,a+1):{response:r,toolResults:t,completedWorkflow:void 0,previousSteps:o}}if(r.taskComplete){e.onStatusUpdate?.("Planner marked task complete",r.overallThought,"complete");let s={modelParts:r.modelParts,thought:r.overallThought||"Task completed"};return o=[...o,s],e.onPlannerHistoryUpdate?.(o),{response:r,toolResults:t,completedWorkflow:void 0,previousSteps:o}}return{response:r,toolResults:t,completedWorkflow:void 0,previousSteps:o}}var ce;(function(e){e.Act="actOnTab",e.Crawl="crawlWebPages",e.Extract="extractToSheets",e.PdfFiller="fillPdfForms",e.CreateCustomTool="createCustomTool",e.CreateWebPage="createWebPage",e.CreateGoogleDoc="createGoogleDoc",e.CreateGoogleSlides="createGoogleSlides"})(ce||(ce={}));var Sn=new Set(Object.values(ce)),In={[ce.Act]:M.ACT,[ce.Crawl]:M.CRAWL,[ce.Extract]:M.EXTRACT,[ce.PdfFiller]:M.PDF_FILLER,[ce.CreateCustomTool]:M.CUSTOM_TOOL_GENERATOR,[ce.CreateWebPage]:M.WEBPAGE_GENERATOR,[ce.CreateGoogleDoc]:M.GOOGLE_DOC_GENERATOR,[ce.CreateGoogleSlides]:M.GOOGLE_SLIDES_GENERATOR};function Rn(e){let t=kr(e),a=e,o=[...t].sort((n,r)=>r.startIndex-n.startIndex);for(let n of o)a=a.slice(0,n.startIndex)+a.slice(n.endIndex);return a=a.replace(/\s+/g," ").trim(),{originalMessage:e,cleanedMessage:a,functionCalls:t,hasOnlyFunctionCalls:a===""}}function kr(e){let t=[],a=/@([\w.]+)\s*\(/g,o;for(;o=a.exec(e);){let n=o.index,r=o[1],{endIndex:s,paramsString:c}=wr(e,n+o[0].length);if(s!==-1){let i=xr(c);t.push({functionName:r,parameters:i,rawExpression:e.substring(n,s+1),startIndex:n,endIndex:s+1}),a.lastIndex=s+1}}return t}function yr(e){return Sn.has(e)}function wr(e,t){let a=1,o=!1,n=!1,r=!1,s=t;for(;s<e.length&&a>0;){let c=e[s];if(r){r=!1,s++;continue}c==="\\"&&(o||n)?r=!0:c==='"'&&!o?n=!n:c==="'"&&!n?o=!o:!o&&!n&&(c==="("?a++:c===")"&&a--),s++}return a===0?{endIndex:s-1,paramsString:e.substring(t,s-1).trim()}:{endIndex:-1,paramsString:""}}function xr(e){if(!e)return{};let t={},a=vr(e);for(let o of a){let n=o.indexOf("=");if(n===-1)t.prompt=En(o.trim());else{let r=o.substring(0,n).trim(),s=o.substring(n+1).trim();t[r]=En(s)}}return t}function vr(e){let t=[],a="",o=!1,n=!1,r=0,s=0,c=!1;for(let i=0;i<e.length;i++){let u=e[i];if(c){a+=u,c=!1;continue}if(u==="\\"){c=!0,a+=u;continue}if(u==='"'&&!o?n=!n:u==="'"&&!n&&(o=!o),!o&&!n){if(u==="(")r++;else if(u===")")r--;else if(u==="[")s++;else if(u==="]")s--;else if(u===","&&r===0&&s===0){t.push(a.trim()),a="";continue}}a+=u}return a.trim()&&t.push(a.trim()),t}function En(e){if(!e)return"";if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1).replace(/\\"/g,'"').replace(/\\'/g,"'");if(e.startsWith("[")||e.startsWith("{"))try{return JSON.parse(e)}catch{}return/^-?\d+(\.\d+)?$/.test(e)?parseFloat(e):e.toLowerCase()==="true"?!0:e.toLowerCase()==="false"?!1:e}function An(e,t){if(yr(e))return{isValid:!0,isRequired:!0,isUserDefined:!1,isMcp:!1,mappedFunction:In[e]};if(t[e]){let o=t[e];return{isValid:!0,isRequired:!1,isUserDefined:!o.mcpUrl,isMcp:!!o.mcpUrl,functionDef:o}}let a=Object.entries(t).find(([o,n])=>n.mcpUrl?o.split(".").pop()===e:!1);if(a){let[,o]=a;return{isValid:!0,isRequired:!1,isUserDefined:!1,isMcp:!0,functionDef:o}}return{isValid:!1,isRequired:!1,isUserDefined:!1,isMcp:!1,error:`Function "${e}" not found`}}function Cn(e,t){if(!t||!t.parameters)return e;let a={};for(let[o,n]of Object.entries(e)){let r=t.parameters?.[o];if(!r||!r.type){a[o]=n;continue}switch(r.type){case"number":case"integer":{let s=Number(n);a[o]=Number.isFinite(s)?s:n;break}case"boolean":{typeof n=="boolean"?a[o]=n:typeof n=="string"?a[o]=n.toLowerCase()==="true":a[o]=!!n;break}case"array":{if(Array.isArray(n))a[o]=n;else if(typeof n=="string")try{let s=JSON.parse(n);a[o]=Array.isArray(s)?s:[s]}catch{a[o]=[n]}else a[o]=[n];break}case"object":{if(typeof n=="object")a[o]=n;else if(typeof n=="string")try{a[o]=JSON.parse(n)}catch{a[o]={value:n}}else a[o]={value:n};break}default:a[o]=n}}return a}var _r=new Set(["same_tab_scheduled","same_host_navigated","subdomain_navigated","new_tab_opened","switch_tab"]);function Ee(e){let t=String(e.navigationOutcome||"").trim().toLowerCase(),a=String(e.navigationMode||"").trim().toLowerCase(),o=e.navigationPending===!0,n=t==="same_tab_scheduled"||o&&!t&&a==="same_tab",r=o||_r.has(t);return{isNavigationProgress:r,isSameTabHandoff:n,continuationReason:r?n?"same_tab_navigation_handoff":"loop_continue":null,normalizedOutcome:t,normalizedMode:a}}var Tr=["extract","compare","list","across","multiple","many","report","document","spreadsheet","sheet","table","csv","json","pdf","slides"];function St(e){return $e(e)}function It(e){return Na(e)}function Sr(e,t){let a=String(t?.find(r=>typeof r?.url=="string"&&String(r.url||"").trim())?.url||""),o=It(St(a));if(!o)return!1;let n=String(e||"").match(/https?:\/\/[^\s)]+/g)||[];return n.length?n.some(r=>{let s=It(St(r));return!!s&&s!==o}):!1}function Dn(e,t){let a=String(t?.find(s=>typeof s?.url=="string"&&String(s.url||"").trim())?.url||""),o=It(St(a)),n=String(e||"").match(/https?:\/\/[^\s)]+/g)||[];if(!n.length||!o)return 0;let r=new Set;for(let s of n){let c=It(St(s));!c||c===o||r.add(c)}return r.size}function On(e){let t=String(e||"").toLowerCase();return t?(t.match(/\b(first|second|third|then|after that|next|finally)\b/g)||[]).length>=2||(t.match(/\bstep\s*[1-9]\b/g)||[]).length>=2||(t.match(/\b\d+\.\s+/g)||[]).length>=2:!1}function Tt(e){let t=String(e||"").toLowerCase().trim();if(!t)return 0;let a=0,o=new Set((t.match(/\b(click|open|go|navigate|fill|type|submit|extract|find|search|compare|summarize|collect|download|upload|create|generate|report)\b/g)||[]).map(r=>r.toLowerCase()));t.length>120&&(a+=1),o.size>=2&&(a+=1),(t.match(/\b(and then|then|after|next|finally|first|second|third)\b/g)||[]).length>=1&&(a+=2),(t.match(/\b(extract|compare|list|all|each|every|across|multiple|many)\b/g)||[]).length>=2&&(a+=2),/https?:\/\/|www\./.test(t)&&(a+=2),(t.match(/\b(report|document|doc|spreadsheet|sheet|table|csv|json|pdf|slides|summary)\b/g)||[]).length>=1&&(a+=2);for(let r of Tr)t.includes(r)&&(a+=.25);let n=t.split(/\s+/).filter(Boolean);return/^(click|type|fill|open|go to|scroll|press|select)\b/.test(t)&&n.length<=10&&(a=Math.max(0,a-2)),Math.max(0,Math.min(10,Math.round(a)))}function Ir(e,t){let a=t.taskRouting?.mode||"act";if(a==="planner")return{mode:"planner",reason:"Configured planner mode"};if(a==="act")return{mode:"act",reason:"Configured act mode"};if(Array.isArray(t.previousSteps)&&t.previousSteps.some(c=>Array.isArray(c?.questionsAsked)&&c.questionsAsked.length>0&&!(c?.userAnswers&&Object.keys(c.userAnswers).length>0)))return{mode:"planner",score:Tt(e),reason:"Forced planner due to awaiting_user continuation chain."};if(On(e))return{mode:"planner",score:Tt(e),reason:"Forced planner due to multi-step dependency markers in prompt."};let n=Dn(e,t.tabs||[]);if(n>1)return{mode:"planner",score:Tt(e),reason:`Forced planner due to ${n} cross-domain dependencies.`};let r=Tt(e),s=Math.max(3,Math.min(10,Number(t.taskRouting?.actHeuristicThreshold)||7));return r>=s?{mode:"planner",score:r,reason:`Complexity score ${r} >= ${s}`}:{mode:"act",score:r,reason:`Complexity score ${r} < ${s}`}}function Er(e){if(!e||typeof e!="object"||e.error)return!1;let t=r=>Array.isArray(r)?r.length>0:r&&typeof r=="object"?Object.keys(r).length>0:typeof r=="string"?r.trim().length>0:r!=null;if(t(e.data)||Ee({navigationPending:e.navigationPending,navigationOutcome:e.navigationOutcome,navigationMode:e.navigation}).isNavigationProgress||e.needsUserInput===!0)return!0;let o=e.output;return o?typeof o=="string"?o.trim().length>0:typeof o!="object"?t(o):o.success===!1||o.error?!1:!!(Ee({navigationPending:o.navigationPending,navigationOutcome:o.navigationOutcome,navigationMode:o.navigation}).isNavigationProgress||o.needsUserInput===!0||o.waitingForUserInput===!0||Array.isArray(o.questions)&&o.questions.length>0||String(o.taskStatus||"").trim().toLowerCase()==="in_progress"||o.taskComplete===!0||t(o.data)||typeof o.response=="string"&&String(o.response||"").trim()||t(o)):!1}async function Rr(e){let{message:t,toolFunctions:a}=e,o=Rn(t),n=[];if(o.functionCalls.length===0)return{processedMessage:t,executedFunctions:[],shouldRunPlanner:!0};let r=o.functionCalls.map(l=>({call:l,validation:An(l.functionName,a||{})})),s=r.filter(l=>!l.validation.isValid);if(s.length>0)return{processedMessage:o.cleanedMessage,executedFunctions:[],shouldRunPlanner:!1,error:s.map(l=>l.validation.error).join("; ")};let c=r.every(l=>l.validation.isRequired),i=r.every(l=>l.validation.isUserDefined||l.validation.isMcp);if(o.hasOnlyFunctionCalls&&(c||i)){for(let{call:l,validation:d}of r)if(d.isRequired&&d.mappedFunction){let m={user_input:l.parameters.prompt||l.parameters.user_input||l.parameters.task_instruction||"",...l.parameters},f=await Se({...e,toolName:d.mappedFunction,toolArgs:m,userInput:m.user_input,tabs:e.tabs,trajectoryId:e.trajectoryId,plannerPrevSteps:e.previousSteps,agentLog:e.agentLog,ctx:e.ctx,bridgeRpc:e.bridgeRpc,functionDeclarations:e.functionDeclarations,onPrevStepsUpdate:e.onPrevStepsUpdate});n.push({name:l.functionName,parameters:l.parameters,result:f.output,error:f.error,isRequired:!0,prevSteps:f.prevSteps})}else if(d.functionDef)try{let m=Cn(l.parameters,d.functionDef),f=await e.bridgeRpc("executeClientTool",{name:l.functionName,args:m});n.push({name:l.functionName,parameters:m,result:f,isRequired:!1})}catch(m){n.push({name:l.functionName,parameters:l.parameters,error:m?.message||String(m),isRequired:!1})}return{processedMessage:o.cleanedMessage,executedFunctions:n,shouldRunPlanner:!1}}return{processedMessage:t,executedFunctions:[],shouldRunPlanner:!0}}async function jn(e,t){t.onStatusUpdate?.("Analyzing request",e,"analyze");let a=await Rr({...t,message:e});if(a.error)return{success:!1,processedMessage:a.processedMessage,error:a.error};if(a.executedFunctions.length>0&&!a.shouldRunPlanner)return{success:!0,processedMessage:a.processedMessage,executedFunctions:a.executedFunctions};if(a.shouldRunPlanner){let o=Ir(e,t);t.onStatusUpdate?.(`Route selected: ${o.mode}`,o.reason,"route");let n=t.agentLog?.prevSteps;if(o.mode==="act"){t.onStatusUpdate?.("Executing action plan","Using ACT tool loop","execute");let c=Date.now(),i=await Se({...t,toolName:M.ACT,toolArgs:{user_input:e},userInput:e,tabs:t.tabs,trajectoryId:t.trajectoryId,plannerPrevSteps:t.previousSteps,agentLog:t.agentLog,ctx:t.ctx,bridgeRpc:t.bridgeRpc,functionDeclarations:t.functionDeclarations,onPrevStepsUpdate:t.onPrevStepsUpdate});Array.isArray(i.prevSteps)&&i.prevSteps.length>0&&(n=i.prevSteps,t.onPrevStepsUpdate?.(n));let u=Date.now()-c,l=Array.isArray(i.prevSteps?.[i.prevSteps.length-1]?.functions)?i.prevSteps[i.prevSteps.length-1].functions.length:0,d=Array.isArray(i.prevSteps)?i.prevSteps.reduce((R,N)=>{let v=Array.isArray(N.functions)?N.functions.filter(O=>O?.response?.status==="Failure").length:0;return R+v},0):0,m=Sr(e,t.tabs||[]),f=Dn(e,t.tabs||[]),k=On(e);if(!(!Er(i)&&(!!i.error&&(t.taskRouting?.plannerOnActError??!0)&&t.taskRouting?.mode!=="act"||u>8e3||l>3||d>=2||f>1||m||k)))return{success:!i.error,processedMessage:a.processedMessage,directToolResult:i,route:o,error:i.error}}let r={...t,userInput:e,continuePlanning:!1,agentLog:{prevSteps:n||t.agentLog?.prevSteps,chatLog:t.agentLog?.chatLog},lastToolPreviousSteps:n||t.lastToolPreviousSteps,ctx:t.ctx,bridgeRpc:t.bridgeRpc,functionDeclarations:t.functionDeclarations,onPrevStepsUpdate:t.onPrevStepsUpdate,onPlannerHistoryUpdate:t.onPlannerHistoryUpdate},s=await _t(r,[]);return{success:!s.response.error,processedMessage:a.processedMessage,plannerResponse:s,route:o,error:s.response.error}}return{success:!0,processedMessage:a.processedMessage}}function Pn(e){return!e.resume&&!e.preserveHistory}var oe=[],$=null,te=null,Oe=new ot,ue=[],de=[],V,re="",Le=[],Rt="",he=crypto.randomUUID(),me=crypto.randomUUID(),le=[],Ne,Re=null,Ar=new Set(Object.values(M)),Q=null,se=new Set,Ue=null,ua="",Me=new Set,la="",je=new Map,Ct=3e4,Cr=9e4,Dr=2e4;function Or(e){let t=String(e?.ui?.agent?.name||"").trim();return t?t.slice(0,64):"Rover"}function jr(e){let t=String(e||"").trim();if(t)try{return new URL(t).hostname.toLowerCase()}catch{return}}function Pr(e){if(!(!e?.tools||Array.isArray(e.tools)))return e.tools.web}function zr(e){if(e&&(e.externalNavigationPolicy==="open_new_tab_notice"||e.externalNavigationPolicy==="block"||e.externalNavigationPolicy==="allow"))return e.externalNavigationPolicy}function Mr(e){let t=e.tabs.map((a,o)=>{if(!a.external&&a.accessMode!=="external_placeholder"&&a.accessMode!=="external_scraped")return;let n=a.accessMode==="external_scraped"?"external_scraped":"external_placeholder";return{tabId:o,host:jr(a.url),title:String(a.title||"").trim()||void 0,accessMode:n,reason:String(a.inaccessibleReason||"").trim()||void 0}}).filter(a=>!!a).slice(0,8);return{mode:"rover_embed",agentName:e.agentName,externalNavigationPolicy:e.externalNavigationPolicy,tabIdContract:"tree_index_mapped_by_tab_order",taskBoundaryId:e.taskBoundaryId,...t.length?{externalTabs:t}:{}}}function Nr(e,t){return t===void 0?e:Array.isArray(t)?t:Array.isArray(e)?{...t,client:t.client??e,web:{...t.web||{}}}:{...e,...t,client:t.client??e?.client,web:{...e?.web||{},...t.web||{}}}}function Ur(e,t){return t?{...e,...t,agent:{...e?.agent||{},...t.agent||{}}}:e}function Lr(e){let t=new Map;return e.onmessage=a=>{let o=a.data;if(!o||o.t!=="res")return;let n=t.get(o.id);n&&(t.delete(o.id),n(o))},async function(o,n){let r=crypto.randomUUID(),s=new Promise((c,i)=>{let u=setTimeout(()=>{t.delete(r),i(new Error(`RPC timeout: ${o} (${Ct}ms)`))},Ct);t.set(r,l=>{clearTimeout(u),l.ok?c(l.result):i(new Error(l.error?.message||"RPC error"))})});return e.postMessage({t:"req",id:r,method:o,params:n}),s}}async function qr(){if(!te)return{id:1};try{let e=await te("getTabContext");if(e&&typeof e=="object")return{id:Number(e.logicalTabId||e.id||1),url:e.url,title:e.title,external:!1,accessMode:"live_dom"}}catch{}try{let e=await te("getPageData");return{id:1,url:e?.url,title:e?.title,external:!1,accessMode:"live_dom"}}catch{return{id:1,external:!1,accessMode:"live_dom"}}}async function Fr(){if(!te)return[{id:1}];try{let e=await te("listSessionTabs");if(Array.isArray(e)&&e.length>0){let t=Date.now(),a=e.map(o=>{let n=Number(o?.logicalTabId||o?.id||0),r=!!o?.external;return{id:n,runtimeId:typeof o?.runtimeId=="string"?o.runtimeId:void 0,updatedAt:Number(o?.updatedAt)||0,detachedAt:Number(o?.detachedAt)||0,detachedReason:typeof o?.detachedReason=="string"?o.detachedReason:void 0,url:typeof o?.url=="string"?o.url:void 0,title:typeof o?.title=="string"?o.title:void 0,external:r,accessMode:o?.accessMode==="external_scraped"||o?.accessMode==="external_placeholder"?o.accessMode:r?"external_placeholder":"live_dom",inaccessibleReason:typeof o?.inaccessibleReason=="string"?o.inaccessibleReason:void 0}}).filter(o=>Number.isFinite(o.id)&&o.id>0).filter(o=>{let n=Math.max(Number(o.updatedAt)||0,Number(o.detachedAt)||0);return o.runtimeId?!0:o.external?t-n<=Cr:o.detachedReason==="opened_pending_attach"?t-n<=Dr:!1}).map(o=>({id:o.id,url:o.url,title:o.title,external:o.external,accessMode:o.accessMode,inaccessibleReason:o.inaccessibleReason}));if(a.length)return a}}catch{}return[await qr()]}function Hr(e,t,a){if(a)return a;let o=`${String(e||"")} ${String(t||"")}`.toLowerCase();return o.trim()?/route|routing|complexity/.test(o)?"route":/complete|completed|done|finished|task complete/.test(o)?"complete":/verify|validated|checking|question/.test(o)?"verify":/execute|executing|running|calling|processing|generating|filling|inferring|extracting/.test(o)?"execute":"analyze":"analyze"}function Gr(e,t){let a=String(t||e||"").trim();return a?a.length<=120?a:`${a.slice(0,119)}\u2026`:""}function ee(e,t,a){let o=Hr(e,t,a),n=Gr(e,t),r=Q?.runId||"no-run";if(r!=="no-run"&&se.has(r))return;let s=`${r}|${o}|${String(e||"").trim().toLowerCase()}|${n.toLowerCase()}`;if(!(s===ua||Me.has(s))){if(ua=s,Me.add(s),Me.size>60){let c=Array.from(Me).slice(-30);Me=new Set(c)}self.postMessage({type:"status",message:e,thought:t,stage:o,compactThought:n,runId:Q?.runId}),K()}}function $r(e){let t=Q?.runId||"no-run";if(t!=="no-run"&&se.has(t))return;let a=[t,e.hasExplicitScope?"1":"0",e.scopedTabIdsInput.join(","),e.listedTabIds.join(","),e.keptScopedTabIds.join(","),e.resolvedTabOrder.join(",")].join("|");a!==la&&(la=a,self.postMessage({type:"runtime_tabs_diagnostics",runId:Q?.runId,diagnostics:e}))}function et(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function Bn(e){return e.filter(t=>t?.role==="user").slice(-20).map(t=>({role:"user",content:String(t?.content??"")}))}function Pe(e){if(!Array.isArray(e))return[];if(e.length<=Ke.plannerHistory)return e.map(o=>et(o)).filter(o=>o!==void 0);let t=[e[0],...e.slice(-(Ke.plannerHistory-1))],a=[];for(let o of t){let n=et(o);n!==void 0&&a.push(n)}return a}function zn(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let o=0;o<e.length;o+=1){let n=e[o]?.accTreeId;typeof n=="string"&&n.trim()&&t.push(o)}if(t.length<=3)return;let a=new Set([t[0],...t.slice(-2)]);for(let o of t)a.has(o)||delete e[o].accTreeId}function tt(e){if(!Array.isArray(e))return[];if(e.length<=Ke.prevSteps){let o=[];for(let n of e){let r=et(n);r&&typeof r=="object"&&o.push(r)}return zn(o),o}let t=[e[0],...e.slice(-(Ke.prevSteps-1))],a=[];for(let o of t){let n=et(o);n&&typeof n=="object"&&a.push(n)}return zn(a),a}function Wr(e,t){if(!e||typeof e!="object")return;let a=String(e.key||e.id||"").trim(),o=String(e.query||e.question||"").trim(),n=a||`clarification_${t+1}`;if(!o)return;let r=typeof e.required=="boolean",s=typeof e.optional=="boolean",c=r?!!e.required:s?!e.optional:!0;return{key:n,query:o,...typeof e.id=="string"&&e.id.trim()?{id:e.id.trim()}:{},...typeof e.question=="string"&&e.question.trim()?{question:e.question.trim()}:{},...Array.isArray(e.choices)?{choices:e.choices}:{},required:c}}function ae(e){if(!Array.isArray(e))return[];let t=[],a=new Set;for(let o=0;o<e.length;o+=1){let n=Wr(e[o],o);if(!n)continue;let r=`${n.key}::${n.query}`.toLowerCase();a.has(r)||(a.add(r),t.push(n))}return t.slice(0,6)}function Mn(e){return String(e.query||e.question||"").trim()}function Nn(e,t,a){let o=new Set(t.map(i=>i.key)),n={},r=Array.isArray(e?.keys)?e.keys.map(i=>String(i||"").trim()).filter(i=>!!i&&o.has(i)):[];if(e?.answersByKey&&typeof e.answersByKey=="object")for(let[i,u]of Object.entries(e.answersByKey)){if(!o.has(i))continue;let l=String(u||"").trim();l&&(n[i]=l)}let s=String(a||"").trim();if(Object.keys(n).length===0&&s)if(t.length===1)n[t[0].key]=s;else{let i=s.split(`
11
+ `).map(u=>u.trim()).filter(Boolean);for(let u of i){let l=u.indexOf(":");if(l<=0)continue;let d=u.slice(0,l).trim(),m=u.slice(l+1).trim();!d||!m||!o.has(d)||(n[d]=m)}}let c=String(e?.rawText||s||"").trim();return!c&&Object.keys(n).length===0?r.length?{answersByKey:n,rawText:r.map(i=>`${i}: (no answer provided)`).join(`
12
+ `)}:void 0:{answersByKey:n,rawText:c}}function Br(e,t){let a=["[ASK_USER_ANSWERS]"];for(let o of e){let n=String(t.answersByKey[o.key]||"").trim();a.push(`${o.key}: ${n||"(no answer provided)"}`)}return t.rawText&&(a.push("[RAW_USER_REPLY]"),a.push(t.rawText)),a.join(`
13
+ `)}function we(e){return String(e||"").trim()||void 0}function qe(e){if(!Array.isArray(e))return[];let t=e.map(o=>({role:o?.role==="user"?"user":"model",message:String(o?.message||"").replace(/\s+/g," ").trim()})).filter(o=>!!o.message);if(!t.length)return[];let a=[];for(let o of t){let n=a[a.length-1];n&&n.role===o.role&&n.message===o.message||a.push(o)}return a.slice(-12)}function Ze(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let o of e){let n=Number(o);!Number.isFinite(n)||n<=0||t.has(n)||(t.add(n),a.push(n))}return a}function Kr(e){let t=Ze(e?.scopedTabIds),a=e?.taskTabScope,o=Ze(a?.touchedTabIds),n=Number(a?.seedTabId),r=Number.isFinite(n)&&n>0?n:void 0,s=Ze(t.length>0?t:o.length>0?o:r?[r]:[]);return r&&!s.includes(r)&&s.unshift(r),{scoped:s,seedTabId:r}}function Et(e){if(!e||typeof e!="object")return;let t=Object.prototype.hasOwnProperty.call(e,"scopedTabIds"),a=Object.prototype.hasOwnProperty.call(e,"taskTabScope");if(!t&&!a)return;let o=Kr(e);le=o.scoped,Ne=o.seedTabId}function sa(e){let t=Ze(Array.isArray(e)?e:[e]);if(!t.length)return le;let a=Ze([...Number(Ne)>0?[Number(Ne)]:[],...le,...t]);return a.length===le.length&&a.every((o,n)=>o===le[n])||(le=a),le}function Kn(){for(let e of oe){if(e.role!=="user")continue;let t=we(String(e.content||""));if(t)return t}}function Un(e,t,a){let o=String(t||"").trim(),n=String(e||"").trim(),r=[o?`The tool \`${o}\` just finished executing.`:"No tool was issued previously.",`Please analyze the progress based on the complete history and determine the single next best step required to fulfill the overall request: ${n||"(none)"}.`,`If the request is complete, invoke tool \`${M.TASK_COMPLETE}\` via \`tool_code\`. If not, invoke the appropriate tool.`],s=String(a||"").trim();return s&&(r.push("[LAST_TOOL_OUTPUT]"),r.push(s)),r.join(`
14
+ `)}function Vr(e){if(!(!Array.isArray(e)||e.length===0))for(let t=e.length-1;t>=0;t-=1){let a=e[t],o=Array.isArray(a?.functions)?a.functions:[];for(let n=o.length-1;n>=0;n-=1){let r=o[n];if(String(r?.name||"").trim().toLowerCase()==="ask_user")return{stepIndex:t,functionIndex:n}}}}function Xr(e,t){let a=t?.stepRef;if(a&&t?.boundaryId&&t.boundaryId===me&&Number.isFinite(a.stepIndex)&&a.stepIndex>=0&&Number.isFinite(a.functionIndex)&&a.functionIndex>=0&&a.stepIndex<e.length){let n=e[a.stepIndex],s=(Array.isArray(n?.functions)?n.functions:[])[a.functionIndex];if(String(s?.name||"").trim().toLowerCase()==="ask_user")return{stepIndex:a.stepIndex,functionIndex:a.functionIndex}}let o=[];for(let n=0;n<e.length;n+=1){let r=e[n],s=Array.isArray(r?.functions)?r.functions:[];for(let c=0;c<s.length;c+=1){let i=s[c];String(i?.name||"").trim().toLowerCase()==="ask_user"&&o.push({stepIndex:n,functionIndex:c})}}if(o.length===1)return o[0];if(o.length>1)return o[o.length-1]}function Yr(e){let t=Vr(e);if(!t)return;let a=e[t.stepIndex];return{stepIndex:t.stepIndex,functionIndex:t.functionIndex,...typeof a?.accTreeId=="string"&&String(a.accTreeId).trim()?{accTreeId:String(a.accTreeId).trim()}:{}}}function Ln(e,t){let a=Yr(de);return{questions:t,source:e,askedAt:Date.now(),boundaryId:me,...a?{stepRef:a}:{}}}function Qr(e,t,a){let o=tt(Array.isArray(e)?e:[]),n=ae(t?.questions);if(!n.length)return o;let r=Xr(o,t),s=ae(n).map(d=>({key:d.key,query:d.query,...d.required===!1?{required:!1}:{}})),c=d=>{let m=d&&typeof d=="object"&&!Array.isArray(d)?d:{},f=ae(m.questions),k=f.length?f:ae(n);return{...m,status:"answered",needsUserInput:!1,...k.length?{questions:k}:{},ask_user_answers:{...a.answersByKey},...a.rawText?{raw_user_reply:a.rawText}:{},answeredAt:Date.now()}};if(!r)return o;let i=o[r.stepIndex];Array.isArray(i.functions)||(i.functions=[]);let l=i.functions[r.functionIndex]?.response?.output;return i.functions[r.functionIndex]={name:"ask_user",args:{questions_to_ask:s},response:{status:"Success",output:c(l)}},o}function Jr(e,t,a){let o=Pe(Array.isArray(e)?e:[]);for(let n=o.length-1;n>=0;n-=1){let r=o[n];if(!r||typeof r!="object")continue;let s=ae(r.questionsAsked);if(!s.length)continue;let c=new Set(s.map(l=>l.key.toLowerCase()));if(!t.some(l=>c.has(String(l.key||"").toLowerCase())))continue;let u=r.userAnswers&&typeof r.userAnswers=="object"&&!Array.isArray(r.userAnswers)?r.userAnswers:{};return r.userAnswers={...u,...a},Pe(o)}return o.push({thought:"User provided clarification answers.",questionsAsked:t,userAnswers:a}),Pe(o)}function Zr(){let e=tt(Array.isArray(de)?de:[]),t=we(re),a=V?.stepRef,o=a&&Number.isFinite(a.stepIndex)&&a.stepIndex>=0&&Number.isFinite(a.functionIndex)&&a.functionIndex>=0?{stepIndex:a.stepIndex,functionIndex:a.functionIndex,...typeof a.accTreeId=="string"&&a.accTreeId.trim()?{accTreeId:a.accTreeId.trim()}:{}}:void 0;return{trajectoryId:he,taskBoundaryId:me,...t?{rootUserInput:t}:{},...Le.length?{seedChatLog:qe(Le)}:{},history:Bn(oe),plannerHistory:Pe(Array.isArray(ue)?ue:[]),agentPrevSteps:e,lastToolPreviousSteps:e,pendingAskUser:V?{questions:ae(V.questions),source:V.source,askedAt:Number(V.askedAt)||Date.now(),...typeof V.boundaryId=="string"&&V.boundaryId.trim()?{boundaryId:V.boundaryId.trim()}:{},...o?{stepRef:o}:{}}:void 0}}function K(){self.postMessage({type:"state_snapshot",state:Zr(),activeRun:Q?{runId:Q.runId,text:Q.text,startedAt:Q.startedAt,resume:Q.resume}:null})}function es(e){let t=e;if(!t)return;if(Le=qe(t.seedChatLog),Array.isArray(t.history)){oe.length=0;for(let s of Bn(t.history))oe.push(s)}Array.isArray(t.plannerHistory)&&(ue=Pe(t.plannerHistory)),Array.isArray(t.agentPrevSteps)?de=tt(t.agentPrevSteps):Array.isArray(t.lastToolPreviousSteps)&&(de=tt(t.lastToolPreviousSteps));let a=ae(t.pendingAskUser?.questions),o=t.pendingAskUser?.stepRef,n=o&&Number.isFinite(Number(o.stepIndex))&&Number(o.stepIndex)>=0&&Number.isFinite(Number(o.functionIndex))&&Number(o.functionIndex)>=0?{stepIndex:Number(o.stepIndex),functionIndex:Number(o.functionIndex),...typeof o.accTreeId=="string"&&o.accTreeId.trim()?{accTreeId:o.accTreeId.trim()}:{}}:void 0;a.length>0?V={questions:a,source:t.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(t.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof t.pendingAskUser?.boundaryId=="string"&&String(t.pendingAskUser.boundaryId).trim()||void 0,...n?{stepRef:n}:{}}:V=void 0,typeof t.trajectoryId=="string"&&t.trajectoryId.trim()&&(he=t.trajectoryId.trim()),typeof t.taskBoundaryId=="string"&&String(t.taskBoundaryId).trim()&&(me=String(t.taskBoundaryId).trim()),re=we(t.rootUserInput)||we(Kn())||"",Re||(Re=new be(`rover-${he}`)),K()}function ts(e){if(!Array.isArray(e))return;let t=[];for(let a of e){if(!a||typeof a!="object")continue;let o=a.type;if(o==="text"){let n=String(a.text||"").trim();if(!n)continue;t.push({type:"text",text:n});continue}(o==="tool_output"||o==="json")&&t.push({type:o,data:xe(a.data),label:typeof a.label=="string"?a.label:void 0,toolName:typeof a.toolName=="string"?a.toolName:void 0})}return t.length?t:void 0}function xe(e){let t=et(e);return t==null?null:typeof t=="string"||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)||typeof t=="object"?t:String(t)}function Fe(e){if(e!=null){if(typeof e=="string")return e.trim()||void 0;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e)){let t=[];for(let a of e.slice(0,4)){let o=Fe(a);if(o&&t.push(o),t.length>=3)break}return t.length?t.join(`
15
+ `):void 0}if(typeof e=="object"){let t=["response","message","summary","text","content","result","description"];for(let a of t){let o=e[a];if(typeof o=="string"&&o.trim())return o.trim()}return}}}function qn(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.entries(e).filter(([,r])=>r!=null);if(t.length!==1)return!1;let[a,o]=t[0];return typeof o!="string"||!o.trim()?!1:new Set(["response","message","summary","text","content","result","description"]).has(a)}function da(e,t){if(e==null)return!1;if(typeof e=="string"){let a=e.trim();return a?!t||a!==t.trim():!1}if(Array.isArray(e)){let a=e.filter(o=>o!=null);if(a.length===1){let o=a[0];if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"||qn(o))return!1}return!0}return!qn(e)}function as(e,t){let a=Fe(e),o=a||t?.fallbackText||"",n=[];return da(e,a)&&n.push({type:"tool_output",label:t?.label,toolName:t?.toolName,data:xe(e)}),{text:o,blocks:n.length?n:void 0}}function ge(e){let t=typeof e=="string"?String(e||"").trim():String(e?.text||"").trim(),a=typeof e=="string"?void 0:ts(e.blocks),o=a?.find(c=>c.type==="text"),n=a?.find(c=>c.type==="tool_output"||c.type==="json"),r=t||o?.text||Fe(n?.data)||"";if(!r&&(!a||a.length===0))return"";let s=Q?.runId;return s&&se.has(s)||self.postMessage({type:"assistant",text:r,blocks:a,runId:s}),r}function ns(e){let t=new Set,a=[];for(let o of e)!o?.name||t.has(o.name)||(t.add(o.name),a.push(o));return a}function os(e){return e.filter(t=>!!t?.name&&!Ar.has(t.name))}function At(e){let t=Q?.runId;if(t&&se.has(t))return;let a=e&&typeof e=="object"&&e.code&&e.message?J({errorDetails:e},"Rover API key is required."):J(e,"Rover API key is required.");self.postMessage({type:"auth_required",error:a,runId:t})}var rs=new Set(["goto_url","google_search","go_back","go_forward","refresh_page","open_new_tab"]);function Dt(e,t="Operation failed"){let a=J(e,t);return{success:!1,error:{code:a.code,message:a.message,missing:a.missing,next_action:a.next_action,retryable:a.retryable,requires_api_key:a.requires_api_key},missing:a.missing,next_action:a.next_action,retryable:a.retryable}}function ss(e){if(!e||typeof e!="object")return;let t=e.output;if(t&&typeof t=="object"&&t.success===!1&&t.error){let a=typeof t.error=="object"?t.error:{message:String(t.error||"Operation failed")};return Dt({errorDetails:{...a,missing:t.missing??a.missing,next_action:t.next_action??a.next_action,retryable:t.retryable??a.retryable}},"Operation failed")}if(e.errorDetails||e.error)return Dt(e.errorDetails||{message:e.error},"Operation failed")}function is(e){if(!Array.isArray(e)||e.length===0)return!1;let t=0;for(let a=e.length-1;a>=0;a-=1){let o=e[a],n=Array.isArray(o?.functions)?o.functions:[];if(n.length){t+=1;for(let r=n.length-1;r>=0;r-=1){let s=n[r],c=String(s?.name||s?.toolName||s?.functionName||"").trim();if(!c||!rs.has(c))continue;if(String(s?.response?.status||s?.status||"").trim().toLowerCase()==="success")return!0}if(t>=2)break}}return!1}var cs=new Set(["UNKNOWN_ERROR","MISSING_AUTH_TOKEN","MISSING_AUTH","SESSION_TOKEN_EXPIRED","SESSION_TOKEN_INVALID","BOOTSTRAP_REQUIRED"]);function us(e,t){let a=String(e?.error?.code||"").trim().toUpperCase();return a&&!cs.has(a)||!is(t)?e:{...e,error:{...e.error,code:"NAVIGATION_HANDOFF_PENDING",message:e.error?.message||"Navigation handoff is in progress.",retryable:!0,next_action:"Wait for post-navigation resume and continue the task."},retryable:!0,next_action:"Wait for post-navigation resume and continue the task."}}function ia(e){if(!e||typeof e!="object")return;let t=e.output,a=e.errorDetails,o=t?.policy_action||t?.policyAction||(t?.policyBlocked?"open_new_tab_notice":void 0)||(a?.code==="DOMAIN_SCOPE_BLOCKED"?"block":void 0);o&&self.postMessage({type:"navigation_guardrail",runId:Q?.runId,blockedUrl:t?.blocked_url||t?.url||a?.details?.blockedUrl,currentUrl:t?.current_url||a?.details?.currentUrl,reason:t?.error?.message||a?.message||t?.message,policyAction:o,openedInNewTab:!!t?.openedInNewTab,allowedDomains:t?.allowed_domains||a?.details?.allowedDomains})}function ls(e){let t=String(e||"").toLowerCase();if(!t.trim())return{blocked:!1,score:0,reasons:[]};let a=[{reason:"prompt_injection",pattern:/\b(ignore|bypass|override)\b.{0,40}\b(instruction|policy|guardrail|system|developer)\b/i,weight:2},{reason:"secret_exfiltration",pattern:/\b(token|cookie|password|secret|api key|session key)\b.{0,40}\b(extract|dump|reveal|steal|exfiltrat)/i,weight:3},{reason:"credential_harvest",pattern:/\b(phish|credential|login prompt|social engineering)\b/i,weight:3},{reason:"policy_evasion",pattern:/\b(do not tell|without asking|silently|hidden|covert)\b/i,weight:1}],o=[],n=0;for(let s of a)s.pattern.test(t)&&(o.push(s.reason),n+=s.weight);return{blocked:n>=3,score:n,reasons:o}}function Je(e,t){!Array.isArray(e)||!e.length||(de=tt(e),t?.snapshot!==!1&&K())}function ds(e){let t=[],a=e?.generatedContentRef||{},o=Array.isArray(a.docs)?a.docs:[];for(let i of o)i?.url&&t.push(`[Doc: ${i.url}](${i.url})`);let n=Array.isArray(a.slides)?a.slides:[];for(let i of n)i?.url&&t.push(`[Slides: ${i.url}](${i.url})`);let r=Array.isArray(a.webpages)?a.webpages:[];for(let i of r){let u=i?.storageUrl||i?.downloadUrl;u&&t.push(`[Webpage: ${u}](${u})`)}let s=Array.isArray(a.pdfs)?a.pdfs:[];for(let i of s){let u=i?.storageUrl||i?.downloadUrl;u&&t.push(`[PDF: ${u}](${u})`)}let c=Array.isArray(e?.schemaHeaderSheetInfo)?e.schemaHeaderSheetInfo:[];for(let i of c){let u=i?.sheetInfo?.sheetId;if(!u)continue;let l=i?.sheetInfo?.sheetTabId,d=l?`https://docs.google.com/spreadsheets/d/${u}/edit#gid=${l}`:`https://docs.google.com/spreadsheets/d/${u}/edit`;t.push(`[Sheet: ${d}](${d})`)}return t}function ms(e){if(!Array.isArray(e)||!e.length)return;let t=[];for(let a=0;a<e.length;a+=1){let o=e[a];if(!o)continue;let n=`Step ${a+1}`,r=o.output??o.generatedContentRef??o.schemaHeaderSheetInfo,s=Fe(r);r!==void 0&&da(r,s)&&t.push({type:"tool_output",label:o.toolName?`${n}: ${o.toolName}`:n,toolName:typeof o.toolName=="string"?o.toolName:void 0,data:xe(r)}),(o.error||o.errorDetails)&&t.push({type:"json",label:`${n} error`,data:xe({error:o.error,errorDetails:o.errorDetails})});let c=ds(o);c.length&&t.push({type:"text",text:`${n} artifacts:
16
16
  ${c.map(i=>`- ${i}`).join(`
17
- `)}`})}return t.length?t:void 0}function us(e){if(!Array.isArray(e)||!e.length)return;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(!r)continue;let o=r.output??r.generatedContentRef??r.schemaHeaderSheetInfo,s=Fe(o);if(s&&(t.push(s),t.length>=3))break}if(t.length)return t.join(`
17
+ `)}`})}return t.length?t:void 0}function ps(e){if(!Array.isArray(e)||!e.length)return;let t=[];for(let a=0;a<e.length;a+=1){let o=e[a];if(!o)continue;let n=o.output??o.generatedContentRef??o.schemaHeaderSheetInfo,r=Fe(n);if(r&&(t.push(r),t.length>=3))break}if(t.length)return t.join(`
18
18
 
19
- `)}function ls(e){if(!(!Array.isArray(e)||!e.length))for(let t=e.length-1;t>=0;t-=1){let n=e[t]?.prevSteps;if(Array.isArray(n)&&n.length>0)return n}}async function ds(e,t=1e4){if(!Z)return{ready:!1,attached:!1,external:!!e.external};let n=500,r=Date.now();for(;Date.now()-r<t;){try{let o=await Z("listSessionTabs");if(Array.isArray(o)){let s=o.find(a=>Number(a?.logicalTabId)===e.logicalTabId);if(s?.external)return{ready:!0,attached:!1,external:!0};if(s?.runtimeId)return await new Promise(a=>setTimeout(a,1e3)),{ready:!0,attached:!0,external:!1}}}catch{}await new Promise(o=>setTimeout(o,n))}return{ready:!1,attached:!1,external:!!e.external}}function fs(e){if(!e||typeof e!="object")return;let t=e.output??e;if(t?.openedInNewTab&&typeof t?.logicalTabId=="number")return{logicalTabId:t.logicalTabId,url:typeof t?.url=="string"?t.url:void 0,external:t?.external===!0}}function Kn(e){if(!e||typeof e!="object")return[];let t=e.output&&typeof e.output=="object"?e.output:void 0,n=[Number(e.logicalTabId??e.logical_tab_id??e.tabId??e.tab_id),Number(t?.logicalTabId??t?.logical_tab_id??t?.tabId??t?.tab_id)],r=new Set,o=[];for(let s of n)!Number.isFinite(s)||s<=0||r.has(s)||(r.add(s),o.push(s));return o}function Ht(e){if(!e||typeof e!="object")return;let t=ee(e.questions);if(t.length)return t;let n=e.output,r=ee(n&&typeof n=="object"?n.questions:void 0);if(r.length)return r}function ps(e){if(!Array.isArray(e)||e.length===0)return[];let t=[],n=new Set;for(let r of e){let o=Ht(r);if(!(!o||!o.length))for(let s of o){let a=`${s.key}::${s.query}`.toLowerCase();n.has(a)||(n.add(a),t.push(s))}}return t.slice(0,6)}function gs(e){if(!Array.isArray(e)||e.length===0)return{failed:!1,needsUserInput:!1,navigationPending:!1,sameTabNavigationPending:!1};let t=!1,n=!1,r=!1,o=!1;for(let s of e){if(!s||typeof s!="object")continue;if(s.error||s.errorDetails){t=!0;continue}let a=s.output&&typeof s.output=="object"?s.output:void 0;if(!a)continue;let c=we({navigationPending:a.navigationPending,navigationOutcome:a.navigationOutcome,navigationMode:a.navigation});c.isNavigationProgress&&(r=!0,c.continuationReason==="same_tab_navigation_handoff"&&(o=!0));let i=String(a.taskStatus||a.status||"").trim().toLowerCase();(i==="failure"||i==="failed"||i==="error")&&(t=!0),(i==="waiting_input"||i==="needs_input"||i==="pending_user_input")&&(n=!0),(a.needsUserInput===!0||a.waitingForUserInput===!0)&&(n=!0),ee(a.questions).length>0&&(n=!0)}return{failed:t,needsUserInput:n,navigationPending:r,sameTabNavigationPending:o}}function ms(e){if(!e||typeof e!="object")return{taskComplete:!0,terminalState:"completed",contextResetRecommended:!0};let t=we({navigationPending:e.navigationPending,navigationOutcome:e.navigationOutcome,navigationMode:e.navigation});if(t.isNavigationProgress)return{taskComplete:!1,terminalState:"in_progress",navigationPending:t.continuationReason==="same_tab_navigation_handoff",continuationReason:t.continuationReason||"loop_continue"};let n=Ht(e);if(e.error)return{taskComplete:!1,terminalState:"failed"};let r=e.output;if(r&&typeof r=="object"){let o=r,s=String(e.status||"").trim().toLowerCase();if(s==="failure"||s==="failed"||s==="error")return{taskComplete:!1,terminalState:"failed"};if(s==="waiting_input"||s==="needs_input"||s==="pending_user_input")return{taskComplete:!1,needsUserInput:!0,questions:n,terminalState:"waiting_input",continuationReason:"awaiting_user"};let a=we({navigationPending:o.navigationPending,navigationOutcome:o.navigationOutcome,navigationMode:o.navigation});if(a.isNavigationProgress)return{taskComplete:!1,terminalState:"in_progress",navigationPending:a.continuationReason==="same_tab_navigation_handoff",continuationReason:a.continuationReason||"loop_continue",contextResetRecommended:!1};if(o.needsUserInput===!0||o.waitingForUserInput===!0)return{taskComplete:!1,needsUserInput:!0,questions:n,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(Array.isArray(o.questions)&&o.questions.length>0)return{taskComplete:!1,needsUserInput:!0,questions:n,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(o.error||o.success===!1)return{taskComplete:!1,terminalState:"failed"};let c=String(o.taskStatus||o.status||"").toLowerCase();if(c){if(c==="waiting_input"||c==="needs_input"||c==="pending_user_input")return{taskComplete:!1,needsUserInput:!0,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(c==="failure"||c==="failed"||c==="error")return{taskComplete:!1,terminalState:"failed"}}}return{taskComplete:!0,terminalState:"completed",contextResetRecommended:!0}}function Vn(e){if(!e||typeof e!="object")return{taskComplete:!0,needsUserInput:!1,terminalState:"completed",continuationReason:void 0,contextResetRecommended:!0};let t=e.needsUserInput===!0,n=String(e.terminalState||"").trim().toLowerCase(),r=n==="waiting_input"||n==="in_progress"||n==="completed"||n==="failed"?n:t?"waiting_input":e.taskComplete===!0?"completed":e.taskComplete===!1?"in_progress":"completed",o=r==="waiting_input"||t,s=r==="completed"||e.taskComplete===!0&&!o,a=ee(e.questions),c=String(e.continuationReason||"").trim().toLowerCase(),i=c==="loop_continue"||c==="same_tab_navigation_handoff"||c==="awaiting_user"?c:o?"awaiting_user":e.navigationPending===!0?"same_tab_navigation_handoff":r==="in_progress"&&!s?"loop_continue":void 0,u=e.contextResetRecommended===!0||r==="completed"||r==="failed";return{route:e.route,taskComplete:s,needsUserInput:o,questions:a.length?a:void 0,terminalState:r,continuationReason:i,contextResetRecommended:u}}function Lt(e,t){for(ke.set(e,t);ke.size>20;){let n=ke.keys().next().value;if(!n)break;ke.delete(n)}}function hs(e){for(re.add(e);re.size>20;){let t=re.values().next().value;if(!t)break;re.delete(t)}}function ve(e){if(e&&re.has(e))throw new DOMException("Run cancelled","AbortError")}function Xn(e){te.length=0,se=[],ie=[],z=void 0,ne="",Ue=[]}async function Yn(e){let t=fs(e);if(t){J("Waiting for new tab to load...",void 0,"execute");let n=await ds(t);return{openedTab:t,readyState:n}}return{}}async function _s(e,t){if(!j)throw new Error("Worker not initialized");if(!Z)throw new Error("Bridge RPC not initialized");let n=X?.runId;ve(n),J("Analyzing request",e,"analyze");let r=t?.resume&&te.length>0&&te[te.length-1]?.role==="user"&&te[te.length-1]?.content===e,o=String(e||"").trim();if(j.external?.adversarialGate==="pre_tool_block"){let p=as(o);if(p.blocked)return de("I can\u2019t run that request because it appears adversarial. Please rephrase with a safe, task-focused instruction."),J("Blocked unsafe request",p.reasons.join(", ")||"adversarial_input","complete"),B(),{taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0}}let s=z&&z.boundaryId&&z.boundaryId!==ce?void 0:z;!s&&z&&(z=void 0);let a=he(Zn()),c=he(ne)||a,i=!!(t?.askUserAnswers&&typeof t.askUserAnswers=="object");c&&(ne=c),!s?.questions?.length&&o&&!t?.resume&&!i&&(ne=o);let u=e,l=!1;if(s?.questions?.length){let p=jn(t?.askUserAnswers,s.questions,e);if(p){l=!0;let m=qo(s.questions,p),T=he(ne)||o||a||"";T&&(ne=T),u=Wn(T,"ask_user",m),s.source==="planner"&&(se=Vo(se,s.questions,p.answersByKey)),Ke(Ko(ie,s,p),{snapshot:!1}),z=void 0,B()}}else if(i){let p=jn(t?.askUserAnswers,[],e),m=he(ne)||a||"";m?(ne=m,u=Wn(m,"ask_user",p?.rawText||o)):o&&(ne=o)}!r&&!l&&(te.push({role:"user",content:e}),B()),ve(n);let d=await Lo();ve(n);let f=d.length>0?d:[{id:1,external:!1,accessMode:"live_dom"}],h=await le(Z,f,{scopedTabIds:ae,seedTabId:Me,onDiagnostics:p=>{$o(p)}});ve(n);let y=new Map(d.map(p=>[p.id,p])),v=h.tabOrder.map(p=>{let m=y.get(p);if(m)return m;let T=h.tabMetaById[p];if(!T)return{id:p};let g=!!T.external;return{id:p,url:T.url,title:T.title,external:g,accessMode:T.accessMode||(g?"external_placeholder":"live_dom"),inaccessibleReason:T.inaccessibleReason}}).filter(p=>Number.isFinite(p.id)&&p.id>0),I=v.length>0?v:f;v.length===0&&J("Using fallback tab mapping",`active=${h.activeTabId}; order=${h.tabOrder.join(",")||"none"}`,"analyze"),Re||(Re=new pe(`rover-${fe}`));let C=vo(j),F=Do({tabs:I,agentName:C,externalNavigationPolicy:Oo(j),taskBoundaryId:ce}),R=nn({...j,signal:Ne?.signal,sessionId:_t||j.sessionId||fe,activeRunId:n,rootUserInput:he(ne),runtimeContext:F,tools:{web:ko(j)}},Z,Re);R.isCancelled=()=>!!(n&&re.has(n));let P=Zo(es(Ce.getFunctionDeclarations())),b=Ce.getToolFunctions();Array.isArray(t?.seedChatLog)&&(Ue=Le(t.seedChatLog));let k=Ue,M=p=>{Ke(p,{snapshot:!0})},$=p=>{se=Oe(Array.isArray(p)?p:[]),B()},x=()=>({scopedTabIds:[...ae],seedTabId:Me}),L=p=>{Nt(p)};ve(n);let E=await Gn(u,{tabs:I,scopedTabIds:ae,seedTabId:Me,getScopedTabRuntimeContext:x,onScopedTabIdsTouched:L,previousMessages:te,trajectoryId:fe,files:[],recordingContext:j.recordingContext,previousSteps:se,onStatusUpdate:J,toolFunctions:b,agentLog:{prevSteps:ie,chatLog:k},lastToolPreviousSteps:ie,taskRouting:t?.routing?{...j.taskRouting,mode:t.routing}:j.taskRouting,ctx:R,bridgeRpc:Z,functionDeclarations:P,onPrevStepsUpdate:M,onPlannerHistoryUpdate:$});if(ve(n),E.directToolResult&&Nt(Kn(E.directToolResult)),Array.isArray(E.executedFunctions)&&E.executedFunctions.length>0)for(let p of E.executedFunctions)Nt(Kn(p?.result));if(!E.success){let p=yt(E.error,"Something went wrong."),m=ss(p,ie),T=String(m.error.code||"").trim().toUpperCase();if(!!m.error.retryable||T==="STALE_SEQ"||T==="STALE_EPOCH"||T==="SESSION_TOKEN_EXPIRED"||T==="NAVIGATION_HANDOFF_PENDING"){let _=`${m.error.code}: ${m.error.message}`;return de(_),J("Waiting for navigation/session sync",m.error.message,"verify"),B(),{route:E.route,taskComplete:!1,terminalState:"in_progress",continuationReason:"loop_continue",contextResetRecommended:!1}}return m.error.requires_api_key&&Tt(m.error),de({text:`${m.error.code}: ${m.error.message}`,blocks:[{type:"json",label:"Error details",data:_e(m)}]}),J("Execution failed",m.error.message,"complete"),B(),{route:E.route,taskComplete:!1,terminalState:"failed"}}if(E.executedFunctions?.length){for(let S of E.executedFunctions)Ke(S.prevSteps,{snapshot:!1});let p=[],m=[],T=!1,g=!1,_=!1,A=!1,w=!1,D=[];for(let S of E.executedFunctions){let G=Fe(S.result);if(S.result!==void 0&&$t(S.result,G)&&p.push({type:"tool_output",toolName:S.name,label:`${S.name} output`,data:_e(S.result)}),S.error&&p.push({type:"json",label:`${S.name} error`,data:_e({error:S.error})}),m.push(G?`@${S.name}: ${G}`:`@${S.name}: ${S.error||"ok"}`),S.error){T=!0;continue}let O=S.result;if(!O||typeof O!="object")continue;let U=Array.isArray(O)?O.find(De=>De&&typeof De=="object"):O;if(!U)continue;let H=U.taskComplete;typeof H=="boolean"&&H&&(g=!0);let q=we({navigationPending:U.navigationPending,navigationOutcome:U.navigationOutcome,navigationMode:U.navigation});q.isNavigationProgress&&(_=!0,q.continuationReason==="same_tab_navigation_handoff"&&(A=!0));let K=String(U.taskStatus||U.status||"").trim().toLowerCase();(K==="failed"||K==="error"||K==="failure")&&(T=!0),(K==="waiting_input"||K==="needs_input"||K==="pending_user_input")&&(w=!0),(K==="completed"||K==="complete"||K==="done"||K==="success")&&(g=!0),(U.needsUserInput===!0||U.waitingForUserInput===!0)&&(w=!0);let Te=Ht(U);Te?.length&&(w=!0,D=ee([...D,...Te]))}return de({text:m.join(`
20
- `),blocks:p}),J("Execution completed","Function calls finished","complete"),B(),T?{route:E.route,taskComplete:!1,terminalState:"failed"}:_?{route:E.route,taskComplete:!1,terminalState:"in_progress",continuationReason:A?"same_tab_navigation_handoff":"loop_continue",contextResetRecommended:!1}:w?{route:E.route,taskComplete:!1,needsUserInput:!0,questions:D.length?D:void 0,terminalState:"waiting_input",continuationReason:"awaiting_user"}:{route:E.route,taskComplete:!0,terminalState:"completed",continuationReason:void 0,contextResetRecommended:!0}}if(E.directToolResult){ve(n);let p=await Yn(E.directToolResult);if(p.openedTab&&p.readyState&&!p.readyState.ready&&!p.readyState.external){let A=String(p.openedTab.url||"").trim();if(A&&Z){J("New tab did not attach; continuing in current tab",void 0,"execute");try{let w=await Z("getTabContext"),D=Number(w?.logicalTabId??w?.id);Number.isFinite(D)&&D>0&&await Z("executeTool",{call:{name:"switch_tab",args:{tab_id:D}},payload:{forceLocal:!0,reason:"opened_tab_unattached_reset_active"}});let S=await Z("executeTool",{call:{name:"goto_url",args:{tab_id:0,url:A}},payload:{forceLocal:!0,reason:"opened_tab_unattached_fallback"}});Ut(S)}catch{}}}J("Verifying result",void 0,"verify"),Ut(E.directToolResult),Ke(E.directToolResult.prevSteps,{snapshot:!1});let m=ms(E.directToolResult),T=ee(m.questions);if(m.needsUserInput&&T.length>0){z={...Bn("act",T)},se=Oe([...se,{thought:"Need user clarification before continuing act workflow.",questionsAsked:T}]);let A=T.map(w=>`- ${w.key}: ${qn(w)}`).join(`
21
- `);return de(`I need a bit more info before continuing:
22
- ${A}`),J("Need more input to continue",void 0,"verify"),B(),{route:E.route,taskComplete:!1,needsUserInput:!0,questions:T,terminalState:"waiting_input",continuationReason:"awaiting_user"}}z=void 0;let g=E.directToolResult.output??E.directToolResult.generatedContentRef??E.directToolResult.schemaHeaderSheetInfo,_=ns(E.directToolResult);return _?.error.requires_api_key&&Tt(_.error),de(_?{text:`${_.error.code}: ${_.error.message}`,blocks:[{type:"json",label:"Error details",data:_e(_)}]}:Jo(g,{label:"Tool output"})),J("Execution completed",_?.error.message,"complete"),B(),{route:E.route,taskComplete:m.taskComplete,needsUserInput:m.needsUserInput,questions:ee(m.questions),terminalState:m.terminalState,continuationReason:m.continuationReason,contextResetRecommended:m.contextResetRecommended}}if(E.plannerResponse){J("Verifying planner output",void 0,"verify");let p=E.plannerResponse.response,m=E.plannerResponse.toolResults||[];E.plannerResponse.previousSteps&&(se=E.plannerResponse.previousSteps,B());let T=ls(m);Ke(T,{snapshot:!1});let g=ee(p.questions),_=g.length?[]:ps(m),A=g.length?g:_;if(A.length){let O=A;z=O.length?Bn("planner",O):void 0;let U=O.map(H=>`- ${H.key}: ${qn(H)}`).join(`
23
- `);return de(`I need a bit more info:
24
- ${U}`),J("Planner needs user input",void 0,"verify"),B(),{route:E.route,taskComplete:!1,needsUserInput:!0,questions:O,terminalState:"waiting_input",continuationReason:"awaiting_user"}}z=void 0;for(let O of m)await Yn(O),Ut(O);let w=cs(m),D=p.error||p.errorDetails?yt(p.errorDetails||{message:p.error},"Planner failed"):void 0,S=gs(m);D?.error.requires_api_key&&Tt(D.error),de(D?{text:`${D.error.code}: ${D.error.message}`,blocks:[{type:"json",label:"Planner error",data:_e(D)},...w||[]]}:{text:String(p.overallThought||us(m)||""),blocks:w}),J("Planner execution completed",p.overallThought,"complete"),B();let G=!!p.taskComplete&&!D&&!S.needsUserInput&&!S.navigationPending;return{route:E.route,taskComplete:G,needsUserInput:S.needsUserInput,terminalState:D?"failed":S.needsUserInput?"waiting_input":S.navigationPending?"in_progress":"completed",continuationReason:D?void 0:S.needsUserInput?"awaiting_user":S.navigationPending?S.sameTabNavigationPending?"same_tab_navigation_handoff":"loop_continue":void 0,contextResetRecommended:!D&&G}}return J("Completed",void 0,"complete"),B(),{route:E.route,taskComplete:!0,terminalState:"completed",contextResetRecommended:!0}}async function Qn(e,t){let n=t?.runId||crypto.randomUUID(),r=ke.get(n);if(r){if(r.ok){let c=Vn(r.outcome);self.postMessage({type:"run_completed",runId:n,taskBoundaryId:r.taskBoundaryId,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended})}else self.postMessage({type:"run_completed",runId:n,taskBoundaryId:r.taskBoundaryId,ok:!1,error:r.error,taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:r.contextResetRecommended});return}if(X&&X.runId===n)return;typeof t?.trajectoryId=="string"&&t.trajectoryId.trim()&&(fe=t.trajectoryId.trim());let o=!!t?.resume,s=!!t?.preserveHistory,a=ce;Ft="",Pe=new Set,Gt="",re.delete(n),Ne=new AbortController,X={runId:n,text:e,startedAt:Date.now(),resume:o,preserveHistory:s},self.postMessage({type:"run_started",runId:n,text:e,resume:o,taskBoundaryId:a}),$n({resume:o,preserveHistory:s})&&(te.length=0),B();try{let c=Vn(await _s(e,{resume:o,preserveHistory:s,seedChatLog:Array.isArray(t?.seedChatLog)?Le(t.seedChatLog):void 0,routing:t?.routing,askUserAnswers:t?.askUserAnswers}));c.terminalState==="completed"||c.terminalState==="failed"?(Lt(n,{ok:!0,outcome:c,taskBoundaryId:a}),self.postMessage({type:"run_completed",runId:n,taskBoundaryId:a,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended})):(ke.delete(n),self.postMessage({type:"run_state_transition",runId:n,taskBoundaryId:a,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended}))}catch(c){if(c?.name==="AbortError")Lt(n,{ok:!1,error:"Run cancelled",taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!1,taskBoundaryId:a}),self.postMessage({type:"run_completed",runId:n,taskBoundaryId:a,ok:!1,error:"Run cancelled",taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!1});else throw Lt(n,{ok:!1,error:c?.message||String(c),taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0,taskBoundaryId:a}),self.postMessage({type:"run_completed",runId:n,taskBoundaryId:a,ok:!1,error:c?.message||String(c),taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0}),c}finally{Ne=null,X=null,B()}}self.onmessage=async e=>{let t=e.data||{};try{if(t.type==="init"){j=t.config,_t=typeof j.sessionId=="string"&&j.sessionId.trim()?j.sessionId.trim():_t||crypto.randomUUID(),ce=typeof j.taskBoundaryId=="string"&&j.taskBoundaryId.trim()?j.taskBoundaryId.trim():ce,ht(j),j?.timing?.actionTimeoutMs&&(bt=Math.max(5e3,Math.min(78e4,Number(j.timing.actionTimeoutMs)))),Re||(Re=new pe(`rover-${fe}`)),t.port&&(Z=No(t.port),t.port.start?.());let n=j.tools;if(Array.isArray(n))for(let r of n)Ce.registerTool(r);else if(n?.client)for(let r of n.client)Ce.registerTool(r);self.postMessage({type:"ready"}),B();return}if(t.type==="hydrate_state"){Yo(t.state),self.postMessage({type:"hydrated"});return}if(t.type==="update_config"){if(!j)throw new Error("Worker not initialized");let n=t.config||{};j={...j,...n,ui:Mo(j.ui,n.ui),tools:Po(j.tools,n.tools)},typeof n.sessionId=="string"&&n.sessionId.trim()&&(_t=n.sessionId.trim()),n?.timing?.actionTimeoutMs&&(bt=Math.max(5e3,Math.min(78e4,Number(n.timing.actionTimeoutMs)))),typeof n.taskBoundaryId=="string"&&n.taskBoundaryId.trim()&&(ce=n.taskBoundaryId.trim()),ht(n);let r=n.tools;if(Array.isArray(r))for(let o of r)Ce.registerTool(o);else if(r?.client)for(let o of r.client)Ce.registerTool(o);self.postMessage({type:"updated"}),B();return}if(t.type==="register_tool"){t.tool&&Ce.registerTool(t.tool);return}if(t.type==="start_new_task"){if(!j)throw new Error("Worker not initialized");let n=typeof t.taskId=="string"&&t.taskId.trim()?t.taskId.trim():crypto.randomUUID(),r=typeof t.taskBoundaryId=="string"&&t.taskBoundaryId.trim()?t.taskBoundaryId.trim():crypto.randomUUID();Ne?.abort(),Xn("new_task"),ke.clear(),re.clear(),fe=n,ce=r,ht(t),Re=new pe(`rover-${fe}`),X=null,Ne=null,B(),self.postMessage({type:"task_started",taskId:n});return}if(t.type==="cancel_run"){typeof t.runId=="string"&&t.runId&&(hs(t.runId),Ne?.abort()),Xn("cancel"),B();return}if(t.type==="run"){ht(t);let n=Array.isArray(t.seedChatLog)?t.seedChatLog:Array.isArray(t.followupChatLog)?t.followupChatLog:void 0;await Qn(String(t.text||""),{runId:t.runId,resume:!!t.resume,preserveHistory:!!t.preserveHistory,seedChatLog:Array.isArray(n)?Le(n):void 0,routing:t.routing,askUserAnswers:t.askUserAnswers});return}if(t.type==="user"){let n=Array.isArray(t.seedChatLog)?t.seedChatLog:Array.isArray(t.followupChatLog)?t.followupChatLog:void 0;await Qn(String(t.text||""),{runId:t.runId,resume:!!t.resume,preserveHistory:!!t.preserveHistory,seedChatLog:Array.isArray(n)?Le(n):void 0,askUserAnswers:t.askUserAnswers});return}}catch(n){if(Yt(n)){Tt(n);return}self.postMessage({type:"error",message:n?.message||String(n),runId:X?.runId})}};
19
+ `)}function fs(e){if(!(!Array.isArray(e)||!e.length))for(let t=e.length-1;t>=0;t-=1){let a=e[t]?.prevSteps;if(Array.isArray(a)&&a.length>0)return a}}async function gs(e,t=1e4){if(!te)return{ready:!1,attached:!1,external:!!e.external};let a=500,o=Date.now();for(;Date.now()-o<t;){try{let n=await te("listSessionTabs");if(Array.isArray(n)){let r=n.find(s=>Number(s?.logicalTabId)===e.logicalTabId);if(r?.external)return{ready:!0,attached:!1,external:!0};if(r?.runtimeId)return await new Promise(s=>setTimeout(s,1e3)),{ready:!0,attached:!0,external:!1}}}catch{}await new Promise(n=>setTimeout(n,a))}return{ready:!1,attached:!1,external:!!e.external}}function hs(e){if(!e||typeof e!="object")return;let t=e.output??e;if(t?.openedInNewTab&&typeof t?.logicalTabId=="number")return{logicalTabId:t.logicalTabId,url:typeof t?.url=="string"?t.url:void 0,external:t?.external===!0}}function Fn(e){if(!e||typeof e!="object")return[];let t=e.output&&typeof e.output=="object"?e.output:void 0,a=[Number(e.logicalTabId??e.logical_tab_id??e.tabId??e.tab_id),Number(t?.logicalTabId??t?.logical_tab_id??t?.tabId??t?.tab_id)],o=new Set,n=[];for(let r of a)!Number.isFinite(r)||r<=0||o.has(r)||(o.add(r),n.push(r));return n}function ma(e){if(!e||typeof e!="object")return;let t=ae(e.questions);if(t.length)return t;let a=e.output,o=ae(a&&typeof a=="object"?a.questions:void 0);if(o.length)return o}function bs(e){if(!Array.isArray(e)||e.length===0)return[];let t=[],a=new Set;for(let o of e){let n=ma(o);if(!(!n||!n.length))for(let r of n){let s=`${r.key}::${r.query}`.toLowerCase();a.has(s)||(a.add(s),t.push(r))}}return t.slice(0,6)}function ks(e){if(!Array.isArray(e)||e.length===0)return{failed:!1,needsUserInput:!1,navigationPending:!1,sameTabNavigationPending:!1};let t=!1,a=!1,o=!1,n=!1;for(let r of e){if(!r||typeof r!="object")continue;if(r.error||r.errorDetails){t=!0;continue}let s=r.output&&typeof r.output=="object"?r.output:void 0;if(!s)continue;let c=Ee({navigationPending:s.navigationPending,navigationOutcome:s.navigationOutcome,navigationMode:s.navigation});c.isNavigationProgress&&(o=!0,c.continuationReason==="same_tab_navigation_handoff"&&(n=!0));let i=String(s.taskStatus||s.status||"").trim().toLowerCase();(i==="failure"||i==="failed"||i==="error")&&(t=!0),(i==="waiting_input"||i==="needs_input"||i==="pending_user_input")&&(a=!0),(s.needsUserInput===!0||s.waitingForUserInput===!0)&&(a=!0),ae(s.questions).length>0&&(a=!0)}return{failed:t,needsUserInput:a,navigationPending:o,sameTabNavigationPending:n}}function ys(e){if(!e||typeof e!="object")return{taskComplete:!0,terminalState:"completed",contextResetRecommended:!0};let t=Ee({navigationPending:e.navigationPending,navigationOutcome:e.navigationOutcome,navigationMode:e.navigation});if(t.isNavigationProgress)return{taskComplete:!1,terminalState:"in_progress",navigationPending:t.continuationReason==="same_tab_navigation_handoff",continuationReason:t.continuationReason||"loop_continue"};let a=ma(e);if(e.error)return{taskComplete:!1,terminalState:"failed"};let o=e.output;if(o&&typeof o=="object"){let n=o,r=String(e.status||"").trim().toLowerCase();if(r==="failure"||r==="failed"||r==="error")return{taskComplete:!1,terminalState:"failed"};if(r==="waiting_input"||r==="needs_input"||r==="pending_user_input")return{taskComplete:!1,needsUserInput:!0,questions:a,terminalState:"waiting_input",continuationReason:"awaiting_user"};let s=Ee({navigationPending:n.navigationPending,navigationOutcome:n.navigationOutcome,navigationMode:n.navigation});if(s.isNavigationProgress)return{taskComplete:!1,terminalState:"in_progress",navigationPending:s.continuationReason==="same_tab_navigation_handoff",continuationReason:s.continuationReason||"loop_continue",contextResetRecommended:!1};if(n.needsUserInput===!0||n.waitingForUserInput===!0)return{taskComplete:!1,needsUserInput:!0,questions:a,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(Array.isArray(n.questions)&&n.questions.length>0)return{taskComplete:!1,needsUserInput:!0,questions:a,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(n.error||n.success===!1)return{taskComplete:!1,terminalState:"failed"};let c=String(n.taskStatus||n.status||"").toLowerCase();if(c){if(c==="waiting_input"||c==="needs_input"||c==="pending_user_input")return{taskComplete:!1,needsUserInput:!0,terminalState:"waiting_input",continuationReason:"awaiting_user"};if(c==="failure"||c==="failed"||c==="error")return{taskComplete:!1,terminalState:"failed"}}}return{taskComplete:!0,terminalState:"completed",contextResetRecommended:!0}}function Hn(e){if(!e||typeof e!="object")return{taskComplete:!0,needsUserInput:!1,terminalState:"completed",continuationReason:void 0,contextResetRecommended:!0};let t=e.needsUserInput===!0,a=String(e.terminalState||"").trim().toLowerCase(),o=a==="waiting_input"||a==="in_progress"||a==="completed"||a==="failed"?a:t?"waiting_input":e.taskComplete===!0?"completed":e.taskComplete===!1?"in_progress":"completed",n=o==="waiting_input"||t,r=o==="completed"||e.taskComplete===!0&&!n,s=ae(e.questions),c=String(e.continuationReason||"").trim().toLowerCase(),i=c==="loop_continue"||c==="same_tab_navigation_handoff"||c==="awaiting_user"?c:n?"awaiting_user":e.navigationPending===!0?"same_tab_navigation_handoff":o==="in_progress"&&!r?"loop_continue":void 0,u=e.contextResetRecommended===!0||o==="completed"||o==="failed";return{route:e.route,taskComplete:r,needsUserInput:n,questions:s.length?s:void 0,terminalState:o,continuationReason:i,contextResetRecommended:u}}function ca(e,t){for(je.set(e,t);je.size>20;){let a=je.keys().next().value;if(!a)break;je.delete(a)}}function ws(e){for(se.add(e);se.size>20;){let t=se.values().next().value;if(!t)break;se.delete(t)}}function De(e){if(e&&se.has(e))throw new DOMException("Run cancelled","AbortError")}function Gn(e){oe.length=0,ue=[],de=[],V=void 0,re="",Le=[]}async function $n(e){let t=hs(e);if(t){ee("Waiting for new tab to load...",void 0,"execute");let a=await gs(t);return{openedTab:t,readyState:a}}return{}}async function xs(e,t){if(!$)throw new Error("Worker not initialized");if(!te)throw new Error("Bridge RPC not initialized");let a=Q?.runId;De(a),ee("Analyzing request",e,"analyze");let o=t?.resume&&oe.length>0&&oe[oe.length-1]?.role==="user"&&oe[oe.length-1]?.content===e,n=String(e||"").trim();if($.external?.adversarialGate==="pre_tool_block"){let p=ls(n);if(p.blocked)return ge("I can\u2019t run that request because it appears adversarial. Please rephrase with a safe, task-focused instruction."),ee("Blocked unsafe request",p.reasons.join(", ")||"adversarial_input","complete"),K(),{taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0}}let r=V&&V.boundaryId&&V.boundaryId!==me?void 0:V;!r&&V&&(V=void 0);let s=we(Kn()),c=we(re)||s,i=!!(t?.askUserAnswers&&typeof t.askUserAnswers=="object");c&&(re=c),!r?.questions?.length&&n&&!t?.resume&&!i&&(re=n);let u=e,l=!1;if(r?.questions?.length){let p=Nn(t?.askUserAnswers,r.questions,e);if(p){l=!0;let h=Br(r.questions,p),y=we(re)||n||s||"";y&&(re=y),u=Un(y,"ask_user",h),r.source==="planner"&&(ue=Jr(ue,r.questions,p.answersByKey)),Je(Qr(de,r,p),{snapshot:!1}),V=void 0,K()}}else if(i){let p=Nn(t?.askUserAnswers,[],e),h=we(re)||s||"";h?(re=h,u=Un(h,"ask_user",p?.rawText||n)):n&&(re=n)}!o&&!l&&(oe.push({role:"user",content:e}),K()),De(a);let d=await Fr();De(a);let m=d.length>0?d:[{id:1,external:!1,accessMode:"live_dom"}],f=await fe(te,m,{scopedTabIds:le,seedTabId:Ne,onDiagnostics:p=>{$r(p)}});De(a);let k=new Map(d.map(p=>[p.id,p])),C=f.tabOrder.map(p=>{let h=k.get(p);if(h)return h;let y=f.tabMetaById[p];if(!y)return{id:p};let g=!!y.external;return{id:p,url:y.url,title:y.title,external:g,accessMode:y.accessMode||(g?"external_placeholder":"live_dom"),inaccessibleReason:y.inaccessibleReason}}).filter(p=>Number.isFinite(p.id)&&p.id>0),x=C.length>0?C:m;C.length===0&&ee("Using fallback tab mapping",`active=${f.activeTabId}; order=${f.tabOrder.join(",")||"none"}`,"analyze"),Re||(Re=new be(`rover-${he}`));let R=Or($),N=Mr({tabs:x,agentName:R,externalNavigationPolicy:zr($),taskBoundaryId:me}),v=Ya({...$,signal:Ue?.signal,sessionId:Rt||$.sessionId||he,activeRunId:a,rootUserInput:we(re),runtimeContext:N,tools:{web:Pr($)}},te,Re);v.isCancelled=()=>!!(a&&se.has(a));let O=ns(os(Oe.getFunctionDeclarations())),_=Oe.getToolFunctions();Array.isArray(t?.seedChatLog)&&(Le=qe(t.seedChatLog));let D=Le,P=p=>{Je(p,{snapshot:!0})},F=p=>{ue=Pe(Array.isArray(p)?p:[]),K()},S=()=>({scopedTabIds:[...le],seedTabId:Ne}),U=p=>{sa(p)};De(a);let I=await jn(u,{tabs:x,scopedTabIds:le,seedTabId:Ne,getScopedTabRuntimeContext:S,onScopedTabIdsTouched:U,previousMessages:oe,trajectoryId:he,files:[],recordingContext:$.recordingContext,previousSteps:ue,onStatusUpdate:ee,toolFunctions:_,agentLog:{prevSteps:de,chatLog:D},lastToolPreviousSteps:de,taskRouting:t?.routing?{...$.taskRouting,mode:t.routing}:$.taskRouting,ctx:v,bridgeRpc:te,functionDeclarations:O,onPrevStepsUpdate:P,onPlannerHistoryUpdate:F});if(De(a),I.directToolResult&&sa(Fn(I.directToolResult)),Array.isArray(I.executedFunctions)&&I.executedFunctions.length>0)for(let p of I.executedFunctions)sa(Fn(p?.result));if(!I.success){let p=Dt(I.error,"Something went wrong."),h=us(p,de),y=String(h.error.code||"").trim().toUpperCase();if(!!h.error.retryable||y==="STALE_SEQ"||y==="STALE_EPOCH"||y==="SESSION_TOKEN_EXPIRED"||y==="NAVIGATION_HANDOFF_PENDING"){let b=`${h.error.code}: ${h.error.message}`;return ge(b),ee("Waiting for navigation/session sync",h.error.message,"verify"),K(),{route:I.route,taskComplete:!1,terminalState:"in_progress",continuationReason:"loop_continue",contextResetRecommended:!1}}return h.error.requires_api_key&&At(h.error),ge({text:`${h.error.code}: ${h.error.message}`,blocks:[{type:"json",label:"Error details",data:xe(h)}]}),ee("Execution failed",h.error.message,"complete"),K(),{route:I.route,taskComplete:!1,terminalState:"failed"}}if(I.executedFunctions?.length){for(let T of I.executedFunctions)Je(T.prevSteps,{snapshot:!1});let p=[],h=[],y=!1,g=!1,b=!1,A=!1,E=!1,j=[];for(let T of I.executedFunctions){let q=Fe(T.result);if(T.result!==void 0&&da(T.result,q)&&p.push({type:"tool_output",toolName:T.name,label:`${T.name} output`,data:xe(T.result)}),T.error&&p.push({type:"json",label:`${T.name} error`,data:xe({error:T.error})}),h.push(q?`@${T.name}: ${q}`:`@${T.name}: ${T.error||"ok"}`),T.error){y=!0;continue}let w=T.result;if(!w||typeof w!="object")continue;let z=Array.isArray(w)?w.find(pe=>pe&&typeof pe=="object"):w;if(!z)continue;let H=z.taskComplete;typeof H=="boolean"&&H&&(g=!0);let G=Ee({navigationPending:z.navigationPending,navigationOutcome:z.navigationOutcome,navigationMode:z.navigation});G.isNavigationProgress&&(b=!0,G.continuationReason==="same_tab_navigation_handoff"&&(A=!0));let W=String(z.taskStatus||z.status||"").trim().toLowerCase();(W==="failed"||W==="error"||W==="failure")&&(y=!0),(W==="waiting_input"||W==="needs_input"||W==="pending_user_input")&&(E=!0),(W==="completed"||W==="complete"||W==="done"||W==="success")&&(g=!0),(z.needsUserInput===!0||z.waitingForUserInput===!0)&&(E=!0);let ie=ma(z);ie?.length&&(E=!0,j=ae([...j,...ie]))}return ge({text:h.join(`
20
+ `),blocks:p}),ee("Execution completed","Function calls finished","complete"),K(),y?{route:I.route,taskComplete:!1,terminalState:"failed"}:b?{route:I.route,taskComplete:!1,terminalState:"in_progress",continuationReason:A?"same_tab_navigation_handoff":"loop_continue",contextResetRecommended:!1}:E?{route:I.route,taskComplete:!1,needsUserInput:!0,questions:j.length?j:void 0,terminalState:"waiting_input",continuationReason:"awaiting_user"}:{route:I.route,taskComplete:!0,terminalState:"completed",continuationReason:void 0,contextResetRecommended:!0}}if(I.directToolResult){De(a);let p=await $n(I.directToolResult);if(p.openedTab&&p.readyState&&!p.readyState.ready&&!p.readyState.external){let A=String(p.openedTab.url||"").trim();if(A&&te){ee("New tab did not attach; continuing in current tab",void 0,"execute");try{let E=await te("getTabContext"),j=Number(E?.logicalTabId??E?.id);Number.isFinite(j)&&j>0&&await te("executeTool",{call:{name:"switch_tab",args:{tab_id:j}},payload:{forceLocal:!0,reason:"opened_tab_unattached_reset_active"}});let T=await te("executeTool",{call:{name:"goto_url",args:{tab_id:0,url:A}},payload:{forceLocal:!0,reason:"opened_tab_unattached_fallback"}});ia(T)}catch{}}}ee("Verifying result",void 0,"verify"),ia(I.directToolResult),Je(I.directToolResult.prevSteps,{snapshot:!1});let h=ys(I.directToolResult),y=ae(h.questions);if(h.needsUserInput&&y.length>0){V={...Ln("act",y)},ue=Pe([...ue,{thought:"Need user clarification before continuing act workflow.",questionsAsked:y}]);let A=y.map(E=>`- ${E.key}: ${Mn(E)}`).join(`
21
+ `);return ge(`I need a bit more info before continuing:
22
+ ${A}`),ee("Need more input to continue",void 0,"verify"),K(),{route:I.route,taskComplete:!1,needsUserInput:!0,questions:y,terminalState:"waiting_input",continuationReason:"awaiting_user"}}V=void 0;let g=I.directToolResult.output??I.directToolResult.generatedContentRef??I.directToolResult.schemaHeaderSheetInfo,b=ss(I.directToolResult);return b?.error.requires_api_key&&At(b.error),ge(b?{text:`${b.error.code}: ${b.error.message}`,blocks:[{type:"json",label:"Error details",data:xe(b)}]}:as(g,{label:"Tool output"})),ee("Execution completed",b?.error.message,"complete"),K(),{route:I.route,taskComplete:h.taskComplete,needsUserInput:h.needsUserInput,questions:ae(h.questions),terminalState:h.terminalState,continuationReason:h.continuationReason,contextResetRecommended:h.contextResetRecommended}}if(I.plannerResponse){ee("Verifying planner output",void 0,"verify");let p=I.plannerResponse.response,h=I.plannerResponse.toolResults||[];I.plannerResponse.previousSteps&&(ue=I.plannerResponse.previousSteps,K());let y=fs(h);Je(y,{snapshot:!1});let g=ae(p.questions),b=g.length?[]:bs(h),A=g.length?g:b;if(A.length){let w=A;V=w.length?Ln("planner",w):void 0;let z=w.map(H=>`- ${H.key}: ${Mn(H)}`).join(`
23
+ `);return ge(`I need a bit more info:
24
+ ${z}`),ee("Planner needs user input",void 0,"verify"),K(),{route:I.route,taskComplete:!1,needsUserInput:!0,questions:w,terminalState:"waiting_input",continuationReason:"awaiting_user"}}V=void 0;for(let w of h)await $n(w),ia(w);let E=ms(h),j=p.error||p.errorDetails?Dt(p.errorDetails||{message:p.error},"Planner failed"):void 0,T=ks(h);j?.error.requires_api_key&&At(j.error),ge(j?{text:`${j.error.code}: ${j.error.message}`,blocks:[{type:"json",label:"Planner error",data:xe(j)},...E||[]]}:{text:String(p.overallThought||ps(h)||""),blocks:E}),ee("Planner execution completed",p.overallThought,"complete"),K();let q=!!p.taskComplete&&!j&&!T.needsUserInput&&!T.navigationPending;return{route:I.route,taskComplete:q,needsUserInput:T.needsUserInput,terminalState:j?"failed":T.needsUserInput?"waiting_input":T.navigationPending?"in_progress":"completed",continuationReason:j?void 0:T.needsUserInput?"awaiting_user":T.navigationPending?T.sameTabNavigationPending?"same_tab_navigation_handoff":"loop_continue":void 0,contextResetRecommended:!j&&q}}return ee("Completed",void 0,"complete"),K(),{route:I.route,taskComplete:!0,terminalState:"completed",contextResetRecommended:!0}}async function Wn(e,t){let a=t?.runId||crypto.randomUUID(),o=je.get(a);if(o){if(o.ok){let c=Hn(o.outcome);self.postMessage({type:"run_completed",runId:a,taskBoundaryId:o.taskBoundaryId,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended})}else self.postMessage({type:"run_completed",runId:a,taskBoundaryId:o.taskBoundaryId,ok:!1,error:o.error,taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:o.contextResetRecommended});return}if(Q&&Q.runId===a)return;typeof t?.trajectoryId=="string"&&t.trajectoryId.trim()&&(he=t.trajectoryId.trim());let n=!!t?.resume,r=!!t?.preserveHistory,s=me;ua="",Me=new Set,la="",se.delete(a),Ue=new AbortController,Q={runId:a,text:e,startedAt:Date.now(),resume:n,preserveHistory:r},self.postMessage({type:"run_started",runId:a,text:e,resume:n,taskBoundaryId:s}),Pn({resume:n,preserveHistory:r})&&(oe.length=0),K();try{let c=Hn(await xs(e,{resume:n,preserveHistory:r,seedChatLog:Array.isArray(t?.seedChatLog)?qe(t.seedChatLog):void 0,routing:t?.routing,askUserAnswers:t?.askUserAnswers}));c.terminalState==="completed"||c.terminalState==="failed"?(ca(a,{ok:!0,outcome:c,taskBoundaryId:s}),self.postMessage({type:"run_completed",runId:a,taskBoundaryId:s,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended})):(je.delete(a),self.postMessage({type:"run_state_transition",runId:a,taskBoundaryId:s,ok:!0,route:c.route,taskComplete:c.taskComplete,needsUserInput:c.needsUserInput,questions:c.questions,terminalState:c.terminalState,continuationReason:c.continuationReason,contextResetRecommended:c.contextResetRecommended}))}catch(c){if(c?.name==="AbortError")ca(a,{ok:!1,error:"Run cancelled",taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!1,taskBoundaryId:s}),self.postMessage({type:"run_completed",runId:a,taskBoundaryId:s,ok:!1,error:"Run cancelled",taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!1});else throw ca(a,{ok:!1,error:c?.message||String(c),taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0,taskBoundaryId:s}),self.postMessage({type:"run_completed",runId:a,taskBoundaryId:s,ok:!1,error:c?.message||String(c),taskComplete:!1,needsUserInput:!1,terminalState:"failed",contextResetRecommended:!0}),c}finally{Ue=null,Q=null,K()}}self.onmessage=async e=>{let t=e.data||{};try{if(t.type==="init"){$=t.config,Rt=typeof $.sessionId=="string"&&$.sessionId.trim()?$.sessionId.trim():Rt||crypto.randomUUID(),me=typeof $.taskBoundaryId=="string"&&$.taskBoundaryId.trim()?$.taskBoundaryId.trim():me,Et($),$?.timing?.actionTimeoutMs&&(Ct=Math.max(5e3,Math.min(78e4,Number($.timing.actionTimeoutMs)))),Re||(Re=new be(`rover-${he}`)),t.port&&(te=Lr(t.port),t.port.start?.());let a=$.tools;if(Array.isArray(a))for(let o of a)Oe.registerTool(o);else if(a?.client)for(let o of a.client)Oe.registerTool(o);self.postMessage({type:"ready"}),K();return}if(t.type==="hydrate_state"){es(t.state),self.postMessage({type:"hydrated"});return}if(t.type==="update_config"){if(!$)throw new Error("Worker not initialized");let a=t.config||{};$={...$,...a,ui:Ur($.ui,a.ui),tools:Nr($.tools,a.tools)},typeof a.sessionId=="string"&&a.sessionId.trim()&&(Rt=a.sessionId.trim()),a?.timing?.actionTimeoutMs&&(Ct=Math.max(5e3,Math.min(78e4,Number(a.timing.actionTimeoutMs)))),typeof a.taskBoundaryId=="string"&&a.taskBoundaryId.trim()&&(me=a.taskBoundaryId.trim()),Et(a);let o=a.tools;if(Array.isArray(o))for(let n of o)Oe.registerTool(n);else if(o?.client)for(let n of o.client)Oe.registerTool(n);self.postMessage({type:"updated"}),K();return}if(t.type==="register_tool"){t.tool&&Oe.registerTool(t.tool);return}if(t.type==="start_new_task"){if(!$)throw new Error("Worker not initialized");let a=typeof t.taskId=="string"&&t.taskId.trim()?t.taskId.trim():crypto.randomUUID(),o=typeof t.taskBoundaryId=="string"&&t.taskBoundaryId.trim()?t.taskBoundaryId.trim():crypto.randomUUID();Ue?.abort(),Gn("new_task"),je.clear(),se.clear(),he=a,me=o,Et(t),Re=new be(`rover-${he}`),Q=null,Ue=null,K(),self.postMessage({type:"task_started",taskId:a});return}if(t.type==="cancel_run"){typeof t.runId=="string"&&t.runId&&(ws(t.runId),Ue?.abort()),Gn("cancel"),K();return}if(t.type==="run"){Et(t);let a=Array.isArray(t.seedChatLog)?t.seedChatLog:Array.isArray(t.followupChatLog)?t.followupChatLog:void 0;await Wn(String(t.text||""),{runId:t.runId,resume:!!t.resume,preserveHistory:!!t.preserveHistory,seedChatLog:Array.isArray(a)?qe(a):void 0,routing:t.routing,askUserAnswers:t.askUserAnswers});return}if(t.type==="user"){let a=Array.isArray(t.seedChatLog)?t.seedChatLog:Array.isArray(t.followupChatLog)?t.followupChatLog:void 0;await Wn(String(t.text||""),{runId:t.runId,resume:!!t.resume,preserveHistory:!!t.preserveHistory,seedChatLog:Array.isArray(a)?qe(a):void 0,askUserAnswers:t.askUserAnswers});return}}catch(a){if($a(a)){At(a);return}self.postMessage({type:"error",message:a?.message||String(a),runId:Q?.runId})}};