PageSourceSearch

https://www.airgradient.com/_nuxt/DKFWKL2b.js

js airgradient.com collected 2026-09-24 09:04:53 UTC 54,532 bytes, 2 lines download raw bytes

1var bn=Object.defineProperty;var wn=(e,n,t)=>n in e?bn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ot=(e,n,t)=>wn(e,typeof n!="symbol"?n+"":n,t);import{_ as _n}from"./DenpUUh4.js";import{r as he,e as ie,g as Sn,G as vn,K as rn,a7 as En,u as In,c as J,o as q,d as g,a as kn,h as Ae,t as w,i as f,F as at,E as On,a3 as An,m as Rn,v as Nt,b as Tn}from"./hpNDvw06.js";import{s as Mn}from"./x_rD_Ya3.js";let yt;try{yt=new TextDecoder}catch{}let b,Me,c=0;const Un=105,Cn=57342,Nn=57343,Ft=57337,Bt=6,Be={};let Ke=11281e4,Se=1681e4,M={},W,et,tt=0,Ge=0,te,pe,X=[],xt=[],ce,oe,$e,Pt={useRecords:!1,mapsAsObjects:!0},qe=!1,sn=2;try{new Function("")}catch{sn=1/0}class Le{constructor(n){if(n&&((n.keyMap||n._keyMap)&&!n.useRecords&&(n.useRecords=!1,n.mapsAsObjects=!0),n.useRecords===!1&&n.mapsAsObjects===void 0&&(n.mapsAsObjects=!0),n.getStructures&&(n.getShared=n.getStructures),n.getShared&&!n.structures&&((n.structures=[]).uninitialized=!0),n.keyMap)){this.mapKey=new Map;for(let[t,s]of Object.entries(n.keyMap))this.mapKey.set(s,t)}Object.assign(this,n)}decodeKey(n){return this.keyMap&&this.mapKey.get(n)||n}encodeKey(n){return this.keyMap&&this.keyMap.hasOwnProperty(n)?this.keyMap[n]:n}encodeKeys(n){if(!this._keyMap)return n;let t=new Map;for(let[s,i]of Object.entries(n))t.set(this._keyMap.hasOwnProperty(s)?this._keyMap[s]:s,i);return t}decodeKeys(n){if(!this._keyMap||n.constructor.name!="Map")return n;if(!this._mapKey){this._mapKey=new Map;for(let[s,i]of Object.entries(this._keyMap))this._mapKey.set(i,s)}let t={};return n.forEach((s,i)=>t[ge(this._mapKey.has(i)?this._mapKey.get(i):i)]=s),t}mapDecode(n,t){let s=this.decode(n);if(this._keyMap)switch(s.constructor.name){case"Array":return s.map(i=>this.decodeKeys(i))}return s}decode(n,t){if(b)return cn(()=>(_t(),this?this.decode(n,t):Le.prototype.decode.call(Pt,n,t)));Me=t>-1?t:n.length,c=0,Ge=0,et=null,te=null,b=n;try{oe=n.dataView||(n.dataView=new DataView(n.buffer,n.byteOffset,n.byteLength))}catch(s){throw b=null,n instanceof Uint8Array?s:new Error("Source must be a Uint8Array or Buffer but was a "+(n&&typeof n=="object"?n.constructor.name:typeof n))}if(this instanceof Le){if(M=this,ce=this.sharedValues&&(this.pack?new Array(this.maxPrivatePackedValues||16).concat(this.sharedValues):this.sharedValues),this.structures)return W=this.structures,We();(!W||W.length>0)&&(W=[])}else M=Pt,(!W||W.length>0)&&(W=[]),ce=null;return We()}decodeMultiple(n,t){let s,i=0;try{let l=n.length;qe=!0;let u=this?this.decode(n,l):kt.decode(n,l);if(t){if(t(u)===!1)return;for(;c<l;)if(i=c,t(We())===!1)return}else{for(s=[u];c<l;)i=c,s.push(We());return s}}catch(l){throw l.lastPosition=i,l.values=s,l}finally{qe=!1,_t()}}}function We(){try{let e=C();if(te){if(c>=te.postBundlePosition){let n=new Error("Unexpected bundle position");throw n.incomplete=!0,n}c=te.postBundlePosition,te=null}if(c==Me)W=null,b=null,pe&&(pe=null);else if(c>Me){let n=new Error("Unexpected end of CBOR data");throw n.incomplete=!0,n}else if(!qe)throw new Error("Data read, but end of buffer not reached");return e}catch(e){throw _t(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer"))&&(e.incomplete=!0),e}}function C(){let e=b[c++],n=e>>5;if(e=e&31,e>23)switch(e){case 24:e=b[c++];break;case 25:if(n==7)return Dn();e=oe.getUint16(c),c+=2;break;case 26:if(n==7){let t=oe.getFloat32(c);if(M.useFloat32>2){let s=It[(b[c]&127)<<1|b[c+1]>>7];return c+=4,(s*t+(t>0?.5:-.5)>>0)/s}return c+=4,t}if(e=oe.getUint32(c),c+=4,n===1)return-1-e;break;case 27:if(n==7){let t=oe.getFloat64(c);return c+=8,t}if(n>1){if(oe.getUint32(c)>0)throw new Error("JavaScript does not support arrays, maps, or strings with length over 4294967295");e=oe.getUint32(c+4)}else M.int64AsNumber?(e=oe.getUint32(c)*4294967296,e+=oe.getUint32(c+4)):e=oe.getBigUint64(c);c+=8;break;case 31:switch(n){case 2:case 3:throw new Error("Indefinite length not supported for byte or text strings");case 4:let t=[],s,i=0;for(;(s=C())!=Be;){if(i>=Ke)throw new Error(`Array length exceeds ${Ke}`);t[i++]=s}return n==4?t:n==3?t.join(""):Buffer.concat(t);case 5:let l;if(M.mapsAsObjects){let u={},v=0;if(M.keyMap)for(;(l=C())!=Be;){if(v++>=Se)throw new Error(`Property count exceeds ${Se}`);u[ge(M.decodeKey(l))]=C()}else for(;(l=C())!=Be;){if(v++>=Se)throw new Error(`Property count exceeds ${Se}`);u[ge(l)]=C()}return u}else{$e&&(M.mapsAsObjects=!0,$e=!1);let u=new Map;if(M.keyMap){let v=0;for(;(l=C())!=Be;){if(v++>=Se)throw new Error(`Map size exceeds ${Se}`);u.set(M.decodeKey(l),C())}}else{let v=0;for(;(l=C())!=Be;){if(v++>=Se)throw new Error(`Map size exceeds ${Se}`);u.set(l,C())}}return u}case 7:return Be;default:throw new Error("Invalid major type for indefinite length "+n)}default:throw new Error("Unknown token "+e)}switch(n){case 0:return e;case 1:return~e;case 2:return Pn(e);case 3:if(Ge>=c)return et.slice(c-tt,(c+=e)-tt);if(Ge==0&&Me<140&&e<32){let i=e<16?on(e):Bn(e);if(i!=null)return i}return Fn(e);case 4:if(e>=Ke)throw new Error(`Array length exceeds ${Ke}`);let t=new Array(e);for(let i=0;i<e;i++)t[i]=C();return t;case 5:if(e>=Se)throw new Error(`Map size exceeds ${Ke}`);if(M.mapsAsObjects){let i={};if(M.keyMap)for(let l=0;l<e;l++)i[ge(M.decodeKey(C()))]=C();else for(let l=0;l<e;l++)i[ge(C())]=C();return i}else{$e&&(M.mapsAsObjects=!0,$e=!1);let i=new Map;if(M.keyMap)for(let l=0;l<e;l++)i.set(M.decodeKey(C()),C());else for(let l=0;l<e;l++)i.set(C(),C());return i}case 6:if(e>=Ft){let i=W[e&8191];if(i)return i.read||(i.read=mt(i)),i.read();
1if(e<65536){if(e==Nn){let l=De(),u=C(),v=C();wt(u,v);let _={};if(M.keyMap)for(let U=2;U<l;U++){let T=M.decodeKey(v[U-2]);_[ge(T)]=C()}else for(let U=2;U<l;U++){let T=v[U-2];_[ge(T)]=C()}return _}else if(e==Cn){let l=De(),u=C();for(let v=2;v<l;v++)wt(u++,C());return C()}else if(e==Ft)return $n();if(M.getShared&&(Et(),i=W[e&8191],i))return i.read||(i.read=mt(i)),i.read()}}let s=X[e];if(s)return s.handlesRead?s(C):s(C());{let i=C();for(let l=0;l<xt.length;l++){let u=xt[l](e,i);if(u!==void 0)return u}return new Ue(i,e)}case 7:switch(e){case 20:return!1;case 21:return!0;case 22:return null;case 23:return;case 31:default:let i=(ce||Te())[e];if(i!==void 0)return i;throw new Error("Unknown token "+e)}default:if(isNaN(e)){let i=new Error("Unexpected end of CBOR data");throw i.incomplete=!0,i}throw new Error("Unknown CBOR token "+e)}}const Dt=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function mt(e){if(!e)throw new Error("Structure is required in record definition");function n(){let t=b[c++];if(t=t&31,t>23)switch(t){case 24:t=b[c++];break;case 25:t=oe.getUint16(c),c+=2;break;case 26:t=oe.getUint32(c),c+=4;break;default:throw new Error("Expected array header, but got "+b[c-1])}let s=this.compiledReader;for(;s;){if(s.propertyCount===t)return s(C);s=s.next}if(this.slowReads++>=sn){let l=this.length==t?this:this.slice(0,t);return s=M.keyMap?new Function("r","return {"+l.map(u=>M.decodeKey(u)).map(u=>Dt.test(u)?ge(u)+":r()":"["+JSON.stringify(u)+"]:r()").join(",")+"}"):new Function("r","return {"+l.map(u=>Dt.test(u)?ge(u)+":r()":"["+JSON.stringify(u)+"]:r()").join(",")+"}"),this.compiledReader&&(s.next=this.compiledReader),s.propertyCount=t,this.compiledReader=s,s(C)}let i={};if(M.keyMap)for(let l=0;l<t;l++)i[ge(M.decodeKey(this[l]))]=C();else for(let l=0;l<t;l++)i[ge(this[l])]=C();return i}return e.slowReads=0,n}function ge(e){if(typeof e=="string")return e==="__proto__"?"__proto_":e;if(typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return e.toString();if(e==null)return e+"";throw new Error("Invalid property name type "+typeof e)}let Fn=bt;function bt(e){let n;if(e<16&&(n=on(e)))return n;if(e>64&&yt)return yt.decode(b.subarray(c,c+=e));const t=c+e,s=[];for(n="";c<t;){const i=b[c++];if((i&128)===0)s.push(i);else if((i&224)===192)if(i<194||c>=t||(b[c]&192)!==128)s.push(65533);else{const l=b[c++]&63;s.push((i&31)<<6|l)}else if((i&240)===224){const l=c<t?b[c]:0;if(c>=t||(l&192)!==128||i===224&&l<160||i===237&&l>=160)s.push(65533);else if(c++,c>=t||(b[c]&192)!==128)s.push(65533);else{const u=b[c++]&63;s.push((i&31)<<12|(l&63)<<6|u)}}else if((i&248)===240){const l=c<t?b[c]:0;if(i>244||c>=t||(l&192)!==128||i===240&&l<144||i===244&&l>=144)s.push(65533);else if(c++,c>=t||(b[c]&192)!==128)s.push(65533);else{const u=b[c++]&63;if(c>=t||(b[c]&192)!==128)s.push(65533);else{const v=b[c++]&63;let _=(i&7)<<18|(l&63)<<12|u<<6|v;_-=65536,s.push(_>>>10&1023|55296),s.push(56320|_&1023)}}}else s.push(65533);s.length>=4096&&(n+=re.apply(String,s),s.length=0)}return s.length>0&&(n+=re.apply(String,s)),n}let re=String.fromCharCode;function Bn(e){let n=c,t=new Array(e);for(let s=0;s<e;s++){const i=b[c++];if((i&128)>0){c=n;return}t[s]=i}return re.apply(String,t)}function on(e){if(e<4)if(e<2){if(e===0)return"";{let n=b[c++];if((n&128)>1){c-=1;return}return re(n)}}else{let n=b[c++],t=b[c++];if((n&128)>0||(t&128)>0){c-=2;return}if(e<3)return re(n,t);let s=b[c++];if((s&128)>0){c-=3;return}return re(n,t,s)}else{let n=b[c++],t=b[c++],s=b[c++],i=b[c++];if((n&128)>0||(t&128)>0||(s&128)>0||(i&128)>0){c-=4;return}if(e<6){if(e===4)return re(n,t,s,i);{let l=b[c++];if((l&128)>0){c-=5;return}return re(n,t,s,i,l)}}else if(e<8){let l=b[c++],u=b[c++];if((l&128)>0||(u&128)>0){c-=6;return}if(e<7)return re(n,t,s,i,l,u);let v=b[c++];if((v&128)>0){c-=7;return}return re(n,t,s,i,l,u,v)}else{let l=b[c++],u=b[c++],v=b[c++],_=b[c++];if((l&128)>0||(u&128)>0||(v&128)>0||(_&128)>0){c-=8;return}if(e<10){if(e===8)return re(n,t,s,i,l,u,v,_);{let U=b[c++];if((U&128)>0){c-=9;return}return re(n,t,s,i,l,u,v,_,U)}}else if(e<12){let U=b[c++],T=b[c++];if((U&128)>0||(T&128)>0){c-=10;return}if(e<11)return re(n,t,s,i,l,u,v,_,U,T);let D=b[c++];if((D&128)>0){c-=11;return}return re(n,t,s,i,l,u,v,_,U,T,D)}else{let U=b[c++],T=b[c++],D=b[c++],j=b[c++];if((U&128)>0||(T&128)>0||(D&128)>0||(j&128)>0){c-=12;return}if(e<14){if(e===12)return re(n,t,s,i,l,u,v,_,U,T,D,j);{let N=b[c++];if((N&128)>0){c-=13;return}return re(n,t,s,i,l,u,v,_,U,T,D,j,N)}}else{let N=b[c++],B=b[c++];if((N&128)>0||(B&128)>0){c-=14;return}if(e<15)return re(n,t,s,i,l,u,v,_,U,T,D,j,N,B);let F=b[c++];if((F&128)>0){c-=15;return}return re(n,t,s,i,l,u,v,_,U,T,D,j,N,B,F)}}}}}function Pn(e){return M.copyBuffers?Uint8Array.prototype.slice.call(b,c,c+=e):b.subarray(c,c+=e)}let an=new Float32Array(1),Je=new Uint8Array(an.buffer,0,4);function Dn(){let e=b[c++],n=b[c++],t=(e&127)>>2;if(t===31)return n||e&3?NaN:e&128?-1/0:1/0;
1if(t===0){let s=((e&3)<<8|n)/16777216;return e&128?-s:s}return Je[3]=e&128|(t>>1)+56,Je[2]=(e&7)<<5|n>>3,Je[1]=n<<5,Je[0]=0,an[0]}new Array(4096);class Ue{constructor(n,t){this.value=n,this.tag=t}}X[0]=e=>new Date(e);X[1]=e=>new Date(Math.round(e*1e3));X[2]=e=>{let n=BigInt(0);for(let t=0,s=e.byteLength;t<s;t++)n=BigInt(e[t])+(n<<BigInt(8));return n};X[3]=e=>BigInt(-1)-X[2](e);X[4]=e=>+(e[1]+"e"+e[0]);X[5]=e=>e[1]*Math.exp(e[0]*Math.log(2));const wt=(e,n)=>{e=e-57344;let t=W[e];t&&t.isShared&&((W.restoreStructures||(W.restoreStructures=[]))[e]=t),W[e]=n,n.read=mt(n)};X[Un]=e=>{let n=e.length,t=e[1];wt(e[0],t);let s={};for(let i=2;i<n;i++){let l=t[i-2];s[ge(l)]=e[i]}return s};X[14]=e=>te?te[0].slice(te.position0,te.position0+=e):new Ue(e,14);X[15]=e=>te?te[1].slice(te.position1,te.position1+=e):new Ue(e,15);let Ln={Error,RegExp};X[27]=e=>(Ln[e[0]]||Error)(e[1],e[2]);const ln=e=>{if(b[c++]!=132){let t=new Error("Packed values structure must be followed by a 4 element array");throw b.length<c&&(t.incomplete=!0),t}let n=e();if(!n||!n.length){let t=new Error("Packed values structure must be followed by a 4 element array");throw t.incomplete=!0,t}return ce=ce?n.concat(ce.slice(n.length)):n,ce.prefixes=e(),ce.suffixes=e(),e()};ln.handlesRead=!0;X[51]=ln;X[Bt]=e=>{if(!ce)if(M.getShared)Et();else return new Ue(e,Bt);if(typeof e=="number")return ce[16+(e>=0?2*e:-2*e-1)];let n=new Error("No support for non-integer packed references yet");throw e===void 0&&(n.incomplete=!0),n};X[28]=e=>{pe||(pe=new Map,pe.id=0);let n=pe.id++,t=c,s=b[c],i;s>>5==4?i=[]:i={};let l={target:i};pe.set(n,l);let u=e();return l.used?(Object.getPrototypeOf(i)!==Object.getPrototypeOf(u)&&(c=t,i=u,pe.set(n,{target:i}),u=e()),Object.assign(i,u)):(l.target=u,u)};X[28].handlesRead=!0;X[29]=e=>{let n=pe.get(e);return n.used=!0,n.target};X[258]=e=>new Set(e);(X[259]=e=>(M.mapsAsObjects&&(M.mapsAsObjects=!1,$e=!0),e())).handlesRead=!0;function Pe(e,n){return typeof e=="string"?e+n:e instanceof Array?e.concat(n):Object.assign({},e,n)}function Te(){if(!ce)if(M.getShared)Et();else throw new Error("No packed values available");return ce}const Vn=1399353956;xt.push((e,n)=>{if(e>=225&&e<=255)return Pe(Te().prefixes[e-224],n);if(e>=28704&&e<=32767)return Pe(Te().prefixes[e-28672],n);if(e>=1879052288&&e<=2147483647)return Pe(Te().prefixes[e-1879048192],n);if(e>=216&&e<=223)return Pe(n,Te().suffixes[e-216]);if(e>=27647&&e<=28671)return Pe(n,Te().suffixes[e-27639]);if(e>=1811940352&&e<=1879048191)return Pe(n,Te().suffixes[e-1811939328]);if(e==Vn)return{packedValues:ce,structures:W.slice(0),version:n};if(e==55799)return n});const jn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1,Lt=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?{name:"BigUint64Array"}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?{name:"BigInt64Array"}:BigInt64Array,Float32Array,Float64Array],Kn=[64,68,69,70,71,72,77,78,79,85,86];for(let e=0;e<Lt.length;e++)Hn(Lt[e],Kn[e]);function Hn(e,n){let t="get"+e.name.slice(0,-5),s;typeof e=="function"?s=e.BYTES_PER_ELEMENT:e=null;for(let i=0;i<2;i++){if(!i&&s==1)continue;let l=s==2?1:s==4?2:s==8?3:0;X[i?n:n-4]=s==1||i==jn?u=>{if(!e)throw new Error("Could not find typed array for code "+n);return!M.copyBuffers&&(s===1||s===2&&!(u.byteOffset&1)||s===4&&!(u.byteOffset&3)||s===8&&!(u.byteOffset&7))?new e(u.buffer,u.byteOffset,u.byteLength>>l):new e(Uint8Array.prototype.slice.call(u,0).buffer)}:u=>{if(!e)throw new Error("Could not find typed array for code "+n);let v=new DataView(u.buffer,u.byteOffset,u.byteLength),_=u.length>>l,U=new e(_),T=v[t];for(let D=0;D<_;D++)U[D]=T.call(v,D<<l,i);return U}}}function $n(){let e=De(),n=c+C();for(let s=2;s<e;s++){let i=De();c+=i}let t=c;return c=n,te=[bt(De()),bt(De())],te.position0=0,te.position1=0,te.postBundlePosition=c,c=t,C()}function De(){let e=b[c++]&31;if(e>23)switch(e){case 24:e=b[c++];break;case 25:e=oe.getUint16(c),c+=2;break;case 26:e=oe.getUint32(c),c+=4;break}return e}function Et(){if(M.getShared){let e=cn(()=>(b=null,M.getShared()))||{},n=e.structures||[];M.sharedVersion=e.version,ce=M.sharedValues=e.packedValues,W===!0?M.structures=W=n:W.splice.apply(W,[0,n.length].concat(n))}}function cn(e){let n=Me,t=c,s=tt,i=Ge,l=et,u=pe,v=te,_=new Uint8Array(b.slice(0,Me)),U=W,T=M,D=qe,j=e();return Me=n,c=t,tt=s,Ge=i,et=l,pe=u,te=v,b=_,qe=D,W=U,M=T,oe=new DataView(b.buffer,b.byteOffset,b.byteLength),j}function _t(){b=null,pe=null,W=null}const It=new Array(147);for(let e=0;e<256;e++)It[e]=+("1e"+Math.floor(45.15-e*.30103));let kt=new Le({useRecords:!1});kt.decode;kt.decodeMultiple;let Xe;try{Xe=new TextEncoder}catch{}let St,un;const nt=typeof globalThis=="object"&&globalThis.Buffer,Ye=typeof nt<"u",lt=Ye?nt.allocUnsafeSlow:Uint8Array,Vt=Ye?nt:Uint8Array,jt=256,Kt=Ye?4294967296:2144337920;let ct,a,K,r=0,Ee,ee=null;const zn=61440,Gn=/[\u0080-\uFFFF]/,de=Symbol("record-id");class fn extends Le{constructor(n){super(n),this.offset=0;let t,s,i,l,u;n=n||{};let v=Vt.prototype.utf8Write?function(o,m){return a.utf8Write(o,m,a.byteLength-m)}:Xe&&Xe.encodeInto?function(o,m){return Xe.encodeInto(o,a.subarray(m)).written}:!1,_=this,U=n.structures||n.saveStructures,T=n.maxSharedStructures;if(T==null&&(T=U?128:0),T>8190)throw new Error("Maximum maxSharedStructure is 8190");let D=n.sequential;D&&(T=0),this.structures||(this.structures=[]),this.saveStructures&&(this.saveShared=this.saveStructures);let j,N,B=n.sharedValues,F;if(B){F=Object.create(null);for(let o=0,m=B.length;o<m;o++)F[B[o]]=o}let L=[],se=0,ue=0;this.mapEncode=function(o,m){if(this._keyMap&&!this._mapped)switch(o.constructor.name){case"Array":o=o.map(d=>this.encodeKeys(d));break}return this.encode(o,m)},this.encode=function(o,m){if(a||(a=new lt(8192),K=new DataView(a.buffer,0,8192),r=0),Ee=a.length-10,Ee-r<2048?(a=new lt(a.length),K=new DataView(a.buffer,0,a.length),Ee=a.length-10,r=0):m===zt&&(r=r+7&2147483640),t=r,_.useSelfDescribedHeader&&(K.setUint32(r,3654940416),r+=3),u=_.structuredClone?new Map:null,_.bundleStrings&&typeof o!="string"?(ee=[],ee.size=1/0):ee=null,s=_.structures,s){if(s.uninitialized){let p=_.getShared()||{};_.structures=s=p.structures||[],_.sharedVersion=p.version;let h=_.sharedValues=p.packedValues;if(h){F={};for(let E=0,S=h.length;E<S;E++)F[h[E]]=E}}let d=s.length;if(d>T&&!D&&(d=T),!s.transitions){s.transitions=Object.create(null);for(let p=0;p<d;p++){let h=s[p];if(!h)continue;let E,S=s.transitions;for(let k=0,O=h.length;k<O;k++){S[de]===void 0&&(S[de]=p);let A=h[k];E=S[A],E||(E=S[A]=Object.create(null)),S=E}S[de]=p|1048576}}D||(s.nextId=d)}if(i&&(i=!1),l=s||[],N=F,n.pack){let d=new Map;if(d.values=[],d.encoder=_,d.maxValues=n.maxPrivatePackedValues||(F?16:1/0),d.objectMap=F||!1,d.samplingPackedValues=j,Qe(o,d),d.values.length>0){a[r++]=216,a[r++]=51,we(4);let p=d.values;I(p),we(0),we(0),N=Object.create(F||null);for(let h=0,E=p.length;h<E;h++)N[p[h]]=h}}ct=m&ft;try{if(ct)return;if(I(o),ee&&$t(t,I),_.offset=r,u&&u.idsToInsert){r+=u.idsToInsert.length*2,r>Ee&&le(r),_.offset=r;let d=Wn(a.subarray(t,r),u.idsToInsert);return u=null,d}
1return m&zt?(a.start=t,a.end=r,a):a.subarray(t,r)}finally{if(s){if(ue<10&&ue++,s.length>T&&(s.length=T),se>1e4)s.transitions=null,ue=0,se=0,L.length>0&&(L=[]);else if(L.length>0&&!D){for(let d=0,p=L.length;d<p;d++)L[d][de]=void 0;L=[]}}if(i&&_.saveShared){_.structures.length>T&&(_.structures=_.structures.slice(0,T));let d=a.subarray(t,r);return _.updateSharedData()===!1?_.encode(o):d}m&Jn&&(r=t)}},this.findCommonStringsToPack=()=>(j=new Map,F||(F=Object.create(null)),o=>{let m=o&&o.threshold||4,d=this.pack?o.maxPrivatePackedValues||16:0;B||(B=this.sharedValues=[]);for(let[p,h]of j)h.count>m&&(F[p]=d++,B.push(p),i=!0);for(;this.saveShared&&this.updateSharedData()===!1;);j=null});const I=o=>{r>Ee&&(a=le(r));var m=typeof o,d;if(m==="string"){if(N){let S=N[o];if(S>=0){S<16?a[r++]=S+224:(a[r++]=198,S&1?I(15-S>>1):I(S-16>>1));return}else if(j&&!n.pack){let k=j.get(o);k?k.count++:j.set(o,{count:1})}}let p=o.length;if(ee&&p>=4&&p<1024){if((ee.size+=p)>zn){let k,O=(ee[0]?ee[0].length*3+ee[1].length:0)+10;r+O>Ee&&(a=le(r+O)),a[r++]=217,a[r++]=223,a[r++]=249,a[r++]=ee.position?132:130,a[r++]=26,k=r-t,r+=4,ee.position&&$t(t,I),ee=["",""],ee.size=0,ee.position=k}let S=Gn.test(o);ee[S?0:1]+=o,a[r++]=S?206:207,I(p);return}let h;p<32?h=1:p<256?h=2:p<65536?h=3:h=5;let E=p*3;if(r+E>Ee&&(a=le(r+E)),p<64||!v){let S,k,O,A=r+h;for(S=0;S<p;S++)k=o.charCodeAt(S),k<128?a[A++]=k:k<2048?(a[A++]=k>>6|192,a[A++]=k&63|128):(k&64512)===55296&&((O=o.charCodeAt(S+1))&64512)===56320?(k=65536+((k&1023)<<10)+(O&1023),S++,a[A++]=k>>18|240,a[A++]=k>>12&63|128,a[A++]=k>>6&63|128,a[A++]=k&63|128):(a[A++]=k>>12|224,a[A++]=k>>6&63|128,a[A++]=k&63|128);d=A-r-h}else d=v(o,r+h,E);d<24?a[r++]=96|d:d<256?(h<2&&a.copyWithin(r+2,r+1,r+1+d),a[r++]=120,a[r++]=d):d<65536?(h<3&&a.copyWithin(r+3,r+2,r+2+d),a[r++]=121,a[r++]=d>>8,a[r++]=d&255):(h<5&&a.copyWithin(r+5,r+3,r+3+d),a[r++]=122,K.setUint32(r,d),r+=4),r+=d}else if(m==="number")if(!this.alwaysUseFloat&&o>>>0===o)o<24?a[r++]=o:o<256?(a[r++]=24,a[r++]=o):o<65536?(a[r++]=25,a[r++]=o>>8,a[r++]=o&255):(a[r++]=26,K.setUint32(r,o),r+=4);else if(!this.alwaysUseFloat&&o>>0===o)o>=-24?a[r++]=31-o:o>=-256?(a[r++]=56,a[r++]=~o):o>=-65536?(a[r++]=57,K.setUint16(r,~o),r+=2):(a[r++]=58,K.setUint32(r,~o),r+=4);else if(!this.alwaysUseFloat&&o<0&&o>=-4294967296&&Math.floor(o)===o)a[r++]=58,K.setUint32(r,-1-o),r+=4;else{let p;if((p=this.useFloat32)>0&&o<4294967296&&o>=-2147483648){a[r++]=250,K.setFloat32(r,o);let h;if(p<4||(h=o*It[(a[r]&127)<<1|a[r+1]>>7])>>0===h){r+=4;return}else r--}a[r++]=251,K.setFloat64(r,o),r+=8}else if(m==="object")if(!o)a[r++]=246;else{if(u){let h=u.get(o);if(h){if(a[r++]=216,a[r++]=29,a[r++]=25,!h.references){let E=u.idsToInsert||(u.idsToInsert=[]);h.references=[],E.push(h)}h.references.push(r-t),r+=2;return}else u.set(o,{offset:r-t})}let p=o.constructor;if(p===Object)this.skipFunction===!0&&(o=Object.fromEntries([...Object.keys(o).filter(h=>typeof o[h]!="function").map(h=>[h,o[h]])])),ye(o);else if(p===Array){d=o.length,d<24?a[r++]=128|d:we(d);for(let h=0;h<d;h++)I(o[h])}else if(p===Map)if((this.mapsAsObjects?this.useTag259ForMaps!==!1:this.useTag259ForMaps)&&(a[r++]=217,a[r++]=1,a[r++]=3),d=o.size,d<24?a[r++]=160|d:d<256?(a[r++]=184,a[r++]=d):d<65536?(a[r++]=185,a[r++]=d>>8,a[r++]=d&255):(a[r++]=186,K.setUint32(r,d),r+=4),_.keyMap)for(let[h,E]of o)I(_.encodeKey(h)),I(E);else for(let[h,E]of o)I(h),I(E);else{for(let h=0,E=St.length;h<E;h++){let S=un[h];if(o instanceof S){let k=St[h],O=k.tag;O==null&&(O=k.getTag&&k.getTag.call(this,o)),O<24?a[r++]=192|O:O<256?(a[r++]=216,a[r++]=O):O<65536?(a[r++]=217,a[r++]=O>>8,a[r++]=O&255):O>-1&&(a[r++]=218,K.setUint32(r,O),r+=4),k.encode.call(this,o,I,le);return}}if(o[Symbol.iterator]){if(ct){let h=new Error("Iterable should be serialized as iterator");throw h.iteratorNotHandled=!0,h}a[r++]=159;for(let h of o)I(h);a[r++]=255;return}if(o[Symbol.asyncIterator]||ut(o)){let h=new Error("Iterable/blob should be serialized as iterator");throw h.iteratorNotHandled=!0,h}if(this.useToJSON&&o.toJSON){const h=o.toJSON();if(h!==o)return I(h)}ye(o)}}else if(m==="boolean")a[r++]=o?245:244;else if(m==="bigint"){if(o<BigInt(1)<<BigInt(64)&&o>=0)a[r++]=27,K.setBigUint64(r,o);else if(o>-(BigInt(1)<<BigInt(64))&&o<0)a[r++]=59,K.setBigUint64(r,-o-BigInt(1));else if(this.largeBigIntToFloat)a[r++]=251,K.setFloat64(r,Number(o));else{o>=BigInt(0)?a[r++]=194:(a[r++]=195,o=BigInt(-1)-o);let p=[];for(;o;)p.push(Number(o&BigInt(255))),o>>=BigInt(8);vt(new Uint8Array(p.reverse()),le);return}r+=8}else if(m==="undefined")a[r++]=247;else throw new Error("Unknown type: "+m)},ye=this.useRecords===!1?this.variableMapSize?o=>{let m=Object.keys(o),d=Object.values(o),p=m.length;if(p<24?a[r++]=160|p:p<256?(a[r++]=184,a[r++]=p):p<65536?(a[r++]=185,a[r++]=p>>
18,a[r++]=p&255):(a[r++]=186,K.setUint32(r,p),r+=4),_.keyMap)for(let h=0;h<p;h++)I(_.encodeKey(m[h])),I(d[h]);else for(let h=0;h<p;h++)I(m[h]),I(d[h])}:o=>{a[r++]=185;let m=r-t;r+=2;let d=0;if(_.keyMap)for(let p in o)(typeof o.hasOwnProperty!="function"||o.hasOwnProperty(p))&&(I(_.encodeKey(p)),I(o[p]),d++);else for(let p in o)(typeof o.hasOwnProperty!="function"||o.hasOwnProperty(p))&&(I(p),I(o[p]),d++);a[m+++t]=d>>8,a[m+t]=d&255}:(o,m)=>{let d,p=l.transitions||(l.transitions=Object.create(null)),h=0,E=0,S,k;if(this.keyMap){k=Object.keys(o).map(A=>this.encodeKey(A)),E=k.length;for(let A=0;A<E;A++){let ke=k[A];d=p[ke],d||(d=p[ke]=Object.create(null),h++),p=d}}else for(let A in o)(typeof o.hasOwnProperty!="function"||o.hasOwnProperty(A))&&(d=p[A],d||(p[de]&1048576&&(S=p[de]&65535),d=p[A]=Object.create(null),h++),p=d,E++);let O=p[de];if(O!==void 0)O&=65535,a[r++]=217,a[r++]=O>>8|224,a[r++]=O&255;else if(k||(k=p.__keys__||(p.__keys__=Object.keys(o))),S===void 0?(O=l.nextId++,O||(O=0,l.nextId=1),O>=jt&&(l.nextId=(O=T)+1)):O=S,l[O]=k,O<T){a[r++]=217,a[r++]=O>>8|224,a[r++]=O&255,p=l.transitions;for(let A=0;A<E;A++)(p[de]===void 0||p[de]&1048576)&&(p[de]=O),p=p[k[A]];p[de]=O|1048576,i=!0}else{if(p[de]=O,K.setUint32(r,3655335680),r+=3,h&&(se+=ue*h),L.length>=jt-T&&(L.shift()[de]=void 0),L.push(p),we(E+2),I(57344+O),I(k),m)return;for(let A in o)(typeof o.hasOwnProperty!="function"||o.hasOwnProperty(A))&&I(o[A]);return}if(E<24?a[r++]=128|E:we(E),!m)for(let A in o)(typeof o.hasOwnProperty!="function"||o.hasOwnProperty(A))&&I(o[A])},le=o=>{let m;if(o>16777216){if(o-t>Kt)throw new Error("Encoded buffer would be larger than maximum buffer size");m=Math.min(Kt,Math.round(Math.max((o-t)*(o>67108864?1.25:2),4194304)/4096)*4096)}else m=(Math.max(o-t<<2,a.length-1)>>12)+1<<12;let d=new lt(m);return K=new DataView(d.buffer,0,m),a.copy?a.copy(d,0,t,o):d.set(a.slice(t,o)),r-=t,t=0,Ee=d.length-10,a=d};let Q=100,xe=1e3;this.encodeAsIterable=function(o,m){return Ie(o,m,z)},this.encodeAsAsyncIterable=function(o,m){return Ie(o,m,fe)};function*z(o,m,d){let p=o.constructor;if(p===Object){let h=_.useRecords!==!1;h?ye(o,!0):Ht(Object.keys(o).length,160);for(let E in o){let S=o[E];h||I(E),S&&typeof S=="object"?m[E]?yield*z(S,m[E]):yield*ne(S,m,E):I(S)}}else if(p===Array){let h=o.length;we(h);for(let E=0;E<h;E++){let S=o[E];S&&(typeof S=="object"||r-t>Q)?m.element?yield*z(S,m.element):yield*ne(S,m,"element"):I(S)}}else if(o[Symbol.iterator]&&!o.buffer){a[r++]=159;for(let h of o)h&&(typeof h=="object"||r-t>Q)?m.element?yield*z(h,m.element):yield*ne(h,m,"element"):I(h);a[r++]=255}else ut(o)?(Ht(o.size,64),yield a.subarray(t,r),yield o,_e()):o[Symbol.asyncIterator]?(a[r++]=159,yield a.subarray(t,r),yield o,_e(),a[r++]=255):I(o);d&&r>t?yield a.subarray(t,r):r-t>Q&&(yield a.subarray(t,r),_e())}function*ne(o,m,d){let p=r-t;try{I(o),r-t>Q&&(yield a.subarray(t,r),_e())}catch(h){if(h.iteratorNotHandled)m[d]={},r=t+p,yield*z.call(this,o,m[d]);else throw h}}function _e(){Q=xe,_.encode(null,ft)}function Ie(o,m,d){return m&&m.chunkThreshold?Q=xe=m.chunkThreshold:Q=100,o&&typeof o=="object"?(_.encode(null,ft),d(o,_.iterateProperties||(_.iterateProperties={}),!0)):[_.encode(o)]}async function*fe(o,m){for(let d of z(o,m,!0)){let p=d.constructor;if(p===Vt||p===Uint8Array)yield d;else if(ut(d)){let h=d.stream().getReader(),E;for(;!(E=await h.read()).done;)yield E.value}else if(d[Symbol.asyncIterator])for await(let h of d)_e(),h?yield*fe(h,m.async||(m.async={})):yield _.encode(h);else yield d}}}useBuffer(n){a=n,K=new DataView(a.buffer,a.byteOffset,a.byteLength),r=0}clearSharedData(){this.structures&&(this.structures=[]),this.sharedValues&&(this.sharedValues=void 0)}updateSharedData(){let n=this.sharedVersion||0;this.sharedVersion=n+1;let t=this.structures.slice(0),s=new dn(t,this.sharedValues,this.sharedVersion),i=this.saveShared(s,l=>(l&&l.version||0)==n);return i===!1?(s=this.getShared()||{},this.structures=s.structures||[],this.sharedValues=s.packedValues,this.sharedVersion=s.version,this.structures.nextId=this.structures.length):t.forEach((l,u)=>this.structures[u]=l),i}}function Ht(e,n){e<24?a[r++]=n|e:e<256?(a[r++]=n|24,a[r++]=e):e<65536?(a[r++]=n|25,a[r++]=e>>8,a[r++]=e&255):(a[r++]=n|26,K.setUint32(r,e),r+=4)}class dn{constructor(n,t,s){this.structures=n,this.packedValues=t,this.version=s}}function we(e){e<24?a[r++]=128|e:e<256?(a[r++]=152,a[r++]=e):e<65536?(a[r++]=153,a[r++]=e>>8,a[r++]=e&255):(a[r++]=154,K.setUint32(r,e),r+=4)}const qn=typeof Blob>"u"?function(){}:Blob;function ut(e){if(e instanceof qn)return!0;let n=e[Symbol.toStringTag];return n==="Blob"||n==="File"}function Qe(e,n){switch(typeof e){case"string":if(e.length>3){if(n.objectMap[e]>-1||n.values.length>=n.maxValues)return;let s=n.get(e);if(s)++s.count==2&&n.values.push(e);else if(n.set(e,{count:1}),n.samplingPackedValues){let i=n.samplingPackedValues.get(e);i?i.count++:n.samplingPackedValues.set(e,{count:1})}}break;case"object":if(e)if(e instanceof Array)for(let s=0,i=e.length;s<i;s++)Qe(e[s],n);else{let s=!n.encoder.useRecords;for(var t in e)e.hasOwnProperty(t)&&(s&&Qe(t,n),Qe(e[t],n))}break;case"function":console.log(e)}}const Yn=new Uint8Array(new Uint16Array([1]).buffer)[0]==1;
1un=[Date,Set,Error,RegExp,Ue,ArrayBuffer,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,typeof BigUint64Array>"u"?function(){}:BigUint64Array,Int8Array,Int16Array,Int32Array,typeof BigInt64Array>"u"?function(){}:BigInt64Array,Float32Array,Float64Array,dn];St=[{tag:1,encode(e,n){let t=e.getTime()/1e3;(this.useTimestamp32||e.getMilliseconds()===0)&&t>=0&&t<4294967296?(a[r++]=26,K.setUint32(r,t),r+=4):(a[r++]=251,K.setFloat64(r,t),r+=8)}},{tag:258,encode(e,n){let t=Array.from(e);n(t)}},{tag:27,encode(e,n){n([e.name,e.message])}},{tag:27,encode(e,n){n(["RegExp",e.source,e.flags])}},{getTag(e){return e.tag},encode(e,n){n(e.value)}},{encode(e,n,t){vt(e,t)}},{getTag(e){if(e.constructor===Uint8Array&&(this.tagUint8Array||Ye&&this.tagUint8Array!==!1))return 64},encode(e,n,t){vt(e,t)}},be(68,1),be(69,2),be(70,4),be(71,8),be(72,1),be(77,2),be(78,4),be(79,8),be(85,4),be(86,8),{encode(e,n){let t=e.packedValues||[],s=e.structures||[];if(t.values.length>0){a[r++]=216,a[r++]=51,we(4);let i=t.values;n(i),we(0),we(0),packedObjectMap=Object.create(sharedPackedObjectMap||null);for(let l=0,u=i.length;l<u;l++)packedObjectMap[i[l]]=l}if(s){K.setUint32(r,3655335424),r+=3;let i=s.slice(0);i.unshift(57344),i.push(new Ue(e.version,1399353956)),n(i)}else n(new Ue(e.version,1399353956))}}];function be(e,n){return!Yn&&n>1&&(e-=4),{tag:e,encode:function(s,i){let l=s.byteLength,u=s.byteOffset||0,v=s.buffer||s;i(Ye?nt.from(v,u,l):new Uint8Array(v,u,l))}}}function vt(e,n){let t=e.byteLength;t<24?a[r++]=64+t:t<256?(a[r++]=88,a[r++]=t):t<65536?(a[r++]=89,a[r++]=t>>8,a[r++]=t&255):(a[r++]=90,K.setUint32(r,t),r+=4),r+t>=a.length&&n(r+t),a.set(e.buffer?e:new Uint8Array(e),r),r+=t}function Wn(e,n){let t,s=n.length*2,i=e.length-s;n.sort((l,u)=>l.offset>u.offset?1:-1);for(let l=0;l<n.length;l++){let u=n[l];u.id=l;for(let v of u.references)e[v++]=l>>8,e[v]=l&255}for(;t=n.pop();){let l=t.offset;e.copyWithin(l+s,l,i),s-=2;let u=l+s;e[u++]=216,e[u++]=28,i=l}return e}function $t(e,n){K.setUint32(ee.position+e,r-ee.position-e+1);let t=ee;ee=null,n(t[0]),n(t[1])}let Ot=new fn({useRecords:!1});Ot.encode;Ot.encodeAsIterable;Ot.encodeAsAsyncIterable;const zt=512,Jn=1024,ft=2048,Gt="d1c0c0a0-6b48-4b2a-9b1d-59f9f2b0a1e1",Zn="d1c0c0a2-6b48-4b2a-9b1d-59f9f2b0a1e1",Xn="d1c0c0a4-6b48-4b2a-9b1d-59f9f2b0a1e1",ze=56,qt=50,hn=4,Qn=3+ze*hn,er=0,tr=1,nr=91,rr=181,sr=-1e4,ir=-1001,Ze=-1,or=-1001,ar=-1,lr=255,cr=65535,At=new Le({mapsAsObjects:!0}),ur=new fn({useRecords:!1,variableMapSize:!0});class $ extends Error{constructor(t){super(t);ot(this,"code");this.name="GoBleProtocolError",this.code=t}}const rt=e=>{if(e instanceof Map)return Object.fromEntries(e.entries());if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e;throw new $("invalid_control_payload")},ae=(e,n="invalid_control_payload")=>{const t=typeof e=="bigint"?Number(e):e;if(typeof t!="number"||!Number.isSafeInteger(t)||t<0)throw new $(n);return Number(t)},Yt=e=>{if(typeof e!="string"||!e)throw new $("invalid_control_payload");return e},Re=(e,n)=>Number.isFinite(e)&&e!==n?e:null,Wt=(e,n,t,s)=>Number.isFinite(e)&&e!==n&&e>=t&&e<=s?e:null,dt=e=>e===ar||e<0?null:e,fr=(e,n)=>{const t=e.getFloat64(n+4,!0),s=e.getFloat64(n+12,!0),i=e.getUint8(n+55);return{timestampSeconds:e.getUint32(n,!0),latitude:Wt(t,nr,-90,90),longitude:Wt(s,rr,-180,180),altitudeMeters:Re(e.getFloat32(n+20,!0),sr),gpsFix:e.getUint8(n+24),temperatureCelsius:Re(e.getFloat32(n+25,!0),ir),humidityPercent:Re(e.getFloat32(n+29,!0),Ze),pm1:Re(e.getFloat32(n+33,!0),Ze),pm25:Re(e.getFloat32(n+37,!0),Ze),pm10:Re(e.getFloat32(n+41,!0),Ze),co2:dt(e.getInt16(n+45,!0)),tvocIndex:dt(e.getInt16(n+47,!0)),noxIndex:dt(e.getInt16(n+49,!0)),pressureHpa:Re(e.getFloat32(n+51,!0),or),batteryPercent:i===lr||i>100?null:i}},dr=e=>{const n=rt(e);return{id:ae(n.id),pointCount:ae(n.pts),timestampSeconds:ae(n.ts)}},hr=e=>ur.encode(e),pr=e=>{let n;try{n=rt(At.decode(e))}catch(s){throw s instanceof $?s:new $("invalid_control_payload")}const t=Yt(n.type);switch(t){case"sessions":{if(!Array.isArray(n.sessions))throw new $("invalid_control_payload");const s=ae(n.pg),i=ae(n.tpg),l=ae(n.cnt);
1if(s<1||i<1||s>i)throw new $("invalid_pagination");return{type:t,sessions:n.sessions.map(dr),page:s,totalPages:i,totalCount:l}}case"started":return{type:t,sessionId:ae(n.session),totalPoints:ae(n.total),pointSize:ae(n.pt_size)};case"done":return{type:t,sentPoints:ae(n.sent)};case"ended":return{type:t};case"deleted":return{type:t,sessionId:ae(n.session)};case"error":return{type:t,error:Yt(n.err)};default:throw new $("unknown_control_message")}},gr=e=>{const n=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(!n.byteLength)throw new $("empty_notification");if(n[0]===er)return{kind:"control",message:pr(n.subarray(1))};if(n[0]!==tr)throw new $("unknown_notification_tag");if(n.byteLength<3)throw new $("invalid_chunk_header");const t=n.byteLength-3;if(!t||t%ze!==0)throw n.byteLength<Qn?new $("history_notification_truncated"):new $("invalid_chunk_length");const s=t/ze;if(s>hn)throw new $("invalid_chunk_length");const i=new DataView(n.buffer,n.byteOffset,n.byteLength),l=i.getUint16(1,!0);if(l+s-1>cr)throw new $("invalid_point_index");const u=Array.from({length:s},(v,_)=>fr(i,3+_*ze));return{kind:"chunk",startIndex:l,points:u}},yr=e=>{const n=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let t;try{t=rt(At.decode(n))}catch(s){throw s instanceof $?s:new $("invalid_status_payload")}if(typeof t.tracking!="boolean")throw new $("invalid_status_payload");return{tracking:t.tracking,sessionId:ae(t.session,"invalid_status_payload"),flashKilobytes:ae(t.flash_kb,"invalid_status_payload"),usedKilobytes:ae(t.used_kb,"invalid_status_payload")}},xr=e=>{const n=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let t;try{t=rt(At.decode(n))}catch{return null}if(typeof t.disc=="string"&&t.disc)return{type:"disconnect",reason:t.disc};if(typeof t.tracking!="boolean"||t.session===void 0)return null;try{return{type:"tracking",tracking:t.tracking,sessionId:ae(t.session,"invalid_status_payload")}}catch{return null}},Jt=(e,n)=>{const t=[];for(let s=0;s<e;s+=1)n.has(s)||t.push(s);return t},mr=e=>{const n=[];for(let t=0;t<e.length;t+=qt)n.push(e.slice(t,t+qt));return n},br=(e,n,t)=>{if(e.size!==n)throw new $("incomplete_session_list");const s=[];for(let l=1;l<=n;l+=1){const u=e.get(l);if(!u)throw new $("incomplete_session_list");s.push(...u)}const i=[...new Map(s.map(l=>[l.id,l])).values()];if(i.length!==t)throw new $("invalid_session_count");return i.sort((l,u)=>u.timestampSeconds-l.timestampSeconds||u.id-l.id)},wr=["session_id","point_index","timestamp_unix","timestamp_iso","latitude","longitude","altitude_m","gps_fix","temperature_c","humidity_pct","pm1_ug_m3","pm25_ug_m3","pm10_ug_m3","co2_ppm","tvoc_index","nox_index","pressure_hpa","battery_pct"],_r=e=>{if(e===null)return"";const n=String(e);return/[",\r\n]/.test(n)?`"${n.replace(/"/g,'""')}"`:n},pn=e=>new Date(e*1e3).toISOString(),Sr=(e,n)=>{const t=[...n].sort((s,i)=>s.index-i.index).map(s=>[e,s.index,s.timestampSeconds,pn(s.timestampSeconds),s.latitude,s.longitude,s.altitudeMeters,s.gpsFix,s.temperatureCelsius,s.humidityPercent,s.pm1,s.pm25,s.pm10,s.co2,s.tvocIndex,s.noxIndex,s.pressureHpa,s.batteryPercent].map(_r).join(","));return[wr.join(","),...t].join(`\r
2`)},vr=e=>`airgradient-go-route-${e.timestampSeconds?pn(e.timestampSeconds).replace(/:/g,"-").replace(".000Z","Z"):"empty"}-session-${e.id}.csv`,Er=(e,n)=>{const t=new Blob([Sr(e.id,n)],{type:"text/csv;charset=utf-8"}),s=URL.createObjectURL(t),i=document.createElement("a");i.href=s,i.download=vr(e),i.hidden=!0,document.body.append(i),i.click(),i.remove(),URL.revokeObjectURL(s)},Zt=8e3,ht=1e4,Xt=9e4,Ir=3e4,kr=3,Or=100;class Y extends Error{constructor(t){super(t);ot(this,"code");this.name="GoRouteManagerError",this.code=t}}const Ar=e=>e.code==="history_notification_truncated"?"mtu_too_small":"protocol_error",He=(e,n)=>{if(e instanceof Y)return e.code;if(e instanceof $)return Ar(e);if(e instanceof DOMException){if(e.name==="NotFoundError")return"chooser_cancelled";if(e.name==="SecurityError")return"pairing_failed";if(e.name==="NetworkError")return"connection_failed";if(["InvalidStateError","NotReadableError","NotSupportedError"].includes(e.name))return"bluetooth_unavailable"}return n},pt=e=>e==="expected_disconnect"||e==="operation_cancelled",Rr=e=>new Set(["session_not_found","no_active_download","flash_error","delete_failed","
2session_active","busy"]).has(e)?e:"device_error",Tr=e=>new Set(["overheat","low_batt","user","op_stationary","op_offline"]).has(e)?`disconnect_${e}`:"disconnect_expected",Mr=()=>{const e=he(null),n=he("idle"),t=he("idle"),s=he(""),i=he([]),l=he(null),u=he(null),v=he(null),_=he(null),U=he(0),T=he(0),D=he(null);let j=null,N=null,B=null,F=null,L=[],se=[],ue=!1,I=null,ye=!1,le=null,Q=null,xe=0,z=!1;const ne=ie(()=>n.value==="connected"),_e=ie(()=>n.value==="requesting"||n.value==="connecting"||t.value!=="idle"),Ie=ie(()=>{var x;return(x=l.value)!=null&&x.tracking?l.value.sessionId:null});function fe(){!ye||!ne.value||t.value!=="idle"||(ye=!1,Ne())}const o=()=>{if(!globalThis.isSecureContext){e.value="insecure_context";return}const x=navigator.bluetooth;e.value=x?null:"unsupported"},m=x=>{const y=se;se=[];for(const R of y)R.timer&&clearTimeout(R.timer),R.reject(x)},d=(x="operation_cancelled")=>{m(new Y(x)),L=[]},p=(x,y,R=!1)=>{const P=L.findIndex(x);if(P>=0){const[V]=L.splice(P,1);return Promise.resolve(V)}return new Promise((V,Fe)=>{const Oe={predicate:x,resolve:V,reject:Fe,refreshOnHistoryActivity:R,timeoutMilliseconds:y,timer:null};(()=>{Oe.timer&&clearTimeout(Oe.timer),Oe.timer=setTimeout(()=>{se=se.filter(Mt=>Mt!==Oe),Fe(new Y("response_timeout"))},Oe.timeoutMilliseconds)})(),se.push(Oe)})},h=()=>{for(const x of se)x.refreshOnHistoryActivity&&(x.timer&&clearTimeout(x.timer),x.timer=setTimeout(()=>{se=se.filter(y=>y!==x),x.reject(new Y("response_timeout"))},x.timeoutMilliseconds))},E=x=>{const y=se.findIndex(R=>R.predicate(x));if(y>=0){const[R]=se.splice(y,1);R.timer&&clearTimeout(R.timer),R.resolve(x);return}L.push(x),L.length>Or&&L.shift()},S=async(x,y,R=!1)=>{const P=await p(V=>V.type==="error"||x.includes(V.type),y,R);if(P.type==="error")throw new Y(Rr(P.error));return P},k=x=>{const y=x instanceof Error?x:new Y("protocol_error");u.value=He(y,"protocol_error"),m(y)},O=(x,y)=>{if(!F)throw new $("unexpected_history_chunk");for(const[R,P]of y.entries()){const V=x+R;if(V>=F.expectedPoints)throw new $("invalid_point_index");F.points.set(V,{...P,index:V})}U.value=F.points.size},A=()=>{const x=N==null?void 0:N.value;if(x)try{const y=gr(x);h(),y.kind==="control"?E(y.message):O(y.startIndex,y.points)}catch(y){if(F&&y instanceof $&&y.code==="history_notification_truncated"){F.sawTruncatedChunk=!0;return}k(y)}},ke=()=>{const x=B==null?void 0:B.value;if(!x)return;const y=xr(x);if(!y)return;if(y.type==="disconnect"){I=y.reason,v.value=Tr(y.reason);return}if(!l.value)return;const R=l.value.tracking&&!y.tracking;l.value={...l.value,tracking:y.tracking,sessionId:y.sessionId},R&&(ye=!0,queueMicrotask(fe))},ve=async x=>{if(!N)throw new Y("not_connected");const y=N;if(Q&&await Q,N!==y)throw new Y("disconnected");const R=hr(x);if(y.writeValueWithResponse){await y.writeValueWithResponse(R);return}if(y.writeValue){await y.writeValue(R);return}throw new Y("write_failed")},Ce=()=>{if(!B)return Promise.reject(new Y("not_connected"));if(Q)return Q;const x=B,y=x.readValue().then(R=>{B===x&&(l.value=yr(R))}).finally(()=>{Q===y&&(Q=null)});return Q=y,y},Ve=()=>{le&&(clearInterval(le),le=null)},st=()=>{Ve(),le=Mn(()=>{!ne.value||t.value!=="idle"||document.visibilityState!=="visible"||Ce().catch(()=>{})},Ir)},it=async()=>{d();const x=new Map;let y=null,R=null;const P=S(["sessions"],Zt);await ve({op:"list"});let V=await P;for(;;){if(V.type!=="sessions")throw new Y("protocol_error");if(y===null)y=V.totalPages,R=V.totalCount;else if(y!==V.totalPages||R!==V.totalCount)throw new Y("protocol_error");if(x.set(V.page,V.sessions),x.size===y)break;V=await S(["sessions"],Zt)}i.value=br(x,y,R??0)},Ne=async()=>{if(!(!ne.value||t.value!=="idle")){t.value="listing",u.value=null;try{await Ce(),await it()}catch(x){const y=He(x,"list_failed");pt(y)||(u.value=y)}finally{d(),t.value="idle",queueMicrotask(fe)}}},G=(x="operation_cancelled")=>{Ve(),N==null||N.removeEventListener("characteristicvaluechanged",A),B==null||B.removeEventListener("characteristicvaluechanged",ke),j==null||j.removeEventListener("gattserverdisconnected",Z),N=null,B=null,j=null,F=null,i.value=[],l.value=null,Q=null,s.value="",t.value="idle",_.value=null,U.value=0,T.value=0,D.value=null,I=null,ye=!1,d(x)};function Z(){const x=ue,y=!!I;
2G(x?"operation_cancelled":y?"expected_disconnect":"disconnected"),n.value="idle",ue=!1,!x&&!y&&(u.value="disconnected")}const me=(x=!1)=>{var R;xe+=1,ue=!0;const y=j;y==null||y.removeEventListener("gattserverdisconnected",Z),(R=y==null?void 0:y.gatt)!=null&&R.connected&&y.gatt.disconnect(),G(),n.value="idle",ue=!1,x||(u.value=null,v.value=null)},H=async()=>{var R;if(z)return;if(o(),e.value){u.value=e.value;return}u.value=null,v.value=null,I=null;const x=++xe,y=()=>{if(z||x!==xe)throw new Y("operation_cancelled")};n.value="requesting";try{const P=navigator.bluetooth;if(!P)throw new Y("unsupported");j=await P.requestDevice({filters:[{services:[Gt]}]}),y(),s.value=j.name||"",j.addEventListener("gattserverdisconnected",Z),n.value="connecting";const V=await((R=j.gatt)==null?void 0:R.connect());if(y(),!V)throw new Y("connection_failed");const Fe=await V.getPrimaryService(Gt);y(),B=await Fe.getCharacteristic(Zn),y(),await Ce(),y(),N=await Fe.getCharacteristic(Xn),y(),N.addEventListener("characteristicvaluechanged",A),await N.startNotifications(),y(),B.addEventListener("characteristicvaluechanged",ke),await B.startNotifications(),y(),n.value="connected",st()}catch(P){const V=He(P,"connection_failed");me(!0),!z&&V!=="expected_disconnect"&&(u.value=V);return}await Ne()},je=async x=>{if(!ne.value||t.value!=="idle")return;t.value="exporting",u.value=null,_.value=x.id,U.value=0,T.value=x.pointCount,F={sessionId:x.id,expectedPoints:x.pointCount,points:new Map,sawTruncatedChunk:!1};let y=!1;try{d();const R=S(["started"],ht);y=!0,await ve({op:"start",session:x.id});const P=await R;if(P.type!=="started"||P.sessionId!==x.id)throw new Y("protocol_error");if(P.pointSize!==ze)throw new Y("incompatible_point_size");if(F.expectedPoints=P.totalPoints,T.value=P.totalPoints,(await S(["done"],Xt,!0)).type!=="done")throw new Y("protocol_error");for(let Ut=0;Ut<kr;Ut+=1){const Ct=Jt(F.expectedPoints,new Set(F.points.keys()));if(!Ct.length)break;for(const xn of mr(Ct)){const mn=S(["done"],Xt,!0);if(await ve({op:"fill",pts:xn}),(await mn).type!=="done")throw new Y("protocol_error")}}if(Jt(F.expectedPoints,new Set(F.points.keys())).length)throw new Y(F.sawTruncatedChunk?"mtu_too_small":"incomplete_transfer");const Tt=S(["ended"],ht);if(await ve({op:"end"}),(await Tt).type!=="ended")throw new Y("protocol_error");Er(x,[...F.points.values()])}catch(R){const P=He(R,"export_failed");if(pt(P)||(u.value=P),y&&N)try{await ve({op:"end"})}catch{}}finally{F=null,d(),_.value=null,t.value="idle",queueMicrotask(fe)}},gn=async x=>{if(!ne.value||t.value!=="idle")return!1;if(Ie.value===x.id)return u.value="session_active",!1;t.value="deleting",D.value=x.id,u.value=null;let y=!1;try{d();const R=S(["deleted"],ht);await ve({op:"delete",session:x.id});const P=await R;if(P.type!=="deleted"||P.sessionId!==x.id)throw new Y("protocol_error");i.value=i.value.filter(V=>V.id!==x.id),y=!0;try{await Ce()}catch{l.value=null}}catch(R){const P=He(R,"delete_failed");pt(P)||(u.value=P)}finally{d(),D.value=null,t.value="idle",queueMicrotask(fe)}return y&&await Ne(),y},yn=()=>{u.value=null},Rt=()=>{me(!0)};return Sn(()=>{o(),window.addEventListener("pagehide",Rt)}),vn(()=>{z=!0,window.removeEventListener("pagehide",Rt),me(!0)}),{activeSessionId:Ie,clearError:yn,connect:H,connectionState:n,deleteSession:gn,deletingSessionId:D,deviceName:s,disconnect:me,errorCode:u,exportSession:je,isBusy:_e,isConnected:ne,noticeCode:v,operationState:t,refreshSessions:Ne,sessions:i,status:l,supportIssue:e,transferReceivedPoints:U,transferSessionId:_,transferTotalPoints:T}},Ur={class:"go-route-manager-page"},Cr={class:"container go-route-manager-shell"},Nr={class:"go-route-manager-hero"},Fr={class:"go-route-manager-kicker"},Br={key:0,class:"go-route-manager-notice go-route-manager-notice--warning",role:"alert"},Pr={key:0,class:"go-route-manager-notice go-route-manager-notice--error",role:"alert"},Dr={class:"go-route-manager-panel-header"},Lr={class:"go-route-manager-actions"},Vr=["disabled"],jr=["disabled"],Kr=["disabled"],Hr={class:"go-route-manager-privacy-note"},$r={key:1,class:"go-route-manager-notice go-route-manager-notice--info",role:"status"},zr={class:"visually-hidden","aria-live":"polite"},Gr={class:"go-route-manager-panel-header"},qr={class:"go-route-manager-device-stats"},Yr={class:"go-route-manager-panel-header"},Wr=["value","max","aria-valuetext"],Jr={class:"go-route-manager-panel-header"},Zr={key:0,class:"go-route-manager-loading",role:"status"},Xr={key:1,class:"go-route-manager-empty"},Qr={key:2,class:"go-route-manager-table-wrap"},es={class:"go-route-manager-table"},ts={scope:"col"},ns={scope:"col"},rs={scope:"col"},ss={scope:"col"},is={scope:"col",class:"go-route-manager-actions-heading"},os=["data-label"],as=["datetime"],ls={key:1},cs=["data-label"],us=["data-label"],fs=["data-label"],ds={key:0,class:"badge rounded-pill text-bg-info"}
2,hs={key:1},ps=["data-label"],gs=["aria-label","disabled","onClick"],ys=["aria-label","disabled","onClick"],xs={key:2,class:"go-route-manager-panel go-route-manager-troubleshooting"},ms={class:"go-route-manager-troubleshooting-content"},bs={class:"go-route-manager-troubleshooting-group"},ws={class:"go-route-manager-troubleshooting-checklist"},_s={class:"go-route-manager-troubleshooting-linux"},Ss={class:"go-route-manager-troubleshooting-group go-route-manager-troubleshooting-recovery"},vs={key:0},Es={class:"go-route-manager-delete-warning"},Is={class:"go-route-manager-dialog-actions"},ks=["disabled"],Os=["disabled"],Qt="go-route-manager-connection-heading",en="go-route-manager-device-heading",tn="go-route-manager-sessions-heading",gt="go-route-manager-transfer-heading",As=1024,nn=100,Rs=rn({__name:"GoRouteManager",setup(e){const{locale:n,t}=En("go/route-manager"),{activeSessionId:s,clearError:i,connect:l,connectionState:u,deleteSession:v,deletingSessionId:_,deviceName:U,disconnect:T,errorCode:D,exportSession:j,isBusy:N,isConnected:B,noticeCode:F,operationState:L,refreshSessions:se,sessions:ue,status:I,supportIssue:ye,transferReceivedPoints:le,transferSessionId:Q,transferTotalPoints:xe}=Mr(),z=he(null);In(()=>({title:t("meta.title"),meta:[{name:"description",content:t("meta.description")}]}));const ne=ie(()=>new Intl.NumberFormat(n.value||"en")),_e=ie(()=>new Intl.NumberFormat(n.value||"en",{maximumFractionDigits:1})),Ie=ie(()=>new Intl.DateTimeFormat(n.value||"en",{dateStyle:"medium",timeStyle:"short"})),fe=(G,Z)=>{let me=t(G);for(const[H,je]of Object.entries(Z))me=me.replaceAll(`{${H}}`,String(je));return me},o=ie(()=>t(`connection.states.${u.value}`)),m=ie(()=>({"is-connected":B.value,"is-pending":["requesting","connecting"].includes(u.value)})),d=ie(()=>B.value?fe("connection.connectedTo",{device:U.value||t("device.unnamed")}):u.value==="requesting"?t("connection.requesting"):u.value==="connecting"?t("connection.connecting"):t("connection.instructions")),p=ie(()=>u.value==="requesting"||u.value==="connecting"?t("actions.connecting"):t("actions.connect")),h=ie(()=>{if(!I.value||I.value.flashKilobytes<=0)return t("device.unavailable");const G=Math.min(nn,Math.max(0,I.value.usedKilobytes/I.value.flashKilobytes*nn)),Z=G>0&&G<1?t("device.lessThanOnePercent"):`${ne.value.format(Math.round(G))}%`;return fe("device.storageValue",{percent:Z,used:ne.value.format(I.value.usedKilobytes),total:_e.value.format(I.value.flashKilobytes/As)})}),E=ie(()=>I.value?I.value.tracking?fe("device.trackingSession",{id:I.value.sessionId}):t("device.notTracking"):t("device.unavailable")),S=ie(()=>fe("transfer.progress",{received:ne.value.format(le.value),total:ne.value.format(xe.value),id:Q.value??""})),k=ie(()=>L.value==="listing"?t("sessions.loading"):L.value==="exporting"?t("transfer.title"):L.value==="deleting"?t("delete.deleting"):d.value),O=G=>new Date(G.timestampSeconds*1e3).toISOString(),A=G=>Ie.value.format(new Date(G.timestampSeconds*1e3)),ke=G=>Q.value===G.id?t("actions.exporting"):t("actions.export"),ve=G=>_.value===G.id?t("delete.deleting"):t("actions.delete"),Ce=G=>{N.value||s.value===G.id||(z.value=G)},Ve=()=>{L.value!=="deleting"&&(z.value=null)},st=G=>{G||Ve()},it=ie(()=>z.value?fe("delete.description",{id:z.value.id,date:z.value.timestampSeconds?A(z.value):t("sessions.emptyRoute"),points:ne.value.format(z.value.pointCount)}):""),Ne=async()=>{z.value&&(await v(z.value),z.value=null)};return(G,Z)=>{const me=_n;return q(),J("section",Ur,[g("div",Cr,[g("header",Nr,[g("p",Fr,w(f(t)("hero.kicker")),1),g("h1",null,w(f(t)("hero.title")),1),g("p",null,w(f(t)("hero.description")),1)]),f(ye)?(q(),J("div",Br,[g("div",null,[g("h2",null,w(f(t)("support.title")),1),g("p",null,w(f(t)(`errors.${f(ye)}`,f(t)("errors.unknown"))),1)])])):(q(),J(at,{key:1},[f(D)?(q(),J("div",Pr,[g("div",null,[g("h2",null,w(f(t)("errors.title")),1),g("p",null,w(f(t)(`errors.${f(D)}`,f(t)("errors.unknown"))),1)]),g("button",{type:"button",class:"btn btn-sm btn-outline-danger",onClick:Z[0]||(Z[0]=(...H)=>f(i)&&f(i)(...H))},w(f(t)("actions.dismiss")),1)])):Ae("",!0),g("section",{class:"go-route-manager-panel","aria-labelledby":Qt},[g("div",Dr,[g("div",null,[g("h2",{id:Qt},w(f(t)("connection.title")),1),g("p",null,w(f(d)),1)]),g("span",{class:On(["go-route-manager-connection-state",f(m)])},w(f(o)),3)]),g("div",Lr,[f(B)?(q(),J(at,{key:1},[g("button",{type:"button",class:"btn-small button-blue",disabled:f(N),onClick:Z[2]||(Z[2]=(...H)=>f(se)&&f(se)(...H))},w(f(t)("actions.refresh")),9,jr),g("button",{type:"button",class:"btn-small go-route-manager-secondary-button",disabled:f(N),onClick:Z[3]||(Z[3]=H=>f(T)())},w(f(t)("actions.disconnect")),9,Kr)],64)):(q(),J("button",{key:0,t
2ype:"button",class:"btn-small button-blue",disabled:f(N),onClick:Z[1]||(Z[1]=(...H)=>f(l)&&f(l)(...H))},w(f(p)),9,Vr))]),g("p",Hr,w(f(t)("connection.privacy")),1)]),f(F)?(q(),J("div",$r,[g("div",null,[g("h2",null,w(f(t)("notices.title")),1),g("p",null,w(f(t)(`notices.${f(F)}`,f(t)("notices.disconnect_expected"))),1)])])):Ae("",!0),g("p",zr,w(f(k)),1),f(B)?(q(),J("section",{key:2,class:"go-route-manager-panel","aria-labelledby":en},[g("div",Gr,[g("div",null,[g("h2",{id:en},w(f(U)||f(t)("device.unnamed")),1),g("p",null,w(f(t)("device.connected")),1)])]),g("dl",qr,[g("div",null,[g("dt",null,w(f(t)("device.storage")),1),g("dd",null,w(f(h)),1)]),g("div",null,[g("dt",null,w(f(t)("device.tracking")),1),g("dd",null,w(f(E)),1)]),g("div",null,[g("dt",null,w(f(t)("device.routes")),1),g("dd",null,w(f(ne).format(f(ue).length)),1)])])])):Ae("",!0),f(L)==="exporting"?(q(),J("section",{key:3,class:"go-route-manager-panel go-route-manager-transfer","aria-labelledby":gt},[g("div",Yr,[g("h2",{id:gt},w(f(t)("transfer.title")),1)]),g("progress",{value:f(xe)?f(le):1,max:Math.max(f(xe),1),"aria-labelledby":gt,"aria-valuetext":f(S)},null,8,Wr)])):Ae("",!0),f(B)?(q(),J("section",{key:4,class:"go-route-manager-panel","aria-labelledby":tn},[g("div",Jr,[g("div",null,[g("h2",{id:tn},w(f(t)("sessions.title")),1),g("p",null,w(f(t)("sessions.description")),1)])]),f(L)==="listing"?(q(),J("div",Zr,[Z[4]||(Z[4]=g("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1)),An(" "+w(f(t)("sessions.loading")),1)])):f(ue).length?(q(),J("div",Qr,[g("table",es,[g("thead",null,[g("tr",null,[g("th",ts,w(f(t)("sessions.date")),1),g("th",ns,w(f(t)("sessions.id")),1),g("th",rs,w(f(t)("sessions.points")),1),g("th",ss,w(f(t)("sessions.state")),1),g("th",is,w(f(t)("sessions.actions")),1)])]),g("tbody",null,[(q(!0),J(at,null,Rn(f(ue),H=>(q(),J("tr",{key:H.id},[g("td",{"data-label":f(t)("sessions.date")},[H.timestampSeconds?(q(),J("time",{key:0,datetime:O(H)},w(A(H)),9,as)):(q(),J("span",ls,w(f(t)("sessions.emptyRoute")),1))],8,os),g("td",{"data-label":f(t)("sessions.id")},[g("code",null,w(H.id),1)],8,cs),g("td",{"data-label":f(t)("sessions.points")},w(f(ne).format(H.pointCount)),9,us),g("td",{"data-label":f(t)("sessions.state")},[f(s)===H.id?(q(),J("span",ds,w(f(t)("sessions.active")),1)):(q(),J("span",hs,w(f(t)("sessions.stored")),1))],8,fs),g("td",{class:"go-route-manager-row-actions","data-label":f(t)("sessions.actions")},[g("button",{type:"button",class:"btn btn-sm btn-primary","aria-label":`${f(t)("actions.export")} — ${f(t)("sessions.id")} ${H.id}`,disabled:f(N),onClick:je=>f(j)(H)},w(ke(H)),9,gs),g("button",{type:"button",class:"btn btn-sm btn-outline-danger","aria-label":`${f(t)("actions.delete")} — ${f(t)("sessions.id")} ${H.id}`,disabled:f(N)||f(s)===H.id,onClick:je=>Ce(H)},w(ve(H)),9,ys)],8,ps)]))),128))])])])):(q(),J("p",Xr,w(f(t)("sessions.empty")),1))])):Ae("",!0)],64)),f(B)?Ae("",!0):(q(),J("details",xs,[g("summary",null,w(f(t)("troubleshooting.summary")),1),g("div",ms,[g("p",null,w(f(t)("troubleshooting.intro")),1),g("section",bs,[g("h3",null,w(f(t)("troubleshooting.checks.title")),1),g("ul",ws,[g("li",null,w(f(t)("troubleshooting.checks.deviceReady")),1),g("li",null,w(f(t)("troubleshooting.checks.deviceAvailable")),1),g("li",null,w(f(t)("troubleshooting.checks.bluetoothEnabled")),1),g("li",null,w(f(t)("troubleshooting.checks.chromeCurrent")),1)])]),g("section",_s,[g("h3",null,w(f(t)("troubleshooting.linux.title")),1),g("p",null,w(f(t)("troubleshooting.linux.beforeFlag")),1),Z[5]||(Z[5]=g("code",null,"chrome://flags/#enable-experimental-web-platform-features",-1)),g("p",null,w(f(t)("troubleshooting.linux.afterFlag")),1),g("p",null,w(f(t)("troubleshooting.linux.disconnect")),1)]),g("section",Ss,[g("h3",null,w(f(t)("troubleshooting.recoveryTitle")),1),g("ol",null,[g("li",null,w(f(t)("troubleshooting.steps.removePairing")),1),g("li",null,w(f(t)("troubleshooting.steps.retryConnection")),1),g("li",null,w(f(t)("troubleshooting.steps.powerCycle")),1)])])])]))]),kn(me,{"model-value":!!f(z),title:f(t)("delete.title"),"close-label":f(t)("actions.close"),"close-on-backdrop":f(L)!=="deleting","show-close-button":f(L)!=="deleting","max-width":"520px","onUpdate:modelValue":st},{footer:Nt(()=>[g("div",Is,[g("button",{type:"button",class:"btn btn-outline-secondary",disabled:f(L)==="deleting",onClick:Ve},w(f(t)("actions.cancel")),9,ks),g("button",{type:"button",class:"btn btn-danger",disabled:f(L)==="deleting",onClick:Ne},w(f(L)==="deleting"?f(t)("delete.deleting"):f(t)("delete.confirm")),9,Os)])]),default:Nt(()=>[f(z)?(q(),J("p",vs,w(f(it)),1)):Ae("",!0),g("p",Es,w(f(t)("delete.warning")),1)]),_:1},8,["model-value","title","close-label","close-on-backdrop","show-close-button"])])}}}),Fs=rn({__name:"route-manager",setup(e){return(n,t)=>(q(),Tn(Rs))}});
2export{Fs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.