1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20945,69185,63802,36180,93968,e=>{"use strict";let t,r,n;var i,s,a,o,l,u,h,c,d,f,p,m,g,y,w,v,I,b=e.i(47167);let _=function(e){let t=[],r=0;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:((64512&i)==55296&&n+1<e.length&&(64512&e.charCodeAt(n+1))==56320?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128)}return t},E=function(e){let t=[],r=0,n=0;for(;r<e.length;){let i=e[r++];if(i<128)t[n++]=String.fromCharCode(i);else if(i>191&&i<224){let s=e[r++];t[n++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){let s=((7&i)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(s>>10)),t[n++]=String.fromCharCode(56320+(1023&s))}else{let s=e[r++],a=e[r++];t[n++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&a)}}return t.join("")},T={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){let i=e[t],s=t+1<e.length,a=s?e[t+1]:0,o=t+2<e.length,l=o?e[t+2]:0,u=i>>2,h=(3&i)<<4|a>>4,c=(15&a)<<2|l>>6,d=63&l;!o&&(d=64,s||(c=64)),n.push(r[u],r[h],r[c],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(_(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):E(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){let i=r[e.charAt(t++)],s=t<e.length?r[e.charAt(t)]:0,a=++t<e.length?r[e.charAt(t)]:64,o=++t<e.length?r[e.charAt(t)]:64;if(++t,null==i||null==s||null==a||null==o)throw new S;let l=i<<2|s>>4;if(n.push(l),64!==a){let e=s<<4&240|a>>2;if(n.push(e),64!==o){let e=a<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class S extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let C=function(e){let t=_(e);return T.encodeByteArray(t,!0)},A=function(e){return C(e).replace(/\./g,"")},k=function(e){try{return T.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function x(){return"u">typeof self?self:"u">typeof window?window:e.g}let N=()=>{try{return x().__FIREBASE_DEFAULTS__||(()=>{if(void 0===b.default||void 0===b.default.env)return;let e=b.default.env.__FIREBASE_DEFAULTS__;if(e)return JSON.parse(e)})()||(()=>{let e;if("u"<typeof document)return;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}let t=e&&k(e[1]);return t&&JSON.parse(t)})()}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}},D=e=>N()?.emulatorHosts?.[e],R=()=>N()?.config,O=e=>N()?.[`_${e}`];class P{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,r))}}}function L(){return"u">typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function M(){let t=N()?.forceEnvironment;if("node"===t)return!0;
1if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(e.g.process)}catch(e){return!1}}function V(){return!M()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function F(){return!M()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function U(){try{return"object"==typeof indexedDB}catch(e){return!1}}class B extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,B.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,j.prototype.create)}}class j{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r,n;let i=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],o=a?(r=a,n=i,r.replace(q,(e,t)=>{let r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",l=`${this.serviceName}: ${o} (${s}).`;return new B(s,l,i)}}let q=/\{\$([^}]+)}/g;function z(e,t){if(e===t)return!0;let r=Object.keys(e),n=Object.keys(t);for(let i of r){if(!n.includes(i))return!1;let r=e[i],s=t[i];if($(r)&&$(s)){if(!z(r,s))return!1}else if(r!==s)return!1}for(let e of n)if(!r.includes(e))return!1;return!0}function $(e){return null!==e&&"object"==typeof e}function K(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function G(e){let t={};return e.replace(/^\?/,"").split("&").forEach(e=>{if(e){let[r,n]=e.split("=");
1t[decodeURIComponent(r)]=decodeURIComponent(n)}}),t}function H(e){let t=e.indexOf("?");if(!t)return"";let r=e.indexOf("#",t);return e.substring(t,r>0?r:void 0)}class W{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw Error("Missing Observer.");void 0===(n=!function(e,t){if("object"!=typeof e||null===e)return!1;for(let r of t)if(r in e&&"function"==typeof e[r])return!0;return!1}(e,["next","error","complete"])?{next:e,error:t,complete:r}:e).next&&(n.next=Q),void 0===n.error&&(n.error=Q),void 0===n.complete&&(n.complete=Q);let i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"u">typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Q(){}function J(e){return e&&e._delegate?e._delegate:e}function Y(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function X(e){return(await fetch(e,{credentials:"include"})).ok}class Z{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let ee="[DEFAULT]";class et{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new P;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}if(r)return null;throw Error(`Service ${this.name} is not available`)}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:ee})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let r=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e=ee){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=ee){return this.instances.has(e)}getOptions(e=ee){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[e,t]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(e)&&t.resolve(n);return n}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);let i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var r;let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===ee?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch{}return n||null}normalizeInstanceIdentifier(e=ee){return this.component?this.component.multipleInstances?e:ee:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class er{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new et(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}let en=[];(i=a||(a={}))[i.DEBUG=0]="DEBUG",i[i.VERBOSE=1]="VERBOSE",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.SILENT=5]="SILENT";let ei={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},es=a.INFO,ea={[a.DEBUG]:"log",[a.VERBOSE]:"log",[a.INFO]:"info",[a.WARN]:"warn",[a.ERROR]:"error"},eo=(e,t,...r)=>{if(t<e.logLevel)return;let n=new Date().toISOString(),i=ea[t];if(i)console[i](`[${n}] ${e.name}:`,...r);
1else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)};class el{constructor(e){this.name=e,this._logLevel=es,this._logHandler=eo,this._userLogHandler=null,en.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?ei[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}let eu=new WeakMap,eh=new WeakMap,ec=new WeakMap,ed=new WeakMap,ef=new WeakMap,ep={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return eh.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ec.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return em(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function em(e){if(e instanceof IDBRequest){let t;return(t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t(em(e.result)),n()},s=()=>{r(e.error),n()};e.addEventListener("success",i),e.addEventListener("error",s)})).then(t=>{t instanceof IDBCursor&&eu.set(t,e)}).catch(()=>{}),ef.set(t,e),t}if(ed.has(e))return ed.get(e);let n=function(e){if("function"==typeof e)return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(r||(r=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(eg(this),t),em(eu.get(this))}:function(...t){return em(e.apply(eg(this),t))}:function(t,...r){let n=e.call(eg(this),t,...r);return ec.set(n,t.sort?t.sort():[t]),em(n)};return e instanceof IDBTransaction&&function(e){if(eh.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),n()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});eh.set(e,t)}(e),(t||(t=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(t=>e instanceof t)?new Proxy(e,ep):e}(e);return n!==e&&(ed.set(e,n),ef.set(n,e)),n}let eg=e=>ef.get(e),ey=["get","getKey","getAll","getAllKeys","count"],ew=["put","add","delete","clear"],ev=new Map;function eI(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(ev.get(t))return ev.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,i=ew.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||ey.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,i?"readwrite":"readonly"),a=s.store;return n&&(a=a.index(t.shift())),(await Promise.all([a[r](...t),i&&s.done]))[0]};return ev.set(t,s),s}ep={...n=ep,get:(e,t,r)=>eI(e,t)||n.get(e,t,r),has:(e,t)=>!!eI(e,t)||n.has(e,t)};class eb{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{let t;if(t=e.getComponent(),t?.type!=="VERSION")return null;{let t=e.getImmediate();return`${t.library}/${t.version}`}}).filter(e=>e).join(" ")}}let e_="@firebase/app",eE="0.14.11",eT=new el("@firebase/app"),eS="[DEFAULT]",eC={[e_]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},eA=new Map,ek=new Map,ex=new Map;function eN(e,t){try{e.container.addComponent(t)}catch(r){eT.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function eD(e){let t=e.name;if(ex.has(t))return eT.debug(`There were multiple attempts to register component ${t}.`),!1;
1for(let r of(ex.set(t,e),eA.values()))eN(r,e);for(let t of ek.values())eN(t,e);return!0}function eR(e,t){let r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function eO(e){return null!=e&&void 0!==e.settings}let eP=new j("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class eL{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new Z("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw eP.create("app-deleted",{appName:this._name})}}let eM="12.12.0";function eV(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});let n={name:eS,automaticDataCollectionEnabled:!0,...t},i=n.name;if("string"!=typeof i||!i)throw eP.create("bad-app-name",{appName:String(i)});if(r||(r=R()),!r)throw eP.create("no-options");let s=eA.get(i);if(s)if(z(r,s.options)&&z(n,s.config))return s;else throw eP.create("duplicate-app",{appName:i});let a=new er(i);for(let e of ex.values())a.addComponent(e);let o=new eL(r,n,a);return eA.set(i,o),o}function eF(e=eS){let t=eA.get(e);if(!t&&e===eS&&R())return eV();if(!t)throw eP.create("no-app",{appName:e});return t}function eU(e,t,r){let n=eC[e]??e;r&&(n+=`-${r}`);let i=n.match(/\s|\//),s=t.match(/\s|\//);if(i||s){let e=[`Unable to register library "${n}" with version "${t}":`];i&&e.push(`library name "${n}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),eT.warn(e.join(" "));return}eD(new Z(`${n}-version`,()=>({library:n,version:t}),"VERSION"))}let eB="firebase-heartbeat-store",ej=null;function eq(){return ej||(ej=(function(e,{blocked:t,upgrade:r,blocking:n,terminated:i}={}){let s=indexedDB.open(e,1),a=em(s);return r&&s.addEventListener("upgradeneeded",e=>{r(em(s.result),e.oldVersion,e.newVersion,em(s.transaction),e)}),t&&s.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),a.then(e=>{i&&e.addEventListener("close",()=>i()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),a})("firebase-heartbeat-database",{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(eB)}catch(e){console.warn(e)}}}).catch(e=>{throw eP.create("idb-open",{originalErrorMessage:e.message})})),ej}async function ez(e){try{let t=(await eq()).transaction(eB),r=await t.objectStore(eB).get(eK(e));return await t.done,r}catch(e){if(e instanceof B)eT.warn(e.message);else{let t=eP.create("idb-get",{originalErrorMessage:e?.message});eT.warn(t.message)}}}async function e$(e,t){try{let r=(await eq()).transaction(eB,"readwrite"),n=r.objectStore(eB);await n.put(t,eK(e)),await r.done}catch(e){if(e instanceof B)eT.warn(e.message);else{let t=eP.create("idb-set",{originalErrorMessage:e?.message});eT.warn(t.message)}}}function eK(e){return`${e.name}!${e.options.appId}`}class eG{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new eW(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{let e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=eH();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===t||this._heartbeatsCache.heartbeats.some(e=>e.date===t))return;if(this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats.length>30){let e=function(e){if(0===e.length)return -1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t}(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(e,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){eT.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||0===this._heartbeatsCache.heartbeats.length)return"";let e=eH(),{heartbeatsToSend:t,unsentEntries:r}=function(e,t=1024){let r=[],n=e.slice();for(let i of e){let e=r.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),eQ(r)>t){e.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),eQ(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),n=A(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n}
1catch(e){return eT.warn(e),""}}}function eH(){return new Date().toISOString().substring(0,10)}class eW{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!U()&&new Promise((e,t)=>{try{let r=!0,n="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(n);i.onsuccess=()=>{i.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},i.onupgradeneeded=()=>{r=!1},i.onerror=()=>{t(i.error?.message||"")}}catch(e){t(e)}}).then(()=>!0).catch(()=>!1)}async read(){if(!await this._canUseIndexedDBPromise)return{heartbeats:[]};{let e=await ez(this.app);return e?.heartbeats?e:{heartbeats:[]}}}async overwrite(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return e$(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return e$(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function eQ(e){return A(JSON.stringify({version:2,heartbeats:e})).length}function eJ(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}eD(new Z("platform-logger",e=>new eb(e),"PRIVATE")),eD(new Z("heartbeat",e=>new eG(e),"PRIVATE")),eU(e_,eE,""),eU(e_,eE,"esm2020"),eU("fire-js",""),eU("firebase","12.12.1","app");let eY=new j("auth","Firebase",eJ()),eX=new el("@firebase/auth");function eZ(e,...t){eX.logLevel<=a.ERROR&&eX.error(`Auth (${eM}): ${e}`,...t)}function e0(e,...t){throw e6(e,...t)}function e1(e,...t){return e6(e,...t)}function e2(e,t,r){return new j("auth","Firebase",{...eJ(),[t]:r}).create(t,{appName:e.name})}function e3(e){return e2(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function e6(e,...t){if("string"!=typeof e){let r=t[0],n=[...t.slice(1)];return n[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)}return eY.create(e,...t)}function e5(e,t,...r){if(!e)throw e6(t,...r)}function e4(e){let t="INTERNAL ASSERTION FAILED: "+e;throw eZ(t),Error(t)}function e8(){return"u">typeof self&&self.location?.href||""}function e9(){return"u">typeof self&&self.location?.protocol||null}class e7{constructor(e,t){this.shortDelay=e,this.longDelay=t,function(e,t){e||e4(t)}(t>e,"Short delay should be less than long delay!"),this.isMobile="u">typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(L())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){let e;return!("u">typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===e9()||"https:"===e9()||"object"==typeof(e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0)&&void 0!==e.id||"connection"in navigator))||navigator.onLine?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function te(e,t){var r,n;r=e.emulator,n="Emulator should always be set here",r||e4(n);let{url:i}=e.emulator;return t?`${i}${t.startsWith("/")?t.slice(1):t}`:i}class tt{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl?this.fetchImpl:"u">typeof self&&"fetch"in self?self.fetch:"u">typeof globalThis&&globalThis.fetch?globalThis.fetch:"u">typeof fetch?fetch:void e4("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"u">typeof self&&"Headers"in self?self.Headers:"u">typeof globalThis&&globalThis.Headers?globalThis.Headers:"u">typeof Headers?Headers:void e4("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"u">typeof self&&"Response"in self?self.Response:"u">typeof globalThis&&globalThis.Response?globalThis.Response:"u">typeof Response?Response:void e4("Could not find Response implementation, make sure you call FetchProvi
1der.initialize() with an appropriate polyfill")}}let tr={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},tn=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],ti=new e7(3e4,6e4);function ts(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function ta(e,t,r,n,i={}){return to(e,i,async()=>{let i={},s={};n&&("GET"===t?s=n:i={body:JSON.stringify(n)});let a=K({key:e.config.apiKey,...s}).slice(1),o=await e._getAdditionalHeaders();o["Content-Type"]="application/json",e.languageCode&&(o["X-Firebase-Locale"]=e.languageCode);let l={method:t,headers:o,...i};return"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(l.referrerPolicy="no-referrer"),e.emulatorConfig&&Y(e.emulatorConfig.host)&&(l.credentials="include"),tt.fetch()(await tu(e,e.config.apiHost,r,a),l)})}async function to(e,t,r){e._canInitEmulator=!1;let n={...tr,...t};try{let t=new th(e),i=await Promise.race([r(),t.promise]);t.clearNetworkTimeout();let s=await i.json();if("needConfirmation"in s)throw tc(e,"account-exists-with-different-credential",s);if(i.ok&&!("errorMessage"in s))return s;{let[t,r]=(i.ok?s.errorMessage:s.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw tc(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===t)throw tc(e,"email-already-in-use",s);if("USER_DISABLED"===t)throw tc(e,"user-disabled",s);let a=n[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw e2(e,a,r);e0(e,a)}}catch(t){if(t instanceof B)throw t;e0(e,"network-request-failed",{message:String(t)})}}async function tl(e,t,r,n,i={}){let s=await ta(e,t,r,n,i);return"mfaPendingCredential"in s&&e0(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function tu(e,t,r,n){let i=`${t}${r}?${n}`,s=e.config.emulator?te(e.config,i):`${e.config.apiScheme}://${i}`;return tn.includes(r)&&(await e._persistenceManagerAvailable,"COOKIE"===e._getPersistenceType())?e._getPersistence()._getFinalTarget(s).toString():s}class th{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>
1{this.timer=setTimeout(()=>t(e1(this.auth,"network-request-failed")),ti.get())})}}function tc(e,t,r){let n={appName:e.name};r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber);let i=e1(e,t,n);return i.customData._tokenResponse=r,i}function td(e){return void 0!==e&&void 0!==e.enterprise}class tf{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)switch(t.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function tp(e,t){return ta(e,"GET","/v2/recaptchaConfig",ts(e,t))}async function tm(e,t){return ta(e,"POST","/v1/accounts:delete",t)}async function tg(e,t){return ta(e,"POST","/v1/accounts:lookup",t)}function ty(e){if(e)try{let t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}async function tw(e,t=!1){let r=J(e),n=await r.getIdToken(t),i=tI(n);e5(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error");let s="object"==typeof i.firebase?i.firebase:void 0,a=s?.sign_in_provider;return{claims:i,token:n,authTime:ty(tv(i.auth_time)),issuedAtTime:ty(tv(i.iat)),expirationTime:ty(tv(i.exp)),signInProvider:a||null,signInSecondFactor:s?.sign_in_second_factor||null}}function tv(e){return 1e3*Number(e)}function tI(e){let[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return eZ("JWT malformed, contained fewer than 3 sections"),null;try{let e=k(r);if(!e)return eZ("Failed to decode base64 JWT payload"),null;return JSON.parse(e)}catch(e){return eZ("Caught error parsing JWT payload as JSON",e?.toString()),null}}function tb(e){let t=tI(e);return e5(t,"internal-error"),e5(void 0!==t.exp,"internal-error"),e5(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function t_(e,t,r=!1){if(r)return t;try{return await t}catch(t){throw t instanceof B&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class tE{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){if(!e)return this.errorBackoff=3e4,Math.max(0,(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5);{let e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}}class tT{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=ty(this.lastLoginAt),this.creationTime=ty(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function tS(e){var t,r;let n=e.auth,i=await e.getIdToken(),s=await t_(e,tg(n,{idToken:i}));e5(s?.users.length,n,"internal-error");let a=s.users[0];e._notifyReloadListener(a);let o=a.providerUserInfo?.length?tA(a.providerUserInfo):[],l=(t=e.providerData,r=o,[...t.filter(e=>!r.some(t=>t.providerId===e.providerId)),...r]),u=e.isAnonymous,h=!(e.email&&a.passwordHash)&&!l?.length;Object.assign(e,{uid:a.localId,displayName:a.displayName||null,photoURL:a.photoUrl||null,email:a.email||null,emailVerified:a.emailVerified||!1,phoneNumber:a.phoneNumber||null,tenantId:a.tenantId||null,providerData:l,metadata:new tT(a.createdAt,a.lastLoginAt),isAnonymous:!!u&&h})}async function tC(e){let t=J(e);await tS(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}function tA(e){return e.map(({providerId:e,...t})=>
1({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function tk(e,t){let r=await to(e,{},async()=>{let r=K({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:n,apiKey:i}=e.config,s=await tu(e,n,"/v1/token",`key=${i}`),a=await e._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let o={method:"POST",headers:a,body:r};return e.emulatorConfig&&Y(e.emulatorConfig.host)&&(o.credentials="include"),tt.fetch()(s,o)});return{accessToken:r.access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token}}async function tx(e,t){return ta(e,"POST","/v2/accounts:revokeToken",ts(e,t))}class tN{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){e5(e.idToken,"internal-error"),e5(void 0!==e.idToken,"internal-error"),e5(void 0!==e.refreshToken,"internal-error");let t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):tb(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){e5(0!==e.length,"internal-error");let t=tb(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(e5(this.refreshToken,e,"user-token-expired"),this.refreshToken)?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:r,refreshToken:n,expiresIn:i}=await tk(e,t);this.updateTokensAndExpiration(r,n,Number(i))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){let{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new tN;return r&&(e5("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(e5("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(e5("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new tN,this.toJSON())}_performRefresh(){return e4("not implemented")}}function tD(e,t){e5("string"==typeof e||void 0===e,"internal-error",{appName:t})}class tR{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new tE(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new tT(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){let t=await t_(this,this.stsTokenManager.getToken(this.auth,e));return e5(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return tw(this,e)}reload(){return tC(this)}_assign(e){this!==e&&(e5(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new tR({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){e5(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await tS(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(eO(this.auth.app))return Promise.reject(e3(this.auth));let e=await this.getIdToken();return await t_(this,tm(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isA
1nonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){let r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,u=t.lastLoginAt??void 0,{uid:h,emailVerified:c,isAnonymous:d,providerData:f,stsTokenManager:p}=t;e5(h&&p,e,"internal-error");let m=tN.fromJSON(this.name,p);e5("string"==typeof h,e,"internal-error"),tD(r,e.name),tD(n,e.name),e5("boolean"==typeof c,e,"internal-error"),e5("boolean"==typeof d,e,"internal-error"),tD(i,e.name),tD(s,e.name),tD(a,e.name),tD(o,e.name),tD(l,e.name),tD(u,e.name);let g=new tR({uid:h,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:m,createdAt:l,lastLoginAt:u});return f&&Array.isArray(f)&&(g.providerData=f.map(e=>({...e}))),o&&(g._redirectEventId=o),g}static async _fromIdTokenResponse(e,t,r=!1){let n=new tN;n.updateFromServerResponse(t);let i=new tR({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r});return await tS(i),i}static async _fromGetAccountInfoResponse(e,t,r){let n=t.users[0];e5(void 0!==n.localId,"internal-error");let i=void 0!==n.providerUserInfo?tA(n.providerUserInfo):[],s=!(n.email&&n.passwordHash)&&!i?.length,a=new tN;a.updateFromIdToken(r);let o=new tR({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s});return Object.assign(o,{uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new tT(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash)&&!i?.length}),o}}let tO=new Map;function tP(e){var t,r;t="Expected a class definition",e instanceof Function||e4(t);let n=tO.get(e);return n?(r="Instance stored in cache mismatched with class",n instanceof e||e4(r)):(n=new e,tO.set(e,n)),n}class tL{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}function tM(e,t,r){return`firebase:${e}:${t}:${r}`}tL.type="NONE";class tV{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;const{config:n,name:i}=this.auth;this.fullUserKey=tM(this.userKey,n.apiKey,i),this.fullPersistenceKey=tM("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if("string"==typeof e){let t=await tg(this.auth,{idToken:e}).catch(()=>void 0);return t?tR._fromGetAccountInfoResponse(this.auth,t,e):null}return tR._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,r="authUser"){if(!t.length)return new tV(tP(tL),e,r);let n=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e),i=n[0]||tP(tL),s=tM(r,e.config.apiKey,e.name),a=null;for(let r of t)try{let t=await r._get(s);if(t){let n;if("string"==typeof t){let r=await tg(e,{idToken:t}).catch(()=>void 0);if(!r)break;n=await tR._fromGetAccountInfoResponse(e,r,t)}else n=tR._fromJSON(e,t);r!==i&&(a=n),i=r;break}}catch{}let o=n.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&o.length&&(i=o[0],a&&await i._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch{}}))),new tV(i,e,r)}}function tF(e){let t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";{if(tq(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(tU(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(t$(t))return"Blackberry";if(tK(t))return"Webos";if(tB(t))return"Safari";if((t.includes("chrome/")||tj(t))&&!t.includes("edge/"))return"Chrome";if(tz(t))return"Android";let r=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);if(r?.length===2)return r[1]}return"Other"}function tU(e=L()){return/firefox\//i.test(e)}function tB(e=L()){let t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function tj(e=L()){return/crios\//i.test(e)}function tq(e=L()){return/iemobile/i.test(e)}function tz(e=L()){return/android/i.test(e)}function t$(e=L()){return/blackberry/i.test(e)}function tK(e=L()){return/webos/i.test(e)}function tG(e=L()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function tH(e=L()){return tG(e)||tz(e)||tK(e)||t$(e)||/windows phone/i.test(e)||tq(e)}function tW(e,t=[]){let r;switch(e){case"Browser":r=tF(L());break;case"Worker":r=`${tF(L())}-${e}`;break;default:r=e}let n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${eM}/${n}`}class tQ{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=t=>new Promise((r,n)=>{try{let n=e(t);r(n)}catch(e){n(e)}});r.onAbort=t,this.queue.push(r);let n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){for(let e of(t.reverse(),t))try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}async function tJ(e,t={}){return ta(e,"GET","/v2/passwordPolicy",ts(e,t))}class tY{constructor(e){const t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&
1(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){let r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){let r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=n)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=i))}}class tX{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new tZ(this),this.idTokenSubscription=new tZ(this),this.beforeStateQueue=new tQ(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=eY,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=tP(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted){if(this.persistenceManager=await tV.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;let e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{let t=await tg(this,{idToken:e}),r=await tR._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(eO(this.app)){let e=this.app.settings.authIdToken;return e?new Promise(t=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(t,t))}):this.directlySetCurrentUser(null)}let t=await this.assertedPersistence.getCurrentUser(),r=t,n=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let t=this.redirectUser?._redirectEventId,i=r?._redirectEventId,s=await this.tryRedirectSignIn(e);(!t||t===i)&&s?.user&&(r=s.user,n=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(n)try{await this.beforeStateQueue.runMiddleware(r)}catch(e){r=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return(e5(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId)?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await tS(e)}catch(e){if(e?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("u"<typeof navigator)return null;let e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}
1async updateCurrentUser(e){if(eO(this.app))return Promise.reject(e3(this));let t=e?J(e):null;return t&&e5(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&e5(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return eO(this.app)?Promise.reject(e3(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return eO(this.app)?Promise.reject(e3(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(tP(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=new tY(await tJ(this));null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new j("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await tx(this,t)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&tP(e)||this._popupRedirectResolver;e5(t,this,"argument-error"),this.redirectPersistenceManager=await tV.create(this,[tP(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){return(this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e)?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,n){if(this._deleted)return()=>{};let i="function"==typeof t?t:t.next.bind(t),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(e5(a,this,"internal-error"),a.then(()=>{s||i(this.currentUser)}),"function"==typeof t){let i=e.addObserver(t,r,n);return()=>{s=!0,i()}}{let r=e.addObserver(t);return()=>{s=!0,r()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return e5(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=tW(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){if(eO(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&function(e,...t){eX.logLevel<=a.WARN&&eX.warn(`Auth (${eM}): ${e}`,...t)}(`Error while retrieving App Check token: ${e.error}`),e?.token}}class tZ{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e){let t=new W(e,void 0);return t.subscribe.bind(t)}(e=>this.observer=e)}get next(){return e5(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let t0={async loadJS(){throw Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function t1(e){return`__${e}${Math.floor(1e6*Math.random())}`}class t2{constructor(){this.enterprise=new t3}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class t3{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}let t6="NO_RECAPTCHA";class t5{constructor(e){this.type="recaptcha-enterprise",this.auth=function(e){return J(e)}(e)}async verify(e="verify",t=!1){async function r(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise(async(t,r)=>
1{tp(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(n=>{if(void 0===n.recaptchaKey)r(Error("recaptcha Enterprise site key undefined"));else{let r=new tf(n);return null==e.tenantId?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,t(r.siteKey)}}).catch(e=>{r(e)})})}function n(t,r,n){let i=window.grecaptcha;td(i)?i.enterprise.ready(()=>{i.enterprise.execute(t,{action:e}).then(e=>{r(e)}).catch(()=>{r(t6)})}):n(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new t2().execute("siteKey",{action:"verify"}):new Promise((e,i)=>{r(this.auth).then(r=>{if(!t&&td(window.grecaptcha))n(r,e,i);else{var s;if("u"<typeof window)return void i(Error("RecaptchaVerifier is only supported in browser"));let t=t0.recaptchaEnterpriseScript;0!==t.length&&(t+=r),(s=t,t0.loadJS(s)).then(()=>{n(r,e,i)}).catch(e=>{i(e)})}}).catch(e=>{i(e)})})}}async function t4(e,t,r,n=!1,i=!1){let s,a=new t5(e);if(i)s=t6;else try{s=await a.verify(r)}catch(e){s=await a.verify(r,!0)}let o={...t};if("mfaSmsEnrollment"===r||"mfaSmsSignIn"===r){if("phoneEnrollmentInfo"in o){let e=o.phoneEnrollmentInfo.phoneNumber,t=o.phoneEnrollmentInfo.recaptchaToken;Object.assign(o,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:t,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in o){let e=o.phoneSignInInfo.recaptchaToken;Object.assign(o,{phoneSignInInfo:{recaptchaToken:e,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return o}return n?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}async function t8(e,t,r,n,i){if("EMAIL_PASSWORD_PROVIDER"===i)if(!e._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER"))return n(e,t).catch(async i=>{if("auth/missing-recaptcha-token"!==i.code)return Promise.reject(i);{console.log(`${r} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let i=await t4(e,t,r,"getOobCode"===r);return n(e,i)}});else{let i=await t4(e,t,r,"getOobCode"===r);return n(e,i)}if("PHONE_PROVIDER"!==i)return Promise.reject(i+" provider is not supported.");if(e._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let i=await t4(e,t,r);return n(e,i).catch(async i=>{if(e._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&("auth/missing-recaptcha-token"===i.code||"auth/invalid-app-credential"===i.code)){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${r} flow.`);let i=await t4(e,t,r,!1,!0);return n(e,i)}return Promise.reject(i)})}{let i=await t4(e,t,r,!1,!0);return n(e,i)}}async function t9(e){let t=J(e),r=new tf(await tp(t,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}));null==t.tenantId?t._agentRecaptchaConfig=r:t._tenantRecaptchaConfigs[t.tenantId]=r,r.isAnyProviderEnabled()&&new t5(t).verify()}function t7(e){let t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function re(e){if(!e)return null;let t=Number(e);return isNaN(t)?null:t}class rt{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return e4("not implemented")}_getIdTokenResponse(e){return e4("not implemented")}_linkToIdToken(e,t){return e4("not implemented")}_getReauthenticationResolver(e){return e4("not implemented")}}async function rr(e,t){return ta(e,"POST","/v1/accounts:signUp",t)}async function rn(e,t){return tl(e,"POST","/v1/accounts:signInWithPassword",ts(e,t))}async function ri(e,t){return tl(e,"POST","/v1/accounts:signInWithEmailLink",ts(e,t))}async function rs(e,t){return tl(e,"POST","/v1/accounts:signInWithEmailLink",ts(e,t))}class ra extends rt{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new ra(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new ra(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);else if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return t8(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",rn,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return ri(e,{email:this._email,oobCode:this._password});default:e0(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return t8(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",rr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return rs(e,{idToken:t,email:this._email,oobCode:this._password});default:e0(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function ro(e,t){return tl(e,"POST","/v1/accounts:signInWithIdp",ts(e,t))}class rl extends rt{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new rl(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&
1(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):e0("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let{providerId:t,signInMethod:r,...n}="string"==typeof e?JSON.parse(e):e;if(!t||!r)return null;let i=new rl(t,r);return i.idToken=n.idToken||void 0,i.accessToken=n.accessToken||void 0,i.secret=n.secret,i.nonce=n.nonce,i.pendingToken=n.pendingToken||null,i}_getIdTokenResponse(e){return ro(e,this.buildRequest())}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,ro(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,ro(e,t)}buildRequest(){let e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=K(t)}return e}}async function ru(e,t){return ta(e,"POST","/v1/accounts:sendVerificationCode",ts(e,t))}async function rh(e,t){return tl(e,"POST","/v1/accounts:signInWithPhoneNumber",ts(e,t))}async function rc(e,t){let r=await tl(e,"POST","/v1/accounts:signInWithPhoneNumber",ts(e,t));if(r.temporaryProof)throw tc(e,"account-exists-with-different-credential",r);return r}let rd={USER_NOT_FOUND:"user-not-found"};async function rf(e,t){return tl(e,"POST","/v1/accounts:signInWithPhoneNumber",ts(e,{...t,operation:"REAUTH"}),rd)}class rp extends rt{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new rp({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new rp({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return rh(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return rc(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return rf(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){let e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){"string"==typeof e&&(e=JSON.parse(e));let{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e;return r||t||n||i?new rp({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class rm{constructor(e){const t=G(H(e)),r=t.apiKey??null,n=t.oobCode??null,i=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(t.mode??null);e5(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t,r,n,i=(r=(t=G(H(e)).link)?G(H(t)).deep_link_id:null,((n=G(H(e)).deep_link_id)?G(H(n)).link:null)||n||r||t||e);try{return new rm(i)}catch{return null}}}class rg{constructor(){this.providerId=rg.PROVIDER_ID}static credential(e,t){return ra._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let r=rm.parseLink(t);return e5(r,"argument-error"),ra._fromEmailAndCode(e,r.code,r.tenantId)}}rg.PROVIDER_ID="password",rg.EMAIL_PASSWORD_SIGN_IN_METHOD="password",rg.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class ry{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class rw extends ry{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class rv extends rw{constructor(){super("facebook.com")}static credential(e){return rl._fromParams({providerId:rv.PROVIDER_ID,signInMethod:rv.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return rv.credentialFromTaggedObject(e)}static credentialFromError(e){return rv.credentialFromTaggedObject(e.customData||{})}
1static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return rv.credential(e.oauthAccessToken)}catch{return null}}}rv.FACEBOOK_SIGN_IN_METHOD="facebook.com",rv.PROVIDER_ID="facebook.com";class rI extends rw{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return rl._fromParams({providerId:rI.PROVIDER_ID,signInMethod:rI.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return rI.credentialFromTaggedObject(e)}static credentialFromError(e){return rI.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return rI.credential(t,r)}catch{return null}}}rI.GOOGLE_SIGN_IN_METHOD="google.com",rI.PROVIDER_ID="google.com";class rb extends rw{constructor(){super("github.com")}static credential(e){return rl._fromParams({providerId:rb.PROVIDER_ID,signInMethod:rb.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return rb.credentialFromTaggedObject(e)}static credentialFromError(e){return rb.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return rb.credential(e.oauthAccessToken)}catch{return null}}}rb.GITHUB_SIGN_IN_METHOD="github.com",rb.PROVIDER_ID="github.com";class r_ extends rw{constructor(){super("twitter.com")}static credential(e,t){return rl._fromParams({providerId:r_.PROVIDER_ID,signInMethod:r_.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return r_.credentialFromTaggedObject(e)}static credentialFromError(e){return r_.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return r_.credential(t,r)}catch{return null}}}r_.TWITTER_SIGN_IN_METHOD="twitter.com",r_.PROVIDER_ID="twitter.com";class rE{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){return new rE({user:await tR._fromIdTokenResponse(e,r,n),providerId:rT(r),_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){return await e._updateTokensIfNecessary(r,!0),new rE({user:e,providerId:rT(r),_tokenResponse:r,operationType:t})}}function rT(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class rS extends B{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,rS.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new rS(e,t,r,n)}}function rC(e,t,r,n){return("reauthenticate"===t?r._getReauthenticationResolver(e):r._getIdTokenResponse(e)).catch(r=>{if("auth/multi-factor-auth-required"===r.code)throw rS._fromErrorAndOperation(e,r,t,n);throw r})}async function rA(e,t,r=!1){let n=await t_(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return rE._forOperation(e,"link",n)}async function rk(e,t,r=!1){let{auth:n}=e;if(eO(n.app))return Promise.reject(e3(n));let i="reauthenticate";try{let s=await t_(e,rC(n,i,t,e),r);e5(s.idToken,n,"internal-error");let a=tI(s.idToken);e5(a,n,"internal-error");let{sub:o}=a;return e5(e.uid===o,n,"user-mismatch"),rE._forOperation(e,i,s)}catch(e){throw e?.code==="auth/user-not-found"&&e0(n,"user-mismatch"),e}}async function rx(e,t,r=!1){if(eO(e.app))return Promise.reject(e3(e));let n="signIn",i=await rC(e,n,t),s=await rE._fromIdTokenResponse(e,n,i);return r||await e._updateCurrentUser(s.user),s}class rN{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?rD._fromServerResponse(e,t):"totpInfo"in t?rR._fromServerResponse(e,t):e0(e,"internal-error")}}class rD extends rN{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new rD(t)}}class rR extends rN{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new rR(t)}}function rO(e,t){return ta(e,"POST","/v2/accounts/mfaEnrollment:start",ts(e,t))}new WeakMap;let rP="__sak";class rL{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{if(!this.storage)return Promise.resolve(!1);return this.storage.setItem(rP,"1"),this.storage.removeItem(rP),Promise.resolve(!0)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){let t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class rM extends rL{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=tH(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let t of Object.keys(this.listeners)){let r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,t=!1){let r;
1if(!e.key)return void this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)});let n=e.key;t?this.detachListener():this.stopPolling();let i=()=>{let e=this.storage.getItem(n);(t||this.localCache[n]!==e)&&this.notifyListeners(n,e)},s=this.storage.getItem(n);((r=L()).indexOf("MSIE ")>=0||r.indexOf("Trident/")>=0)&&10===document.documentMode&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){let t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}rM.type="LOCAL";class rV extends rL{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}rV.type="SESSION";class rF{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(t=>t.isListeningto(e));if(t)return t;let r=new rF(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let{eventId:t,eventType:r,data:n}=e.data,i=this.handlersMap[r];if(!i?.size)return;e.ports[0].postMessage({status:"ack",eventId:t,eventType:r});let s=Array.from(i).map(async t=>t(e.origin,n)),a=await Promise.all(s.map(async e=>{try{let t=await e;return{fulfilled:!0,value:t}}catch(e){return{fulfilled:!1,reason:e}}}));e.ports[0].postMessage({status:"done",eventId:t,eventType:r,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function rU(e="",t=10){let r="";for(let e=0;e<t;e++)r+=Math.floor(10*Math.random());return e+r}rF.receivers=[];class rB{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,r=50){let n,i,s="u">typeof MessageChannel?new MessageChannel:null;if(!s)throw Error("connection_unavailable");return new Promise((a,o)=>{let l=rU("",20);s.port1.start();let u=setTimeout(()=>{o(Error("unsupported_event"))},r);i={messageChannel:s,onMessage(e){if(e.data.eventId===l)switch(e.data.status){case"ack":clearTimeout(u),n=setTimeout(()=>{o(Error("timeout"))},3e3);break;case"done":clearTimeout(n),a(e.data.response);break;default:clearTimeout(u),clearTimeout(n),o(Error("invalid_response"))}}},this.handlers.add(i),s.port1.addEventListener("message",i.onMessage),this.target.postMessage({eventType:e,eventId:l,data:t},[s.port2])}).finally(()=>{i&&this.removeMessageHandler(i)})}}function rj(){return window}function rq(){return void 0!==rj().WorkerGlobalScope&&"function"==typeof rj().importScripts}async function rz(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}let r$="firebaseLocalStorageDb",rK="firebaseLocalStorage",rG="fbase_key";class rH{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>
1{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function rW(e,t){return e.transaction([rK],t?"readwrite":"readonly").objectStore(rK)}function rQ(){let e=indexedDB.open(r$,1);return new Promise((t,r)=>{e.addEventListener("error",()=>{r(e.error)}),e.addEventListener("upgradeneeded",()=>{let t=e.result;try{t.createObjectStore(rK,{keyPath:rG})}catch(e){r(e)}}),e.addEventListener("success",async()=>{let r=e.result;r.objectStoreNames.contains(rK)?t(r):(r.close(),await new rH(indexedDB.deleteDatabase(r$)).toPromise(),t(await rQ()))})})}async function rJ(e,t,r){return new rH(rW(e,!0).put({[rG]:t,value:r})).toPromise()}async function rY(e,t){let r=rW(e,!1).get(t),n=await new rH(r).toPromise();return void 0===n?null:n.value}function rX(e,t){return new rH(rW(e,!0).delete(t)).toPromise()}class rZ{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await rQ()),this.db}async _withRetries(e){let t=0;for(;;)try{let t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return rq()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=rF._getInstance(rq()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await rz(),!this.activeServiceWorker)return;this.sender=new rB(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let e=await rQ();return await rJ(e,rP,"1"),await rX(e,rP),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(r=>rJ(r,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(t=>rY(t,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>rX(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(e=>new rH(rW(e,!1).getAll()).toPromise());if(!e||0!==this.pendingWrites)return[];let t=[],r=new Set;if(0!==e.length)for(let{fbase_key:n,value:i}of e)r.add(n),JSON.stringify(this.localCache[n])!==JSON.stringify(i)&&(this.notifyListeners(n,i),t.push(n));for(let e of Object.keys(this.localCache))this.localCache[e]&&!r.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}function r0(e,t){return ta(e,"POST","/v2/accounts/mfaSignIn:start",ts(e,t))}rZ.type="LOCAL",t1("rcb"),new e7(3e4,6e4);let r1="recaptcha";async function r2(e,t,r){if(!e._getRecaptchaConfig())try{await t9(e)}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let n;if(n="string"==typeof t?{phoneNumber:t}
1:t,"session"in n){let t=n.session;if("phoneNumber"in n){e5("enroll"===t.type,e,"internal-error");let i={idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},s=async(e,t)=>{if(t.phoneEnrollmentInfo.captchaResponse===t6){e5(r?.type===r1,e,"argument-error");let n=await r3(e,t,r);return rO(e,n)}return rO(e,t)},a=t8(e,i,"mfaSmsEnrollment",s,"PHONE_PROVIDER");return(await a.catch(e=>Promise.reject(e))).phoneSessionInfo.sessionInfo}{e5("signin"===t.type,e,"internal-error");let i=n.multiFactorHint?.uid||n.multiFactorUid;e5(i,e,"missing-multi-factor-info");let s={mfaPendingCredential:t.credential,mfaEnrollmentId:i,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},a=async(e,t)=>{if(t.phoneSignInInfo.captchaResponse===t6){e5(r?.type===r1,e,"argument-error");let n=await r3(e,t,r);return r0(e,n)}return r0(e,t)},o=t8(e,s,"mfaSmsSignIn",a,"PHONE_PROVIDER");return(await o.catch(e=>Promise.reject(e))).phoneResponseInfo.sessionInfo}}{let t={phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"},i=async(e,t)=>{if(t.captchaResponse===t6){e5(r?.type===r1,e,"argument-error");let n=await r3(e,t,r);return ru(e,n)}return ru(e,t)},s=t8(e,t,"sendVerificationCode",i,"PHONE_PROVIDER");return(await s.catch(e=>Promise.reject(e))).sessionInfo}}finally{r?._reset()}}async function r3(e,t,r){e5(r.type===r1,e,"argument-error");let n=await r.verify();e5("string"==typeof n,e,"argument-error");let i={...t};if("phoneEnrollmentInfo"in i){let e=i.phoneEnrollmentInfo.phoneNumber,t=i.phoneEnrollmentInfo.captchaResponse,r=i.phoneEnrollmentInfo.clientType,s=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:n,captchaResponse:t,clientType:r,recaptchaVersion:s}}),i}if(!("phoneSignInInfo"in i))return Object.assign(i,{recaptchaToken:n}),i;{let e=i.phoneSignInInfo.captchaResponse,t=i.phoneSignInInfo.clientType,r=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:n,captchaResponse:e,clientType:t,recaptchaVersion:r}}),i}}class r6{constructor(e){this.providerId=r6.PROVIDER_ID,this.auth=function(e){return J(e)}(e)}verifyPhoneNumber(e,t){return r2(this.auth,e,J(t))}static credential(e,t){return rp._fromVerification(e,t)}static credentialFromResult(e){return r6.credentialFromTaggedObject(e)}static credentialFromError(e){return r6.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:r}=e;return t&&r?rp._fromTokenResponse(t,r):null}}r6.PROVIDER_ID="phone",r6.PHONE_SIGN_IN_METHOD="phone";class r5 extends rt{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return ro(e,this._buildIdpRequest())}_linkToIdToken(e,t){return ro(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return ro(e,this._buildIdpRequest())}_buildIdpRequest(e){let t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function r4(e){return rx(e.auth,new r5(e),e.bypassAuthState)}function r8(e){let{auth:t,user:r}=e;return e5(r,t,"internal-error"),rk(r,new r5(e),e.bypassAuthState)}async function r9(e){let{auth:t,user:r}=e;return e5(r,t,"internal-error"),rA(r,new r5(e),e.bypassAuthState)}class r7{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){let{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)return void this.reject(s);let o={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(o))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return r4;case"linkViaPopup":case"linkViaRedirect":return r9;case"reauthViaPopup":case"reauthViaRedirect":return r8;default:e0(this.auth,"internal-error")}}resolve(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||e4(r),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||e4(r),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let ne=new e7(2e3,1e4);class nt extends r7{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,nt.currentPopupAction&&nt.currentPopupAction.cancel(),nt.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return e5(e,this.auth,"internal-error"),e}async onExecution(){var e,t;e=1===this.filter.length,t="Popup operations only handle one event",e||e4(t);let r=rU();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],r),this.authWindow.associatedEvent=r,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(e1(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(e1(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,nt.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(e1(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,ne.get())};e()}}nt.currentPopupAction=null;let nr=new Map;
1class nn extends r7{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let e=nr.get(this.auth._key());if(!e){try{let t=await ni(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}nr.set(this.auth._key(),e)}return this.bypassAuthState||nr.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)return void this.resolve(null);if(e.eventId){let t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function ni(e,t){var r;let n=tM("pendingRedirect",(r=t).config.apiKey,r.name),i=tP(e._redirectPersistence);if(!await i._isAvailable())return!1;let s=await i._get(n)==="true";return await i._remove(n),s}function ns(e,t){nr.set(e._key(),t)}async function na(e,t,r=!1){if(eO(e.app))return Promise.reject(e3(e));let n=J(e),i=t?tP(t):(e5(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver),s=new nn(n,i,r),a=await s.execute();return a&&!r&&(delete a.user._redirectEventId,await n._persistUserIfCurrent(a.user),await n._setRedirectUser(null,t)),a}class no{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return nu(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!nu(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(e1(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(nl(e))}saveEventToCache(e){this.cachedEventUids.add(nl(e)),this.lastProcessedEventTime=Date.now()}}function nl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function nu({type:e,error:t}){return"unknown"===e&&t?.code==="auth/no-auth-event"}async function nh(e,t={}){return ta(e,"GET","/v1/projects",t)}let nc=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,nd=/^https?/;async function nf(e){if(e.config.emulator)return;let{authorizedDomains:t}=await nh(e);for(let e of t)try{if(function(e){let t=e8(),{protocol:r,hostname:n}=new URL(t);if(e.startsWith("chrome-extension://")){let i=new URL(e);return""===i.hostname&&""===n?"chrome-extension:"===r&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===r&&i.hostname===n}if(!nd.test(r))return!1;if(nc.test(e))return n===e;let i=e.replace(/\./g,"\\.");return RegExp("^(.+\\."+i+"|"+i+")$","i").test(n)}(e))return}catch{}e0(e,"unauthorized-domain")}let np=new e7(3e4,6e4);function nm(){let e=rj().___jsl;if(e?.H){for(let t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}}let ng=null,ny=new e7(5e3,15e3),nw={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},nv=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function nI(e){let t,r,n,i,s,a=await (ng=ng||new Promise((t,r)=>{function n(){nm(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{nm(),r(e1(e,"network-request-failed"))},timeout:np.get()})}if(rj().gapi?.iframes?.Iframe)t(gapi.iframes.getContext());else if(rj().gapi?.load)n();else{var i;let t=t1("iframefcb");return rj()[t]=()=>{gapi.load?n():r(e1(e,"network-request-failed"))},(i=`${t0.gapiScript}?onload=${t}`,t0.loadJS(i)).catch(e=>r(e))}}).catch(e=>{throw ng=null,e})),o=rj().gapi;return e5(o,e,"internal-error"),a.open({where:document.body,url:(e5((t=e.config).authDomain,e,"auth-domain-config-required"),r=t.emulator?te(t,"emulator/auth/iframe"):`https://${e.config.authDomain}
1/__/auth/iframe`,n={apiKey:t.apiKey,appName:e.name,v:eM},(i=nv.get(e.config.apiHost))&&(n.eid=i),(s=e._getFrameworks()).length&&(n.fw=s.join(",")),`${r}?${K(n).slice(1)}`),messageHandlersFilter:o.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:nw,dontclear:!0},t=>new Promise(async(r,n)=>{await t.restyle({setHideOnLeave:!1});let i=e1(e,"network-request-failed"),s=rj().setTimeout(()=>{n(i)},ny.get());function a(){rj().clearTimeout(s),r(t)}t.ping(a).then(a,()=>{n(i)})}))}let nb={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class n_{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}let nE=encodeURIComponent("fac");async function nT(e,t,r,n,i,s){e5(e.config.authDomain,e,"auth-domain-config-required"),e5(e.config.apiKey,e,"invalid-api-key");let a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:eM,eventId:i};if(t instanceof ry)for(let[r,n]of(t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",!function(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(t.getCustomParameters())&&(a.customParameters=JSON.stringify(t.getCustomParameters())),Object.entries(s||{})))a[r]=n;if(t instanceof rw){let e=t.getScopes().filter(e=>""!==e);e.length>0&&(a.scopes=e.join(","))}for(let t of(e.tenantId&&(a.tid=e.tenantId),Object.keys(a)))void 0===a[t]&&delete a[t];let o=await e._getAppCheckToken(),l=o?`#${nE}=${encodeURIComponent(o)}`:"";return`${function({config:e}){return e.emulator?te(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${K(a).slice(1)}${l}`}let nS="webStorageSupport",nC=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=rV,this._completeRedirectFn=na,this._overrideRedirectResult=ns}async _openPopup(e,t,r,n){var i,s;i=this.eventManagers[e._key()]?.manager,s="_initialize() not called before _openPopup()",i||e4(s);let a=await nT(e,t,r,e8(),n);return function(e,t,r,n=500,i=600){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString(),o="",l={...nb,width:n.toString(),height:i.toString(),top:s,left:a},u=L().toLowerCase();r&&(o=tj(u)?"_blank":r),tU(u)&&(t=t||"http://localhost",l.scrollbars="yes");let h=Object.entries(l).reduce((e,[t,r])=>`${e}${t}=${r},`,"");if(function(e=L()){return tG(e)&&!!window.navigator?.standalone}(u)&&"_self"!==o){var c,d;let e,r;return c=t||"",d=o,(e=document.createElement("a")).href=c,e.target=d,(r=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),e.dispatchEvent(r),new n_(null)}let f=window.open(t||"",o,h);e5(f,e,"popup-blocked");try{f.focus()}catch(e){}return new n_(f)}(e,a,rU())}async _openRedirect(e,t,r,n){var i;return await this._originValidation(e),i=await nT(e,t,r,e8(),n),rj().location.href=i,new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){var r;let{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(r="If manager is not set, promise should be",n||e4(r),n)}let n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(e){let t=await nI(e),r=new no(e);return t.register("authEvent",t=>(e5(t?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(t.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(nS,{type:nS},r=>{let n=r?.[0]?.[nS];void 0!==n&&t(!!n),e0(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=nf(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return tH()||tB()||tG()}};var nA="@firebase/auth",nk="1.13.0";class nx{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return(this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser)?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(t=>{e(t?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){e5(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}let nN=O("authIdTokenMaxAge")||300,nD=null;t0={loadJS:e=>
1new Promise((t,r)=>{let n=document.createElement("script");n.setAttribute("src",e),n.onload=t,n.onerror=e=>{let t=e1("internal-error");t.customData=e,r(t)},n.type="text/javascript",n.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(n)}),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},s="Browser",eD(new Z("auth",(e,{options:t})=>{let r,n,i=e.getProvider("app").getImmediate(),a=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:l,authDomain:u}=i.options;e5(l&&!l.includes(":"),"invalid-api-key",{appName:i.name});let h=new tX(i,a,o,{apiKey:l,authDomain:u,clientPlatform:s,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:tW(s)});return n=(Array.isArray(r=t?.persistence||[])?r:[r]).map(tP),t?.errorMap&&h._updateErrorMap(t.errorMap),h._initializeWithPersistence(n,t?.popupRedirectResolver),h},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),eD(new Z("auth-internal",e=>new nx(J(e.getProvider("auth").getImmediate())),"PRIVATE").setInstantiationMode("EXPLICIT")),eU(nA,nk,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(s)),eU(nA,nk,"esm2020");var nR=e.i(67034),nO="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,nP={};(function(){function e(){this.blockSize=-1,this.blockSize=64,this.g=[,,,,],this.C=Array(this.blockSize),this.o=this.h=0,this.u()}var t=function(){this.blockSize=-1};function r(){}function n(e,t,r){r||(r=0);let n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1],i=e.g[2];let s=e.g[3],a;a=t+(s^r&(i^s))+n[0]+0xd76aa478|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[1]+0xe8c7b756|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[2]+0x242070db|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[3]+0xc1bdceee|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[4]+0xf57c0faf|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[5]+0x4787c62a|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[6]+0xa8304613|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[7]+0xfd469501|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[8]+0x698098d8|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[9]+0x8b44f7af|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[10]+0xffff5bb1|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[11]+0x895cd7be|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[12]+0x6b901122|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[13]+0xfd987193|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[14]+0xa679438e|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[15]+0x49b40821|0,r=i+(a<<22|a>>>10),a=t+(i^s&(r^i))+n[1]+0xf61e2562|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[6]+0xc040b340|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[11]+0x265e5a51|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[0]+0xe9b6c7aa|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[5]+0xd62f105d|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[10]+0x2441453|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[15]+0xd8a1e681|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[4]+0xe7d3fbc8|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[9]+0x21e1cde6|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[14]+0xc33707d6|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[3]+0xf4d50d87|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[8]+0x455a14ed|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[13]+0xa9e3e905|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[2]+0xfcefa3f8|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[7]+0x676f02d9|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[12]+0x8d2a4c8a|0,a=t+((r=i+(a<<20|a>>>12))^i^s)+n[5]+0xfffa3942|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[8]+0x8771f681|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[11]+0x6d9d6122|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[14]+0xfde5380c|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[1]+0xa4beea44|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[4]+0x4bdecfa9|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[7]+0xf6bb4b60|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[10]+0xbebfbc70|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[13]+0x289b7ec6|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[0]+0xeaa127fa|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[3]+0xd4ef3085|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[6]+0x4881d05|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[9]+0xd9d4d039|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[12]+0xe6db99e5|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[15]+0x1fa27cf8|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[2]+0xc4ac5665|0,r=i+(a<<23|a>>>
19),a=t+(i^(r|~s))+n[0]+0xf4292244|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[7]+0x432aff97|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[14]+0xab9423a7|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[5]+0xfc93a039|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[12]+0x655b59c3|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[3]+0x8f0ccc92|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[10]+0xffeff47d|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[1]+0x85845dd1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[8]+0x6fa87e4f|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[15]+0xfe2ce6e0|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[6]+0xa3014314|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[13]+0x4e0811a1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[4]+0xf7537e82|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[11]+0xbd3af235|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[2]+0x2ad7d2bb|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[9]+0xeb86d391|0,e.g[0]=e.g[0]+t|0,e.g[1]=e.g[1]+(i+(a<<21|a>>>11))|0,e.g[2]=e.g[2]+i|0,e.g[3]=e.g[3]+s|0}function i(e,t){this.h=t;let r=[],n=!0;for(let i=e.length-1;i>=0;i--){let s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}r.prototype=t.prototype,e.F=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.D=function(e,r,n){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return t.prototype[r].apply(e,i)},e.prototype.u=function(){this.g[0]=0x67452301,this.g[1]=0xefcdab89,this.g[2]=0x98badcfe,this.g[3]=0x10325476,this.o=this.h=0},e.prototype.v=function(e,t){void 0===t&&(t=e.length);let r=t-this.blockSize,i=this.C,s=this.h,a=0;for(;a<t;){if(0==s)for(;a<=r;)n(this,e,a),a+=this.blockSize;if("string"==typeof e){for(;a<t;)if(i[s++]=e.charCodeAt(a++),s==this.blockSize){n(this,i),s=0;break}}else for(;a<t;)if(i[s++]=e[a++],s==this.blockSize){n(this,i),s=0;break}}this.h=s,this.o+=t},e.prototype.A=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;t=8*this.o;for(var r=e.length-8;r<e.length;++r)e[r]=255&t,t/=256;for(this.v(e),e=Array(16),t=0,r=0;r<4;++r)for(let n=0;n<32;n+=8)e[t++]=this.g[r]>>>n&255;return e};var s,a={};function u(e){var t;return -128<=e&&e<128?(t=function(e){return new i([0|e],e<0?-1:0)},Object.prototype.hasOwnProperty.call(a,e)?a[e]:a[e]=t(e)):new i([0|e],e<0?-1:0)}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(h(-e));let t=[],r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=0x100000000;return new i(t,0)}var c=u(0),d=u(1),f=u(0x1000000);function p(e){if(0!=e.h)return!1;for(let t=0;t<e.g.length;t++)if(0!=e.g[t])return!1;return!0}function m(e){return -1==e.h}function g(e){let t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new i(r,~e.h).add(d)}function y(e,t){return e.add(g(t))}function w(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function I(e,t){if(p(t))throw Error("division by zero");if(p(e))return new v(c,c);if(m(e))return t=I(g(e),t),new v(g(t.g),g(t.h));if(m(t))return t=I(e,g(t)),new v(g(t.g),t.h);if(e.g.length>30){if(m(e)||m(t))throw Error("slowDivide_ only works with positive integers.");for(var r=d,n=t;0>=n.l(e);)r=b(r),n=b(n);var i=_(r,1),s=_(n,1);for(n=_(n,2),r=_(r,2);!p(n);){var a=s.add(n);0>=a.l(e)&&(i=i.add(r),s=a),n=_(n,1),r=_(r,1)}return t=y(e,i.j(t)),new v(i,t)}for(i=c;e.l(t)>=0;){for(n=(n=Math.ceil(Math.log(r=Math.max(1,Math.floor(e.m()/t.m())))/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);m(a)||a.l(e)>0;)r-=n,a=(s=h(r)).j(t);p(s)&&(s=d),i=i.add(s),e=y(e,a)}return new v(i,e)}function b(e){let t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new i(r,e.h)}function _(e,t){let r=t>>5;t%=32;let n=e.g.length-r,s=[];for(let i=0;i<n;i++)s[i]=t>0?e.i(i+r)>>>t|e.i(i+r+1)<<32-t:e.i(i+r);return new i(s,e.h)}(s=i.prototype).m=function(){if(m(this))return-g(this).m();let e=0,t=1;for(let r=0;r<this.g.length;r++){let n=this.i(r);e+=(n>=0?n:0x100000000+n)*t,t*=0x100000000}return e},s.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(m(this))return"-"+g(this).toString(e);let t=h(Math.pow(e,6));var r=this;let n="";for(;;){let i=I(r,t).g,s=(((r=y(r,i.j(t))).g.length>0?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},s.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},s.l=function(e){return m(e=y(this,e))?-1:+!p(e)},s.abs=function(){return m(this)?g(this):this},s.add=function(e){let t=Math.max(this.g.length,e.g.length),r=[],n=0;for(let i=0;i<=t;i++){let t=n+(65535&this.i(i))+(65535&e.i(i)),s=(t>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16);n=s>>>16,t&=65535,s&=65535,r[i]=s<<16|t}return new i(r,-0x80000000&r[r.length-1]?-1:0)},s.j=function(e){if(p(this)||p(e))return c;if(m(this))return m(e)?g(this).j(g(e)):g(g(this).j(e));if(m(e))return g(this.j(g(e)));if(0>this.l(f)&&0>e.l(f))return h(this.m()*e.m());let t=this.g.length+e.g.length,r=[];for(var n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let t=0;t<e.g.length;t++){let i=this.i(n)>>>16,s=65535&this.i(n),a=e.i(t)>>>16,o=65535&e.i(t);r[2*n+2*t]+=s*o,w(r,2*n+2*t),r[2*n+2*t+1]+=i*o,w(r,2*n+2*t+1),r[2*n+2*t+1]+=s*a,w(r,2*n+2*t+1),r[2*n+2*t+2]+=i*a,w(r,2*n+2*t+2)}for(e=0;e<t;e++)r[e]=r[2*e+1]<<16|r[2*e];for(e=t;e<2*t;e++)r[e]=0;return new i(r,0)},s.B=function(e){return I(this,e).h},s.and=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new i(r,this.h&e.h)},s.or=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new i(r,this.h|e.h)},s.xor=function(e){let t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new i(r,this.h^e.h)},e.prototype.digest=e.prototype.A,e.prototype.reset=e.prototype.u,e.prototype.update=e.prototype.v,l=nP.Md5=e,i.prototype.add=i.prototype.add,i.prototype.multiply=i.prototype.j,i.prototype.modulo=i.prototype.B,i.prototype.compare=i.prototype.l,i.prototype.toNumber=i.prototype.m,i.prototype.toString=i.prototype.toString,i.prototype.getBits=i.prototype.i,i.fromNumber=h,i.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character');let n=h(Math.pow(r,8)),i=c;for(let e=0;e<t.length;e+=8){var s=Math.min(8,t.length-e);let a=parseInt(t.substring(e,e+s),r);s<8?(s=h(Math.pow(r,s)),i=i.j(s).add(h(a))):i=(i=i.j(n)).add(h(a))}return i},o=nP.Integer=i}).apply(void 0!==nO?nO:"u">typeof self?self:"u">typeof window?window:{});var nL="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,nM={};(function(){var e,t,r=Object.defineProperty,n=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof nL&&nL];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")}(this);function i(e,t){if(t)e:{var i=n;e=e.split(".");for(var s=0;s<e.length-1;s++){var a=e[s];if(!(a in i))break e;i=i[a]}(t=t(s=i[e=e[e.length-1]]))!=s&&null!=t&&r(i,e,{configurable:!0,writable:!0,value:t})}}i("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),i("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),i("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var s=s||{},a=this||self;function o(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function l(e,t,r){return e.call.apply(e.bind,arguments)}function y(e,t,r){return(y=l).apply(null,arguments)}
1function w(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}}function v(e,t){function r(){}r.prototype=t.prototype,e.Z=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.Ob=function(e,r,n){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return t.prototype[r].apply(e,i)}}var I="u">typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function b(e){let t=e.length;if(t>0){let r=Array(t);for(let n=0;n<t;n++)r[n]=e[n];return r}return[]}function _(e,t){for(let t=1;t<arguments.length;t++){let n=arguments[t];var r=typeof n;if("array"==(r="object"!=r?r:n?Array.isArray(n)?"array":r:"null")||"object"==r&&"number"==typeof n.length){r=e.length||0;let t=n.length||0;e.length=r+t;for(let i=0;i<t;i++)e[r+i]=n[i]}else e.push(n)}}var E=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return this.h>0?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new T,e=>e.reset());class T{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let S,C=!1,A=new class{constructor(){this.h=this.g=null}add(e,t){let r=E.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},k=()=>{let e=Promise.resolve(void 0);S=()=>{e.then(x)}};function x(){let e;for(var t;e=null,A.g&&(e=A.g,A.g=A.g.next,A.g||(A.h=null),e.next=null),t=e;){try{t.h.call(t.g)}catch(e){!function(e){a.setTimeout(()=>{throw e},0)}(e)}E.j(t),E.h<100&&(E.h++,t.next=E.g,E.g=t)}C=!1}function N(){this.u=this.u,this.C=this.C}function D(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}N.prototype.u=!1,N.prototype.dispose=function(){this.u||(this.u=!0,this.N())},N.prototype[Symbol.dispose]=function(){this.dispose()},N.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},D.prototype.h=function(){this.defaultPrevented=!0};var R=function(){if(!a.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{let e=()=>{};a.addEventListener("test",e,t),a.removeEventListener("test",e,t)}catch(e){}return e}();function O(e){return/^[\s\xa0]*$/.test(e)}function P(e,t){D.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}v(P,D),P.prototype.init=function(e,t){let r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,this.i=e,e.defaultPrevented&&P.Z.h.call(this)},P.prototype.h=function(){P.Z.h.call(this);let e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var L="closure_listenable_"+(1e6*Math.random()|0),M=0;function V(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++M,this.da=this.fa=!1}function F(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function U(e,t,r){for(let n in e)t.call(r,e[n],n,e)}function B(e){let t={};for(let r in e)t[r]=e[r];return t}let j="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function q(e,t){let r,n;for(let t=1;t<arguments.length;t++){for(r in n=arguments[t])e[r]=n[r];for(let t=0;t<j.length;t++)r=j[t],Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}}function z(e){this.src=e,this.g={},this.h=0}function $(e,t){let r=t.type;if(r in e.g){var n,i=e.g[r],s=Array.prototype.indexOf.call(i,t,void 0);(n=s>=0)&&Array.prototype.splice.call(i,s,1),n&&(F(t),0==e.g[r].length&&(delete e.g[r],e.h--))}}function K(e,t,r,n){for(let i=0;i<e.length;++i){let s=e[i];if(!s.da&&s.listener==t&&!!r==s.capture&&s.ha==n)return i}return -1}z.prototype.add=function(e,t,r,n,i){let s=e.toString();(e=this.g[s])||(e=this.g[s]=[],this.h++);let a=K(e,t,n,i);return a>-1?(t=e[a],r||(t.fa=!1)):((t=new V(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var G="closure_lm_"+(1e6*Math.random()|0),H={};function W(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");let a=o(i)?!!i.capture:!!i,l=X(e);if(l||(e[G]=l=new z(e)),(r=l.add(t,r,n,a,s)).proxy)return r;if(n=function e(t){return Y.call(e.src,e.listener,t)},r.proxy=n,n.src=e,n.listener=r,e.addEventListener)R||(i=a),void 0===i&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(J(t.toString()),n);else if(e.addListener&&e.removeListener)e.addListener(n);else throw Error("addEventListener and attachEvent are unavailable.");return r}function Q(e){if("number"!=typeof e&&e&&!e.da){var t=e.src;if(t&&t[L])$(t.i,e);else{var r=e.type,n=e.proxy;t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(J(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=X(t))?($(r,e),
10==r.h&&(r.src=null,t[G]=null)):F(e)}}}function J(e){return e in H?H[e]:H[e]="on"+e}function Y(e,t){if(e.da)e=!0;else{t=new P(t,this);let r=e.listener,n=e.ha||e.src;e.fa&&Q(e),e=r.call(n,t)}return e}function X(e){return(e=e[G])instanceof z?e:null}var Z="__closure_events_fn_"+(1e9*Math.random()>>>0);function ee(e){return"function"==typeof e?e:(e[Z]||(e[Z]=function(t){return e.handleEvent(t)}),e[Z])}function et(){N.call(this),this.i=new z(this),this.M=this,this.G=null}function er(e,t){let r,n;var i,s=e.G;if(s)for(i=[];s;s=s.G)i.push(s);if(e=e.M,s=t.type||t,"string"==typeof t)t=new D(t,e);else if(t instanceof D)t.target=t.target||e;else{var a=t;q(t=new D(s,e),a)}if(a=!0,i)for(n=i.length-1;n>=0;n--)a=en(r=t.g=i[n],s,!0,t)&&a;if(a=en(r=t.g=e,s,!0,t)&&a,a=en(r,s,!1,t)&&a,i)for(n=0;n<i.length;n++)a=en(r=t.g=i[n],s,!1,t)&&a}function en(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let s=0;s<t.length;++s){let a=t[s];if(a&&!a.da&&a.capture==r){let t=a.listener,r=a.ha||a.src;a.fa&&$(e.i,a),i=!1!==t.call(r,n)&&i}}return i&&!n.defaultPrevented}v(et,N),et.prototype[L]=!0,et.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else(i=o(i)?!!i.capture:!!i,n=ee(n),t&&t[L])?(t=t.i,(a=String(r).toString())in t.g&&(n=K(r=t.g[a],n,i,s))>-1&&(F(r[n]),Array.prototype.splice.call(r,n,1),0==r.length&&(delete t.g[a],t.h--))):t&&(t=X(t))&&(r=t.g[r.toString()],t=-1,r&&(t=K(r,n,i,s)),(n=t>-1?r[t]:null)&&Q(n))}(this,e,t,r,n)},et.prototype.N=function(){if(et.Z.N.call(this),this.i){var e=this.i;for(let t in e.g){let r=e.g[t];for(let e=0;e<r.length;e++)F(r[e]);delete e.g[t],e.h--}}this.G=null},et.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},et.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class ei extends N{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=function(e,t){if("function"!=typeof e)if(e&&"function"==typeof e.handleEvent)e=y(e.handleEvent,e);else throw Error("Invalid listener argument");return Number(t)>0x7fffffff?-1:a.setTimeout(e,t||0)}(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);let r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function es(e){N.call(this),this.h=e,this.g={}}v(es,N);var ea=[];function eo(e){U(e.g,function(e,t){this.g.hasOwnProperty(t)&&Q(e)},e),e.g={}}es.prototype.N=function(){es.Z.N.call(this),eo(this)},es.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var el=a.JSON.stringify,eu=a.JSON.parse,eh=class{stringify(e){return a.JSON.stringify(e,void 0)}parse(e){return a.JSON.parse(e,void 0)}};function ec(){}function ed(){}var ef={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function ep(){D.call(this,"d")}function em(){D.call(this,"c")}v(ep,D),v(em,D);var eg={},ey=null;function ew(){return ey=ey||new et}function ev(e){D.call(this,eg.Ia,e)}function eI(e){let t=ew();er(t,new ev(t))}function eb(e,t){D.call(this,eg.STAT_EVENT,e),this.stat=t}function e_(e){let t=ew();er(t,new eb(t,e))}function eE(e,t){D.call(this,eg.Ja,e),this.size=t}function eT(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){e()},t)}function eS(){this.g=!0}function eC(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+function(e,t){if(!e.g)return t;if(!t)return null;try{let s=JSON.parse(t);if(s){for(e=0;e<s.length;e++)if(Array.isArray(s[e])){var r=s[e];if(!(r.length<2)){var n=r[1];if(Array.isArray(n)&&!(n.length<1)){var i=n[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(let e=1;e<n.length;e++)n[e]=""}}}}return el(s)}catch(e){return t}}(e,r)+(n?" "+n:"")})}eg.Ia="serverreachability",v(ev,D),eg.STAT_EVENT="statevent",v(eb,D),eg.Ja="timingevent",v(eE,D),eS.prototype.ua=function(){this.g=!1},eS.prototype.info=function(){};var eA={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},ek={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function ex(){}function eN(e){return encodeURIComponent(String(e))}function eD(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new es(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new eR}function eR(){this.i=null,this.g="",this.h=!1}v(ex,ec),ex.prototype.g=function(){return new XMLHttpRequest},e=new ex;var eO={},eP={};function eL(e,t,r){e.M=1,e.A=e5(e0(t)),e.u=r,e.R=!0,eM(e,null)}function eM(e,t){e.F=Date.now(),eF(e),e.B=e0(e.A);var r,n,i,s,a,l,u=e.B,h=e.S;Array.isArray(h)||(h=[String(h)]),tu(u.i,"t",h),e.C=0,u=e.j.L,e.h=new eR,e.g=tQ(e.j,u?t:null,!e.u),e.P>0&&(e.O=new ei(y(e.Y,e,e.g),e.P)),t=e.V,u=e.g,h=e.ba;var c="readystatechange";Array.isArray(c)||(c&&(ea[0]=c.toString()),c=ea);for(let e=0;e<c.length;e++){let r=function e(t,r,n,i,s){if(i&&i.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=ee(n),t&&t[L]?t.K(r,n,o(i)?!!i.capture:!!i,s):W(t,r,n,!0,i,s)}(t,r,n,i,s);if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=ee(n),t&&t[L]?t.J(r,n,o(i)?!!i.capture:!!i,s):W(t,r,n,!1,i,s)}(u,c[e],h||t.handleEvent,!1,t.h||t);if(!r)break;t.g[r.key]=r}t=e.J?B(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),eI(),r=e.i,n=e.v,i=e.B,s=e.l,a=e.S,l=e.u,r.info(function(){if(r.g)if(l){var e="",t=l.split("&");for(let r=0;r<t.length;r++){var o=t[r].split("=");if(o.length>
11){let t=o[0];o=o[1];let r=t.split("_");e=r.length>=2&&"type"==r[1]?e+(t+"=")+o+"&":e+(t+"=redacted&")}}}else e=null;else e=l;return"XMLHTTP REQ ("+s+") [attempt "+a+"]: "+n+"\n"+i+"\n"+e})}function eV(e){return!!e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function eF(e){e.T=Date.now()+e.H,eU(e,e.H)}function eU(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=eT(y(e.aa,e),t)}function eB(e){e.D&&(a.clearTimeout(e.D),e.D=null)}function ej(e){0==e.j.I||e.K||t$(e.j,e)}function eq(e){eB(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,eo(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function ez(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||eW(r.h,e))){if(!e.L&&eW(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g)if(r.g.F+3e3<e.F)tz(r),tO(r);else break e;tB(r),e_(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=eT(y(r.Va,r),6e3));1>=eH(r.h)&&r.ta&&(r.ta=void 0)}else tG(r,11)}else if((e.L||r.g==e)&&tz(r),!O(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){let o=i[t],l=o[0];if(!(l<=r.K))if(r.K=l,o=o[1],2==r.I)if("c"==o[0]){r.M=o[1],r.ba=o[2];let t=o[3];null!=t&&(r.ka=t,r.j.info("VER="+r.ka));let i=o[4];null!=i&&(r.za=i,r.j.info("SVER="+r.za));let l=o[5];null!=l&&"number"==typeof l&&l>0&&(r.O=n=1.5*l,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r;let u=e.g;if(u){let e=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(e){var s=n.h;s.g||-1==e.indexOf("spdy")&&-1==e.indexOf("quic")&&-1==e.indexOf("h2")||(s.j=s.l,s.g=new Set,s.h&&(eQ(s,s.h),s.h=null))}if(n.G){let e=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null;e&&(n.wa=e,e6(n.J,n.G,e))}}if(r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),(n=r).na=tW(n,n.L?n.ba:null,n.W),e.L){eJ(n.h,e);var a=n.O;a&&(e.H=a),e.D&&(eB(e),eF(e)),n.g=e}else tU(n);r.i.length>0&&tL(r)}else"stop"!=o[0]&&"close"!=o[0]||tG(r,7);else 3==r.I&&("stop"==o[0]||"close"==o[0]?"stop"==o[0]?tG(r,7):tR(r):"noop"!=o[0]&&r.l&&r.l.qa(o),r.A=0)}}eI(4)}catch(e){}}eD.prototype.ba=function(e){e=e.target;let t=this.O;t&&3==tk(e)?t.j():this.Y(e)},eD.prototype.Y=function(e){try{if(e==this.g)e:{let f=tk(this.g),p=this.g.ya(),m=this.g.ca();if(!(f<3)&&(3!=f||this.g&&(this.h.h||this.g.la()||tx(this.g)))){this.K||4!=f||7==p||(8==p||m<=0?eI(3):eI(2)),eB(this);var t=this.g.ca();this.X=t;var r=function(e){if(!eV(e))return e.g.la();let t=tx(e.g);if(""===t)return"";let r="",n=t.length,i=4==tk(e.g);if(!e.h.i){if("u"<typeof TextDecoder)return eq(e),ej(e),"";e.h.i=new a.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g}(this);if(this.o=200==t,n=this.i,i=this.v,s=this.B,o=this.l,l=this.S,n.info(function(){return"XMLHTTP RESP ("+o+") [ attempt "+l+"]: "+i+"\n"+s+"\n"+f+" "+t}),this.o){if(this.U&&!this.L){t:{if(this.g){var n,i,s,o,l,u,h=this.g;if((u=h.g?h.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!O(u)){var c=u;break t}}c=null}if(e=c)eC(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,ez(this,e);else{this.o=!1,this.m=3,e_(12),eq(this),ej(this);break e}}if(this.R){let t;for(e=!0;!this.K&&this.C<r.length;)if((t=function(e,t){var r=e.C,n=t.indexOf("\n",r);return -1==n?eP:isNaN(r=Number(t.substring(r,n)))?eO:(n+=1)+r>t.length?eP:(t=t.slice(n,n+r),e.C=n+r,t)}(this,r))==eP){4==f&&(this.m=4,e_(14),e=!1),eC(this.i,this.l,null,"[Incomplete Response]");break}else if(t==eO){this.m=4,e_(15),eC(this.i,this.l,r,"[Invalid Chunk]"),e=!1;break}else eC(this.i,this.l,t,null),ez(this,t);if(eV(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=f||0!=r.length||this.h.h||(this.m=1,e_(16),e=!1),this.o=this.o&&e,e){if(r.length>0&&!this.W){this.W=!0;var d=this.j;d.g==this&&d.aa&&!d.P&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+r.length),tj(d),d.P=!0,e_(11))}}else eC(this.i,this.l,r,"[Invalid Chunked Response]"),eq(this),ej(this)}else eC(this.i,this.l,r,null),ez(this,r);4==f&&eq(this),this.o&&!this.K&&(4==f?t$(this.j,this):(this.o=!1,eF(this)))}else(function(e){let t={};e=(e.g&&tk(e)>=2&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let n=0;n<e.length;n++){if(O(e[n]))continue;var r=function(e){var t=1;e=e.split(":");let r=[];for(;t>0&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r}(e[n]);let i=r[0];if("string"!=typeof(r=r[1]))continue;r=r.trim();let s=t[i]||[];t[i]=s,s.push(r)}var n=function(e){return e.join(", ")};for(let e in t)n.call(void 0,t[e],e,t)})(this.g),400==t&&r.indexOf("Unknown SID")>0?(this.m=3,e_(12)):(this.m=0,e_(13)),eq(this),ej(this)}}}catch(e){}finally{}},eD.prototype.cancel=function(){this.K=!0,eq(this)},eD.prototype.aa=function(){var e,t;this.D=null;let r=Date.now();r-this.T>=0?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(eI(),e_(17)),eq(this),this.m=2,ej(this)):eU(this,this.T-r)};var e$=class{constructor(e,t){this.g=e,this.map=t}};function eK(e){this.l=e||10,e=a.PerformanceNavigationTiming?(e=a.performance.getEntriesByType("navigation")).length>0&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(a.chrome&&a.chrome.loadTimes&&a.chrome.loadTimes()&&a.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,this.j>1&&(this.g=new Set),this.h=null,this.i=[]}function eG(e){return!!e.h||!!e.g&&e.g.size>=e.j}function eH(e){return e.h?1:e.g?e.g.size:0}function eW(e,t){return e.h?e.h==t:!!e.g&&e.g.has(t)}function eQ(e,t){e.g?e.g.add(t):e.h=t}function eJ(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function eY(e){if(null!=e.h)return e.i.concat(e.h.G);if(null!=e.g&&0!==e.g.size){let t=e.i;for(let r of e.g.values())t=t.concat(r.G);return t}return b(e.i)}eK.prototype.cancel=function(){if(this.i=eY(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(let e of this.g.values())e.cancel();this.g.clear()}};var eX=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function eZ(e){let t;this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1,e instanceof eZ?(this.l=e.l,e1(this,e.j),this.o=e.o,this.g=e.g,e2(this,e.u),this.h=e.h,e3(this,th(e.i)),this.m=e.m):e&&(t=String(e).match(eX))?(this.l=!1,e1(this,t[1]||"",!0),this.o=e4(t[2]||""),this.g=e4(t[3]||"",!0),e2(this,t[4]),this.h=e4(t[5]||"",!0),e3(this,t[6]||"",!0),this.m=e4(t[7]||"")):(this.l=!1,this.i=new ti(null,this.l))}function e0(e){return new eZ(e)}function e1(e,t,r){e.j=r?e4(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function e2(e,t){if(t){if(isNaN(t=Number(t))||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function e3(e,t,r){var n,i;t instanceof ti?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(ts(n),n.i=null,n.g.forEach(function(e,t){let r=t.toLowerCase();t!=r&&(ta(this,t),tu(this,r,e))},n)),n.j=i):(r||(t=e8(t,tr)),e.i=new ti(t,e.l))}function e6(e,t,r){e.i.set(t,r)}function e5(e){return e6(e,"zx",Math.floor(0x80000000*Math.random()).toString(36)+Math.abs(Math.floor(0x80000000*Math.random())^Date.now()).toString(36)),e}function e4(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function e8(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,e9),r&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function e9(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}eZ.prototype.toString=function(){let e=[];var t=this.j;t&&e.push(e8(t,e7,!0),":");var r=this.g;return(r||"file"==t)&&(e.push("//"),(t=this.o)&&e.push(e8(t,e7,!0),"@"),e.push(eN(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(r=this.u)&&e.push(":",String(r))),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(e8(r,"/"==r.charAt(0)?tt:te,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",e8(r,tn)),e.join("")},eZ.prototype.resolve=function(e){let t=e0(this),r=!!e.j;r?e1(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)e2(t,e.u);else if(r=!!e.h){if("/"!=n.charAt(0))if(this.g&&!this.h)n="/"+n;else{var i=t.h.lastIndexOf("/");-1!=i&&(n=t.h.slice(0,i+1)+n)}if(".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){n=0==i.lastIndexOf("/",0),i=i.split("/");let e=[];for(let t=0;t<i.length;){let r=i[t++];"."==r?n&&t==i.length&&e.push(""):".."==r?((e.length>1||1==e.length&&""!=e[0])&&e.pop(),n&&t==i.length&&e.push("")):(e.push(r),n=!0)}n=e.join("/")}else n=i}return r?t.h=n:r=""!==e.i.toString(),r?e3(t,th(e.i)):r=!!e.m,r&&(t.m=e.m),t};var e7=/[#\/\?@]/g,te=/[#\?:]/g,tt=/[#\?]/g,tr=/[#\?@]/g,tn=/#/g;function ti(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function ts(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,t){if(e){e=e.split("&");for(let r=0;r<e.length;r++){let n=e[r].indexOf("="),i,s=null;n>=0?(i=e[r].substring(0,n),s=e[r].substring(n+1)):i=e[r],t(i,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(e.i,function(t,r){e.add(decodeURIComponent(t.replace(/\+/g," ")),r)}))}
1function ta(e,t){ts(e),t=tc(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function to(e,t){return ts(e),t=tc(e,t),e.g.has(t)}function tl(e,t){ts(e);let r=[];if("string"==typeof t)to(e,t)&&(r=r.concat(e.g.get(tc(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function tu(e,t,r){ta(e,t),r.length>0&&(e.i=null,e.g.set(tc(e,t),b(r)),e.h+=r.length)}function th(e){let t=new ti;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function tc(e,t){return t=String(t),e.j&&(t=t.toLowerCase()),t}function td(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function tf(){this.g=new eh}function tp(e){this.i=e.Sb||null,this.h=e.ab||!1}function tm(e,t){et.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function tg(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function ty(e){e.readyState=4,e.l=null,e.j=null,e.B=null,tw(e)}function tw(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function tv(e){let t="";return U(e,function(e,r){t+=r,t+=":",t+=e,t+="\r\n"}),t}function tI(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=tv(r),"string"==typeof e?null!=r&&eN(r):e6(e,t,r))}function tb(e){et.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(t=ti.prototype).add=function(e,t){ts(this),this.i=null,e=tc(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},t.forEach=function(e,t){ts(this),this.g.forEach(function(r,n){r.forEach(function(r){e.call(t,r,n,this)},this)},this)},t.set=function(e,t){return ts(this),this.i=null,to(this,e=tc(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},t.get=function(e,t){return e&&(e=tl(this,e)).length>0?String(e[0]):t},t.toString=function(){if(this.i)return this.i;if(!this.g)return"";let e=[],t=Array.from(this.g.keys());for(let n=0;n<t.length;n++){var r=t[n];let i=eN(r);r=tl(this,r);for(let t=0;t<r.length;t++){let n=i;""!==r[t]&&(n+="="+eN(r[t])),e.push(n)}}return this.i=e.join("&")},v(tp,ec),tp.prototype.g=function(){return new tm(this.i,this.h)},v(tm,et),(t=tm.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,tw(this)},t.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;let t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||a).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},t.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),this.readyState>=1&&this.g&&4!=this.readyState&&(this.g=!1,ty(this)),this.readyState=0},t.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,tw(this)),this.g&&(this.readyState=3,tw(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==a.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;tg(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},t.Ma=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var t=e.value?e.value:new Uint8Array(0);(t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t)}e.done?ty(this):tw(this),3==this.readyState&&tg(this)}},t.Oa=function(e){this.g&&(this.response=this.responseText=e,ty(this))},t.Na=function(e){this.g&&(this.response=e,ty(this))},t.ga=function(){this.g&&ty(this)},t.setRequestHeader=function(e,t){this.A.append(e,t)},t.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},t.getAllResponseHeaders=function(){if(!this.h)return"";let e=[],t=this.h.entries();for(var r=t.next();!r.done;)e.push((r=r.value)[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(tm.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),v(tb,et);var t_=/^https?$/i,tE=["POST","PUT"];function tT(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,tS(e),tA(e)}function tS(e){e.A||(e.A=!0,er(e,"complete"),er(e,"error"))}function tC(e){if(e.h&&void 0!==s){if(e.v&&4==tk(e))setTimeout(e.Ca.bind(e),0);else if(er(e,"readystatechange"),4==tk(e)){e.h=!1;try{let s=e.ca();switch(s){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var t,r,n=!0;break;default:n=!1}if(!(t=n)){if(r=0===s){let t=String(e.D).match(eX)[1]||null;!t&&a.self&&a.self.location&&(t=a.self.location.protocol.slice(0,-1)),r=!t_.test(t?t.toLowerCase():"")}t=r}if(t)er(e,"complete"),er(e,"success");else{e.o=6;try{var i=tk(e)>2?e.g.statusText:""}catch(e){i=""}e.l=i+" ["+e.ca()+"]",tS(e)}}finally{tA(e)}}}}function tA(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);let r=e.g;e.g=null,t||er(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function tk(e){return e.g?e.g.readyState:0}function tx(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(e){return null}}
1function tN(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function tD(e){this.za=0,this.i=[],this.j=new eS,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=tN("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=tN("baseRetryDelayMs",5e3,e),this.Za=tN("retryDelaySeedMs",1e4,e),this.Ta=tN("forwardChannelMaxRetries",2,e),this.va=tN("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new eK(e&&e.concurrentRequestLimit),this.Ba=new tf,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&e.longPollingTimeout>0&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function tR(e){if(tP(e),3==e.I){var t=e.V++,r=e0(e.J);if(e6(r,"SID",e.M),e6(r,"RID",t),e6(r,"TYPE","terminate"),tV(e,r),(t=new eD(e,e.j,t)).M=2,t.A=e5(e0(r)),r=!1,a.navigator&&a.navigator.sendBeacon)try{r=a.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&a.Image&&((new Image).src=t.A,r=!0),r||(t.g=tQ(t.j,null),t.g.ea(t.A)),t.F=Date.now(),eF(t)}tH(e)}function tO(e){e.g&&(tj(e),e.g.cancel(),e.g=null)}function tP(e){tO(e),e.v&&(a.clearTimeout(e.v),e.v=null),tz(e),e.h.cancel(),e.m&&("number"==typeof e.m&&a.clearTimeout(e.m),e.m=null)}function tL(e){if(!eG(e.h)&&!e.m){e.m=!0;var t=e.Ea;S||k(),C||(S(),C=!0),A.add(t,e),e.D=0}}function tM(e,t){var r;r=t?t.l:e.V++;let n=e0(e.J);e6(n,"SID",e.M),e6(n,"RID",r),e6(n,"AID",e.K),tV(e,n),e.u&&e.o&&tI(n,e.u,e.o),r=new eD(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=tF(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),eQ(e.h,r),eL(r,n,t)}function tV(e,t){e.H&&U(e.H,function(e,r){e6(t,r,e)}),e.l&&U({},function(e,r){e6(t,r,e)})}function tF(e,t,r){r=Math.min(e.i.length,r);let n=e.l?y(e.l.Ka,e.l,e):null;e:{var i=e.i;let t=-1;for(;;){let e=["count="+r];-1==t?r>0?(t=i[0].g,e.push("ofs="+t)):t=0:e.push("ofs="+t);let l=!0;for(let u=0;u<r;u++){var s=i[u].g;let r=i[u].map;if((s-=t)<0)t=Math.max(0,i[u].g-100),l=!1;else try{s="req"+s+"_";try{var a=r instanceof Map?r:Object.entries(r);for(let[t,r]of a){let n=r;o(r)&&(n=el(r)),e.push(s+t+"="+encodeURIComponent(n))}}catch(t){throw e.push(s+"type="+encodeURIComponent("_badmap")),t}}catch(e){n&&n(r)}}if(l){a=e.join("&");break e}}a=void 0}return t.G=e=e.i.splice(0,r),a}function tU(e){if(!e.g&&!e.v){e.Y=1;var t=e.Da;S||k(),C||(S(),C=!0),A.add(t,e),e.A=0}}function tB(e){return!e.g&&!e.v&&!(e.A>=3)&&(e.Y++,e.v=eT(y(e.Da,e),tK(e,e.A)),e.A++,!0)}function tj(e){null!=e.B&&(a.clearTimeout(e.B),e.B=null)}function tq(e){e.g=new eD(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=e0(e.na);e6(t,"RID","rpc"),e6(t,"SID",e.M),e6(t,"AID",e.K),e6(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&e6(t,"TO",e.ia),e6(t,"TYPE","xmlhttp"),tV(e,t),e.u&&e.o&&tI(t,e.u,e.o),e.O&&(e.g.H=e.O);var r=e.g;e=e.ba,r.M=1,r.A=e5(e0(t)),r.u=null,r.R=!0,eM(r,e)}function tz(e){null!=e.C&&(a.clearTimeout(e.C),e.C=null)}function t$(e,t){var r,n=null;if(e.g==t){tz(e),tj(e),e.g=null;var i=2}else{if(!eW(e.h,t))return;n=t.G,eJ(e.h,t),i=1}if(0!=e.I){if(t.o)if(1==i){n=t.u?t.u.length:0,t=Date.now()-t.F;var s=e.D;er(i=ew(),new eE(i,n)),tL(e)}else tU(e);else if(3==(s=t.m)||0==s&&t.X>0||!(1==i&&(r=t,!(eH(e.h)>=e.h.j-!!e.m)&&(e.m?(e.i=r.G.concat(e.i),!0):1!=e.I&&2!=e.I&&!(e.D>=(e.Sa?0:e.Ta))&&(e.m=eT(y(e.Ea,e,r),tK(e,e.D)),e.D++,!0)))||2==i&&tB(e)))switch(n&&n.length>0&&((t=e.h).i=t.i.concat(n)),s){case 1:tG(e,5);break;case 4:tG(e,10);break;case 3:tG(e,6);break;default:tG(e,2)}}}function tK(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function tG(e,t){if(e.j.info("Error code "+t),2==t){let t,s,o;var r,n=y(e.bb,e),i=e.Ua;let l=!i;i=new eZ(i||"//www.google.com/images/cleardot.gif"),a.location&&"http"==a.location.protocol||e1(i,"https"),e5(i),l?function(e,t){let r=new eS;if(a.Image){let n=new Image;n.onload=w(td,r,"TestLoadImage: loaded",!0,t,n),n.onerror=w(td,r,"TestLoadImage: error",!1,t,n),n.onabort=w(td,r,"TestLoadImage: abort",!1,t,n),n.ontimeout=w(td,r,"TestLoadImage: timeout",!1,t,n),a.setTimeout(function(){n.ontimeout&&n.ontimeout()},1e4),n.src=e}else t(!1)}(i.toString(),n):(r=i.toString(),t=new eS,s=new AbortController,o=setTimeout(()=>{s.abort(),td(t,"TestPingServer: timeout",!1,n)},1e4),fetch(r,{signal:s.signal}).then(e=>{clearTimeout(o),e.ok?td(t,"TestPingServer: ok",!0,n):td(t,"TestPingServer: server error",!1,n)}).catch(()=>{clearTimeout(o),td(t,"TestPingServer: error",!1,n)}))}else e_(2);e.I=0,e.l&&e.l.pa(t),tH(e),tP(e)}function tH(e){if(e.I=0,e.ja=[],e.l){let t=eY(e.h);(0!=t.length||0!=e.i.length)&&(_(e.ja,t),_(e.ja,e.i),e.h.i.length=0,b(e.i),e.i.length=0),e.l.oa()}}function tW(e,t,r){var n=r instanceof eZ?e0(r):new eZ(r);if(""!=n.g)t&&(n.g=t+"."+n.g),e2(n,n.u);else{var i=a.location;n=i.protocol,t=t?t+"."+i.hostname:i.hostname,i=+i.port;let e=new eZ(null);n&&e1(e,n),t&&(e.g=t),i&&e2(e,i),r&&(e.h=r),n=e}return r=e.G,t=e.wa,r&&t&&e6(n,r,t),e6(n,"VER",e.ka),tV(e,n),n}function tQ(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=new tb(e.Aa&&!e.ma?new tp({ab:r}):e.ma)).Fa(e.L),t}function tJ(){}function tY(){}function tX(e,t){et.call(this),this.g=new tD(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!O(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!O(t)&&(this.g.G=t,null!==(e=this.h)&&t in e&&t in(e=this.h)&&delete e[t]),this.j=new t1(this)}function tZ(e){ep.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(let r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function t0(){em.call(this),this.status=1}function t1(e){this.g=e}(t=tb.prototype).Fa=function(e){this.H=e},t.ea=function(t,r,n,i){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+t);r=r?r.toUpperCase():"GET",this.D=t,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=this.L?this.L.g():e.g(),this.g.onreadystatechange=I(y(this.Ca,this));try{this.B=!0,this.g.open(r,String(t),!0),this.B=!1}catch(e){tT(this,e);return}if(t=n||"",n=new Map(this.headers),i)if(Object.getPrototypeOf(i)===Object.prototype)for(var s in i)n.set(s,i[s]);else if("function"==typeof i.keys&&"function"==typeof i.get)for(let e of i.keys())n.set(e,i.get(e));else throw Error("Unknown input type for opt_headers: "+String(i));
1for(let[e,o]of(i=Array.from(n.keys()).find(e=>"content-type"==e.toLowerCase()),s=a.FormData&&t instanceof a.FormData,!(Array.prototype.indexOf.call(tE,r,void 0)>=0)||i||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),n))this.g.setRequestHeader(e,o);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(t),this.v=!1}catch(e){tT(this,e)}},t.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,er(this,"complete"),er(this,"abort"),tA(this))},t.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),tA(this,!0)),tb.Z.N.call(this)},t.Ca=function(){this.u||(this.B||this.v||this.j?tC(this):this.Xa())},t.Xa=function(){tC(this)},t.isActive=function(){return!!this.g},t.ca=function(){try{return tk(this)>2?this.g.status:-1}catch(e){return -1}},t.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},t.La=function(e){if(this.g){var t=this.g.responseText;return e&&0==t.indexOf(e)&&(t=t.substring(e.length)),eu(t)}},t.ya=function(){return this.o},t.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(t=tD.prototype).ka=8,t.I=1,t.connect=function(e,t,r,n){e_(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=tW(this,null,this.W),tL(this)},t.Ea=function(e){if(this.m)if(this.m=null,1==this.I){if(!e){this.V=Math.floor(1e5*Math.random()),e=this.V++;let i=new eD(this,this.j,e),s=this.o;if(this.U&&(s?q(s=B(s),this.U):s=this.U),null!==this.u||this.R||(i.J=s,s=null),this.S)e:{for(var t=0,r=0;r<this.i.length;r++){t:{var n=this.i[r];if("__data__"in n.map&&"string"==typeof(n=n.map.__data__)){n=n.length;break t}n=void 0}if(void 0===n)break;if((t+=n)>4096){t=r;break e}if(4096===t||r===this.i.length-1){t=r+1;break e}}t=1e3}else t=1e3;t=tF(this,i,t),e6(r=e0(this.J),"RID",e),e6(r,"CVER",22),this.G&&e6(r,"X-HTTP-Session-Id",this.G),tV(this,r),s&&(this.R?t="headers="+eN(tv(s))+"&"+t:this.u&&tI(r,this.u,s)),eQ(this.h,i),this.Ra&&e6(r,"TYPE","init"),this.S?(e6(r,"$req",t),e6(r,"SID","null"),i.U=!0,eL(i,r,null)):eL(i,r,t),this.I=2}}else 3==this.I&&(e?tM(this,e):0==this.i.length||eG(this.h)||tM(this))},t.Da=function(){if(this.v=null,tq(this),this.aa&&!(this.P||null==this.g||this.T<=0)){var e=4*this.T;this.j.info("BP detection timer enabled: "+e),this.B=eT(y(this.Wa,this),e)}},t.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,e_(10),tO(this),tq(this))},t.Va=function(){null!=this.C&&(this.C=null,tO(this),tB(this),e_(19))},t.bb=function(e){e?(this.j.info("Successfully pinged google.com"),e_(2)):(this.j.info("Failed to ping google.com"),e_(1))},t.isActive=function(){return!!this.l&&this.l.isActive(this)},(t=tJ.prototype).ra=function(){},t.qa=function(){},t.pa=function(){},t.oa=function(){},t.isActive=function(){return!0},t.Ka=function(){},tY.prototype.g=function(e,t){return new tX(e,t)},v(tX,et),tX.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},tX.prototype.close=function(){tR(this.g)},tX.prototype.o=function(e){var t=this.g;if("string"==typeof e){var r={};r.__data__=e,e=r}else this.v&&((r={}).__data__=el(e),e=r);t.i.push(new e$(t.Ya++,e)),3==t.I&&tL(t)},tX.prototype.N=function(){this.g.l=null,delete this.j,tR(this.g),delete this.g,tX.Z.N.call(this)},v(tZ,ep),v(t0,em),v(t1,tJ),t1.prototype.ra=function(){er(this.g,"a")},t1.prototype.qa=function(e){er(this.g,new tZ(e))},t1.prototype.pa=function(e){er(this.g,new t0)},t1.prototype.oa=function(){er(this.g,"b")},tY.prototype.createWebChannel=tY.prototype.g,tX.prototype.send=tX.prototype.o,tX.prototype.open=tX.prototype.m,tX.prototype.close=tX.prototype.close,g=nM.createWebChannelTransport=function(){return new tY},m=nM.getStatEventTarget=function(){return ew()},p=nM.Event=eg,f=nM.Stat={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},eA.NO_ERROR=0,eA.TIMEOUT=8,eA.HTTP_ERROR=6,d=nM.ErrorCode=eA,ek.COMPLETE="complete",c=nM.EventType=ek,ed.EventType=ef,ef.OPEN="a",ef.CLOSE="b",ef.ERROR="c",ef.MESSAGE="d",et.prototype.listen=et.prototype.J,h=nM.WebChannel=ed,nM.FetchXmlHttpFactory=tp,tb.prototype.listenOnce=tb.prototype.K,tb.prototype.getLastError=tb.prototype.Ha,tb.prototype.getLastErrorCode=tb.prototype.ya,tb.prototype.getStatus=tb.prototype.ca,tb.prototype.getResponseJson=tb.prototype.La,tb.prototype.getResponseText=tb.prototype.la,tb.prototype.send=tb.prototype.ea,tb.prototype.setWithCredentials=tb.prototype.Fa,u=nM.XhrIo=tb}).apply(void 0!==nL?nL:"u">typeof self?self:"u">typeof window?window:{});
1class nV{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}nV.UNAUTHENTICATED=new nV(null),nV.GOOGLE_CREDENTIALS=new nV("google-credentials-uid"),nV.FIRST_PARTY=new nV("first-party-uid"),nV.MOCK_USER=new nV("mock-user");let nF="12.12.0";function nU(e){nF=e}let nB=new el("@firebase/firestore");function nj(){return nB.logLevel}function nq(e,...t){if(nB.logLevel<=a.DEBUG){let r=t.map(nK);nB.debug(`Firestore (${nF}): ${e}`,...r)}}function nz(e,...t){if(nB.logLevel<=a.ERROR){let r=t.map(nK);nB.error(`Firestore (${nF}): ${e}`,...r)}}function n$(e,...t){if(nB.logLevel<=a.WARN){let r=t.map(nK);nB.warn(`Firestore (${nF}): ${e}`,...r)}}function nK(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(t){return e}}function nG(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,nH(e,n,r)}function nH(e,t,r){let n=`FIRESTORE (${nF}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw nz(n),Error(n)}function nW(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||nH(t,i,n)}let nQ={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class nJ extends B{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class nY{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class nX{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class nZ{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(nV.UNAUTHENTICATED))}shutdown(){}}class n0{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class n1{constructor(e){this.t=e,this.currentUser=nV.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,t){nW(void 0===this.o,42304);let r=this.i,n=e=>this.i!==r?(r=this.i,t(e)):Promise.resolve(),i=new nY;this.o=()=>{this.i++,this.currentUser=this.u(),i.resolve(),i=new nY,e.enqueueRetryable(()=>n(this.currentUser))};let s=()=>{let t=i;e.enqueueRetryable(async()=>{await t.promise,await n(this.currentUser)})},a=e=>{nq("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),s())};this.t.onInit(e=>a(e)),setTimeout(()=>{if(!this.auth){let e=this.t.getImmediate({optional:!0});e?a(e):(nq("FirebaseAuthCredentialsProvider","Auth not yet detected"),i.resolve(),i=new nY)}},0),s()}getToken(){let e=this.i,t=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(t).then(t=>this.i!==e?(nq("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):t?(nW("string"==typeof t.accessToken,31837,{l:t}),new nX(t.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){let e=this.auth&&this.auth.getUid();return nW(null===e||"string"==typeof e,2055,{h:e}),new nV(e)}}class n2{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=nV.FIRST_PARTY,this.R=new Map}A(){return this.I?this.I():null}get headers(){this.R.set("X-Goog-AuthUser",this.P);let e=this.A();return e&&this.R.set("Authorization",e),this.T&&this.R.set("X-Goog-Iam-Authorization-Token",this.T),this.R}}class n3{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new n2(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(nV.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class n6{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class n5{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,eO(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(e,t){nW(void 0===this.o,3512);let r=e=>{null!=e.error&&nq("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);let r=e.token!==this.m;return this.m=e.token,nq("FirebaseAppCheckTokenProvider",`Received ${r?"new":"existing"} token.`),r?t(e.token):Promise.resolve()};this.o=t=>{e.enqueueRetryable(()=>r(t))};let n=e=>{nq("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.V.onInit(e=>n(e)),setTimeout(()=>{if(!this.appCheck){let e=this.V.getImmediate({optional:!0});e?n(e):nq("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){if(this.p)return Promise.resolve(new n6(this.p));let e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(nW("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new n6(e.token)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class n4{static newId(){let e=62*Math.floor(256/62),t="";for(;t.length<20;){let r=function(){let e="u">typeof self&&(self.crypto||self.msCrypto),t=new Uint8Array(40);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(t);else for(let e=0;e<40;
1e++)t[e]=Math.floor(256*Math.random());return t}();for(let n=0;n<r.length;++n)t.length<20&&r[n]<e&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(r[n]%62))}return t}}function n8(e,t){return e<t?-1:+(e>t)}function n9(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=e.charAt(n),i=t.charAt(n);if(r!==i)return n7(r)===n7(i)?n8(r,i):n7(r)?1:-1}return n8(e.length,t.length)}function n7(e){let t=e.charCodeAt(0);return t>=55296&&t<=57343}function ie(e,t,r){return e.length===t.length&&e.every((e,n)=>r(e,t[n]))}let it="__name__";class ir{constructor(e,t,r){void 0===t?t=0:t>e.length&&nG(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&nG(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===ir.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof ir?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+e,this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=ir.compareSegments(e.get(n),t.get(n));if(0!==r)return r}return n8(e.length,t.length)}static compareSegments(e,t){let r=ir.isNumericId(e),n=ir.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?ir.extractNumericId(e).compare(ir.extractNumericId(t)):n9(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return o.fromString(e.substring(4,e.length-2))}}class ii extends ir{construct(e,t,r){return new ii(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){let t=[];for(let r of e){if(r.indexOf("//")>=0)throw new nJ(nQ.INVALID_ARGUMENT,`Invalid segment (${r}). Paths must not contain // in them.`);t.push(...r.split("/").filter(e=>e.length>0))}return new ii(t)}static emptyPath(){return new ii([])}}let is=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class ia extends ir{construct(e,t,r){return new ia(e,t,r)}static isValidIdentifier(e){return is.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),ia.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===it}static keyField(){return new ia([it])}static fromServerFormat(e){let t=[],r="",n=0,i=()=>{if(0===r.length)throw new nJ(nQ.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(r),r=""},s=!1;for(;n<e.length;){let t=e[n];if("\\"===t){if(n+1===e.length)throw new nJ(nQ.INVALID_ARGUMENT,"Path has trailing escape character: "+e);let t=e[n+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new nJ(nQ.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);r+=t,n+=2}else"`"===t?s=!s:"."!==t||s?r+=t:i(),n++}if(i(),s)throw new nJ(nQ.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new ia(t)}static emptyPath(){return new ia([])}}class io{constructor(e){this.path=e}static fromPath(e){return new io(ii.fromString(e))}static fromName(e){return new io(ii.fromString(e).popFirst(5))}static empty(){return new io(ii.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===ii.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return ii.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new io(new ii(e.slice()))}}function il(e,t,r){if(!r)throw new nJ(nQ.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function iu(e){if(!io.isDocumentKey(e))throw new nJ(nQ.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function ih(e){if(io.isDocumentKey(e))throw new nJ(nQ.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function ic(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function id(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{var t;let r=(t=e).constructor?t.constructor.name:null;return r?`a custom ${r} object`:"an object"}}return"function"==typeof e?"a function":nG(12329,{type:typeof e})}function ip(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new nJ(nQ.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{let r=id(e);throw new nJ(nQ.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${r}`)}}return e}function im(e,t){let r={typeString:e};return t&&(r.value=t),r}function ig(e,t){let r;if(!ic(e))throw new nJ(nQ.INVALID_ARGUMENT,"JSON must be an object");for(let n in t)if(t[n]){let i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}let a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new nJ(nQ.INVALID_ARGUMENT,r);return!0}class iy{static now(){return iy.fromMillis(Date.now())}static fromDate(e){return iy.fromMillis(e.getTime())}static fromMillis(e){let t=Math.floor(e/1e3),r=Math.floor((e-1e3*t)*1e6);return new iy(t,r)}constructor(e,t){if(this.seconds=e,this.nanoseconds=t,t<0||t>=1e9)throw new nJ(nQ.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-0xe7791f700||e>=0x3afff44180)throw new nJ(nQ.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?n8(this.nanoseconds,e.nanoseconds):n8(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:iy._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(ig(e,iy._jsonSchema))return new iy(e.seconds,e.nanoseconds)}valueOf(){return String(this.seconds- -0xe7791f700).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}
1}iy._jsonSchemaVersion="firestore/timestamp/1.0",iy._jsonSchema={type:im("string",iy._jsonSchemaVersion),seconds:im("number"),nanoseconds:im("number")};class iw{static fromTimestamp(e){return new iw(e)}static min(){return new iw(new iy(0,0))}static max(){return new iw(new iy(0x3afff4417f,0x3b9ac9ff))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class iv{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function iI(e){return e.fields.find(e=>2===e.kind)}function ib(e){return e.fields.filter(e=>2!==e.kind)}function i_(e,t){let r=n8(e.collectionGroup,t.collectionGroup);if(0!==r)return r;for(let n=0;n<Math.min(e.fields.length,t.fields.length);++n)if(0!==(r=function(e,t){let r=ia.comparator(e.fieldPath,t.fieldPath);return 0!==r?r:n8(e.kind,t.kind)}(e.fields[n],t.fields[n])))return r;return n8(e.fields.length,t.fields.length)}iv.UNKNOWN_ID=-1;class iE{constructor(e,t){this.fieldPath=e,this.kind=t}}class iT{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new iT(0,iA.min())}}function iS(e,t){let r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1;return new iA(iw.fromTimestamp(1e9===n?new iy(r+1,0):new iy(r,n)),io.empty(),t)}function iC(e){return new iA(e.readTime,e.key,-1)}class iA{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new iA(iw.min(),io.empty(),-1)}static max(){return new iA(iw.max(),io.empty(),-1)}}function ik(e,t){let r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=io.comparator(e.documentKey,t.documentKey))?r:n8(e.largestBatchId,t.largestBatchId)}let ix="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class iN{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function iD(e){if(e.code!==nQ.FAILED_PRECONDITION||e.message!==ix)throw e;nq("LocalStore","Unexpectedly lost primary lease")}class iR{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(e,t){return this.callbackAttached&&nG(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(t,this.error):this.wrapSuccess(e,this.result):new iR((r,n)=>{this.nextCallback=t=>{this.wrapSuccess(e,t).next(r,n)},this.catchCallback=e=>{this.wrapFailure(t,e).next(r,n)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{let t=e();return t instanceof iR?t:iR.resolve(t)}catch(e){return iR.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):iR.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):iR.reject(t)}static resolve(e){return new iR((t,r)=>{t(e)})}static reject(e){return new iR((t,r)=>{r(e)})}static waitFor(e){return new iR((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=iR.resolve(!1);for(let r of e)t=t.next(e=>e?iR.resolve(e):r());return t}static forEach(e,t){let r=[];return e.forEach((e,n)=>{r.push(t.call(this,e,n))}),this.waitFor(r)}static mapArray(e,t){return new iR((r,n)=>{let i=e.length,s=Array(i),a=0;for(let o=0;o<i;o++){let l=o;t(e[l]).next(e=>{s[l]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(e,t){return new iR((r,n)=>{let i=()=>{!0===e()?t().next(()=>{i()},n):r()};i()})}}let iO="SimpleDb";class iP{static open(e,t,r,n){try{return new iP(t,e.transaction(n,r))}catch(e){throw new iF(t,e)}}constructor(e,t){this.action=e,this.transaction=t,this.aborted=!1,this.S=new nY,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{t.error?this.S.reject(new iF(e,t.error)):this.S.resolve()},this.transaction.onerror=t=>{let r=iz(t.target.error);this.S.reject(new iF(e,r))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(nq(iO,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){let e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){return new iB(this.transaction.objectStore(e))}}class iL{static delete(e){return nq(iO,"Removing database:",e),ij(x().indexedDB.deleteDatabase(e)).toPromise()}static v(){if(!U())return!1;if(iL.F())return!0;let e=L(),t=iL.M(e),r=iM(e);return!(e.indexOf("MSIE ")>0||e.indexOf("Trident/")>0||e.indexOf("Edge/")>0||0<t&&t<10||0<r&&r<4.5)}static F(){return void 0!==b.default&&"YES"===b.default.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){let t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i);return Number(t?t[1].split("_").slice(0,2).join("."):"-1")}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===iL.M(L())&&nz("Firestore persistence suffers from a bug in
1iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(e){return this.db||(nq(iO,"Opening database:",this.name),this.db=await new Promise((t,r)=>{let n=indexedDB.open(this.name,this.version);n.onsuccess=e=>{t(e.target.result)},n.onblocked=()=>{r(new iF(e,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},n.onerror=t=>{let n=t.target.error;"VersionError"===n.name?r(new nJ(nQ.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===n.name?r(new nJ(nQ.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+n)):r(new iF(e,n))},n.onupgradeneeded=e=>{nq(iO,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);let t=e.target.result;this.N.k(t,n.transaction,e.oldVersion,this.version).next(()=>{nq(iO,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}K(e){this.q=e,this.db&&(this.db.onversionchange=t=>e(t))}async runTransaction(e,t,r,n){let i="readonly"===t,s=0;for(;;){++s;try{this.db=await this.L(e);let t=iP.open(this.db,e,i?"readonly":"readwrite",r),s=n(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),iR.reject(e))).toPromise();return s.catch(()=>{}),await t.D,s}catch(t){let e="FirebaseError"!==t.name&&s<3;if(nq(iO,"Transaction failed with error:",t.message,"Retrying:",e),this.close(),!e)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}function iM(e){let t=e.match(/Android ([\d.]+)/i);return Number(t?t[1].split(".").slice(0,2).join("."):"-1")}class iV{constructor(e){this.U=e,this.$=!1,this.W=null}get isDone(){return this.$}get G(){return this.W}set cursor(e){this.U=e}done(){this.$=!0}j(e){this.W=e}delete(){return ij(this.U.delete())}}class iF extends nJ{constructor(e,t){super(nQ.UNAVAILABLE,`IndexedDB transaction '${e}' failed: ${t}`),this.name="IndexedDbTransactionError"}}function iU(e){return"IndexedDbTransactionError"===e.name}class iB{constructor(e){this.store=e}put(e,t){let r;return void 0!==t?(nq(iO,"PUT",this.store.name,e,t),r=this.store.put(t,e)):(nq(iO,"PUT",this.store.name,"<auto-key>",e),r=this.store.put(e)),ij(r)}add(e){return nq(iO,"ADD",this.store.name,e,e),ij(this.store.add(e))}get(e){return ij(this.store.get(e)).next(t=>(void 0===t&&(t=null),nq(iO,"GET",this.store.name,e,t),t))}delete(e){return nq(iO,"DELETE",this.store.name,e),ij(this.store.delete(e))}count(){return nq(iO,"COUNT",this.store.name),ij(this.store.count())}J(e,t){let r=this.options(e,t),n=r.index?this.store.index(r.index):this.store;if("function"==typeof n.getAll){let e=n.getAll(r.range);return new iR((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(r),t=[];return this.H(e,(e,r)=>{t.push(r)}).next(()=>t)}}Z(e,t){let r=this.store.getAll(e,null===t?void 0:t);return new iR((e,t)=>{r.onerror=e=>{t(e.target.error)},r.onsuccess=t=>{e(t.target.result)}})}X(e,t){nq(iO,"DELETE ALL",this.store.name);let r=this.options(e,t);r.Y=!1;let n=this.cursor(r);return this.H(n,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);let n=this.cursor(r);return this.H(n,t)}te(e){let t=this.cursor({});return new iR((r,n)=>{t.onerror=e=>{n(iz(e.target.error))},t.onsuccess=t=>{let n=t.target.result;n?e(n.primaryKey,n.value).next(e=>{e?n.continue():r()}):r()}})}H(e,t){let r=[];return new iR((n,i)=>{e.onerror=e=>{i(e.target.error)},e.onsuccess=e=>{let i=e.target.result;if(!i)return void n();let s=new iV(i),a=t(i.primaryKey,i.value,s);if(a instanceof iR){let e=a.catch(e=>(s.done(),iR.reject(e)));r.push(e)}s.isDone?n():null===s.G?i.continue():i.continue(s.G)}}).next(()=>iR.waitFor(r))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";if(e.reverse&&(t="prev"),e.index){let r=this.store.index(e.index);return e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)}return this.store.openCursor(e.range,t)}}function ij(e){return new iR((t,r)=>{e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(iz(e.target.error))}})}let iq=!1;function iz(e){let t=iL.M(L());if(t>=12.2&&t<13){let t="An internal error was encountered in the Indexed Database server";if(e.message.indexOf(t)>=0){let e=new nJ("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return iq||(iq=!0,setTimeout(()=>{throw e},0)),e}}return e}let i$="IndexBackfiller";class iK{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){nq(i$,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{let e=await this.ne.ie();nq(i$,`Documents written: ${e}`)}catch(e){iU(e)?nq(i$,"Ignoring IndexedDB error during index backfill: ",e):await iD(e)}await this.re(6e4)})}}class iG{constructor(e,t){this.localStore=e,this.persistence=t}async ie(e=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",t=>this.se(t,e))}se(e,t){let r=new Set,n=t,i=!0;
1return iR.doWhile(()=>!0===i&&n>0,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return nq(i$,`Processing collection: ${t}`),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(e,t,r){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(e,t).next(n=>this.localStore.localDocuments.getNextDocuments(e,t,n,r).next(r=>{let i=r.changes;return this.localStore.indexManager.updateIndexEntries(e,i).next(()=>this._e(n,r)).next(r=>(nq(i$,`Updating offset: ${r}`),this.localStore.indexManager.updateCollectionGroup(e,t,r))).next(()=>i.size)}))}_e(e,t){let r=e;return t.changes.forEach((e,t)=>{let n=iC(t);ik(n,r)>0&&(r=n)}),new iA(r.readTime,r.documentKey,Math.max(t.batchId,e.largestBatchId))}}class iH{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){let e=++this.previousValue;return this.ue&&this.ue(e),e}}function iW(e){return null==e}function iQ(e){return 0===e&&1/e==-1/0}function iJ(e){return"number"==typeof e&&Number.isInteger(e)&&!iQ(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}function iY(e){let t="";for(let r=0;r<e.length;r++)t.length>0&&(t+="\x01\x01"),t=function(e,t){let r=t,n=e.length;for(let t=0;t<n;t++){let n=e.charAt(t);switch(n){case"\0":r+="\x01\x10";break;case"\x01":r+="\x01\x11";break;default:r+=n}}return r}(e.get(r),t);return t+"\x01\x01"}iH.ce=-1;function iX(e){let t=e.length;if(nW(t>=2,64408,{path:e}),2===t)return nW("\x01"===e.charAt(0)&&"\x01"===e.charAt(1),56145,{path:e}),ii.emptyPath();let r=t-2,n=[],i="";for(let s=0;s<t;){let t=e.indexOf("\x01",s);switch((t<0||t>r)&&nG(50515,{path:e}),e.charAt(t+1)){case"\x01":let a,o=e.substring(s,t);0===i.length?a=o:(i+=o,a=i,i=""),n.push(a);break;case"\x10":i+=e.substring(s,t),i+="\0";break;case"\x11":i+=e.substring(s,t+1);break;default:nG(61167,{path:e})}s=t+2}return new ii(n)}let iZ="remoteDocuments",i0="owner",i1="owner",i2="mutationQueues",i3="mutations",i6="batchId",i5="userMutationsIndex",i4=["userId","batchId"],i8={},i9="documentMutations",i7="remoteDocumentsV14",se=["prefixPath","collectionGroup","readTime","documentId"],st="documentKeyIndex",sr=["prefixPath","collectionGroup","documentId"],sn="collectionGroupIndex",si=["collectionGroup","readTime","prefixPath","documentId"],ss="remoteDocumentGlobal",sa="remoteDocumentGlobalKey",so="targets",sl="queryTargetsIndex",su=["canonicalId","targetId"],sh="targetDocuments",sc=["targetId","path"],sd="documentTargetsIndex",sf=["path","targetId"],sp="targetGlobalKey",sm="targetGlobal",sg="collectionParents",sy=["collectionId","parent"],sw="clientMetadata",sv="bundles",sI="namedQueries",sb="indexConfiguration",s_="collectionGroupIndex",sE="indexState",sT=["indexId","uid"],sS="sequenceNumberIndex",sC=["uid","sequenceNumber"],sA="indexEntries",sk=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],sx="documentKeyIndex",sN=["indexId","uid","orderedDocumentKey"],sD="documentOverlays",sR=["userId","collectionPath","documentId"],sO="collectionPathOverlayIndex",sP=["userId","collectionPath","largestBatchId"],sL="collectionGroupOverlayIndex",sM=["userId","collectionGroup","largestBatchId"],sV="globals",sF=[i2,i3,i9,iZ,so,i0,sm,sh,sw,ss,sg,sv,sI],sU=[...sF,sD],sB=[i2,i3,i9,i7,so,i0,sm,sh,sw,ss,sg,sv,sI,sD],sj=[...sB,sb,sE,sA],sq=[...sj,sV];class sz extends iN{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function s$(e,t){return iL.O(e.le,t)}function sK(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function sG(e,t){for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function sH(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class sW{constructor(e,t){this.comparator=e,this.root=t||sJ.EMPTY}insert(e,t){return new sW(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,sJ.BLACK,null,null))}remove(e){return new sW(this.comparator,this.root.remove(e,this.comparator).copy(null,null,sJ.BLACK,null,
1null))}get(e){let t=this.root;for(;!t.isEmpty();){let r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:r>0&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){let n=this.comparator(e,r.key);if(0===n)return t+r.left.size;n<0?r=r.left:(t+=r.left.size+1,r=r.right)}return -1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(e){this.inorderTraversal((t,r)=>(e(t,r),!1))}toString(){let e=[];return this.inorderTraversal((t,r)=>(e.push(`${t}:${r}`),!1)),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new sQ(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new sQ(this.root,e,this.comparator,!1)}getReverseIterator(){return new sQ(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new sQ(this.root,e,this.comparator,!0)}}class sQ{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop(),t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;let e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class sJ{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:sJ.RED,this.left=null!=n?n:sJ.EMPTY,this.right=null!=i?i:sJ.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new sJ(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return sJ.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),(e=e.copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(0>t(e,n.key))n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()||(n=n.moveRedLeft()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed()&&(n=n.rotateRight()),n.right.isEmpty()||n.right.isRed()||n.right.left.isRed()||(n=n.moveRedRight()),0===t(e,n.key)){if(n.right.isEmpty())return sJ.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=(e=e.rotateRight()).colorFlip()),e}rotateLeft(){let e=this.copy(null,null,sJ.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){let e=this.copy(null,null,sJ.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){let e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){return Math.pow(2,this.check())<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw nG(43730,{key:this.key,value:this.value});if(this.right.isRed())throw nG(14113,{key:this.key,value:this.value});let e=this.left.check();if(e!==this.right.check())throw nG(27949);return e+ +!this.isRed()}}
1sJ.EMPTY=null,sJ.RED=!0,sJ.BLACK=!1,sJ.EMPTY=new class{constructor(){this.size=0}get key(){throw nG(57766)}get value(){throw nG(16141)}get color(){throw nG(16727)}get left(){throw nG(29726)}get right(){throw nG(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new sJ(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class sY{constructor(e){this.comparator=e,this.data=new sW(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(e){this.data.inorderTraversal((t,r)=>(e(t),!1))}forEachInRange(e,t){let r=this.data.getIteratorFrom(e[0]);for(;r.hasNext();){let n=r.getNext();if(this.comparator(n.key,e[1])>=0)return;t(n.key)}}forEachWhile(e,t){let r;for(r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){let t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new sX(this.data.getIterator())}getIteratorFrom(e){return new sX(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof sY)||this.size!==e.size)return!1;let t=this.data.getIterator(),r=e.data.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(0!==this.comparator(e,n))return!1}return!0}toArray(){let e=[];return this.forEach(t=>{e.push(t)}),e}toString(){let e=[];return this.forEach(t=>e.push(t)),"SortedSet("+e.toString()+")"}copy(e){let t=new sY(this.comparator);return t.data=e,t}}class sX{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function sZ(e){return e.hasNext()?e.getNext():void 0}class s0{constructor(e){this.fields=e,e.sort(ia.comparator)}static empty(){return new s0([])}unionWith(e){let t=new sY(ia.comparator);for(let e of this.fields)t=t.add(e);for(let r of e)t=t.add(r);return new s0(t.toArray())}covers(e){for(let t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return ie(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class s1 extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class s2{constructor(e){this.binaryString=e}static fromBase64String(e){return new s2(function(e){try{return atob(e)}catch(e){throw"u">typeof DOMException&&e instanceof DOMException?new s1("Invalid base64 string: "+e):e}}(e))}static fromUint8Array(e){return new s2(function(e){let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t}(e))}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return btoa(this.binaryString)}toUint8Array(){var e=this.binaryString;let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return n8(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}s2.EMPTY_BYTE_STRING=new s2("");let s3=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function s6(e){if(nW(!!e,39018),"string"==typeof e){let t=0,r=s3.exec(e);if(nW(!!r,46558,{timestamp:e}),r[1]){let e=r[1];t=Number(e=(e+"000000000").substr(0,9))}return{seconds:Math.floor(new Date(e).getTime()/1e3),nanos:t}}return{seconds:s5(e.seconds),nanos:s5(e.nanos)}}function s5(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function s4(e){return"string"==typeof e?s2.fromBase64String(e):s2.fromUint8Array(e)}let s8="server_timestamp",s9="__type__",s7="__previous_value__",ae="__local_write_time__";function at(e){return(e?.mapValue?.fields||{})[s9]?.stringValue===s8}function ar(e){let t=e.mapValue.fields[s7];return at(t)?ar(t):t}function an(e){let t=s6(e.mapValue.fields[ae].timestampValue);return new iy(t.seconds,t.nanos)}class ai{constructor(e,t,r,n,i,s,a,o,l,u,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=u,this.apiKey=h}}let as="(default)";class aa{constructor(e,t){this.projectId=e,this.database=t||as}static empty(){return new aa("","")}get isDefaultDatabase(){return this.database===as}isEqual(e){return e instanceof aa&&e.projectId===this.projectId&&e.database===this.database}}function ao(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new nJ(nQ.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new aa(e.options.projectId,t)}let al="__type__",au="__max__",ah={mapValue:{fields:{__type__:{stringValue:au}}}},ac="__vector__",ad="value",af={nullValue:"NULL_VALUE"};function ap(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?at(e)?4:ax(e)?0x1fffffffffffff:aA(e)?10:11:nG(28295,{value:e})}function am(e,t){if(e===t)return!0;let r=ap(e);if(r!==ap(t))return!1;switch(r){case 0:case 0x1fffffffffffff:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return an(e).isEqual(an(t));case 3:if("string"==typeof e.timestampValue&&"string"==typeof t.timestampValue&&e.timestampValue.length===t.timestampValue.length)return e.timestampValue===t.timestampValue;let n=s6(e.timestampValue),i=s6(t.timestampValue);return n.seconds===i.seconds&&n.nanos===i.nanos;case 5:return e.stringValue===t.stringValue;case 6:return s4(e.bytesValue).isEqual(s4(t.bytesValue));case 7:return e.referenceValue===t.referenceValue;case 8:return s5(e.geoPointValue.latitude)===s5(t.geoPointValue.latitude)&&s5(e.geoPointValue.longitude)===s5(t.geoPointValue.longitude);case 2:if("integerValue"in e&&"integerValue"in t)return s5(e.integerValue)===s5(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){let r=s5(e.doubleValue),n=s5(t.doubleValue);return r===n?iQ(r)===iQ(n):isNaN(r)&&isNaN(n)}return!1;case 9:return ie(e.arrayValue.values||[],t.arrayValue.values||[],am);case 10:case 11:let s=e.mapValue.fields||{},a=t.mapValue.fields||{};if(sK(s)!==sK(a))return!1;for(let e in s)if(s.hasOwnProperty(e)&&(void 0===a[e]||!am(s[e],a[e])))return!1;return!0;default:return nG(52216,{left:e})}}function ag(e,t){return void 0!==(e.values||[]).find(e=>am(e,t))}function ay(e,t){var r,n,i,s,a,o;if(e===t)return 0;let l=ap(e),u=ap(t);if(l!==u)return n8(l,u);switch(l){case 0:case 0x1fffffffffffff:return 0;case 1:return n8(e.booleanValue,t.booleanValue);case 2:let h,c;return h=s5(e.integerValue||e.doubleValue),h<(c=s5(t.integerValue||t.doubleValue))?-1:h>c?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return aw(e.timestampValue,t.timestampValue);case 4:return aw(an(e),an(t));case 5:return n9(e.stringValue,t.stringValue);case 6:let d,f;return r=e.bytesValue,n=t.bytesValue,d=s4(r),f=s4(n),d.compareTo(f);case 7:return function(e,t){let r=e.split("/"),n=t.split("/");for(let e=0;e<r.length&&e<n.length;e++){let t=n8(r[e],n[e]);if(0!==t)return t}return n8(r.length,n.length)}(e.referenceValue,t.referenceValue);case 8:let p;return i=e.geoPointValue,s=t.geoPointValue,0!==(p=n8(s5(i.latitude),s5(s.latitude)))?p:n8(s5(i.longitude),s5(s.longitude));case 9:return av(e.arrayValue,t.arrayValue);case 10:let m,g,y,w,v;return a=e.mapValue,o=t.mapValue,m=a.fields||{},g=o.fields||{},y=m[ad]?.arrayValue,w=g[ad]?.arrayValue,0!==(v=n8(y?.values?.length||0,w?.values?.length||0))?v:av(y,w);case 11:return function(e,t){if(e===ah.mapValue&&t===ah.mapValue)return 0;if(e===ah.mapValue)return 1;if(t===ah.mapValue)return -1;let r=e.fields||{},n=Object.keys(r),i=t.fields||{},s=Object.keys(i);n.sort(),s.sort();for(let e=0;e<n.length&&e<s.length;++e){let t=n9(n[e],s[e]);if(0!==t)return t;let a=ay(r[n[e]],i[s[e]]);if(0!==a)return a}return n8(n.length,s.length)}(e.mapValue,t.mapValue);default:throw nG(23264,{he:l})}}function aw(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return n8(e,t);let r=s6(e),n=s6(t),i=n8(r.seconds,n.seconds);return 0!==i?i:n8(r.nanos,n.nanos)}function av(e,t){let r=e.values||[],n=t.values||[];for(let e=0;e<r.length&&e<n.length;++e){let t=ay(r[e],n[e]);if(t)return t}return n8(r.length,n.length)}function aI(e){var t,r;let n;return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(n=s6(e.timestampValue),`time(${n.seconds},${n.nanos}
1)`):"stringValue"in e?e.stringValue:"bytesValue"in e?s4(e.bytesValue).toBase64():"referenceValue"in e?(t=e.referenceValue,io.fromName(t).toString()):"geoPointValue"in e?(r=e.geoPointValue,`geo(${r.latitude},${r.longitude})`):"arrayValue"in e?function(e){let t="[",r=!0;for(let n of e.values||[])r?r=!1:t+=",",t+=aI(n);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(let i of t)n?n=!1:r+=",",r+=`${i}:${aI(e.fields[i])}`;return r+"}"}(e.mapValue):nG(61005,{value:e})}function ab(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function a_(e){return!!e&&"integerValue"in e}function aE(e){return!!e&&"arrayValue"in e}function aT(e){return!!e&&"nullValue"in e}function aS(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function aC(e){return!!e&&"mapValue"in e}function aA(e){return(e?.mapValue?.fields||{})[al]?.stringValue===ac}function ak(e){if(e.geoPointValue)return{geoPointValue:{...e.geoPointValue}};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:{...e.timestampValue}};if(e.mapValue){let t={mapValue:{fields:{}}};return sG(e.mapValue.fields,(e,r)=>t.mapValue.fields[e]=ak(r)),t}if(e.arrayValue){let t={arrayValue:{values:[]}};for(let r=0;r<(e.arrayValue.values||[]).length;++r)t.arrayValue.values[r]=ak(e.arrayValue.values[r]);return t}return{...e}}function ax(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===au}let aN={mapValue:{fields:{[al]:{stringValue:ac},[ad]:{arrayValue:{}}}}};function aD(e,t){let r=ay(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function aR(e,t){let r=ay(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class aO{constructor(e){this.value=e}static empty(){return new aO({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let t=this.value;for(let r=0;r<e.length-1;++r)if(!aC(t=(t.mapValue.fields||{})[e.get(r)]))return null;return(t=(t.mapValue.fields||{})[e.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=ak(t)}setAll(e){let t=ia.emptyPath(),r={},n=[];e.forEach((e,i)=>{if(!t.isImmediateParentOf(i)){let e=this.getFieldsMap(t);this.applyChanges(e,r,n),r={},n=[],t=i.popLast()}e?r[i.lastSegment()]=ak(e):n.push(i.lastSegment())});let i=this.getFieldsMap(t);this.applyChanges(i,r,n)}delete(e){let t=this.field(e.popLast());aC(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return am(this.value,e.value)}getFieldsMap(e){let t=this.value;t.mapValue.fields||(t.mapValue={fields:{}});for(let r=0;r<e.length;++r){let n=t.mapValue.fields[e.get(r)];aC(n)&&n.mapValue.fields||(n={mapValue:{fields:{}}},t.mapValue.fields[e.get(r)]=n),t=n}return t.mapValue.fields}applyChanges(e,t,r){for(let n of(sG(t,(t,r)=>e[t]=r),r))delete e[n]}clone(){return new aO(ak(this.value))}}class aP{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new aP(e,0,iw.min(),iw.min(),iw.min(),aO.empty(),0)}static newFoundDocument(e,t,r,n){return new aP(e,1,t,iw.min(),r,n,0)}static newNoDocument(e,t){return new aP(e,2,t,iw.min(),iw.min(),aO.empty(),0)}static newUnknownDocument(e,t){return new aP(e,3,t,iw.min(),iw.min(),aO.empty(),2)}convertToFoundDocument(e,t){return this.createTime.isEqual(iw.min())&&(2===this.documentType||0===this.documentType)&&(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=aO.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=aO.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=iw.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof aP&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new aP(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}
1class aL{constructor(e,t){this.position=e,this.inclusive=t}}function aM(e,t,r){let n=0;for(let i=0;i<e.position.length;i++){let s=t[i],a=e.position[i];if(n=s.field.isKeyField()?io.comparator(io.fromName(a.referenceValue),r.key):ay(a,r.data.field(s.field)),"desc"===s.dir&&(n*=-1),0!==n)break}return n}function aV(e,t){if(null===e)return null===t;if(null===t||e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!am(e.position[r],t.position[r]))return!1;return!0}class aF{constructor(e,t="asc"){this.field=e,this.dir=t}}class aU{}class aB extends aU{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new aH(e,t,r):"array-contains"===t?new aY(e,r):"in"===t?new aX(e,r):"not-in"===t?new aZ(e,r):"array-contains-any"===t?new a0(e,r):new aB(e,t,r)}static createKeyFieldInFilter(e,t,r){return"in"===t?new aW(e,r):new aQ(e,r)}matches(e){let t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(ay(t,this.value)):null!==t&&ap(this.value)===ap(t)&&this.matchesComparison(ay(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return e>0;case">=":return e>=0;default:return nG(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class aj extends aU{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new aj(e,t)}matches(e){return aq(this)?void 0===this.filters.find(t=>!t.matches(e)):void 0!==this.filters.find(t=>t.matches(e))}getFlattenedFilters(){return null!==this.Pe||(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function aq(e){return"and"===e.op}function az(e){return"or"===e.op}function a$(e){return aK(e)&&aq(e)}function aK(e){for(let t of e.filters)if(t instanceof aj)return!1;return!0}function aG(e,t){let r=e.filters.concat(t);return aj.create(r,e.op)}class aH extends aB{constructor(e,t,r){super(e,t,r),this.key=io.fromName(r.referenceValue)}matches(e){let t=io.comparator(e.key,this.key);return this.matchesComparison(t)}}class aW extends aB{constructor(e,t){super(e,"in",t),this.keys=aJ("in",t)}matches(e){return this.keys.some(t=>t.isEqual(e.key))}}class aQ extends aB{constructor(e,t){super(e,"not-in",t),this.keys=aJ("not-in",t)}matches(e){return!this.keys.some(t=>t.isEqual(e.key))}}function aJ(e,t){return(t.arrayValue?.values||[]).map(e=>io.fromName(e.referenceValue))}class aY extends aB{constructor(e,t){super(e,"array-contains",t)}matches(e){let t=e.data.field(this.field);return aE(t)&&ag(t.arrayValue,this.value)}}class aX extends aB{constructor(e,t){super(e,"in",t)}matches(e){let t=e.data.field(this.field);return null!==t&&ag(this.value.arrayValue,t)}}class aZ extends aB{constructor(e,t){super(e,"not-in",t)}matches(e){if(ag(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;let t=e.data.field(this.field);return null!==t&&void 0===t.nullValue&&!ag(this.value.arrayValue,t)}}class a0 extends aB{constructor(e,t){super(e,"array-contains-any",t)}matches(e){let t=e.data.field(this.field);return!(!aE(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>ag(this.value.arrayValue,e))}}class a1{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function a2(e,t=null,r=[],n=[],i=null,s=null,a=null){return new a1(e,t,r,n,i,s,a)}function a3(e){if(null===e.Te){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map(e=>(function e(t){if(t instanceof aB)return t.field.canonicalString()+t.op.toString()+aI(t.value);if(a$(t))return t.filters.map(t=>e(t)).join(",");{let r=t.filters.map(t=>e(t)).join(",");return`${t.op}(${r})`}})(e)).join(","),t+="|ob:",t+=e.orderBy.map(e=>e.field.canonicalString()+e.dir).join(","),iW(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>aI(e)).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>aI(e)).join(",")),e.Te=t}return e.Te}function a6(e,t){if(e.limit!==t.limit||e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++){var r,n;if(r=e.orderBy[i],n=t.orderBy[i],!(r.dir===n.dir&&r.field.isEqual(n.field)))return!1}if(e.filters.length!==t.filters.length)return!1;for(let r=0;r<e.filters.length;r++)if(!function e(t,r){return t instanceof aB?r instanceof aB&&t.op===r.op&&t.field.isEqual(r.field)&&am(t.value,r.value):t instanceof aj?r instanceof aj&&t.op===r.op&&t.filters.length===r.filters.length&&t.filters.reduce((t,n,i)=>t&&e(n,r.filters[i]),!0):void nG(19439)}(e.filters[r],t.filters[r]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!aV(e.startAt,t.startAt)&&aV(e.endAt,t.endAt)}function a5(e){return io.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function a4(e,t){return e.filters.filter(e=>e instanceof aB&&e.field.isEqual(t))}function a8(e,t,r){let n=af,i=!0;for(let r of a4(e,t)){let e=af,t=!0;switch(r.op){case"<":case"<=":var s;
1e="nullValue"in(s=r.value)?af:"booleanValue"in s?{booleanValue:!1}:"integerValue"in s||"doubleValue"in s?{doubleValue:NaN}:"timestampValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in s?{stringValue:""}:"bytesValue"in s?{bytesValue:""}:"referenceValue"in s?ab(aa.empty(),io.empty()):"geoPointValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in s?{arrayValue:{}}:"mapValue"in s?aA(s)?aN:{mapValue:{}}:nG(35942,{value:s});break;case"==":case"in":case">=":e=r.value;break;case">":e=r.value,t=!1;break;case"!=":case"not-in":e=af}0>aD({value:n,inclusive:i},{value:e,inclusive:t})&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];0>aD({value:n,inclusive:i},{value:e,inclusive:r.inclusive})&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}function a9(e,t,r){let n=ah,i=!0;for(let r of a4(e,t)){let e=ah,t=!0;switch(r.op){case">=":case">":var s;e="nullValue"in(s=r.value)?{booleanValue:!1}:"booleanValue"in s?{doubleValue:NaN}:"integerValue"in s||"doubleValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in s?{stringValue:""}:"stringValue"in s?{bytesValue:""}:"bytesValue"in s?ab(aa.empty(),io.empty()):"referenceValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in s?{arrayValue:{}}:"arrayValue"in s?aN:"mapValue"in s?aA(s)?{mapValue:{}}:ah:nG(61959,{value:s}),t=!1;break;case"==":case"in":case"<=":e=r.value;break;case"<":e=r.value,t=!1;break;case"!=":case"not-in":e=ah}aR({value:n,inclusive:i},{value:e,inclusive:t})>0&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];aR({value:n,inclusive:i},{value:e,inclusive:r.inclusive})>0&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}class a7{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ee=null,this.Ie=null,this.Re=null,this.startAt,this.endAt}}function oe(e){return new a7(e)}function ot(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function or(e){return null!==e.collectionGroup}function on(e){if(null===e.Ee){let t;e.Ee=[];let r=new Set;for(let t of e.explicitOrderBy)e.Ee.push(t),r.add(t.field.canonicalString());let n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";(t=new sY(ia.comparator),e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t).forEach(t=>{r.has(t.canonicalString())||t.isKeyField()||e.Ee.push(new aF(t,n))}),r.has(ia.keyField().canonicalString())||e.Ee.push(new aF(ia.keyField(),n))}return e.Ee}function oi(e){return e.Ie||(e.Ie=os(e,on(e))),e.Ie}function os(e,t){if("F"===e.limitType)return a2(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);{t=t.map(e=>{let t="desc"===e.dir?"asc":"desc";return new aF(e.field,t)});let r=e.endAt?new aL(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new aL(e.startAt.position,e.startAt.inclusive):null;return a2(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)}}function oa(e,t){let r=e.filters.concat([t]);return new a7(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function oo(e,t){let r=e.explicitOrderBy.concat([t]);return new a7(e.path,e.collectionGroup,r,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)}function ol(e,t,r){return new a7(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function ou(e,t){return a6(oi(e),oi(t))&&e.limitType===t.limitType}function oh(e){return`${a3(oi(e))}|lt:${e.limitType}`}function oc(e){var t;let r;return`Query(target=${r=(t=oi(e)).path.canonicalString(),null!==t.collectionGroup&&(r+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(r+=`, filters: [${t.filters.map(e=>(function e(t){return t instanceof aB?`${t.field.canonicalString()} ${t.op} ${aI(t.value)}`:t instanceof aj?t.op.toString()+" {"+t.getFilters().map(e).join(" ,")+"}":"Filter"})(e)).join(", ")}]`),iW(t.limit)||(r+=", limit: "+t.limit),t.orderBy.length>0&&(r+=`, orderBy: [${t.orderBy.map(e=>`${e.field.canonicalString()} (${e.dir})`).join(", ")}]`),t.startAt&&(r+=", startAt: ",r+=t.startAt.inclusive?"b:":"a:",r+=t.startAt.position.map(e=>aI(e)).join(",")),t.endAt&&(r+=", endAt: ",r+=t.endAt.inclusive?"a:":"b:",r+=t.endAt.position.map(e=>aI(e)).join(",")),`Target(${r})`}; limitType=${e.limitType})`}function od(e,t){var r,n,i,s;let a,o,l;
1return t.isFoundDocument()&&(a=t.key.path,null!==e.collectionGroup?t.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(a):io.isDocumentKey(e.path)?e.path.isEqual(a):e.path.isImmediateParentOf(a))&&function(e,t){for(let r of on(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return!1;return!0}(e,t)&&function(e,t){for(let r of e.filters)if(!r.matches(t))return!1;return!0}(e,t)&&(r=e,n=t,(!r.startAt||(i=r.startAt,o=aM(i,on(r),n),i.inclusive?!!(o<=0):!!(o<0)))&&(!r.endAt||(s=r.endAt,l=aM(s,on(r),n),s.inclusive?!!(l>=0):!!(l>0))))}function of(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function op(e){return(t,r)=>{let n=!1;for(let i of on(e)){let e=function(e,t,r){var n;let i,s,a=e.field.isKeyField()?io.comparator(t.key,r.key):(n=e.field,i=t.data.field(n),s=r.data.field(n),null!==i&&null!==s?ay(i,s):nG(42886));switch(e.dir){case"asc":return a;case"desc":return -1*a;default:return nG(19790,{direction:e.dir})}}(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class om{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0!==r){for(let[t,n]of r)if(this.equalsFn(t,e))return n}}has(e){return void 0!==this.get(e)}set(e,t){let r=this.mapKeyFn(e),n=this.inner[r];if(void 0===n)return this.inner[r]=[[e,t]],void this.innerSize++;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],e))return void(n[r]=[e,t]);n.push([e,t]),this.innerSize++}delete(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0===r)return!1;for(let n=0;n<r.length;n++)if(this.equalsFn(r[n][0],e))return 1===r.length?delete this.inner[t]:r.splice(n,1),this.innerSize--,!0;return!1}forEach(e){sG(this.inner,(t,r)=>{for(let[t,n]of r)e(t,n)})}isEmpty(){return sH(this.inner)}size(){return this.innerSize}}let og=new sW(io.comparator),oy=new sW(io.comparator);function ow(...e){let t=oy;for(let r of e)t=t.insert(r.key,r);return t}function ov(e){let t=oy;return e.forEach((e,r)=>t=t.insert(e,r.overlayedDocument)),t}function oI(){return new om(e=>e.toString(),(e,t)=>e.isEqual(t))}let ob=new sW(io.comparator),o_=new sY(io.comparator);function oE(...e){let t=o_;for(let r of e)t=t.add(r);return t}let oT=new sY(n8);function oS(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:iQ(t)?"-0":t}}function oC(e){return{integerValue:""+e}}class oA{constructor(){this._=void 0}}function ok(e,t){return e instanceof oP?a_(t)||t&&"doubleValue"in t?t:{integerValue:0}:null}class ox extends oA{}class oN extends oA{constructor(e){super(),this.elements=e}}function oD(e,t){let r=oM(t);for(let t of e.elements)r.some(e=>am(e,t))||r.push(t);return{arrayValue:{values:r}}}class oR extends oA{constructor(e){super(),this.elements=e}}function oO(e,t){let r=oM(t);for(let t of e.elements)r=r.filter(e=>!am(e,t));return{arrayValue:{values:r}}}class oP extends oA{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function oL(e){return s5(e.integerValue||e.doubleValue)}function oM(e){return aE(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class oV{constructor(e,t){this.field=e,this.transform=t}}class oF{constructor(e,t){this.version=e,this.transformResults=t}}class oU{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new oU}static exists(e){return new oU(void 0,e)}static updateTime(e){return new oU(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function oB(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class oj{}function oq(e,t){if(!e.hasLocalMutations||t&&0===t.fields.length)return null;if(null===t)return e.isNoDocument()?new oJ(e.key,oU.none()):new oK(e.key,e.data,oU.none());{let r=e.data,n=aO.empty(),i=new sY(ia.comparator);for(let e of t.fields)if(!i.has(e)){let t=r.field(e);null===t&&e.length>1&&(e=e.popLast(),t=r.field(e)),null===t?n.delete(e):n.set(e,t),i=i.add(e)}return new oG(e.key,n,new s0(i.toArray()),oU.none())}}function oz(e,t,r,n){return e instanceof oK?function(e,t,r,n){if(!oB(e.precondition,t))return r;let i=e.value.clone(),s=oQ(e.fieldTransforms,n,t);return i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,r,n):e instanceof oG?function(e,t,r,n){if(!oB(e.precondition,t))return r;let i=oQ(e.fieldTransforms,n,t),s=t.data;return(s.setAll(oH(e)),s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null===r)?null:r.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,r,n):oB(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):r}function o$(e,t){var r,n;return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||!(!r||!n)&&ie(r,n,(e,t)=>{var r,n;return e.field.isEqual(t.field)&&(r=e.transform,n=t.transform,r instanceof oN&&n instanceof oN||r instanceof oR&&n instanceof oR?ie(r.elements,n.elements,am):r instanceof oP&&n instanceof oP?am(r.Ae,n.Ae):r instanceof ox&&n instanceof ox)}
1)))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask))}class oK extends oj{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class oG extends oj{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function oH(e){let t=new Map;return e.fieldMask.fields.forEach(r=>{if(!r.isEmpty()){let n=e.data.field(r);t.set(r,n)}}),t}function oW(e,t,r){let n=new Map;nW(e.length===r.length,32656,{Ve:r.length,de:e.length});for(let s=0;s<r.length;s++){var i;let a=e[s],o=a.transform,l=t.data.field(a.field);n.set(a.field,(i=r[s],o instanceof oN?oD(o,l):o instanceof oR?oO(o,l):i))}return n}function oQ(e,t,r){let n=new Map;for(let i of e){let e=i.transform,s=r.data.field(i.field);n.set(i.field,function(e,t,r){var n;let i,s,a;return e instanceof ox?(n=t,i={fields:{[s9]:{stringValue:s8},[ae]:{timestampValue:{seconds:r.seconds,nanos:r.nanoseconds}}}},n&&at(n)&&(n=ar(n)),n&&(i.fields[s7]=n),{mapValue:i}):e instanceof oN?oD(e,t):e instanceof oR?oO(e,t):(a=oL(s=ok(e,t))+oL(e.Ae),a_(s)&&a_(e.Ae)?oC(a):oS(e.serializer,a))}(e,s,t))}return n}class oJ extends oj{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class oY extends oj{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class oX{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){let r=t.mutationResults;for(let t=0;t<this.mutations.length;t++){let n=this.mutations[t];n.key.isEqual(e.key)&&function(e,t,r){let n,i;e instanceof oK?(n=e.value.clone(),i=oW(e.fieldTransforms,t,r.transformResults),n.setAll(i),t.convertToFoundDocument(r.version,n).setHasCommittedMutations()):e instanceof oG?function(e,t,r){if(!oB(e.precondition,t))return t.convertToUnknownDocument(r.version);let n=oW(e.fieldTransforms,t,r.transformResults),i=t.data;i.setAll(oH(e)),i.setAll(n),t.convertToFoundDocument(r.version,i).setHasCommittedMutations()}(e,t,r):t.convertToNoDocument(r.version).setHasCommittedMutations()}(n,e,r[t])}}applyToLocalView(e,t){for(let r of this.baseMutations)r.key.isEqual(e.key)&&(t=oz(r,e,t,this.localWriteTime));for(let r of this.mutations)r.key.isEqual(e.key)&&(t=oz(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(e,t){let r=oI();return this.mutations.forEach(n=>{let i=e.get(n.key),s=i.overlayedDocument,a=this.applyToLocalView(s,i.mutatedFields),o=oq(s,a=t.has(n.key)?null:a);null!==o&&r.set(n.key,o),s.isValidDocument()||s.convertToNoDocument(iw.min())}),r}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),oE())}isEqual(e){return this.batchId===e.batchId&&ie(this.mutations,e.mutations,(e,t)=>o$(e,t))&&ie(this.baseMutations,e.baseMutations,(e,t)=>o$(e,t))}}class oZ{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){nW(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=ob,i=e.mutations;for(let e=0;e<i.length;e++)n=n.insert(i[e].key,r[e].version);return new oZ(e,t,r,n)}}class o0{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{ 2 largestBatchId: ${this.largestBatchId}, 3 mutation: ${this.mutation.toString()} 4 }`}}class o1{constructor(e,t){this.count=e,this.unchangedNames=t}}function o2(e){switch(e){case nQ.OK:return nG(64938);case nQ.CANCELLED:case nQ.UNKNOWN:case nQ.DEADLINE_EXCEEDED:case nQ.RESOURCE_EXHAUSTED:case nQ.INTERNAL:case nQ.UNAVAILABLE:case nQ.UNAUTHENTICATED:return!1;case nQ.INVALID_ARGUMENT:case nQ.NOT_FOUND:case nQ.ALREADY_EXISTS:case nQ.PERMISSION_DENIED:case nQ.FAILED_PRECONDITION:case nQ.ABORTED:case nQ.OUT_OF_RANGE:case nQ.UNIMPLEMENTED:case nQ.DATA_LOSS:return!0;default:return nG(15467,{code:e})}}function o3(e){if(void 0===e)return nz("GRPC error has no .code"),nQ.UNKNOWN;switch(e){case y.OK:return nQ.OK;case y.CANCELLED:return nQ.CANCELLED;case y.UNKNOWN:return nQ.UNKNOWN;case y.DEADLINE_EXCEEDED:return nQ.DEADLINE_EXCEEDED;case y.RESOURCE_EXHAUSTED:return nQ.RESOURCE_EXHAUSTED;case y.INTERNAL:return nQ.INTERNAL;case y.UNAVAILABLE:return nQ.UNAVAILABLE;case y.UNAUTHENTICATED:return nQ.UNAUTHENTICATED;case y.INVALID_ARGUMENT:return nQ.INVALID_ARGUMENT;case y.NOT_FOUND:return nQ.NOT_FOUND;case y.ALREADY_EXISTS:return nQ.ALREADY_EXISTS;case y.PERMISSION_DENIED:return nQ.PERMISSION_DENIED;case y.FAILED_PRECONDITION:return nQ.FAILED_PRECONDITION;case y.ABORTED:return nQ.ABORTED;case y.OUT_OF_RANGE:return nQ.OUT_OF_RANGE;
4case y.UNIMPLEMENTED:return nQ.UNIMPLEMENTED;case y.DATA_LOSS:return nQ.DATA_LOSS;default:return nG(39323,{code:e})}}(w=y||(y={}))[w.OK=0]="OK",w[w.CANCELLED=1]="CANCELLED",w[w.UNKNOWN=2]="UNKNOWN",w[w.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",w[w.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",w[w.NOT_FOUND=5]="NOT_FOUND",w[w.ALREADY_EXISTS=6]="ALREADY_EXISTS",w[w.PERMISSION_DENIED=7]="PERMISSION_DENIED",w[w.UNAUTHENTICATED=16]="UNAUTHENTICATED",w[w.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",w[w.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",w[w.ABORTED=10]="ABORTED",w[w.OUT_OF_RANGE=11]="OUT_OF_RANGE",w[w.UNIMPLEMENTED=12]="UNIMPLEMENTED",w[w.INTERNAL=13]="INTERNAL",w[w.UNAVAILABLE=14]="UNAVAILABLE",w[w.DATA_LOSS=15]="DATA_LOSS";let o6=null;function o5(){return new TextEncoder}let o4=new o([0xffffffff,0xffffffff],0);function o8(e){let t=o5().encode(e),r=new l;return r.update(t),new Uint8Array(r.digest())}function o9(e){let t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),s=t.getUint32(12,!0);return[new o([r,n],0),new o([i,s],0)]}class o7{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||t>=8)throw new le(`Invalid padding: ${t}`);if(r<0||e.length>0&&0===this.hashCount)throw new le(`Invalid hash count: ${r}`);if(0===e.length&&0!==t)throw new le(`Invalid padding when bitmap length is 0: ${t}`);this.ge=8*e.length-t,this.pe=o.fromNumber(this.ge)}ye(e,t,r){let n=e.add(t.multiply(o.fromNumber(r)));return 1===n.compare(o4)&&(n=new o([n.getBits(0),n.getBits(1)],0)),n.modulo(this.pe).toNumber()}we(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.ge)return!1;let[t,r]=o9(o8(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);if(!this.we(n))return!1}return!0}static create(e,t,r){let n=new o7(new Uint8Array(Math.ceil(e/8)),e%8==0?0:8-e%8,t);return r.forEach(e=>n.insert(e)),n}insert(e){if(0===this.ge)return;let[t,r]=o9(o8(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);this.Se(n)}}Se(e){let t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class le extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class lt{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){let n=new Map;return n.set(e,lr.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new lt(iw.min(),n,new sW(n8),og,oE())}}class lr{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new lr(r,t,oE(),oE(),oE())}}class ln{constructor(e,t,r,n){this.be=e,this.removedTargetIds=t,this.key=r,this.De=n}}class li{constructor(e,t){this.targetId=e,this.Ce=t}}class ls{constructor(e,t,r=s2.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class la{constructor(){this.ve=0,this.Fe=lu(),this.Me=s2.EMPTY_BYTE_STRING,this.xe=!1,this.Oe=!0}get current(){return this.xe}get resumeToken(){return this.Me}get Ne(){return 0!==this.ve}get Be(){return this.Oe}Le(e){e.approximateByteSize()>0&&(this.Oe=!0,this.Me=e)}ke(){let e=oE(),t=oE(),r=oE();return this.Fe.forEach((n,i)=>{switch(i){case 0:e=e.add(n);break;case 2:t=t.add(n);break;case 1:r=r.add(n);break;default:nG(38017,{changeType:i})}}),new lr(this.Me,this.xe,e,t,r)}qe(){this.Oe=!1,this.Fe=lu()}Ke(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}Ue(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}$e(){this.ve+=1}We(){this.ve-=1,nW(this.ve>=0,3241,{ve:this.ve})}Qe(){this.Oe=!0,this.xe=!0}}class lo{constructor(e){this.Ge=e,this.ze=new Map,this.je=og,this.Je=ll(),this.He=ll(),this.Ze=new sW(n8)}Xe(e){for(let t of e.be)e.De&&e.De.isFoundDocument()?this.Ye(t,e.De):this.et(t,e.key,e.De);for(let t of e.removedTargetIds)this.et(t,e.key,e.De)}tt(e){this.forEachTarget(e,t=>{let r=this.nt(t);switch(e.state){case 0:this.rt(t)&&r.Le(e.resumeToken);break;case 1:r.We(),r.Ne||r.qe(),r.Le(e.resumeToken);break;case 2:r.We(),r.Ne||this.removeTarget(t);break;case 3:this.rt(t)&&(r.Qe(),r.Le(e.resumeToken));break;case 4:this.rt(t)&&(this.it(t),r.Le(e.resumeToken));break;default:nG(56790,{state:e.state})}})}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.ze.forEach((e,r)=>{this.rt(r)&&t(r)})}st(e){let t=e.targetId,r=e.Ce.count,n=this.ot(t);if(n){let a=n.target;if(a5(a))if(0===r){let e=new io(a.path);this.et(t,e,aP.newNoDocument(e,iw.min()))}else nW(1===r,20013,{expectedCount:r});else{let n=this._t(t);if(n!==r){var i,s;let r,a,o=this.ut(e),l=o?this.ct(o,e,n):1;0!==l&&(this.it(t),this.Ze=this.Ze.insert(t,2===l?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch")),o6?.o((i=e.Ce,s=this.Ge.ht(),r={localCacheCount:n,existenceFilterCount:i.count,databaseId:s.database,projectId:s.projectId},(a=i.unchangedNames)&&(r.bloomFilter={applied:0===l,hashCount:a?.hashCount??0,bitmapLength:a?.bits?.bitmap?.length??0,padding:a?.bits?.padding??0,mightContain:e=>o?.mightContain(e)??!1}),r))}}}}ut(e){let t,r,n=e.Ce.unchangedNames;if(!n||!n.bits)return null;let{bits:{bitmap:i="",padding:s=0},hashCount:a=0}=n;try{t=s4(i).toUint8Array()}catch(e){if(e instanceof s1)return n$("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{r=new o7(t,s,a)}catch(e){return n$(e instanceof le?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===r.ge?null:r}ct(e,t,r){return 2*(t.Ce.count!==r-this.Pt(e,t.targetId))}Pt(e,t){let r=this.Ge.getRemoteKeysForTarget(t),n=0;return r.forEach(r=>{let i=this.Ge.ht(),s=`projects/${i.projectId}/databases/${i.database}/documents/${r.path.canonicalString()}`;e.mightContain(s)||(this.et(t,r,null),n++)}),n}Tt(e){let t=new Map;this.ze.forEach((r,n)=>{let i=this.ot(n);if(i){if(r.current&&a5(i.target)){let t=new io(i.target.path);this.Et(t).has(n)||this.It(n,t)||this.et(n,t,aP.newNoDocument(t,e))}r.Be&&(t.set(n,r.ke()),r.qe())}});let r=oE();this.He.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{let t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(n=!1,!1)}),n&&(r=r.add(e))}),this.je.forEach((t,r)=>r.setReadTime(e));let n=new lt(e,t,this.Ze,this.je,r);return this.je=og,this.Je=ll(),this.He=ll(),this.Ze=new sW(n8),n}Ye(e,t){if(!this.rt(e))return;
4let r=2*!!this.It(e,t.key);this.nt(e).Ke(t.key,r),this.je=this.je.insert(t.key,t),this.Je=this.Je.insert(t.key,this.Et(t.key).add(e)),this.He=this.He.insert(t.key,this.Rt(t.key).add(e))}et(e,t,r){if(!this.rt(e))return;let n=this.nt(e);this.It(e,t)?n.Ke(t,1):n.Ue(t),this.He=this.He.insert(t,this.Rt(t).delete(e)),this.He=this.He.insert(t,this.Rt(t).add(e)),r&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){let t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}$e(e){this.nt(e).$e()}nt(e){let t=this.ze.get(e);return t||(t=new la,this.ze.set(e,t)),t}Rt(e){let t=this.He.get(e);return t||(t=new sY(n8),this.He=this.He.insert(e,t)),t}Et(e){let t=this.Je.get(e);return t||(t=new sY(n8),this.Je=this.Je.insert(e,t)),t}rt(e){let t=null!==this.ot(e);return t||nq("WatchChangeAggregator","Detected inactive target",e),t}ot(e){let t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(e){this.ze.set(e,new la),this.Ge.getRemoteKeysForTarget(e).forEach(t=>{this.et(e,t,null)})}It(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function ll(){return new sW(io.comparator)}function lu(){return new sW(io.comparator)}let lh={asc:"ASCENDING",desc:"DESCENDING"},lc={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},ld={and:"AND",or:"OR"};class lf{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function lp(e,t){return e.useProto3Json||iW(t)?t:{value:t}}function lm(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function lg(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function ly(e){let t;return nW(!!e,49232),iw.fromTimestamp(new iy((t=s6(e)).seconds,t.nanos))}function lw(e,t){return lv(e,t).canonicalString()}function lv(e,t){let r=new ii(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function lI(e){let t=ii.fromString(e);return nW(lM(t),10190,{key:t.toString()}),t}function lb(e,t){return lw(e.databaseId,t.path)}function l_(e,t){let r=lI(t);if(r.get(1)!==e.databaseId.projectId)throw new nJ(nQ.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new nJ(nQ.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new io(lC(r))}function lE(e,t){return lw(e.databaseId,t)}function lT(e){let t=lI(e);return 4===t.length?ii.emptyPath():lC(t)}function lS(e){return new ii(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function lC(e){return nW(e.length>4&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function lA(e,t,r){return{name:lb(e,t),fields:r.value.mapValue.fields}}function lk(e,t,r){let n=l_(e,t.name),i=ly(t.updateTime),s=t.createTime?ly(t.createTime):iw.min(),a=new aO({mapValue:{fields:t.fields}}),o=aP.newFoundDocument(n,i,s,a);return r&&o.setHasCommittedMutations(),r?o.setHasCommittedMutations():o}function lx(e,t){var r,n;let i;if(t instanceof oK)i={update:lA(e,t.key,t.value)};else if(t instanceof oJ)i={delete:lb(e,t.key)};else if(t instanceof oG){let r;i={update:lA(e,t.key,t.data),updateMask:(n=t.fieldMask,r=[],n.fields.forEach(e=>r.push(e.canonicalString())),{fieldPaths:r})}}else{if(!(t instanceof oY))return nG(16599,{dt:t.type});i={verify:lb(e,t.key)}}return t.fieldTransforms.length>0&&(i.updateTransforms=t.fieldTransforms.map(e=>(function(e){let t=e.transform;if(t instanceof ox)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof oN)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof oR)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof oP)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw nG(20930,{transform:e.transform})})(e))),t.precondition.isNone||(i.currentDocument=void 0!==(r=t.precondition).updateTime?{updateTime:lm(e,r.updateTime.toTimestamp())}:void 0!==r.exists?{exists:r.exists}:nG(27497)),i}function lN(e,t){var r;let n=t.currentDocument?void 0!==(r=t.currentDocument).updateTime?oU.updateTime(ly(r.updateTime)):void 0!==r.exists?oU.exists(r.exists):oU.none():oU.none(),i=t.updateTransforms?t.updateTransforms.map(t=>{let r;return r=null,"setToServerValue"in t?(nW("REQUEST_TIME"===t.setToServerValue,16630,{proto:t}),r=new ox):"appendMissingElements"in t?r=new oN(t.appendMissingElements.values||[]):"removeAllFromArray"in t?r=new oR(t.removeAllFromArray.values||[]):"increment"in t?r=new oP(e,t.increment):nG(16584,{proto:t}),new oV(ia.fromServerFormat(t.fieldPath),r)}):[];if(t.update){t.update.name;let r=l_(e,t.update.name),s=new aO({mapValue:{fields:t.update.fields}});return t.updateMask?new oG(r,s,new s0((t.updateMask.fieldPaths||[]).map(e=>ia.fromServerFormat(e))),n,i):new oK(r,s,n,i)}return t.delete?new oJ(l_(e,t.delete),n):t.verify?new oY(l_(e,t.verify),n):nG(1463,{proto:t})}function lD(e,t){return{documents:[lE(e,t.path)]}}function lR(e,t){var r,n;let i,s={structuredQuery:{}},a=t.path;null!==t.collectionGroup?(i=a,s.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=a.popLast(),s.structuredQuery.from=[{collectionId:a.lastSegment()}]),s.parent=lE(e,i);let o=function(e){if(0!==e.length)return function e(t){var r;let n;return t instanceof aB?function(e){if("=="===e.op){if(aS(e.value))return{unaryFilter:{field:lP(e.field),op:"IS_NAN"}};if(aT(e.value))return{unaryFilter:{field:lP(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(aS(e.value))return{unaryFilter:{field:lP(e.field),op:"IS_NOT_NA
4N"}};if(aT(e.value))return{unaryFilter:{field:lP(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:lP(e.field),op:lc[e.op],value:e.value}}}(t):t instanceof aj?1===(n=(r=t).getFilters().map(t=>e(t))).length?n[0]:{compositeFilter:{op:ld[r.op],filters:n}}:nG(54877,{filter:t})}(aj.create(e,"and"))}(t.filters);o&&(s.structuredQuery.where=o);let l=function(e){if(0!==e.length)return e.map(e=>({field:lP(e.field),direction:lh[e.dir]}))}(t.orderBy);l&&(s.structuredQuery.orderBy=l);let u=lp(e,t.limit);return null!==u&&(s.structuredQuery.limit=u),t.startAt&&(s.structuredQuery.startAt={before:(r=t.startAt).inclusive,values:r.position}),t.endAt&&(s.structuredQuery.endAt={before:!(n=t.endAt).inclusive,values:n.position}),{ft:s,parent:i}}function lO(e){var t,r,n;let i,s,a,o,l=lT(e.parent),u=e.structuredQuery,h=u.from?u.from.length:0,c=null;if(h>0){nW(1===h,65062);let e=u.from[0];e.allDescendants?c=e.collectionId:l=l.child(e.collectionId)}let d=[];u.where&&(d=(i=function e(t){return void 0!==t.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":let t=lL(e.unaryFilter.field);return aB.create(t,"==",{doubleValue:NaN});case"IS_NULL":let r=lL(e.unaryFilter.field);return aB.create(r,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let n=lL(e.unaryFilter.field);return aB.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let i=lL(e.unaryFilter.field);return aB.create(i,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return nG(61313);default:return nG(60726)}}(t):void 0!==t.fieldFilter?aB.create(lL(t.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return nG(58110);default:return nG(50506)}}(t.fieldFilter.op),t.fieldFilter.value):void 0!==t.compositeFilter?aj.create(t.compositeFilter.filters.map(t=>e(t)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return nG(1026)}}(t.compositeFilter.op)):nG(30097,{filter:t})}(u.where))instanceof aj&&a$(i)?i.getFilters():[i]);let f=[];u.orderBy&&(f=u.orderBy.map(e=>new aF(lL(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))));let p=null;u.limit&&(p=iW(s="object"==typeof(t=u.limit)?t.value:t)?null:s);let m=null;u.startAt&&(a=!!(r=u.startAt).before,m=new aL(r.values||[],a));let g=null;return u.endAt&&(o=!(n=u.endAt).before,g=new aL(n.values||[],o)),new a7(l,c,f,d,p,"F",m,g)}function lP(e){return{fieldPath:e.canonicalString()}}function lL(e){return ia.fromServerFormat(e.fieldPath)}function lM(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}function lV(e){return!!e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}class lF{constructor(e,t,r,n,i=iw.min(),s=iw.min(),a=s2.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new lF(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new lF(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new lF(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new lF(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class lU{constructor(e){this.yt=e}}function lB(e,t){let r=t.key,n={prefixPath:r.getCollectionPath().popLast().toArray(),collectionGroup:r.collectionGroup,documentId:r.path.lastSegment(),readTime:lj(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument()){var i;n.document={name:lb(i=e.yt,t.key),fields:t.data.value.mapValue.fields,updateTime:lm(i,t.version.toTimestamp()),createTime:lm(i,t.createTime.toTimestamp())}}else if(t.isNoDocument())n.noDocument={path:r.path.toArray(),readTime:lq(t.version)};else{if(!t.isUnknownDocument())return nG(57904,{document:t});n.unknownDocument={path:r.path.toArray(),version:lq(t.version)}}return n}function lj(e){let t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function lq(e){let t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function lz(e){let t=new iy(e.seconds,e.nanoseconds);return iw.fromTimestamp(t)}function l$(e,t){let r=(t.baseMutations||[]).map(t=>lN(e.yt,t));for(let e=0;e<t.mutations.length-1;++e){let r=t.mutations[e];e+1<t.mutations.length&&void 0!==t.mutations[e+1].transform&&(r.updateTransforms=t.mutations[e+1].transform.fieldTransforms,t.mutations.splice(e+1,1),++e)}let n=t.mutations.map(t=>lN(e.yt,t)),i=iy.fromMillis(t.localWriteTimeMs);return new oX(t.batchId,i,r,n)}function lK(e){var t;let r,n=lz(e.readTime),i=void 0!==e.lastLimboFreeSnapshotVersion?lz(e.lastLimboFreeSnapshotVersion):iw.min();return new lF(void 0!==e.query.documents?(nW(1===(r=(t=e.query).documents.length),1966,{count:r}),oi(oe(lT(t.documents[0])))):oi(lO(e.query)),e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,n,i,s2.fromBase64String(e.resumeToken))}function lG(e,t){let r,n=lq(t.snapshotVersion),i=lq(t.lastLimboFreeSnapshotVersion);r=a5(t.target)?lD(e.yt,t.target):lR(e.yt,t.target).ft;let s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:a3(t.target),readTime:n,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:i,query:r}}function lH(e){let t=lO({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?ol(t,t.limit,"L"):t}function lW(e,t){return new o0(t.largestBatchId,lN(e.yt,t.overlayMutation))}function lQ(e,t){let r=t.path.lastSegment();return[e,iY(t.path.popLast()),r]}function lJ(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:lq(n.readTime),documentKey:iY(n.documentKey.path),largestBatchId:n.largestBatchId}}class lY{getBundleMetadata(e,t){return s$(e,sv).get(t).next(e=>{if(e)return{id:e.bundleId,createTime:lz(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return s$(e,sv).put({bundleId:t.id,createTime:lq(ly(t.createTime)),version:t.version})}getNamedQuery(e,t){return s$(e,sI).get(t).next(e=>{if(e)return{name:e.name,query:lH(e.bundledQuery),readTime:lz(e.readTime)}})}saveNamedQuery(e,t){return s$(e,sI).put({name:t.name,readTime:lq(ly(t.readTime)),bundledQuery:t.bundledQuery})}}
4class lX{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){return new lX(e,t.uid||"")}getOverlay(e,t){return s$(e,sD).get(lQ(this.userId,t)).next(e=>e?lW(this.serializer,e):null)}getOverlays(e,t){let r=oI();return iR.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){let n=[];return r.forEach((r,i)=>{let s=new o0(t,i);n.push(this.St(e,s))}),iR.waitFor(n)}removeOverlaysForBatchId(e,t,r){let n=new Set;t.forEach(e=>n.add(iY(e.getCollectionPath())));let i=[];return n.forEach(t=>{let n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,r+1],!1,!0);i.push(s$(e,sD).X(sO,n))}),iR.waitFor(i)}getOverlaysForCollection(e,t,r){let n=oI(),i=iY(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,1/0],!0);return s$(e,sD).J(sO,s).next(e=>{for(let t of e){let e=lW(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,n){let i,s=oI(),a=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,1/0],!0);return s$(e,sD).ee({index:sL,range:a},(e,t,r)=>{let a=lW(this.serializer,t);s.size()<n||a.largestBatchId===i?(s.set(a.getKey(),a),i=a.largestBatchId):r.done()}).next(()=>s)}St(e,t){return s$(e,sD).put(function(e,t,r){let[n,i,s]=lQ(t,r.mutation.key);return{userId:t,collectionPath:i,documentId:s,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:lx(e.yt,r.mutation)}}(this.serializer,this.userId,t))}}class lZ{bt(e){return s$(e,sV)}getSessionToken(e){return this.bt(e).get("sessionToken").next(e=>{let t=e?.value;return t?s2.fromUint8Array(t):s2.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.bt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class l0{Dt(e,t){this.Ct(e,t),t.vt()}Ct(e,t){if("nullValue"in e)this.Ft(t,5);else if("booleanValue"in e)this.Ft(t,10),t.Mt(+!!e.booleanValue);else if("integerValue"in e)this.Ft(t,15),t.Mt(s5(e.integerValue));else if("doubleValue"in e){let r=s5(e.doubleValue);isNaN(r)?this.Ft(t,13):(this.Ft(t,15),iQ(r)?t.Mt(0):t.Mt(r))}else if("timestampValue"in e){let r=e.timestampValue;this.Ft(t,20),"string"==typeof r&&(r=s6(r)),t.xt(`${r.seconds||""}`),t.Mt(r.nanos||0)}else if("stringValue"in e)this.Ot(e.stringValue,t),this.Nt(t);else if("bytesValue"in e)this.Ft(t,30),t.Bt(s4(e.bytesValue)),this.Nt(t);else if("referenceValue"in e)this.Lt(e.referenceValue,t);else if("geoPointValue"in e){let r=e.geoPointValue;this.Ft(t,45),t.Mt(r.latitude||0),t.Mt(r.longitude||0)}else"mapValue"in e?ax(e)?this.Ft(t,Number.MAX_SAFE_INTEGER):aA(e)?this.kt(e.mapValue,t):(this.qt(e.mapValue,t),this.Nt(t)):"arrayValue"in e?(this.Kt(e.arrayValue,t),this.Nt(t)):nG(19022,{Ut:e})}Ot(e,t){this.Ft(t,25),this.$t(e,t)}$t(e,t){t.xt(e)}qt(e,t){let r=e.fields||{};for(let e of(this.Ft(t,55),Object.keys(r)))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){let r=e.fields||{};this.Ft(t,53);let n=r[ad].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(s5(n)),this.Ot(ad,t),this.Ct(r[ad],t)}Kt(e,t){let r=e.values||[];for(let e of(this.Ft(t,50),r))this.Ct(e,t)}Lt(e,t){this.Ft(t,37),io.fromName(e).path.forEach(e=>{this.Ft(t,60),this.$t(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}function l1(e){return Math.ceil((64-function(e){let t=0;for(let r=0;r<8;++r){let n=function(e){if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t}(255&e[r]);if(t+=n,8!==n)break}return t}(e))/8)}l0.Wt=new l0;class l2{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Qt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Ht()}Zt(e){for(let t of e){let e=t.charCodeAt(0);if(e<128)this.Gt(e);else if(e<2048)this.Gt(960|e>>>6),this.Gt(128|63&e);else if(t<"\uD800"||"\uDBFF"<t)this.Gt(480|e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e);else{let e=t.codePointAt(0);this.Gt(240|e>>>18),this.Gt(128|63&e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e)}}this.zt()}Xt(e){for(let t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\uD800"||"\uDBFF"<t)this.Jt(480|e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Ht()}Yt(e){let t=this.en(e),r=l1(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=255&t[e]}nn(e){let t=this.en(e),r=l1(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=~(255&t[e])}rn(){this.sn(255),this.sn(255)}_n(){this.an(255),this.an(255)}reset(){this.position=0}seed(e){this.tn(e.length),this.buffer.set(e,this.position),this.position+=e.length}un(){return this.buffer.slice(0,this.position)}en(e){let t,r=((t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1),new Uint8Array(t.buffer)),n=!!(128&r[0]);r[0]^=n?255:128;for(let e=1;e<r.length;++e)r[e]^=255*!!n;return r}Gt(e){let t=255&e;0===t?(this.sn(0),this.sn(255)):255===t?(this.sn(255),this.sn(0)):this.sn(t)}Jt(e){let t=255&e;0===t?(this.an(0),this.an(255)):255===t?(this.an(255),this.an(0)):this.an(e)}zt(){this.sn(0),this.sn(1)}Ht(){this.an(0),this.an(1)}sn(e){this.tn(1),this.buffer[this.position++]=e}an(e){this.tn(1),this.buffer[this.position++]=~e}tn(e){let t=e+this.position;if(t<=this.buffer.length)return;let r=2*this.buffer.length;r<t&&(r=t);let n=new Uint8Array(r);n.set(this.buffer),this.buffer=n}}class l3{constructor(e){this.cn=e}Bt(e){this.cn.Qt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.Yt(e)}vt(){this.cn.rn()}}class l6{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Xt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class l5{constructor(){this.cn=new l2,this.ascending=new l3(this.cn),this.descending=new l6(this.cn)}seed(e){this.cn.seed(e)}ln(e){return 0===e?this.ascending:this.descending}un(){return this.cn.un()}reset(){this.cn.reset()}}class l4{constructor(e,t,r,n){this.hn=e,this.Pn=t,this.Tn=r,this.En=n}In(){let e=this.En.length,t=0===e||255===this.En[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.En,0),t!==e?r.set([0],this.En.length):++r[r.length-1],new l4(this.hn,this.Pn,this.Tn,r)}Rn(e,t,r){return{indexId:this.hn,uid:e,arrayValue:l7(this.Tn),directionalValue:l7(this.En),orderedDocumentKey:l7(t),documentKey:r.path.toArray()}}An(e,t,r){let n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function l8(e,t){let r=e.hn-t.hn;return 0!==r||0!==(r=l9(e.Tn,t.Tn))||0!==(r=l9(e.En,t.En))?r:io.comparator(e.Pn,t.Pn)}function l9(e,t){for(let r=0;r<e.length&&r<t.length;++r){let n=e[r]-t[r];if(0!==n)return n}return e.length-t.length}function l7(e){return F()?function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}(e):e}function ue(e){return"string"!=typeof e?e:function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(e)}class ut{constructor(e){for(const t of(this.Vn=new sY((e,t)=>
4ia.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.dn=e.orderBy,this.mn=[],e.filters))t.isInequality()?this.Vn=this.Vn.add(t):this.mn.push(t)}get fn(){return this.Vn.size>1}gn(e){if(nW(e.collectionGroup===this.collectionId,49279),this.fn)return!1;let t=iI(e);if(void 0!==t&&!this.pn(t))return!1;let r=ib(e),n=new Set,i=0,s=0;for(;i<r.length&&this.pn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i===r.length)return!0;if(this.Vn.size>0){let e=this.Vn.getIterator().getNext();if(!n.has(e.field.canonicalString())){let t=r[i];if(!this.yn(e,t)||!this.wn(this.dn[s++],t))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.dn.length||!this.wn(this.dn[s++],e))return!1}return!0}Sn(){if(this.fn)return null;let e=new sY(ia.comparator),t=[];for(let r of this.mn)if(!r.field.isKeyField())if("array-contains"===r.op||"array-contains-any"===r.op)t.push(new iE(r.field,2));else{if(e.has(r.field))continue;e=e.add(r.field),t.push(new iE(r.field,0))}for(let r of this.dn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),t.push(new iE(r.field,+("asc"!==r.dir))));return new iv(iv.UNKNOWN_ID,this.collectionId,t,iT.empty())}pn(e){for(let t of this.mn)if(this.yn(t,e))return!0;return!1}yn(e,t){if(void 0===e||!e.field.isEqual(t.fieldPath))return!1;let r="array-contains"===e.op||"array-contains-any"===e.op;return 2===t.kind===r}wn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function ur(e){return e instanceof aB}function un(e){return e instanceof aj&&a$(e)}function ui(e){return ur(e)||un(e)||function(e){if(e instanceof aj&&az(e)){for(let t of e.getFilters())if(!ur(t)&&!un(t))return!1;return!0}return!1}(e)}function us(e,t){return nW(e instanceof aB||e instanceof aj,38388),nW(t instanceof aB||t instanceof aj,25473),uo(e instanceof aB?t instanceof aB?aj.create([e,t],"and"):ua(e,t):t instanceof aB?ua(t,e):function(e,t){if(nW(e.filters.length>0&&t.filters.length>0,48005),aq(e)&&aq(t))return aG(e,t.getFilters());let r=az(e)?e:t,n=az(e)?t:e,i=r.filters.map(e=>us(e,n));return aj.create(i,"or")}(e,t))}function ua(e,t){if(aq(t))return aG(t,e.getFilters());{let r=t.filters.map(t=>us(e,t));return aj.create(r,"or")}}function uo(e){if(nW(e instanceof aB||e instanceof aj,11850),e instanceof aB)return e;let t=e.getFilters();if(1===t.length)return uo(t[0]);if(aK(e))return e;let r=t.map(e=>uo(e)),n=[];return r.forEach(t=>{t instanceof aB?n.push(t):t instanceof aj&&(t.op===e.op?n.push(...t.filters):n.push(t))}),1===n.length?n[0]:aj.create(n,e.op)}class ul{constructor(){this.bn=new uu}addToCollectionParentIndex(e,t){return this.bn.add(t),iR.resolve()}getCollectionParents(e,t){return iR.resolve(this.bn.getEntries(t))}addFieldIndex(e,t){return iR.resolve()}deleteFieldIndex(e,t){return iR.resolve()}deleteAllFieldIndexes(e){return iR.resolve()}createTargetIndexes(e,t){return iR.resolve()}getDocumentsMatchingTarget(e,t){return iR.resolve(null)}getIndexType(e,t){return iR.resolve(0)}getFieldIndexes(e,t){return iR.resolve([])}getNextCollectionGroupToUpdate(e){return iR.resolve(null)}getMinOffset(e,t){return iR.resolve(iA.min())}getMinOffsetFromCollectionGroup(e,t){return iR.resolve(iA.min())}updateCollectionGroup(e,t,r){return iR.resolve()}updateIndexEntries(e,t){return iR.resolve()}}class uu{constructor(){this.index={}}add(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new sY(ii.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t];return n&&n.has(r)}getEntries(e){return(this.index[e]||new sY(ii.comparator)).toArray()}}let uh="IndexedDbIndexManager",uc=new Uint8Array(0);class ud{constructor(e,t){this.databaseId=t,this.Dn=new uu,this.Cn=new om(e=>a3(e),(e,t)=>a6(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){if(!this.Dn.has(t)){let r=t.lastSegment(),n=t.popLast();e.addOnCommittedListener(()=>{this.Dn.add(t)});let i={collectionId:r,parent:iY(n)};return s$(e,sg).put(i)}return iR.resolve()}getCollectionParents(e,t){let r=[],n=IDBKeyRange.bound([t,""],[t+"\0",""],!1,!0);return s$(e,sg).J(n).next(e=>{for(let n of e){if(n.collectionId!==t)break;r.push(iX(n.parent))}return r})}addFieldIndex(e,t){let r=s$(e,sb),n={indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;let i=r.add(n);if(t.indexState){let r=s$(e,sE);return i.next(e=>{r.put(lJ(e,this.uid,t.indexState.sequenceNumber,t.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=s$(e,sb),n=s$(e,sE),i=s$(e,sA);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=s$(e,sb),r=s$(e,sA),n=s$(e,sE);return t.X().next(()=>r.X()).next(()=>n.X())}
4createTargetIndexes(e,t){return iR.forEach(this.vn(t),t=>this.getIndexType(e,t).next(r=>{if(0===r||1===r){let r=new ut(t).Sn();if(null!=r)return this.addFieldIndex(e,r)}}))}getDocumentsMatchingTarget(e,t){let r=s$(e,sA),n=!0,i=new Map;return iR.forEach(this.vn(t),t=>this.Fn(e,t).next(e=>{n&&(n=!!e),i.set(t,e)})).next(()=>{if(n){let e=oE(),n=[];return iR.forEach(i,(i,s)=>{nq(uh,`Using index id=${i.indexId}|cg=${i.collectionGroup}|f=${i.fields.map(e=>`${e.fieldPath}:${e.kind}`).join(",")} to execute ${a3(t)}`);let a=function(e,t){let r=iI(t);if(void 0===r)return null;for(let t of a4(e,r.fieldPath))switch(t.op){case"array-contains-any":return t.value.arrayValue.values||[];case"array-contains":return[t.value]}return null}(s,i),o=function(e,t){let r=new Map;for(let n of ib(t))for(let t of a4(e,n.fieldPath))switch(t.op){case"==":case"in":r.set(n.fieldPath.canonicalString(),t.value);break;case"not-in":case"!=":return r.set(n.fieldPath.canonicalString(),t.value),Array.from(r.values())}return null}(s,i),l=function(e,t){let r=[],n=!0;for(let i of ib(t)){let t=0===i.kind?a8(e,i.fieldPath,e.startAt):a9(e,i.fieldPath,e.startAt);r.push(t.value),n&&(n=t.inclusive)}return new aL(r,n)}(s,i),u=function(e,t){let r=[],n=!0;for(let i of ib(t)){let t=0===i.kind?a9(e,i.fieldPath,e.endAt):a8(e,i.fieldPath,e.endAt);r.push(t.value),n&&(n=t.inclusive)}return new aL(r,n)}(s,i),h=this.Mn(i,s,l),c=this.Mn(i,s,u),d=this.xn(i,s,o),f=this.On(i.indexId,a,h,l.inclusive,c,u.inclusive,d);return iR.forEach(f,i=>r.Z(i,t.limit).next(t=>{t.forEach(t=>{let r=io.fromSegments(t.documentKey);e.has(r)||(e=e.add(r),n.push(r))})}))}).next(()=>n)}return iR.resolve(null)})}vn(e){let t=this.Cn.get(e);return t||(t=0===e.filters.length?[e]:(function(e){if(0===e.getFilters().length)return[];let t=function e(t){if(nW(t instanceof aB||t instanceof aj,34018),t instanceof aB)return t;if(1===t.filters.length)return e(t.filters[0]);let r=t.filters.map(t=>e(t)),n=aj.create(r,t.op);return ui(n=uo(n))?n:(nW(n instanceof aj,64498),nW(aq(n),40251),nW(n.filters.length>1,57927),n.filters.reduce((e,t)=>us(e,t)))}(function e(t){if(nW(t instanceof aB||t instanceof aj,20012),t instanceof aB){if(t instanceof aX){let e=t.value.arrayValue?.values?.map(e=>aB.create(t.field,"==",e))||[];return aj.create(e,"or")}return t}let r=t.filters.map(t=>e(t));return aj.create(r,t.op)}(e));return nW(ui(t),7391),ur(t)||un(t)?[t]:t.getFilters()})(aj.create(e.filters,"and")).map(t=>a2(e.path,e.collectionGroup,e.orderBy,t.getFilters(),e.limit,e.startAt,e.endAt)),this.Cn.set(e,t)),t}On(e,t,r,n,i,s,a){let o=(null!=t?t.length:1)*Math.max(r.length,i.length),l=o/(null!=t?t.length:1),u=[];for(let h=0;h<o;++h){let o=t?this.Nn(t[h/l]):uc,c=this.Bn(e,o,r[h%l],n),d=this.Ln(e,o,i[h%l],s),f=a.map(t=>this.Bn(e,o,t,!0));u.push(...this.createRange(c,d,f))}return u}Bn(e,t,r,n){let i=new l4(e,io.empty(),t,r);return n?i:i.In()}Ln(e,t,r,n){let i=new l4(e,io.empty(),t,r);return n?i.In():i}Fn(e,t){let r=new ut(t),n=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,n).next(e=>{let t=null;for(let n of e)r.gn(n)&&(!t||n.fields.length>t.fields.length)&&(t=n);return t})}getIndexType(e,t){let r=2,n=this.vn(t);return iR.forEach(n,t=>this.Fn(e,t).next(e=>{e?0!==r&&e.fields.length<function(e){let t=new sY(ia.comparator),r=!1;for(let n of e.filters)for(let e of n.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?r=!0:t=t.add(e.field));for(let r of e.orderBy)r.field.isKeyField()||(t=t.add(r.field));return t.size+ +!!r}(t)&&(r=1):r=0})).next(()=>null!==t.limit&&n.length>1&&2===r?1:r)}kn(e,t){let r=new l5;for(let n of ib(e)){let e=t.data.field(n.fieldPath);if(null==e)return null;let i=r.ln(n.kind);l0.Wt.Dt(e,i)}return r.un()}Nn(e){let t=new l5;return l0.Wt.Dt(e,t.ln(0)),t.un()}qn(e,t){let r,n=new l5;return l0.Wt.Dt(ab(this.databaseId,t),n.ln(0===(r=ib(e)).length?0:r[r.length-1].kind)),n.un()}xn(e,t,r){if(null===r)return[];let n=[];n.push(new l5);let i=0;for(let s of ib(e)){let e=r[i++];for(let r of n)if(this.Kn(t,s.fieldPath)&&aE(e))n=this.Un(n,s,e);else{let t=r.ln(s.kind);l0.Wt.Dt(e,t)}}return this.$n(n)}Mn(e,t,r){return this.xn(e,t,r.position)}$n(e){let t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Un(e,t,r){let n=[...e],i=[];for(let e of r.arrayValue.values||[])for(let r of n){let n=new l5;
4n.seed(r.un()),l0.Wt.Dt(e,n.ln(t.kind)),i.push(n)}return i}Kn(e,t){return!!e.filters.find(e=>e instanceof aB&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=s$(e,sb),n=s$(e,sE);return(t?r.J(s_,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let t=[];return iR.forEach(e,e=>n.get([e.indexId,this.uid]).next(r=>{let n,i;t.push((n=r?new iT(r.sequenceNumber,new iA(lz(r.readTime),new io(iX(r.documentKey)),r.largestBatchId)):iT.empty(),i=e.fields.map(([e,t])=>new iE(ia.fromServerFormat(e),t)),new iv(e.indexId,e.collectionGroup,i,n)))})).next(()=>t)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{let r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!==r?r:n8(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,t,r){let n=s$(e,sb),i=s$(e,sE);return this.Wn(e).next(e=>n.J(s_,IDBKeyRange.bound(t,t)).next(t=>iR.forEach(t,t=>i.put(lJ(t.indexId,this.uid,e,r)))))}updateIndexEntries(e,t){let r=new Map;return iR.forEach(t,(t,n)=>{let i=r.get(t.collectionGroup);return(i?iR.resolve(i):this.getFieldIndexes(e,t.collectionGroup)).next(i=>(r.set(t.collectionGroup,i),iR.forEach(i,r=>this.Qn(e,t,r).next(t=>{let i=this.Gn(n,r);return t.isEqual(i)?iR.resolve():this.zn(e,n,r,t,i)}))))})}jn(e,t,r,n){return s$(e,sA).put(n.Rn(this.uid,this.qn(r,t.key),t.key))}Jn(e,t,r,n){return s$(e,sA).delete(n.An(this.uid,this.qn(r,t.key),t.key))}Qn(e,t,r){let n=s$(e,sA),i=new sY(l8);return n.ee({index:sx,range:IDBKeyRange.only([r.indexId,this.uid,l7(this.qn(r,t))])},(e,n)=>{i=i.add(new l4(r.indexId,t,ue(n.arrayValue),ue(n.directionalValue)))}).next(()=>i)}Gn(e,t){let r=new sY(l8),n=this.kn(t,e);if(null==n)return r;let i=iI(t);if(null!=i){let s=e.data.field(i.fieldPath);if(aE(s))for(let i of s.arrayValue.values||[])r=r.add(new l4(t.indexId,e.key,this.Nn(i),n))}else r=r.add(new l4(t.indexId,e.key,uc,n));return r}zn(e,t,r,n,i){nq(uh,"Updating index entries for document '%s'",t.key);let s=[];return function(e,t,r,n,i){let s=e.getIterator(),a=t.getIterator(),o=sZ(s),l=sZ(a);for(;o||l;){let e=!1,t=!1;if(o&&l){let n=r(o,l);n<0?t=!0:n>0&&(e=!0)}else null!=o?t=!0:e=!0;e?(n(l),l=sZ(a)):t?(i(o),o=sZ(s)):(o=sZ(s),l=sZ(a))}}(n,i,l8,n=>{s.push(this.jn(e,t,r,n))},n=>{s.push(this.Jn(e,t,r,n))}),iR.waitFor(s)}Wn(e){let t=1;return s$(e,sE).ee({index:sS,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,r,n)=>{n.done(),t=r.sequenceNumber+1}).next(()=>t)}createRange(e,t,r){r=r.sort((e,t)=>l8(e,t)).filter((e,t,r)=>!t||0!==l8(e,r[t-1]));let n=[];for(let i of(n.push(e),r)){let r=l8(i,e),s=l8(i,t);if(0===r)n[0]=e.In();else if(r>0&&s<0)n.push(i),n.push(i.In());else if(s>0)break}n.push(t);let i=[];for(let e=0;e<n.length;e+=2){if(this.Hn(n[e],n[e+1]))return[];let t=n[e].An(this.uid,uc,io.empty()),r=n[e+1].An(this.uid,uc,io.empty());i.push(IDBKeyRange.bound(t,r))}return i}Hn(e,t){return l8(e,t)>0}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(uf)}getMinOffset(e,t){return iR.mapArray(this.vn(t),t=>this.Fn(e,t).next(e=>e||nG(44426))).next(uf)}}function uf(e){nW(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let n=1;n<e.length;n++){let i=e[n].indexState.offset;0>ik(i,t)&&(t=i),r<i.largestBatchId&&(r=i.largestBatchId)}return new iA(t.readTime,t.documentKey,r)}let up={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class um{static withCacheSize(e){return new um(e,um.DEFAULT_COLLECTION_PERCENTILE,um.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function ug(e,t,r){let n=e.store(i3),i=e.store(i9),s=[],a=IDBKeyRange.only(r.batchId),o=0,l=n.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{nW(1===o,47070,{batchId:r.batchId})}));let u=[];for(let e of r.mutations){var h,c;let n=(h=e.key.path,c=r.batchId,[t,iY(h),c]);s.push(i.delete(n)),u.push(e.key)}return iR.waitFor(s).next(()=>u)}function uy(e){let t;if(!e)return 0;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw nG(14731);t=e.noDocument}return JSON.stringify(t).length}
4um.DEFAULT_COLLECTION_PERCENTILE=10,um.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,um.DEFAULT=new um(0x2800000,um.DEFAULT_COLLECTION_PERCENTILE,um.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),um.DISABLED=new um(-1,0,0);class uw{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Zn={}}static wt(e,t,r,n){return nW(""!==e.uid,64387),new uw(e.isAuthenticated()?e.uid:"",t,r,n)}checkEmpty(e){let t=!0,r=IDBKeyRange.bound([this.userId,-1/0],[this.userId,1/0]);return uI(e).ee({index:i5,range:r},(e,r,n)=>{t=!1,n.done()}).next(()=>t)}addMutationBatch(e,t,r,n){let i=s$(e,i9),s=uI(e);return s.add({}).next(a=>{var o,l,u,h;let c,d;nW("number"==typeof a,49019);let f=new oX(a,t,r,n),p=(o=this.serializer,l=this.userId,c=f.baseMutations.map(e=>lx(o.yt,e)),d=f.mutations.map(e=>lx(o.yt,e)),{userId:l,batchId:f.batchId,localWriteTimeMs:f.localWriteTime.toMillis(),baseMutations:c,mutations:d}),m=[],g=new sY((e,t)=>n8(e.canonicalString(),t.canonicalString()));for(let e of n){let t=(u=this.userId,h=e.key.path,[u,iY(h),a]);g=g.add(e.key.path.popLast()),m.push(s.put(p)),m.push(i.put(t,i8))}return g.forEach(t=>{m.push(this.indexManager.addToCollectionParentIndex(e,t))}),e.addOnCommittedListener(()=>{this.Zn[a]=f.keys()}),iR.waitFor(m).next(()=>f)})}lookupMutationBatch(e,t){return uI(e).get(t).next(e=>e?(nW(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),l$(this.serializer,e)):null)}Xn(e,t){return this.Zn[t]?iR.resolve(this.Zn[t]):this.lookupMutationBatch(e,t).next(e=>{if(e){let r=e.keys();return this.Zn[t]=r,r}return null})}getNextMutationBatchAfterBatchId(e,t){let r=t+1,n=IDBKeyRange.lowerBound([this.userId,r]),i=null;return uI(e).ee({index:i5,range:n},(e,t,n)=>{t.userId===this.userId&&(nW(t.batchId>=r,47524,{Yn:r}),i=l$(this.serializer,t)),n.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){let t=IDBKeyRange.upperBound([this.userId,1/0]),r=-1;return uI(e).ee({index:i5,range:t,reverse:!0},(e,t,n)=>{r=t.batchId,n.done()}).next(()=>r)}getAllMutationBatches(e){let t=IDBKeyRange.bound([this.userId,-1],[this.userId,1/0]);return uI(e).J(i5,t).next(e=>e.map(e=>l$(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(e,t){let r=[this.userId,iY(t.path)],n=IDBKeyRange.lowerBound(r),i=[];return s$(e,i9).ee({range:n},(r,n,s)=>{let[a,o,l]=r,u=iX(o);if(a===this.userId&&t.path.isEqual(u))return uI(e).get(l).next(e=>{if(!e)throw nG(61480,{er:r,batchId:l});nW(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:l}),i.push(l$(this.serializer,e))});s.done()}).next(()=>i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new sY(n8),n=[];return t.forEach(t=>{let i=[this.userId,iY(t.path)],s=IDBKeyRange.lowerBound(i),a=s$(e,i9).ee({range:s},(e,n,i)=>{let[s,a,o]=e,l=iX(a);s===this.userId&&t.path.isEqual(l)?r=r.add(o):i.done()});n.push(a)}),iR.waitFor(n).next(()=>this.tr(e,r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=[this.userId,iY(r)],s=IDBKeyRange.lowerBound(i),a=new sY(n8);return s$(e,i9).ee({range:s},(e,t,i)=>{let[s,o,l]=e,u=iX(o);s===this.userId&&r.isPrefixOf(u)?u.length===n&&(a=a.add(l)):i.done()}).next(()=>this.tr(e,a))}tr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(uI(e).get(t).next(e=>{if(null===e)throw nG(35274,{batchId:t});nW(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(l$(this.serializer,e))}))}),iR.waitFor(n).next(()=>r)}removeMutationBatch(e,t){return ug(e.le,this.userId,t).next(r=>(e.addOnCommittedListener(()=>{this.nr(t.batchId)}),iR.forEach(r,t=>this.referenceDelegate.markPotentiallyOrphaned(e,t))))}nr(e){delete this.Zn[e]}performConsistencyCheck(e){return this.checkEmpty(e).next(t=>{if(!t)return iR.resolve();let r=IDBKeyRange.lowerBound([this.userId]),n=[];return s$(e,i9).ee({range:r},(e,t,r)=>{if(e[0]===this.userId){let t=iX(e[1]);n.push(t)}else r.done()}).next(()=>{nW(0===n.length,56720,{rr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return uv(e,this.userId,t)}ir(e){return s$(e,i2).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""})}}function uv(e,t,r){let n=[t,iY(r.path)],i=n[1],s=IDBKeyRange.lowerBound(n),a=!1;return s$(e,i9).ee({range:s,Y:!0},(e,r,n)=>{let[s,o,l]=e;s===t&&o===i&&(a=!0),n.done()}).next(()=>a)}function uI(e){return s$(e,i3)}
4class ub{constructor(e){this.sr=e}next(){return this.sr+=2,this.sr}static _r(){return new ub(0)}static ar(){return new ub(-1)}}class u_{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(e){return this.ur(e).next(t=>{let r=new ub(t.highestTargetId);return t.highestTargetId=r.next(),this.cr(e,t).next(()=>t.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.ur(e).next(e=>iw.fromTimestamp(new iy(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.ur(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(e,t,r){return this.ur(e).next(n=>(n.highestListenSequenceNumber=t,r&&(n.lastRemoteSnapshotVersion=r.toTimestamp()),t>n.highestListenSequenceNumber&&(n.highestListenSequenceNumber=t),this.cr(e,n)))}addTargetData(e,t){return this.lr(e,t).next(()=>this.ur(e).next(r=>(r.targetCount+=1,this.hr(t,r),this.cr(e,r))))}updateTargetData(e,t){return this.lr(e,t)}removeTargetData(e,t){return this.removeMatchingKeysForTargetId(e,t.targetId).next(()=>s$(e,so).delete(t.targetId)).next(()=>this.ur(e)).next(t=>(nW(t.targetCount>0,8065),t.targetCount-=1,this.cr(e,t)))}removeTargets(e,t,r){let n=0,i=[];return s$(e,so).ee((s,a)=>{let o=lK(a);o.sequenceNumber<=t&&null===r.get(o.targetId)&&(n++,i.push(this.removeTargetData(e,o)))}).next(()=>iR.waitFor(i)).next(()=>n)}forEachTarget(e,t){return s$(e,so).ee((e,r)=>{t(lK(r))})}ur(e){return s$(e,sm).get(sp).next(e=>(nW(null!==e,2888),e))}cr(e,t){return s$(e,sm).put(sp,t)}lr(e,t){return s$(e,so).put(lG(this.serializer,t))}hr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),e.sequenceNumber>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.ur(e).next(e=>e.targetCount)}getTargetData(e,t){let r=a3(t),n=IDBKeyRange.bound([r,-1/0],[r,1/0]),i=null;return s$(e,so).ee({range:n,index:sl},(e,r,n)=>{let s=lK(r);a6(t,s.target)&&(i=s,n.done())}).next(()=>i)}addMatchingKeys(e,t,r){let n=[],i=uE(e);return t.forEach(t=>{let s=iY(t.path);n.push(i.put({targetId:r,path:s})),n.push(this.referenceDelegate.addReference(e,r,t))}),iR.waitFor(n)}removeMatchingKeys(e,t,r){let n=uE(e);return iR.forEach(t,t=>{let i=iY(t.path);return iR.waitFor([n.delete([r,i]),this.referenceDelegate.removeReference(e,r,t)])})}removeMatchingKeysForTargetId(e,t){let r=uE(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){let r=IDBKeyRange.bound([t],[t+1],!1,!0),n=uE(e),i=oE();return n.ee({range:r,Y:!0},(e,t,r)=>{let n=new io(iX(e[1]));i=i.add(n)}).next(()=>i)}containsKey(e,t){let r=iY(t.path),n=IDBKeyRange.bound([r],[r+"\0"],!1,!0),i=0;return uE(e).ee({index:sd,Y:!0,range:n},([e,t],r,n)=>{0!==e&&(i++,n.done())}).next(()=>i>0)}At(e,t){return s$(e,so).get(t).next(e=>e?lK(e):null)}}function uE(e){return s$(e,sh)}let uT="LruGarbageCollector";function uS([e,t],[r,n]){let i=n8(e,r);return 0===i?n8(t,n):i}class uC{constructor(e){this.Pr=e,this.buffer=new sY(uS),this.Tr=0}Er(){return++this.Tr}Ir(e){let t=[e,this.Er()];if(this.buffer.size<this.Pr)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();0>uS(t,e)&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class uA{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Ar(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Ar(e){nq(uT,`Garbage collection scheduled in ${e}ms`),this.Rr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){iU(e)?nq(uT,"Ignoring IndexedDB error during garbage collection: ",e):await iD(e)}await this.Ar(3e5)})}}class uk{constructor(e,t){this.Vr=e,this.params=t}calculateTargetCount(e,t){return this.Vr.dr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return iR.resolve(iH.ce);let r=new uC(t);return this.Vr.forEachTarget(e,e=>r.Ir(e.sequenceNumber)).next(()=>this.Vr.mr(e,e=>r.Ir(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Vr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Vr.removeOrphanedDocuments(e,t)}collect(e,t){return -1===this.params.cacheSizeCollectionThreshold?(nq("LruGarbageCollector","Garbage collection skipped; disabled"),iR.resolve(up)):this.getCacheSize(e).next(r=>r<this.params.cacheSizeCollectionThreshold?(nq("LruGarbageCollector",`Garbage collection skipped; Cache size ${r} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),up):this.gr(e,t))}getCacheSize(e){return this.Vr.getCacheSize(e)}gr(e,t){let r,n,i,s,o,l,u,h=Date.now();return this.calculateTargetCount(e,this.params.percentileToCollect).next(t=>(t>this.params.maximumSequenceNumbersToCollect?(nq("LruGarbageCollector",`C
4apping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${t}`),n=this.params.maximumSequenceNumbersToCollect):n=t,s=Date.now(),this.nthSequenceNumber(e,n))).next(n=>(r=n,o=Date.now(),this.removeTargets(e,r,t))).next(t=>(i=t,l=Date.now(),this.removeOrphanedDocuments(e,r))).next(e=>(u=Date.now(),nj()<=a.DEBUG&&nq("LruGarbageCollector",`LRU Garbage Collection 5 Counted targets in ${s-h}ms 6 Determined least recently used ${n} in `+(o-s)+"ms\n"+` Removed ${i} targets in `+(l-o)+"ms\n"+` Removed ${e} documents in `+(u-l)+"ms\n"+`Total Duration: ${u-h}ms`),iR.resolve({didRun:!0,sequenceNumbersCollected:n,targetsRemoved:i,documentsRemoved:e})))}}class ux{constructor(e,t){this.db=e,this.garbageCollector=function(e,t){return new uk(e,t)}(this,t)}dr(e){let t=this.pr(e);return this.db.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}mr(e,t){return this.yr(e,(e,r)=>t(r))}addReference(e,t,r){return uN(e,r)}removeReference(e,t,r){return uN(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return uN(e,t)}wr(e,t){let r;return r=!1,s$(e,i2).te(n=>uv(e,n,t).next(e=>(e&&(r=!0),iR.resolve(!e)))).next(()=>r)}removeOrphanedDocuments(e,t){let r=this.db.getRemoteDocumentCache().newChangeBuffer(),n=[],i=0;return this.yr(e,(s,a)=>{if(a<=t){let t=this.wr(e,s).next(t=>{if(!t)return i++,r.getEntry(e,s).next(()=>(r.removeEntry(s,iw.min()),uE(e).delete([0,iY(s.path)])))});n.push(t)}}).next(()=>iR.waitFor(n)).next(()=>r.apply(e)).next(()=>i)}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return uN(e,t)}yr(e,t){let r=uE(e),n,i=iH.ce;return r.ee({index:sd},([e,r],{path:s,sequenceNumber:a})=>{0===e?(i!==iH.ce&&t(new io(iX(n)),i),i=a,n=s):i=iH.ce}).next(()=>{i!==iH.ce&&t(new io(iX(n)),i)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function uN(e,t){var r;return uE(e).put((r=e.currentSequenceNumber,{targetId:0,path:iY(t.path),sequenceNumber:r}))}class uD{constructor(){this.changes=new om(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,aP.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();let r=this.changes.get(t);return void 0!==r?iR.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class uR{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return s$(e,i7).put(r)}removeEntry(e,t,r){let n;return s$(e,i7).delete([(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],lj(r),n[n.length-1]])}updateMetadata(e,t){return this.getMetadata(e).next(r=>(r.byteSize+=t,this.Sr(e,r)))}getEntry(e,t){let r=aP.newInvalidDocument(t);return s$(e,i7).ee({index:st,range:IDBKeyRange.only(uP(t))},(e,n)=>{r=this.br(t,n)}).next(()=>r)}Dr(e,t){let r={size:0,document:aP.newInvalidDocument(t)};return s$(e,i7).ee({index:st,range:IDBKeyRange.only(uP(t))},(e,n)=>{r={document:this.br(t,n),size:uy(n)}}).next(()=>r)}getEntries(e,t){let r=og;return this.Cr(e,t,(e,t)=>{let n=this.br(e,t);r=r.insert(e,n)}).next(()=>r)}vr(e,t){let r=og,n=new sW(io.comparator);return this.Cr(e,t,(e,t)=>{let i=this.br(e,t);r=r.insert(e,i),n=n.insert(e,uy(t))}).next(()=>({documents:r,Fr:n}))}Cr(e,t,r){if(t.isEmpty())return iR.resolve();let n=new sY(uM);t.forEach(e=>n=n.add(e));let i=IDBKeyRange.bound(uP(n.first()),uP(n.last())),s=n.getIterator(),a=s.getNext();return s$(e,i7).ee({index:st,range:i},(e,t,n)=>{let i=io.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);for(;a&&0>uM(a,i);)r(a,null),a=s.getNext();a&&a.isEqual(i)&&(r(a,t),a=s.hasNext()?s.getNext():null),a?n.j(uP(a)):n.done()}).next(()=>{for(;a;)r(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,t,r,n,i){let s=t.path,a=[s.popLast().toArray(),s.lastSegment(),lj(r.readTime),r.documentKey.path.isEmpty()?"":r.documentKey.path.lastSegment()],o=[s.popLast().toArray(),s.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return s$(e,i7).J(IDBKeyRange.bound(a,o,!0)).next(e=>{i?.incrementDocumentReadCount(e.length);let r=og;for(let i of e){let e=this.br(io.fromSegments(i.prefixPath.concat(i.collectionGroup,i.documentId)),i);
6e.isFoundDocument()&&(od(t,e)||n.has(e.key))&&(r=r.insert(e.key,e))}return r})}getAllFromCollectionGroup(e,t,r,n){let i=og,s=uL(t,r),a=uL(t,iA.max());return s$(e,i7).ee({index:sn,range:IDBKeyRange.bound(s,a,!0)},(e,t,r)=>{let s=this.br(io.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(i=i.insert(s.key,s)).size===n&&r.done()}).next(()=>i)}newChangeBuffer(e){return new uO(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return s$(e,ss).get(sa).next(e=>(nW(!!e,20021),e))}Sr(e,t){return s$(e,ss).put(sa,t)}br(e,t){if(t){let e=function(e,t){var r;let n,i;if(t.document)n=lk(e.yt,t.document,!!t.hasCommittedMutations);else if(t.noDocument){let e=io.fromSegments(t.noDocument.path),r=lz(t.noDocument.readTime);n=aP.newNoDocument(e,r),t.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!t.unknownDocument)return nG(56709);{let e=io.fromSegments(t.unknownDocument.path),r=lz(t.unknownDocument.version);n=aP.newUnknownDocument(e,r)}}return t.readTime&&n.setReadTime((i=new iy((r=t.readTime)[0],r[1]),iw.fromTimestamp(i))),n}(this.serializer,t);if(!(e.isNoDocument()&&e.version.isEqual(iw.min())))return e}return aP.newInvalidDocument(e)}}class uO extends uD{constructor(e,t){super(),this.Mr=e,this.trackRemovals=t,this.Or=new om(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(e){let t=[],r=0,n=new sY((e,t)=>n8(e.canonicalString(),t.canonicalString()));
6return this.changes.forEach((i,s)=>{let a=this.Or.get(i);if(t.push(this.Mr.removeEntry(e,i,a.readTime)),s.isValidDocument()){let o=lB(this.Mr.serializer,s);n=n.add(i.path.popLast());let l=uy(o);r+=l-a.size,t.push(this.Mr.addEntry(e,i,o))}else if(r-=a.size,this.trackRemovals){let r=lB(this.Mr.serializer,s.convertToNoDocument(iw.min()));t.push(this.Mr.addEntry(e,i,r))}}),n.forEach(r=>{t.push(this.Mr.indexManager.addToCollectionParentIndex(e,r))}),t.push(this.Mr.updateMetadata(e,r)),iR.waitFor(t)}getFromCache(e,t){return this.Mr.Dr(e,t).next(e=>(this.Or.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Mr.vr(e,t).next(({documents:e,Fr:t})=>(t.forEach((t,r)=>{this.Or.set(t,{size:r,readTime:e.get(t).readTime})}),e))}}function uP(e){let t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function uL(e,t){let r=t.documentKey.path.toArray();return[e,lj(t.readTime),r.slice(0,r.length-2),r.length>0?r[r.length-1]:""]}function uM(e,t){let r=e.path.toArray(),n=t.path.toArray(),i=0;for(let e=0;e<r.length-2&&e<n.length-2;++e)if(i=n8(r[e],n[e]))return i;return(i=n8(r.length,n.length))||(i=n8(r[r.length-2],n[n.length-2]))||n8(r[r.length-1],n[n.length-1])}class uV{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class uF{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(e,t){let r=null;return this.documentOverlayCache.getOverlay(e,t).next(n=>(r=n,this.remoteDocumentCache.getEntry(e,t))).next(e=>(null!==r&&oz(r.mutation,e,s0.empty(),iy.now()),e))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.getLocalViewOfDocuments(e,t,oE()).next(()=>t))}getLocalViewOfDocuments(e,t,r=oE()){let n=oI();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let t=ow();return e.forEach((e,r)=>{t=t.insert(e,r.overlayedDocument)}),t}))}getOverlayedDocuments(e,t){let r=oI();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,oE()))}populateOverlays(e,t,r){let n=[];return r.forEach(e=>{t.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,r)=>{t.set(e,r)})})}computeViews(e,t,r,n){let i=og,s=oI(),a=oI();return t.forEach((e,t)=>{let a=r.get(t.key);n.has(t.key)&&(void 0===a||a.mutation instanceof oG)?i=i.insert(t.key,t):void 0!==a?(s.set(t.key,a.mutation.getFieldMask()),oz(a.mutation,t,a.mutation.getFieldMask(),iy.now())):s.set(t.key,s0.empty())}),this.recalculateAndSaveOverlays(e,i).next(e=>(e.forEach((e,t)=>s.set(e,t)),t.forEach((e,t)=>a.set(e,new uV(t,s.get(e)??null))),a))}recalculateAndSaveOverlays(e,t){let r=oI(),n=new sW((e,t)=>e-t),i=oE();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next(e=>{for(let i of e)i.keys().forEach(e=>{let s=t.get(e);if(null===s)return;let a=r.get(e)||s0.empty();a=i.applyToLocalView(s,a),r.set(e,a);let o=(n.get(i.batchId)||oE()).add(e);n=n.insert(i.batchId,o)})}).next(()=>{let s=[],a=n.getReverseIterator();for(;a.hasNext();){let n=a.getNext(),o=n.key,l=n.value,u=oI();l.forEach(e=>{if(!i.has(e)){let n=oq(t.get(e),r.get(e));null!==n&&u.set(e,n),i=i.add(e)}}),s.push(this.documentOverlayCache.saveOverlays(e,o,u))}return iR.waitFor(s)}).next(()=>r)}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.recalculateAndSaveOverlays(e,t))}getDocumentsMatchingQuery(e,t,r,n){return io.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):or(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n)}getNextDocuments(e,t,r,n){return this.remoteDocumentCache.getAllFromCollectionGroup(e,t,r,n).next(i=>{let s=n-i.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,r.largestBatchId,n-i.size):iR.resolve(oI()),a=-1,o=i;return s.next(t=>iR.forEach(t,(t,r)=>(a<r.largestBatchId&&(a=r.largestBatchId),i.get(t)?iR.resolve():this.remoteDocumentCache.getEntry(e,t).next(e=>{o=o.insert(t,e)}))).next(()=>this.populateOverlays(e,t,i)).next(()=>this.computeViews(e,o,t,oE())).next(e=>({batchId:a,changes:ov(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new io(t)).next(e=>
vendor: 4,054 bytes, line 6
6{let t=ow();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(e,t,r,n){let i=t.collectionGroup,s=ow();return this.indexManager.getCollectionParents(e,i).next(a=>iR.forEach(a,a=>{let o=new a7(a.child(i),null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(e,o,r,n).next(e=>{e.forEach((e,t)=>{s=s.insert(e,t)})})}).next(()=>s))}getDocumentsMatchingCollectionQuery(e,t,r,n){let i;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,r.largestBatchId).next(s=>(i=s,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,r,i,n))).next(e=>{i.forEach((t,r)=>{let n=r.getKey();null===e.get(n)&&(e=e.insert(n,aP.newInvalidDocument(n)))});let r=ow();return e.forEach((e,n)=>{let s=i.get(e);void 0!==s&&oz(s.mutation,n,s0.empty(),iy.now()),od(t,n)&&(r=r.insert(e,n))}),r})}}class uU{constructor(e){this.serializer=e,this.Nr=new Map,this.Br=new Map}getBundleMetadata(e,t){return iR.resolve(this.Nr.get(t))}saveBundleMetadata(e,t){return this.Nr.set(t.id,{id:t.id,version:t.version,createTime:ly(t.createTime)}),iR.resolve()}getNamedQuery(e,t){return iR.resolve(this.Br.get(t))}saveNamedQuery(e,t){return this.Br.set(t.name,{name:t.name,query:lH(t.bundledQuery),readTime:ly(t.readTime)}),iR.resolve()}}class uB{constructor(){this.overlays=new sW(io.comparator),this.Lr=new Map}getOverlay(e,t){return iR.resolve(this.overlays.get(t))}getOverlays(e,t){let r=oI();return iR.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){return r.forEach((r,n)=>{this.St(e,t,n)}),iR.resolve()}removeOverlaysForBatchId(e,t,r){let n=this.Lr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Lr.delete(r)),iR.resolve()}getOverlaysForCollection(e,t,r){let n=oI(),i=t.length+1,s=new io(t.child("")),a=this.overlays.getIteratorFrom(s);for(;a.hasNext();){let e=a.getNext().value,s=e.getKey();if(!t.isPrefixOf(s.path))break;s.path.length===i&&e.largestBatchId>r&&n.set(e.getKey(),e)}return iR.resolve(n)}getOverlaysForCollectionGroup(e,t,r,n){let i=new sW((e,t)=>e-t),s=this.overlays.getIterator();for(;s.hasNext();){let e=s.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>r){let t=i.get(e.largestBatchId);null===t&&(t=oI(),i=i.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}let a=oI(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=n)););return iR.resolve(a)}St(e,t,r){let n=this.overlays.get(r.key);if(null!==n){let e=this.Lr.get(n.largestBatchId).delete(r.key);this.Lr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new o0(t,r));let i=this.Lr.get(t);void 0===i&&(i=oE(),this.Lr.set(t,i)),this.Lr.set(t,i.add(r.key))}}class uj{constructor(){this.sessionToken=s2.EMPTY_BYTE_STRING}getSessionToken(e){return iR.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,iR.resolve()}}class uq{constructor(){this.kr=new sY(uz.qr),this.Kr=new sY(uz.Ur)}isEmpty(){return this.kr.isEmpty()}addReference(e,t){let r=new uz(e,t);this.kr=this.kr.add(r),this.Kr=this.Kr.add(r)}$r(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Wr(new uz(e,t))}Qr(e,t){e.forEach(e=>this.removeReference(e,t))}Gr(e){let t=new io(new ii([])),r=new uz(t,e),n=new uz(t,e+1),i=[];return this.Kr.forEachInRange([r,n],e=>{this.Wr(e),i.push(e.key)}),i}zr(){this.kr.forEach(e=>this.Wr(e))}Wr(e){this.kr=this.kr.delete(e),this.Kr=this.Kr.delete(e)}jr(e){let t=new io(new ii([])),r=new uz(t,e),n=new uz(t,e+1),i=oE();return this.Kr.forEachInRange([r,n],e=>{i=i.add(e.key)}),i}containsKey(e){let t=new uz(e,0),r=this.kr.firstAfterOrEqual(t);return null!==r&&e.isEqual(r.key)}}class uz{constructor(e,t){this.key=e,this.Jr=t}static qr(e,t){return io.comparator(e.key,t.key)||n8(e.Jr,t.Jr)}static Ur(e,t){return n8(e.Jr,t.Jr)||io.comparator(e.key,t.key)}}class u${constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Yn=1,this.Hr=new sY(uz.qr)}
6checkEmpty(e){return iR.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){let i=this.Yn;this.Yn++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];let s=new oX(i,t,r,n);for(let t of(this.mutationQueue.push(s),n))this.Hr=this.Hr.add(new uz(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return iR.resolve(s)}lookupMutationBatch(e,t){return iR.resolve(this.Zr(t))}getNextMutationBatchAfterBatchId(e,t){let r=this.Xr(t+1),n=r<0?0:r;return iR.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return iR.resolve(0===this.mutationQueue.length?-1:this.Yn-1)}getAllMutationBatches(e){return iR.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new uz(t,0),n=new uz(t,1/0),i=[];return this.Hr.forEachInRange([r,n],e=>{let t=this.Zr(e.Jr);i.push(t)}),iR.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new sY(n8);return t.forEach(e=>{let t=new uz(e,0),n=new uz(e,1/0);this.Hr.forEachInRange([t,n],e=>{r=r.add(e.Jr)})}),iR.resolve(this.Yr(r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;io.isDocumentKey(i)||(i=i.child(""));let s=new uz(new io(i),0),a=new sY(n8);return this.Hr.forEachWhile(e=>{let t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Jr)),!0)},s),iR.resolve(this.Yr(a))}Yr(e){let t=[];return e.forEach(e=>{let r=this.Zr(e);null!==r&&t.push(r)}),t}removeMutationBatch(e,t){nW(0===this.ei(t.batchId,"removed"),55003),this.mutationQueue.shift();let r=this.Hr;return iR.forEach(t.mutations,n=>{let i=new uz(n.key,t.batchId);return r=r.delete(i),this.referenceDelegate.markPotentiallyOrphaned(e,n.key)}).next(()=>{this.Hr=r})}nr(e){}containsKey(e,t){let r=new uz(t,0),n=this.Hr.firstAfterOrEqual(r);return iR.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,iR.resolve()}ei(e,t){return this.Xr(e)}Xr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Zr(e){let t=this.Xr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class uK{constructor(e){this.ti=e,this.docs=new sW(io.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){let r=t.key,n=this.docs.get(r),i=n?n.size:0,s=this.ti(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:s}),this.size+=s-i,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){let t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){let r=this.docs.get(t);
vendor: 4,541 bytes, line 6
6return iR.resolve(r?r.document.mutableCopy():aP.newInvalidDocument(t))}getEntries(e,t){let r=og;return t.forEach(e=>{let t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():aP.newInvalidDocument(e))}),iR.resolve(r)}getDocumentsMatchingQuery(e,t,r,n){let i=og,s=t.path,a=new io(s.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(a);for(;o.hasNext();){let{key:e,value:{document:a}}=o.getNext();if(!s.isPrefixOf(e.path))break;e.path.length>s.length+1||0>=ik(iC(a),r)||(n.has(a.key)||od(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return iR.resolve(i)}getAllFromCollectionGroup(e,t,r,n){nG(9500)}ni(e,t){return iR.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new uG(this)}getSize(e){return iR.resolve(this.size)}}class uG extends uD{constructor(e){super(),this.Mr=e}applyChanges(e){let t=[];return this.changes.forEach((r,n)=>{n.isValidDocument()?t.push(this.Mr.addEntry(e,n)):this.Mr.removeEntry(r)}),iR.waitFor(t)}getFromCache(e,t){return this.Mr.getEntry(e,t)}getAllFromCache(e,t){return this.Mr.getEntries(e,t)}}class uH{constructor(e){this.persistence=e,this.ri=new om(e=>a3(e),a6),this.lastRemoteSnapshotVersion=iw.min(),this.highestTargetId=0,this.ii=0,this.si=new uq,this.targetCount=0,this.oi=ub._r()}forEachTarget(e,t){return this.ri.forEach((e,r)=>t(r)),iR.resolve()}getLastRemoteSnapshotVersion(e){return iR.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return iR.resolve(this.ii)}allocateTargetId(e){return this.highestTargetId=this.oi.next(),iR.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.ii&&(this.ii=t),iR.resolve()}lr(e){this.ri.set(e.target,e);let t=e.targetId;t>this.highestTargetId&&(this.oi=new ub(t),this.highestTargetId=t),e.sequenceNumber>this.ii&&(this.ii=e.sequenceNumber)}addTargetData(e,t){return this.lr(t),this.targetCount+=1,iR.resolve()}updateTargetData(e,t){return this.lr(t),iR.resolve()}removeTargetData(e,t){return this.ri.delete(t.target),this.si.Gr(t.targetId),this.targetCount-=1,iR.resolve()}removeTargets(e,t,r){let n=0,i=[];return this.ri.forEach((s,a)=>{a.sequenceNumber<=t&&null===r.get(a.targetId)&&(this.ri.delete(s),i.push(this.removeMatchingKeysForTargetId(e,a.targetId)),n++)}),iR.waitFor(i).next(()=>n)}getTargetCount(e){return iR.resolve(this.targetCount)}getTargetData(e,t){let r=this.ri.get(t)||null;return iR.resolve(r)}addMatchingKeys(e,t,r){return this.si.$r(t,r),iR.resolve()}removeMatchingKeys(e,t,r){this.si.Qr(t,r);let n=this.persistence.referenceDelegate,i=[];return n&&t.forEach(t=>{i.push(n.markPotentiallyOrphaned(e,t))}),iR.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.si.Gr(t),iR.resolve()}getMatchingKeysForTargetId(e,t){let r=this.si.jr(t);return iR.resolve(r)}containsKey(e,t){return iR.resolve(this.si.containsKey(t))}}class uW{constructor(e,t){this._i={},this.overlays={},this.ai=new iH(0),this.ui=!1,this.ui=!0,this.ci=new uj,this.referenceDelegate=e(this),this.li=new uH(this),this.indexManager=new ul,this.remoteDocumentCache=function(e){return new uK(e)}(e=>this.referenceDelegate.hi(e)),this.serializer=new lU(t),this.Pi=new uU(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.ui=!1,Promise.resolve()}get started(){return this.ui}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new uB,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this._i[e.toKey()];return r||(r=new u$(t,this.referenceDelegate),this._i[e.toKey()]=r),r}getGlobalsCache(){return this.ci}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Pi}runTransaction(e,t,r){nq("MemoryPersistence","Starting transaction:",e);let n=new uQ(this.ai.next());return this.referenceDelegate.Ti(),r(n).next(e=>this.referenceDelegate.Ei(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ii(e,t){return iR.or(Object.values(this._i).map(r=>()=>r.containsKey(e,t)))}}class uQ extends iN{constructor(e){super(),this.currentSequenceNumber=e}}class uJ{constructor(e){this.persistence=e,this.Ri=new uq,this.Ai=null}static Vi(e){return new uJ(e)}get di(){if(this.Ai)return this.Ai;throw nG(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.di.delete(r.toString()),iR.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.di.add(r.toString()),iR.resolve()}markPotentiallyOrphaned(e,t){return this.di.add(t.toString()),iR.resolve()}
6removeTarget(e,t){this.Ri.Gr(t.targetId).forEach(e=>this.di.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.di.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ti(){this.Ai=new Set}Ei(e){let t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return iR.forEach(this.di,r=>{let n=io.fromPath(r);return this.mi(e,n).next(e=>{e||t.removeEntry(n,iw.min())})}).next(()=>(this.Ai=null,t.apply(e)))}updateLimboDocument(e,t){return this.mi(e,t).next(e=>{e?this.di.delete(t.toString()):this.di.add(t.toString())})}hi(e){return 0}mi(e,t){return iR.or([()=>iR.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ii(e,t)])}}class uY{constructor(e,t){this.persistence=e,this.fi=new om(e=>iY(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=function(e,t){return new uk(e,t)}(this,t)}static Vi(e,t){return new uY(e,t)}Ti(){}Ei(e){return iR.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}dr(e){let t=this.pr(e);return this.persistence.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}mr(e,t){return iR.forEach(this.fi,(r,n)=>this.wr(e,r,n).next(e=>e?iR.resolve():t(n)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,t){let r=0,n=this.persistence.getRemoteDocumentCache(),i=n.newChangeBuffer();return n.ni(e,n=>this.wr(e,n,t).next(e=>{e||(r++,i.removeEntry(n,iw.min()))})).next(()=>i.apply(e)).next(()=>r)}markPotentiallyOrphaned(e,t){return this.fi.set(t,e.currentSequenceNumber),iR.resolve()}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),iR.resolve()}removeReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),iR.resolve()}updateLimboDocument(e,t){return this.fi.set(t,e.currentSequenceNumber),iR.resolve()}hi(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function e(t){switch(ap(t)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:let r=ar(t);return r?16+e(r):16;case 5:return 2*t.stringValue.length;case 6:return s4(t.bytesValue).approximateByteSize();case 7:return t.referenceValue.length;case 9:return(t.arrayValue.values||[]).reduce((t,r)=>t+e(r),0);case 10:case 11:var n;let i;return n=t.mapValue,i=0,sG(n.fields,(t,r)=>{i+=t.length+e(r)}),i;default:throw nG(13486,{value:t})}}(e.data.value)),t}wr(e,t,r){return iR.or([()=>this.persistence.Ii(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{let e=this.fi.get(t);return iR.resolve(void 0!==e&&e>r)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class uX{constructor(e){this.serializer=e}k(e,t,r,n){let i=new iP("createOrUpgrade",t);r<1&&n>=1&&(e.createObjectStore(i0),e.createObjectStore(i2,{keyPath:"userId"}),e.createObjectStore(i3,{keyPath:i6,autoIncrement:!0}).createIndex(i5,i4,{unique:!0}),e.createObjectStore(i9),uZ(e),e.createObjectStore(iZ));let s=iR.resolve();return r<3&&n>=3&&(0!==r&&(e.deleteObjectStore(sh),e.deleteObjectStore(so),e.deleteObjectStore(sm),uZ(e)),s=s.next(()=>{let e,t;return e=i.store(sm),t={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:iw.min().toTimestamp(),targetCount:0},e.put(sp,t)})),r<4&&n>=4&&(0!==r&&(s=s.next(()=>i.store(i3).J().next(t=>{e.deleteObjectStore(i3),e.createObjectStore(i3,{keyPath:i6,autoIncrement:!0}).createIndex(i5,i4,{unique:!0});let r=i.store(i3),n=t.map(e=>r.put(e));return iR.waitFor(n)}))),s=s.next(()=>{e.createObjectStore(sw,{keyPath:"clientId"})})),r<5&&n>=5&&(s=s.next(()=>this.gi(i))),r<6&&n>=6&&(s=s.next(()=>(e.createObjectStore(ss),this.pi(i)))),r<7&&n>=7&&(s=s.next(()=>this.yi(i))),r<8&&n>=8&&(s=s.next(()=>this.wi(e,i))),r<9&&n>=9&&(s=s.next(()=>{e.objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&n>=10&&(s=s.next(()=>this.Si(i))),r<11&&n>=11&&(s=s.next(()=>{e.createObjectStore(sv,{keyPath:"bundleId"}),e.createObjectStore(sI,{keyPath:"name"})})),r<12&&n>=12&&(s=s.next(()=>{let t;(t=e.createObjectStore(sD,{keyPath:sR})).createIndex(sO,sP,{unique:!1}),t.createIndex(sL,sM,{unique:!1})}
6)),r<13&&n>=13&&(s=s.next(()=>{let t;(t=e.createObjectStore(i7,{keyPath:se})).createIndex(st,sr),t.createIndex(sn,si)}).next(()=>this.bi(e,i)).next(()=>e.deleteObjectStore(iZ))),r<14&&n>=14&&(s=s.next(()=>this.Di(e,i))),r<15&&n>=15&&(s=s.next(()=>{e.createObjectStore(sb,{keyPath:"indexId",autoIncrement:!0}).createIndex(s_,"collectionGroup",{unique:!1}),e.createObjectStore(sE,{keyPath:sT}).createIndex(sS,sC,{unique:!1}),e.createObjectStore(sA,{keyPath:sk}).createIndex(sx,sN,{unique:!1})})),r<16&&n>=16&&(s=s.next(()=>{t.objectStore(sE).clear()}).next(()=>{t.objectStore(sA).clear()})),r<17&&n>=17&&(s=s.next(()=>{e.createObjectStore(sV,{keyPath:"name"})})),r<18&&n>=18&&F()&&(s=s.next(()=>{t.objectStore(sE).clear()}).next(()=>{t.objectStore(sA).clear()})),s}pi(e){let t=0;return e.store(iZ).ee((e,r)=>{t+=uy(r)}).next(()=>{let r={byteSize:t};return e.store(ss).put(sa,r)})}gi(e){let t=e.store(i2),r=e.store(i3);return t.J().next(t=>iR.forEach(t,t=>{let n=IDBKeyRange.bound([t.userId,-1],[t.userId,t.lastAcknowledgedBatchId]);return r.J(i5,n).next(r=>iR.forEach(r,r=>{nW(r.userId===t.userId,18650,"Cannot process batch from unexpected user",{batchId:r.batchId});let n=l$(this.serializer,r);return ug(e,t.userId,n).next(()=>{})}))}))}yi(e){let t=e.store(sh),r=e.store(iZ);return e.store(sm).get(sp).next(e=>{let n=[];return r.ee((r,i)=>{let s=new ii(r),a=[0,iY(s)];n.push(t.get(a).next(r=>r?iR.resolve():t.put({targetId:0,path:iY(s),sequenceNumber:e.highestListenSequenceNumber})))}).next(()=>iR.waitFor(n))})}wi(e,t){e.createObjectStore(sg,{keyPath:sy});let r=t.store(sg),n=new uu,i=e=>{if(n.add(e)){let t=e.lastSegment(),n=e.popLast();return r.put({collectionId:t,parent:iY(n)})}};return t.store(iZ).ee({Y:!0},(e,t)=>i(new ii(e).popLast())).next(()=>t.store(i9).ee({Y:!0},([e,t,r],n)=>i(iX(t).popLast())))}Si(e){let t=e.store(so);return t.ee((e,r)=>{let n=lK(r),i=lG(this.serializer,n);return t.put(i)})}bi(e,t){let r=t.store(iZ),n=[];return r.ee((e,r)=>{let i=t.store(i7),s=(r.document?new io(ii.fromString(r.document.name).popFirst(5)):r.noDocument?io.fromSegments(r.noDocument.path):r.unknownDocument?io.fromSegments(r.unknownDocument.path):nG(36783)).path.toArray(),a={prefixPath:s.slice(0,s.length-2),collectionGroup:s[s.length-2],documentId:s[s.length-1],readTime:r.readTime||[0,0],unknownDocument:r.unknownDocument,noDocument:r.noDocument,document:r.document,hasCommittedMutations:!!r.hasCommittedMutations};n.push(i.put(a))}).next(()=>iR.waitFor(n))}Di(e,t){let r=t.store(i3),n=new uR(this.serializer),i=new uW(uJ.Vi,this.serializer.yt);return r.J().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??oE();l$(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),iR.forEach(r,(e,r)=>{let s=new nV(r),a=lX.wt(this.serializer,s),o=i.getIndexManager(s);return new uF(n,uw.wt(s,this.serializer,o,i.referenceDelegate),a,o).recalculateAndSaveOverlaysForDocumentKeys(new sz(t,iH.ce),e).next()})})}}function uZ(e){e.createObjectStore(sh,{keyPath:sc}).createIndex(sd,sf,{unique:!0}),e.createObjectStore(so,{keyPath:"targetId"}).createIndex(sl,su,{unique:!0}),e.createObjectStore(sm)}let u0="IndexedDbPersistence",u1="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class u2{constructor(e,t,r,n,i,s,a,o,l,u,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ci=i,this.window=s,this.document=a,this.Fi=l,this.Mi=u,this.xi=h,this.ai=null,this.ui=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Oi=null,this.inForeground=!1,this.Ni=null,this.Bi=null,this.Li=-1/0,this.ki=e=>Promise.resolve(),!u2.v())throw new nJ(nQ.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new ux(this,n),this.qi=t+"main",this.serializer=new lU(o),this.Ki=new iL(this.qi,this.xi,new uX(this.serializer)),this.ci=new lZ,this.li=new u_(this.referenceDelegate,this.serializer),this.remoteDocumentCache=function(e){return new uR(e)}(this.serializer),this.Pi=new lY,this.window&&this.window.localStorage?this.Ui=this.window.localStorage:(this.Ui=null,!1===u&&nz(u0,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.$i().then(()=>
6{if(!this.isPrimary&&!this.allowTabSynchronization)throw new nJ(nQ.FAILED_PRECONDITION,u1);return this.Wi(),this.Qi(),this.Gi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.li.getHighestSequenceNumber(e))}).then(e=>{this.ai=new iH(e,this.Fi)}).then(()=>{this.ui=!0}).catch(e=>(this.Ki&&this.Ki.close(),Promise.reject(e)))}zi(e){return this.ki=async t=>{if(this.started)return e(t)},e(this.isPrimary)}setDatabaseDeletedListener(e){this.Ki.K(async t=>{null===t.newVersion&&await e()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ci.enqueueAndForget(async()=>{this.started&&await this.$i()}))}$i(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",e=>s$(e,sw).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.ji(e).next(e=>{e||(this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)))})}).next(()=>this.Ji(e)).next(t=>this.isPrimary&&!t?this.Hi(e).next(()=>!1):!!t&&this.Zi(e).next(()=>!0))).catch(e=>{if(iU(e))return nq(u0,"Failed to extend owner lease: ",e),this.isPrimary;if(!this.allowTabSynchronization)throw e;return nq(u0,"Releasing owner lease after error during lease refresh",e),!1}).then(e=>{this.isPrimary!==e&&this.Ci.enqueueRetryable(()=>this.ki(e)),this.isPrimary=e})}ji(e){return s$(e,i0).get(i1).next(e=>iR.resolve(this.Xi(e)))}Yi(e){return s$(e,sw).delete(this.clientId)}async es(){if(this.isPrimary&&!this.ts(this.Li,18e5)){this.Li=Date.now();let e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let t=s$(e,sw);return t.J().next(e=>{let r=this.ns(e,18e5),n=e.filter(e=>-1===r.indexOf(e));return iR.forEach(n,e=>t.delete(e.clientId)).next(()=>n)})}).catch(()=>[]);if(this.Ui)for(let t of e)this.Ui.removeItem(this.rs(t.clientId))}}Gi(){this.Bi=this.Ci.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.$i().then(()=>this.es()).then(()=>this.Gi()))}Xi(e){return!!e&&e.ownerId===this.clientId}Ji(e){return this.Mi?iR.resolve(!0):s$(e,i0).get(i1).next(t=>{if(null!==t&&this.ts(t.leaseTimestampMs,5e3)&&!this.ss(t.ownerId)){if(this.Xi(t)&&this.networkEnabled)return!0;if(!this.Xi(t)){if(!t.allowTabSynchronization)throw new nJ(nQ.FAILED_PRECONDITION,u1);return!1}}return!(!this.networkEnabled||!this.inForeground)||s$(e,sw).J().next(e=>void 0===this.ns(e,5e3).find(e=>{if(this.clientId!==e.clientId){let t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&nq(u0,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.ui=!1,this._s(),this.Bi&&(this.Bi.cancel(),this.Bi=null),this.us(),this.cs(),await this.Ki.runTransaction("shutdown","readwrite",[i0,sw],e=>{let t=new sz(e,iH.ce);return this.Hi(t).next(()=>this.Yi(t))}),this.Ki.close(),this.ls()}ns(e,t){return e.filter(e=>this.ts(e.updateTimeMs,t)&&!this.ss(e.clientId))}hs(){return this.runTransaction("getActiveClients","readonly",e=>s$(e,sw).J().next(e=>this.ns(e,18e5).map(e=>e.clientId)))}get started(){return this.ui}getGlobalsCache(){return this.ci}getMutationQueue(e,t){return uw.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new ud(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return lX.wt(this.serializer,e)}getBundleCache(){return this.Pi}runTransaction(e,t,r){var n;let i;nq(u0,"Starting transaction:",e);let s=18===(n=this.xi)||17===n?sq:16===n||15===n?sj:14===n||13===n?sB:12===n?sU:11===n?sF:void nG(60245);return this.Ki.runTransaction(e,"readonly"===t?"readonly":"readwrite",s,n=>(i=new sz(n,this.ai?this.ai.next():iH.ce),"readwrite-primary"===t?this.ji(i).next(e=>!!e||this.Ji(i)).next(t=>{if(!t)throw nz(`Failed to obtain primary lease for action '${e}'.`),this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)),new nJ(nQ.FAILED_PRECONDITION,ix);return r(i)}).next(e=>this.Zi(i).next(()=>e)):this.Ps(i).next(()=>r(i)))).then(e=>(i.raiseOnCommittedEvent(),e))}Ps(e){return s$(e,i0).get(i1).next(e=>{if(null!==e&&this.ts(e.leaseTimestampMs,5e3)&&!this.ss(e.ownerId)&&!this.Xi(e)&&!(this.Mi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new nJ(nQ.FAILED_PRECONDITION,u1)})}Zi(e){let t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return s$(e,i0).put(i1,t)}static v(){return iL.v()}Hi(e){let t=s$(e,i0);return t.get(i1).next(e=>
6this.Xi(e)?(nq(u0,"Releasing primary lease."),t.delete(i1)):iR.resolve())}ts(e,t){let r=Date.now();return!(e<r-t)&&(!(e>r)||(nz(`Detected an update time that is in the future: ${e} > ${r}`),!1))}Wi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ni=()=>{this.Ci.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.$i()))},this.document.addEventListener("visibilitychange",this.Ni),this.inForeground="visible"===this.document.visibilityState)}us(){this.Ni&&(this.document.removeEventListener("visibilitychange",this.Ni),this.Ni=null)}Qi(){"function"==typeof this.window?.addEventListener&&(this.Oi=()=>{this._s();let e=/(?:Version|Mobile)\/1[456]/;V()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ci.enterRestrictedMode(!0),this.Ci.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Oi))}cs(){this.Oi&&(this.window.removeEventListener("pagehide",this.Oi),this.Oi=null)}ss(e){try{let t=null!==this.Ui?.getItem(this.rs(e));return nq(u0,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return nz(u0,"Failed to get zombied client id.",e),!1}}_s(){if(this.Ui)try{this.Ui.setItem(this.rs(this.clientId),String(Date.now()))}catch(e){nz("Failed to set zombie client id.",e)}}ls(){if(this.Ui)try{this.Ui.removeItem(this.rs(this.clientId))}catch(e){}}rs(e){return`firestore_zombie_${this.persistenceKey}_${e}`}}function u3(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class u6{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Ts=r,this.Es=n}static Is(e,t){let r=oE(),n=oE();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new u6(e,t.fromCache,r,n)}}class u5{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class u4{constructor(){this.Rs=!1,this.As=!1,this.Vs=100,this.ds=V()?8:iM(L())>0?6:4}initialize(e,t){this.fs=e,this.indexManager=t,this.Rs=!0}getDocumentsMatchingQuery(e,t,r,n){let i={result:null};return this.gs(e,t).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ps(e,t,n,r).next(e=>{i.result=e})}).next(()=>{if(i.result)return;let r=new u5;return this.ys(e,t,r).next(n=>{if(i.result=n,this.As)return this.ws(e,t,r,n.size)})}).next(()=>i.result)}ws(e,t,r,n){return r.documentReadCount<this.Vs?(nj()<=a.DEBUG&&nq("QueryEngine","SDK will not create cache indexes for query:",oc(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Vs,"documents"),iR.resolve()):(nj()<=a.DEBUG&&nq("QueryEngine","Query:",oc(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ds*n?(nj()<=a.DEBUG&&nq("QueryEngine","The SDK decides to create cache indexes for query:",oc(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,oi(t))):iR.resolve())}gs(e,t){if(ot(t))return iR.resolve(null);let r=oi(t);return this.indexManager.getIndexType(e,r).next(n=>0===n?null:(null!==t.limit&&1===n&&(r=oi(t=ol(t,null,"F"))),this.indexManager.getDocumentsMatchingTarget(e,r).next(n=>{let i=oE(...n);return this.fs.getDocuments(e,i).next(n=>this.indexManager.getMinOffset(e,r).next(r=>{let s=this.Ss(t,n);return this.bs(t,s,i,r.readTime)?this.gs(e,ol(t,null,"F")):this.Ds(e,s,t,r)}))})))}ps(e,t,r,n){return ot(t)||n.isEqual(iw.min())?iR.resolve(null):this.fs.getDocuments(e,r).next(i=>{let s=this.Ss(t,i);return this.bs(t,s,r,n)?iR.resolve(null):(nj()<=a.DEBUG&&nq("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),oc(t)),this.Ds(e,s,t,iS(n,-1)).next(e=>e))})}Ss(e,t){let r=new sY(op(e));return t.forEach((t,n)=>{od(e,n)&&(r=r.add(n))}),r}bs(e,t,r,n){if(null===e.limit)return!1;if(r.size!==t.size)return!0;let i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||i.version.compareTo(n)>0)}ys(e,t,r){return nj()<=a.DEBUG&&nq("QueryEngine","Using full collection scan to execute query:",oc(t)),this.fs.getDocumentsMatchingQuery(e,t,iA.min(),r)}Ds(e,t,r,n){return this.fs.getDocumentsMatchingQuery(e,r,n).next(e=>(t.forEach(t=>{e=e.insert(t.key,t)}),e))}}let u8="LocalStore";class u9{constructor(e,t,r,n){this.persistence=e,this.Cs=t,this.serializer
6=n,this.vs=new sW(n8),this.Fs=new om(e=>a3(e),a6),this.Ms=new Map,this.xs=e.getRemoteDocumentCache(),this.li=e.getTargetCache(),this.Pi=e.getBundleCache(),this.Os(r)}Os(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new uF(this.xs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.xs.setIndexManager(this.indexManager),this.Cs.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",t=>e.collect(t,this.vs))}}async function u7(e,t){return await e.persistence.runTransaction("Handle user change","readonly",r=>{let n;return e.mutationQueue.getAllMutationBatches(r).next(i=>(n=i,e.Os(t),e.mutationQueue.getAllMutationBatches(r))).next(t=>{let i=[],s=[],a=oE();for(let e of n)for(let t of(i.push(e.batchId),e.mutations))a=a.add(t.key);for(let e of t)for(let t of(s.push(e.batchId),e.mutations))a=a.add(t.key);return e.localDocuments.getDocuments(r,a).next(e=>({Ns:e,removedBatchIds:i,addedBatchIds:s}))})})}function he(e){return e.persistence.runTransaction("Get last remote snapshot version","readonly",t=>e.li.getLastRemoteSnapshotVersion(t))}function ht(e,t,r){let n=oE(),i=oE();return r.forEach(e=>n=n.add(e)),t.getEntries(e,n).next(e=>{let n=og;return r.forEach((r,s)=>{let a=e.get(r);s.isFoundDocument()!==a.isFoundDocument()&&(i=i.add(r)),s.isNoDocument()&&s.version.isEqual(iw.min())?(t.removeEntry(r,s.readTime),n=n.insert(r,s)):!a.isValidDocument()||s.version.compareTo(a.version)>0||0===s.version.compareTo(a.version)&&a.hasPendingWrites?(t.addEntry(s),n=n.insert(r,s)):nq(u8,"Ignoring outdated watch update for ",r,". Current version:",a.version," Watch version:",s.version)}),{Bs:n,Ls:i}})}function hr(e,t){return e.persistence.runTransaction("Allocate target","readwrite",r=>{let n;return e.li.getTargetData(r,t).next(i=>i?(n=i,iR.resolve(n)):e.li.allocateTargetId(r).next(i=>(n=new lF(t,i,"TargetPurposeListen",r.currentSequenceNumber),e.li.addTargetData(r,n).next(()=>n))))}).then(r=>{let n=e.vs.get(r.targetId);return(null===n||r.snapshotVersion.compareTo(n.snapshotVersion)>0)&&(e.vs=e.vs.insert(r.targetId,r),e.Fs.set(t,r.targetId)),r})}async function hn(e,t,r){let n=e.vs.get(t);try{r||await e.persistence.runTransaction("Release target",r?"readwrite":"readwrite-primary",t=>e.persistence.referenceDelegate.removeTarget(t,n))}catch(e){if(!iU(e))throw e;nq(u8,`Failed to update sequence numbers for target ${t}: ${e}`)}e.vs=e.vs.remove(t),e.Fs.delete(n.target)}function hi(e,t,r){let n=iw.min(),i=oE();return e.persistence.runTransaction("Execute query","readwrite",s=>{var a;let o;return(a=oi(t),void 0!==(o=e.Fs.get(a))?iR.resolve(e.vs.get(o)):e.li.getTargetData(s,a)).next(t=>{if(t)return n=t.lastLimboFreeSnapshotVersion,e.li.getMatchingKeysForTargetId(s,t.targetId).next(e=>{i=e})}).next(()=>e.Cs.getDocumentsMatchingQuery(s,t,r?n:iw.min(),r?i:oE())).next(r=>(ho(e,of(t),r),{documents:r,ks:i}))})}function hs(e,t){let r=e.li,n=e.vs.get(t);return n?Promise.resolve(n.target):e.persistence.runTransaction("Get target data","readonly",e=>r.At(e,t).next(e=>e?e.target:null))}function ha(e,t){let r=e.Ms.get(t)||iw.min();return e.persistence.runTransaction("Get new document changes","readonly",n=>e.xs.getAllFromCollectionGroup(n,t,iS(r,-1),Number.MAX_SAFE_INTEGER)).then(r=>(ho(e,t,r),r))}function ho(e,t,r){let n=e.Ms.get(t)||iw.min();r.forEach((e,t)=>{t.readTime.compareTo(n)>0&&(n=t.readTime)}),e.Ms.set(t,n)}async function hl(e,t,r,n){let i=oE(),s=og;for(let e of r){let r=t.qs(e.metadata.name);e.document&&(i=i.add(r));let n=t.Ks(e);n.setReadTime(t.Us(e.metadata.readTime)),s=s.insert(r,n)}let a=e.xs.newChangeBuffer({trackRemovals:!0}),o=await hr(e,oi(oe(ii.fromString(`__bundle__/docs/${n}`))));return e.persistence.runTransaction("Apply bundle documents","readwrite",t=>ht(t,a,s).next(e=>(a.apply(t),e)).next(r=>e.li.removeMatchingKeysForTargetId(t,o.targetId).next(()=>e.li.addMatchingKeys(t,i,o.targetId)).next(()=>e.localDocuments.getLocalViewOfDocuments(t,r.Bs,r.Ls)).next(()=>r.Bs)))}async function hu(e,t,r=oE()){let n=await hr(e,oi(lH(t.bundledQuery)));return e.persistence.runTransaction("Save named query","readwrite",i=>{let s=ly(t.readTime);if(n.snapshotVersion.compareTo(s)>=0)return e.Pi.saveNamedQuery(i,t);let a=n.withResumeToken(s2.EMPTY_BYTE_STRING,s);return e.vs=e.vs.insert(a.targetId,a),e.li.updateTargetData(i,a).next(()=>e.li.removeMatchingKeysForTargetId(i,n.targetId)).next(()=>e.li.addMatchingKeys(i,r,n.targetId)).next(()=>e.Pi.saveNamedQuery(i,t))})}let hh="firestore_clients";function hc(e,t){return`${hh}_${e}_${t}`}let hd="firestore_mutations";function hf(e,t,r){let n=`${hd}_${e}_${r}`;return t.isAuthenticated()&&(n+=`_${t.uid}`),n}let hp="firestore_targets";function hm(e,t){return`${hp}_${e}_${t}`}
6let hg="SharedClientState";class hy{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static $s(e,t,r){let n=JSON.parse(r),i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new nJ(n.error.code,n.error.message)),s?new hy(e,t,n.state,i):(nz(hg,`Failed to parse mutation state for ID '${t}': ${r}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class hw{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static $s(e,t){let r=JSON.parse(t),n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new nJ(r.error.code,r.error.message)),i?new hw(e,r.state,n):(nz(hg,`Failed to parse target state for ID '${e}': ${t}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class hv{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static $s(e,t){let r=JSON.parse(t),n="object"==typeof r&&r.activeTargetIds instanceof Array,i=oT;for(let e=0;n&&e<r.activeTargetIds.length;++e)n=iJ(r.activeTargetIds[e]),i=i.add(r.activeTargetIds[e]);return n?new hv(e,i):(nz(hg,`Failed to parse client data for instance '${e}': ${t}`),null)}}class hI{constructor(e,t){this.clientId=e,this.onlineState=t}static $s(e){let t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new hI(t.clientId,t.onlineState):(nz(hg,`Failed to parse online state: ${e}`),null)}}class hb{constructor(){this.activeTargetIds=oT}Qs(e){this.activeTargetIds=this.activeTargetIds.add(e)}Gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Ws(){return JSON.stringify({activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()})}}class h_{constructor(e,t,r,n,i){this.window=e,this.Ci=t,this.persistenceKey=r,this.zs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.js=this.Js.bind(this),this.Hs=new sW(n8),this.started=!1,this.Zs=[];const s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Xs=hc(this.persistenceKey,this.zs),this.Ys=function(e){return`firestore_sequence_number_${e}`}(this.persistenceKey),this.Hs=this.Hs.insert(this.zs,new hb),this.eo=RegExp(`^${hh}_${s}_([^_]*)$`),this.no=RegExp(`^${hd}_${s}_(\\d+)(?:_(.*))?$`),this.ro=RegExp(`^${hp}_${s}_(\\d+)$`),this.io=function(e){return`firestore_online_state_${e}`}(this.persistenceKey),this.so=function(e){return`firestore_bundle_loaded_v2_${e}`}(this.persistenceKey),this.window.addEventListener("storage",this.js)}static v(e){return!(!e||!e.localStorage)}async start(){for(let e of(await this.syncEngine.hs())){if(e===this.zs)continue;let t=this.getItem(hc(this.persistenceKey,e));if(t){let r=hv.$s(e,t);r&&(this.Hs=this.Hs.insert(r.clientId,r))}}this.oo();let e=this.storage.getItem(this.io);if(e){let t=this._o(e);t&&this.ao(t)}for(let e of this.Zs)this.Js(e);this.Zs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Ys,JSON.stringify(e))}getAllActiveQueryTargets(){return this.uo(this.Hs)}isActiveQueryTarget(e){let t=!1;return this.Hs.forEach((r,n)=>{n.activeTargetIds.has(e)&&(t=!0)}),t}addPendingMutation(e){this.co(e,"pending")}updateMutationState(e,t,r){this.co(e,t,r),this.lo(e)}addLocalQueryTarget(e,t=!0){let r="not-current";if(this.isActiveQueryTarget(e)){let t=this.storage.getItem(hm(this.persistenceKey,e));if(t){let n=hw.$s(e,t);n&&(r=n.state)}}return t&&this.ho.Qs(e),this.oo(),r}removeLocalQueryTarget(e){this.ho.Gs(e),this.oo()}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(hm(this.persistenceKey,e))}updateQueryState(e,t,r){this.Po(e,t,r)}
6handleUserChange(e,t,r){t.forEach(e=>{this.lo(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.To(e)}notifyBundleLoaded(e){this.Eo(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.js),this.removeItem(this.Xs),this.started=!1)}getItem(e){let t=this.storage.getItem(e);return nq(hg,"READ",e,t),t}setItem(e,t){nq(hg,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){nq(hg,"REMOVE",e),this.storage.removeItem(e)}Js(e){if(e.storageArea===this.storage){if(nq(hg,"EVENT",e.key,e.newValue),e.key===this.Xs)return void nz("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.Ci.enqueueRetryable(async()=>{if(this.started){if(null!==e.key){if(this.eo.test(e.key)){if(null==e.newValue){let t=this.Io(e.key);return this.Ro(t,null)}{let t=this.Ao(e.key,e.newValue);if(t)return this.Ro(t.clientId,t)}}else if(this.no.test(e.key)){if(null!==e.newValue){let t=this.Vo(e.key,e.newValue);if(t)return this.mo(t)}}else if(this.ro.test(e.key)){if(null!==e.newValue){let t=this.fo(e.key,e.newValue);if(t)return this.po(t)}}else if(e.key===this.io){if(null!==e.newValue){let t=this._o(e.newValue);if(t)return this.ao(t)}}else if(e.key===this.Ys){let t=function(e){let t=iH.ce;if(null!=e)try{let r=JSON.parse(e);nW("number"==typeof r,30636,{yo:e}),t=r}catch(e){nz(hg,"Failed to read sequence number from WebStorage",e)}return t}(e.newValue);t!==iH.ce&&this.sequenceNumberHandler(t)}else if(e.key===this.so){let t=this.wo(e.newValue);await Promise.all(t.map(e=>this.syncEngine.So(e)))}}}else this.Zs.push(e)})}}get ho(){return this.Hs.get(this.zs)}oo(){this.setItem(this.Xs,this.ho.Ws())}co(e,t,r){let n=new hy(this.currentUser,e,t,r),i=hf(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Ws())}lo(e){let t=hf(this.persistenceKey,this.currentUser,e);this.removeItem(t)}To(e){let t={clientId:this.zs,onlineState:e};this.storage.setItem(this.io,JSON.stringify(t))}Po(e,t,r){let n=hm(this.persistenceKey,e),i=new hw(e,t,r);this.setItem(n,i.Ws())}Eo(e){let t=JSON.stringify(Array.from(e));this.setItem(this.so,t)}Io(e){let t=this.eo.exec(e);return t?t[1]:null}Ao(e,t){let r=this.Io(e);return hv.$s(r,t)}Vo(e,t){let r=this.no.exec(e),n=Number(r[1]),i=void 0!==r[2]?r[2]:null;return hy.$s(new nV(i),n,t)}fo(e,t){let r=Number(this.ro.exec(e)[1]);return hw.$s(r,t)}_o(e){return hI.$s(e)}wo(e){return JSON.parse(e)}async mo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.bo(e.batchId,e.state,e.error);nq(hg,`Ignoring mutation for non-active user ${e.user.uid}`)}po(e){return this.syncEngine.Do(e.targetId,e.state,e.error)}Ro(e,t){let r=t?this.Hs.insert(e,t):this.Hs.remove(e),n=this.uo(this.Hs),i=this.uo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Co(s,a).then(()=>{this.Hs=r})}ao(e){this.Hs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}uo(e){let t=oT;return e.forEach((e,r)=>{t=t.unionWith(r.activeTargetIds)}),t}}class hE{constructor(){this.vo=new hb,this.Fo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.vo.Qs(e),this.Fo[e]||"not-current"}updateQueryState(e,t,r){this.Fo[e]=t}removeLocalQueryTarget(e){this.vo.Gs(e)}isLocalQueryTarget(e){return this.vo.activeTargetIds.has(e)}clearQueryState(e){delete this.Fo[e]}getAllActiveQueryTargets(){return this.vo.activeTargetIds}isActiveQueryTarget(e){return this.vo.activeTargetIds.has(e)}start(){return this.vo=new hb,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class hT{Mo(e){}shutdown(){}}let hS="ConnectivityMonitor";class hC{constructor(){this.xo=()=>this.Oo(),this.No=()=>this.Bo(),this.Lo=[],this.ko()}Mo(e){this.Lo.push(e)}shutdown(){window.removeEventListener("online",this.xo),window.removeEventListener("offline",this.No)}ko(){window.addEventListener("online",this.xo),window.addEventListener("offline",this.No)}Oo(){for(let e of(nq(hS,"Network connectivity changed: AVAILABLE"),this.Lo))e(0)}Bo(){for(let e of(nq(hS,"Network connectivity changed: UNAVAILABLE"),this.Lo))e(1)}static v(){return"u">typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let hA=null;function hk(){return null===hA?hA=0x10000000+Math.round(0x80000000*Math.random()):hA++,"0x"+hA.toString(16)}let hx="RestConnection",hN={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregation
6Query:"runAggregationQuery",ExecutePipeline:"executePipeline"};class hD{get qo(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Ko=t+"://"+e.host,this.Uo=`projects/${r}/databases/${n}`,this.$o=this.databaseId.database===as?`project_id=${r}`:`project_id=${r}&database_id=${n}`}Wo(e,t,r,n,i){let s=hk(),a=this.Qo(e,t.toUriEncodedString());nq(hx,`Sending RPC '${e}' ${s}:`,a,r);let o={"google-cloud-resource-prefix":this.Uo,"x-goog-request-params":this.$o};this.Go(o,n,i);let{host:l}=new URL(a),u=Y(l);return this.zo(e,a,o,r,u).then(t=>(nq(hx,`Received RPC '${e}' ${s}: `,t),t),t=>{throw n$(hx,`RPC '${e}' ${s} failed with error: `,t,"url: ",a,"request:",r),t})}jo(e,t,r,n,i,s){return this.Wo(e,t,r,n,i)}Go(e,t,r){e["X-Goog-Api-Client"]="gl-js/ fire/"+nF,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach((t,r)=>e[r]=t),r&&r.headers.forEach((t,r)=>e[r]=t)}Qo(e,t){let r=hN[e],n=`${this.Ko}/v1/${t}:${r}`;return this.databaseInfo.apiKey&&(n=`${n}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),n}terminate(){}}class hR{constructor(e){this.Jo=e.Jo,this.Ho=e.Ho}Zo(e){this.Xo=e}Yo(e){this.e_=e}t_(e){this.n_=e}onMessage(e){this.r_=e}close(){this.Ho()}send(e){this.Jo(e)}i_(){this.Xo()}s_(){this.e_()}o_(e){this.n_(e)}__(e){this.r_(e)}}let hO="WebChannelConnection",hP=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};class hL extends hD{constructor(e){super(e),this.a_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}static u_(){hL.c_||(hP(m(),p.STAT_EVENT,e=>{e.stat===f.PROXY?nq(hO,"STAT_EVENT: detected buffering proxy"):e.stat===f.NOPROXY&&nq(hO,"STAT_EVENT: detected no buffering proxy")}),hL.c_=!0)}zo(e,t,r,n,i){let s=hk();return new Promise((i,a)=>{let o=new u;o.setWithCredentials(!0),o.listenOnce(c.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case d.NO_ERROR:let t=o.getResponseJson();nq(hO,`XHR for RPC '${e}' ${s} received:`,JSON.stringify(t)),i(t);break;case d.TIMEOUT:nq(hO,`RPC '${e}' ${s} timed out`),a(new nJ(nQ.DEADLINE_EXCEEDED,"Request time out"));break;case d.HTTP_ERROR:let r=o.getStatus();if(nq(hO,`RPC '${e}' ${s} failed with status:`,r,"response text:",o.getResponseText()),r>0){let e=o.getResponseJson();Array.isArray(e)&&(e=e[0]);let t=e?.error;if(t&&t.status&&t.message){let e,r=(e=t.status.toLowerCase().replace(/_/g,"-"),Object.values(nQ).indexOf(e)>=0?e:nQ.UNKNOWN);a(new nJ(r,t.message))}else a(new nJ(nQ.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new nJ(nQ.UNAVAILABLE,"Connection failed."));break;default:nG(9055,{l_:e,streamId:s,h_:o.getLastErrorCode(),P_:o.getLastError()})}}finally{nq(hO,`RPC '${e}' ${s} completed.`)}});let l=JSON.stringify(n);nq(hO,`RPC '${e}' ${s} sending request:`,n),o.send(t,"POST",l,r,15)})}T_(e,t,r){let n=hk(),i=[this.Ko,"/","google.firestore.v1.Firestore","/",e,"/channel"],s=this.createWebChannelTransport(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},o=this.longPollingOptions.timeoutSeconds;void 0!==o&&(a.longPollingTimeout=Math.round(1e3*o)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Go(a.initMessageHeaders,t,r),a.encodeInitMessageHeaders=!0;let l=i.join("");nq(hO,`Creating RPC '${e}' stream ${n}: ${l}`,a);let u=s.createWebChannel(l,a);this.E_(u);let c=!1,d=!1,f=new hR({Jo:t=>{d?nq(hO,`Not sending because RPC '${e}' stream ${n} is closed:`,t):(c||(nq(hO,`Opening RPC '${e}' stream ${n} transport.`),u.open(),c=!0),nq(hO,`RPC '${e}' stream ${n} sending:`,t),u.send(t))},Ho:()=>u.close()});return hP(u,h.EventType.OPEN,()=>{d||(nq(hO,`RPC '${e}' stream ${n} transport opened.`),f.i_())}),hP(u,h.EventType.CLOSE,()=>{d||(d=!0,nq(hO,`RPC '${e}' stream ${n} transport closed`),f.o_(),this.I_(u))}
6),hP(u,h.EventType.ERROR,t=>{d||(d=!0,n$(hO,`RPC '${e}' stream ${n} transport errored. Name:`,t.name,"Message:",t.message),f.o_(new nJ(nQ.UNAVAILABLE,"The operation could not be completed")))}),hP(u,h.EventType.MESSAGE,t=>{if(!d){let r=t.data[0];nW(!!r,16349);let i=r?.error||r[0]?.error;if(i){nq(hO,`RPC '${e}' stream ${n} received error:`,i);let t=i.status,r=function(e){let t=y[e];if(void 0!==t)return o3(t)}(t),s=i.message;"NOT_FOUND"===t&&s.includes("database")&&s.includes("does not exist")&&s.includes(this.databaseId.database)&&n$(`Database '${this.databaseId.database}' not found. Please check your project configuration.`),void 0===r&&(r=nQ.INTERNAL,s="Unknown error status: "+t+" with message "+i.message),d=!0,f.o_(new nJ(r,s)),u.close()}else nq(hO,`RPC '${e}' stream ${n} received:`,r),f.__(r)}}),hL.u_(),setTimeout(()=>{f.s_()},0),f}terminate(){this.a_.forEach(e=>e.close()),this.a_=[]}E_(e){this.a_.push(e)}I_(e){this.a_=this.a_.filter(t=>t===e)}Go(e,t,r){super.Go(e,t,r),this.databaseInfo.apiKey&&(e["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return g()}}function hM(){return"u">typeof window?window:null}function hV(){return"u">typeof document?document:null}function hF(e){return new lf(e,!0)}hL.c_=!1;class hU{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ci=e,this.timerId=t,this.R_=r,this.A_=n,this.V_=i,this.d_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.d_=0}g_(){this.d_=this.V_}p_(e){this.cancel();let t=Math.floor(this.d_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);n>0&&nq("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.d_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.m_=this.Ci.enqueueAfterDelay(this.timerId,n,()=>(this.f_=Date.now(),e())),this.d_*=this.A_,this.d_<this.R_&&(this.d_=this.R_),this.d_>this.V_&&(this.d_=this.V_)}w_(){null!==this.m_&&(this.m_.skipDelay(),this.m_=null)}cancel(){null!==this.m_&&(this.m_.cancel(),this.m_=null)}y_(){return(Math.random()-.5)*this.d_}}let hB="PersistentStream";class hj{constructor(e,t,r,n,i,s,a,o){this.Ci=e,this.S_=r,this.b_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.D_=0,this.C_=null,this.v_=null,this.stream=null,this.F_=0,this.M_=new hU(e,t)}x_(){return 1===this.state||5===this.state||this.O_()}O_(){return 2===this.state||3===this.state}start(){this.F_=0,4!==this.state?this.auth():this.N_()}async stop(){this.x_()&&await this.close(0)}B_(){this.state=0,this.M_.reset()}L_(){this.O_()&&null===this.C_&&(this.C_=this.Ci.enqueueAfterDelay(this.S_,6e4,()=>this.k_()))}q_(e){this.K_(),this.stream.send(e)}async k_(){if(this.O_())return this.close(0)}K_(){this.C_&&(this.C_.cancel(),this.C_=null)}U_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.K_(),this.U_(),this.M_.cancel(),this.D_++,4!==e?this.M_.reset():t&&t.code===nQ.RESOURCE_EXHAUSTED?(nz(t.toString()),nz("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===nQ.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.W_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.t_(t)}W_(){}auth(){this.state=1;let e=this.Q_(this.D_),t=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,r])=>{this.D_===t&&this.G_(e,r)},t=>{e(()=>{let e=new nJ(nQ.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.Q_(this.D_);this.stream=this.j_(e,t),this.stream.Zo(()=>{r(()=>this.listener.Zo())}),this.stream.Yo(()=>{r(()=>(this.state=2,this.v_=this.Ci.enqueueAfterDelay(this.b_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.Yo()))}),this.stream.t_(e=>{r(()=>this.z_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.F_?this.J_(e):this.onNext(e))})}N_(){this.state=5,this.M_.p_(async()=>{this.state=0,this.start()})}z_(e){return nq(hB,`close with error: ${e}`),this.stream=null,this.close(4,e)}Q_(e){return t=>{this.Ci.enqueueAndForget(()=>this.D_===e?t():(nq(hB,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class hq extends hj{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer
6=i}j_(e,t){return this.connection.T_("Listen",e,t)}J_(e){return this.onNext(e)}onNext(e){this.M_.reset();let t=function(e,t){let r;if("targetChange"in t){var n,i;t.targetChange;let s="NO_CHANGE"===(n=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===n?1:"REMOVE"===n?2:"CURRENT"===n?3:"RESET"===n?4:nG(39313,{state:n}),a=t.targetChange.targetIds||[],o=(i=t.targetChange.resumeToken,e.useProto3Json?(nW(void 0===i||"string"==typeof i,58123),s2.fromBase64String(i||"")):(nW(void 0===i||i instanceof nR.Buffer||i instanceof Uint8Array,16193),s2.fromUint8Array(i||new Uint8Array))),l=t.targetChange.cause;r=new ls(s,a,o,l&&new nJ(void 0===l.code?nQ.UNKNOWN:o3(l.code),l.message||"")||null)}else if("documentChange"in t){t.documentChange;let n=t.documentChange;n.document,n.document.name,n.document.updateTime;let i=l_(e,n.document.name),s=ly(n.document.updateTime),a=n.document.createTime?ly(n.document.createTime):iw.min(),o=new aO({mapValue:{fields:n.document.fields}}),l=aP.newFoundDocument(i,s,a,o);r=new ln(n.targetIds||[],n.removedTargetIds||[],l.key,l)}else if("documentDelete"in t){t.documentDelete;let n=t.documentDelete;n.document;let i=l_(e,n.document),s=n.readTime?ly(n.readTime):iw.min(),a=aP.newNoDocument(i,s);r=new ln([],n.removedTargetIds||[],a.key,a)}else if("documentRemove"in t){t.documentRemove;let n=t.documentRemove;n.document;let i=l_(e,n.document);r=new ln([],n.removedTargetIds||[],i,null)}else{if(!("filter"in t))return nG(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;let{count:n=0,unchangedNames:i}=e,s=new o1(n,i);r=new li(e.targetId,s)}}return r}(this.serializer,e),r=function(e){if(!("targetChange"in e))return iw.min();let t=e.targetChange;return t.targetIds&&t.targetIds.length?iw.min():t.readTime?ly(t.readTime):iw.min()}(e);return this.listener.H_(t,r)}Z_(e){let t,r={};r.database=lS(this.serializer),r.addTarget=function(e,t){let r,n=t.target;if((r=a5(n)?{documents:lD(e,n)}:{query:lR(e,n).ft}).targetId=t.targetId,t.resumeToken.approximateByteSize()>0){r.resumeToken=lg(e,t.resumeToken);let n=lp(e,t.expectedCount);null!==n&&(r.expectedCount=n)}else if(t.snapshotVersion.compareTo(iw.min())>0){r.readTime=lm(e,t.snapshotVersion.toTimestamp());let n=lp(e,t.expectedCount);null!==n&&(r.expectedCount=n)}return r}(this.serializer,e);let n=(this.serializer,null==(t=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return nG(28987,{purpose:e})}}(e.purpose))?null:{"goog-listen-tags":t});n&&(r.labels=n),this.q_(r)}X_(e){let t={};t.database=lS(this.serializer),t.removeTarget=e,this.q_(t)}}class hz extends hj{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get Y_(){return this.F_>0}start(){this.lastStreamToken=void 0,super.start()}W_(){this.Y_&&this.ea([])}j_(e,t){return this.connection.T_("Write",e,t)}J_(e){return nW(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,nW(!e.writeResults||0===e.writeResults.length,55816),this.listener.ta()}onNext(e){var t,r;nW(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.M_.reset();let n=(t=e.writeResults,r=e.commitTime,t&&t.length>0?(nW(void 0!==r,14353),t.map(e=>{let t;return(t=e.updateTime?ly(e.updateTime):ly(r)).isEqual(iw.min())&&(t=ly(r)),new oF(t,e.transformResults||[])})):[]),i=ly(e.commitTime);return this.listener.na(i,n)}ra(){let e={};e.database=lS(this.serializer),this.q_(e)}ea(e){let t={streamToken:this.lastStreamToken,writes:e.map(e=>lx(this.serializer,e))};this.q_(t)}}class h${}class hK extends h${constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.ia=!1}sa(){if(this.ia)throw new nJ(nQ.FAILED_PRECONDITION,"The client has already been terminated.")}Wo(e,t,r,n){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([i,s])=>this.connection.Wo(e,lv(t,r),n,i,s)).catch(e=>{throw"FirebaseError"===e.name?(e.code===nQ.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new nJ(nQ.UNKNOWN,e.toString())})}jo(e,t,r,n,i){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([s,a])=>this.connection.jo(e,lv(t,r),n,s,a,i)).catch(e=>{throw"FirebaseError"===e.name?(e.code===nQ.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new nJ(nQ.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class hG{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.oa=0,this._a=null,this.aa=!0}ua(){0===this.oa&&(this.ca("Unknown"),this._a=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this._a=null,this.la("Backend didn't respond within 10 seconds."),this.ca("Offline"),Promise.resolve())))}ha(e){"Online"===this.state?this.ca("Unknown"):(this.oa++,this.oa>=1&&(this.Pa(),this.la(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.ca("Offline")))}set(e){this.Pa(),this.oa=0,"Online"===e&&(this.aa=!1),this.ca(e)}ca(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}la(e){let t=`Could not reach Cloud Firestore backend. ${e} 7This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.aa?(nz(t),this.aa=!1):nq("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let hH="RemoteStore";
7class hW{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ta=[],this.Ea=new Map,this.Ia=new Set,this.Ra=[],this.Aa=i,this.Aa.Mo(e=>{r.enqueueAndForget(async()=>{h3(this)&&(nq(hH,"Restarting streams for network reachability change."),await async function(e){e.Ia.add(4),await hJ(e),e.Va.set("Unknown"),e.Ia.delete(4),await hQ(e)}(this))})}),this.Va=new hG(r,n)}}async function hQ(e){if(h3(e))for(let t of e.Ra)await t(!0)}async function hJ(e){for(let t of e.Ra)await t(!1)}function hY(e,t){e.Ea.has(t.targetId)||(e.Ea.set(t.targetId,t),h2(e)?h1(e):cu(e).O_()&&hZ(e,t))}function hX(e,t){let r=cu(e);e.Ea.delete(t),r.O_()&&h0(e,t),0===e.Ea.size&&(r.O_()?r.L_():h3(e)&&e.Va.set("Unknown"))}function hZ(e,t){if(e.da.$e(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(iw.min())>0){let r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(r)}cu(e).Z_(t)}function h0(e,t){e.da.$e(t),cu(e).X_(t)}function h1(e){e.da=new lo({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),At:t=>e.Ea.get(t)||null,ht:()=>e.datastore.serializer.databaseId}),cu(e).start(),e.Va.ua()}function h2(e){return h3(e)&&!cu(e).x_()&&e.Ea.size>0}function h3(e){return 0===e.Ia.size}async function h6(e){e.Va.set("Online")}async function h5(e){e.Ea.forEach((t,r)=>{hZ(e,t)})}async function h4(e,t){e.da=void 0,h2(e)?(e.Va.ha(t),h1(e)):e.Va.set("Unknown")}async function h8(e,t,r){if(e.Va.set("Online"),t instanceof ls&&2===t.state&&t.cause)try{await async function(e,t){let r=t.cause;for(let n of t.targetIds)e.Ea.has(n)&&(await e.remoteSyncer.rejectListen(n,r),e.Ea.delete(n),e.da.removeTarget(n))}(e,t)}catch(r){nq(hH,"Failed to remove targets %s: %s ",t.targetIds.join(","),r),await h9(e,r)}else if(t instanceof ln?e.da.Xe(t):t instanceof li?e.da.st(t):e.da.tt(t),!r.isEqual(iw.min()))try{let t,n=await he(e.localStore);r.compareTo(n)>
7=0&&await ((t=e.da.Tt(r)).targetChanges.forEach((t,n)=>{if(t.resumeToken.approximateByteSize()>0){let i=e.Ea.get(n);i&&e.Ea.set(n,i.withResumeToken(t.resumeToken,r))}}),t.targetMismatches.forEach((t,r)=>{let n=e.Ea.get(t);if(!n)return;e.Ea.set(t,n.withResumeToken(s2.EMPTY_BYTE_STRING,n.snapshotVersion)),h0(e,t);let i=new lF(n.target,t,r,n.sequenceNumber);hZ(e,i)}),e.remoteSyncer.applyRemoteEvent(t))}catch(t){nq(hH,"Failed to raise snapshot:",t),await h9(e,t)}}async function h9(e,t,r){if(!iU(t))throw t;e.Ia.add(1),await hJ(e),e.Va.set("Offline"),r||(r=()=>he(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{nq(hH,"Retrying IndexedDB access"),await r(),e.Ia.delete(1),await hQ(e)})}function h7(e,t){return t().catch(r=>h9(e,r,t))}async function ce(e){var t;let r=ch(e),n=e.Ta.length>0?e.Ta[e.Ta.length-1].batchId:-1;for(;h3(t=e)&&t.Ta.length<10;)try{let t=await function(e,t){return e.persistence.runTransaction("Get next mutation batch","readonly",r=>(void 0===t&&(t=-1),e.mutationQueue.getNextMutationBatchAfterBatchId(r,t)))}(e.localStore,n);if(null===t){0===e.Ta.length&&r.L_();break}n=t.batchId,function(e,t){e.Ta.push(t);let r=ch(e);r.O_()&&r.Y_&&r.ea(t.mutations)}(e,t)}catch(t){await h9(e,t)}ct(e)&&cr(e)}function ct(e){return h3(e)&&!ch(e).x_()&&e.Ta.length>0}function cr(e){ch(e).start()}async function cn(e){ch(e).ra()}async function ci(e){let t=ch(e);for(let r of e.Ta)t.ea(r.mutations)}async function cs(e,t,r){let n=e.Ta.shift(),i=oZ.from(n,t,r);await h7(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await ce(e)}async function ca(e,t){t&&ch(e).Y_&&await async function(e,t){var r;if(o2(r=t.code)&&r!==nQ.ABORTED){let r=e.Ta.shift();ch(e).B_(),await h7(e,()=>e.remoteSyncer.rejectFailedWrite(r.batchId,t)),await ce(e)}}(e,t),ct(e)&&cr(e)}async function co(e,t){e.asyncQueue.verifyOperationInProgress(),nq(hH,"RemoteStore received new credentials");let r=h3(e);e.Ia.add(3),await hJ(e),r&&e.Va.set("Unknown"),await e.remoteSyncer.handleCredentialChange(t),e.Ia.delete(3),await hQ(e)}async function cl(e,t){t?(e.Ia.delete(2),await hQ(e)):t||(e.Ia.add(2),await hJ(e),e.Va.set("Unknown"))}function cu(e){var t,r,n;return e.ma||(t=e.datastore,r=e.asyncQueue,n={Zo:h6.bind(null,e),Yo:h5.bind(null,e),t_:h4.bind(null,e),H_:h8.bind(null,e)},t.sa(),e.ma=new hq(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.ma.B_(),h2(e)?h1(e):e.Va.set("Unknown")):(await e.ma.stop(),e.da=void 0)})),e.ma}function ch(e){var t,r,n;return e.fa||(t=e.datastore,r=e.asyncQueue,n={Zo:()=>Promise.resolve(),Yo:cn.bind(null,e),t_:ca.bind(null,e),ta:ci.bind(null,e),na:cs.bind(null,e)},t.sa(),e.fa=new hz(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.fa.B_(),await ce(e)):(await e.fa.stop(),e.Ta.length>0&&(nq(hH,`Stopping write stream with ${e.Ta.length} pending writes`),e.Ta=[]))})),e.fa}class cc{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new nY,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){let s=new cc(e,t,Date.now()+r,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new nJ(nQ.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function cd(e,t){if(nz("AsyncQueue",`${t}: ${e}`),iU(e))return new nJ(nQ.UNAVAILABLE,`${t}: ${e}`);throw e}class cf{static emptySet(e){return new cf(e.comparator)}constructor(e){this.comparator=e?(t,r)=>e(t,r)||io.comparator(t.key,r.key):(e,t)=>io.comparator(e.key,t.key),this.keyedMap=ow(),this.sortedSet=new sW(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){let t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((t,r)=>(e(t),!1))}add(e){let t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){let t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof cf)||this.size!==e.size)return!1;let t=this.sortedSet.getIterator(),r=e.sortedSet.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(!e.isEqual(n))return!1}return!0}toString(){let e=[];return this.forEach(t=>{e.push(t.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n "+e.join(" \n")+"\n)"}copy(e,t){let r=new cf;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class cp{constructor(){this.ga=new sW(io.comparator)}track(e){let t=e.doc.key,r=this.ga.get(t);r?0!==e.type&&3===r.type?this.ga=this.ga.insert(t,e):3===e.type&&1!==r.type?this.ga=this.ga.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.ga=this.ga.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.ga=this.ga.remove(t):1===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):nG(63341,{Vt:e,pa:r}):this.ga=this.ga.insert(t,e)}ya(){let e=[];return this.ga.inorderTraversal((t,r)=>{e.push(r)}),e}}
7class cm{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new cm(e,t,cf.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&ou(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++)if(t[e].type!==r[e].type||!t[e].doc.isEqual(r[e].doc))return!1;return!0}}class cg{constructor(){this.wa=void 0,this.Sa=[]}ba(){return this.Sa.some(e=>e.Da())}}class cy{constructor(){this.queries=cw(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e;let t;e=new nJ(nQ.ABORTED,"Firestore shutting down"),t=this.queries,this.queries=cw(),t.forEach((t,r)=>{for(let t of r.Sa)t.onError(e)})}}function cw(){return new om(e=>oh(e),ou)}async function cv(e,t){let r=3,n=t.query,i=e.queries.get(n);i?!i.ba()&&t.Da()&&(r=2):(i=new cg,r=+!t.Da());try{switch(r){case 0:i.wa=await e.onListen(n,!0);break;case 1:i.wa=await e.onListen(n,!1);break;case 2:await e.onFirstRemoteStoreListen(n)}}catch(r){let e=cd(r,`Initialization of query '${oc(t.query)}' failed`);return void t.onError(e)}e.queries.set(n,i),i.Sa.push(t),t.va(e.onlineState),i.wa&&t.Fa(i.wa)&&cE(e)}async function cI(e,t){let r=t.query,n=3,i=e.queries.get(r);if(i){let e=i.Sa.indexOf(t);e>=0&&(i.Sa.splice(e,1),0===i.Sa.length?n=+!t.Da():!i.ba()&&t.Da()&&(n=2))}switch(n){case 0:return e.queries.delete(r),e.onUnlisten(r,!0);case 1:return e.queries.delete(r),e.onUnlisten(r,!1);case 2:return e.onLastRemoteStoreUnlisten(r);default:return}}function cb(e,t){let r=!1;for(let n of t){let t=n.query,i=e.queries.get(t);if(i){for(let e of i.Sa)e.Fa(n)&&(r=!0);i.wa=n}}r&&cE(e)}function c_(e,t,r){let n=e.queries.get(t);if(n)for(let e of n.Sa)e.onError(r);e.queries.delete(t)}function cE(e){e.Ca.forEach(e=>{e.next()})}(I=v||(v={})).Ma="default",I.Cache="cache";class cT{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(e){if(!this.options.includeMetadataChanges){let t=[];for(let r of e.docChanges)3!==r.type&&t.push(r);e=new cm(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.Oa?this.Ba(e)&&(this.xa.next(e),t=!0):this.La(e,this.onlineState)&&(this.ka(e),t=!0),this.Na=e,t}onError(e){this.xa.error(e)}va(e){this.onlineState=e;let t=!1;return this.Na&&!this.Oa&&this.La(this.Na,e)&&(this.ka(this.Na),t=!0),t}La(e,t){return!(e.fromCache&&this.Da())||(!this.options.qa||"Offline"===t)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Ba(e){if(e.docChanges.length>0)return!0;let t=this.Na&&this.Na.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}ka(e){e=cm.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Oa=!0,this.xa.next(e)}Da(){return this.options.source!==v.Cache}}class cS{constructor(e,t){this.Ka=e,this.byteLength=t}Ua(){return"metadata"in this.Ka}}class cC{constructor(e){this.serializer=e}qs(e){return l_(this.serializer,e)}Ks(e){return e.metadata.exists?lk(this.serializer,e.document,!1):aP.newNoDocument(this.qs(e.metadata.name),this.Us(e.metadata.readTime))}Us(e){return ly(e)}}class cA{constructor(e,t){this.$a=e,this.serializer=t,this.Wa=[],this.Qa=[],this.collectionGroups=new Set,this.progress=ck(e)}get queries(){return this.Wa}get documents(){return this.Qa}Ga(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;if(e.Ka.namedQuery)this.Wa.push(e.Ka.namedQuery);else if(e.Ka.documentMetadata){this.Qa.push({metadata:e.Ka.documentMetadata}),e.Ka.documentMetadata.exists||++t;let r=ii.fromString(e.Ka.documentMetadata.name);this.collectionGroups.add(r.get(r.length-2))}else e.Ka.document&&(this.Qa[this.Qa.length-1].document=e.Ka.document,++t);return t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}za(e){let t=new Map,r=new cC(this.serializer);for(let n of e)if(n.metadata.queries){let e=r.qs(n.metadata.name);for(let r of n.metadata.queries){let n=(t.get(r)||oE()).add(e);t.set(r,n)}}return t}async ja(e){let t=await hl(e,new cC(this.serializer),this.Qa,this.$a.id),r=this.za(this.documents);for(let t of this.Wa)await hu(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ja:this.collectionGroups,Ha:t}}}function ck(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class cx{constructor(e){this.key=e}}class cN{constructor(e){this.key=e}}class cD{constructor(e,t){this.query=e,this.Za=t,this.Xa=null,this.hasCachedResults=!1,this.current=!1,this.Ya=oE(),this.mutatedKeys=oE(),this.eu=op(e),this.tu=new cf(this.eu)}get nu(){return this.Za}ru(e,t){let r=t?t.iu:new cp,n=t?t.tu:this.tu,i=t?t.mutatedKeys:this.mutatedKeys,s=n,a=!1,o="F"===this.query.limitType&&n.size===this.query.limit?n.last(
7):null,l="L"===this.query.limitType&&n.size===this.query.limit?n.first():null;if(e.inorderTraversal((e,t)=>{let u=n.get(e),h=od(this.query,t)?t:null,c=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations),f=!1;u&&h?u.data.isEqual(h.data)?c!==d&&(r.track({type:3,doc:h}),f=!0):this.su(u,h)||(r.track({type:2,doc:h}),f=!0,(o&&this.eu(h,o)>0||l&&0>this.eu(h,l))&&(a=!0)):!u&&h?(r.track({type:0,doc:h}),f=!0):u&&!h&&(r.track({type:1,doc:u}),f=!0,(o||l)&&(a=!0)),f&&(h?(s=s.add(h),i=d?i.add(e):i.delete(e)):(s=s.delete(e),i=i.delete(e)))}),null!==this.query.limit)for(;s.size>this.query.limit;){let e="F"===this.query.limitType?s.last():s.first();s=s.delete(e.key),i=i.delete(e.key),r.track({type:1,doc:e})}return{tu:s,iu:r,bs:a,mutatedKeys:i}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){let i=this.tu;this.tu=e.tu,this.mutatedKeys=e.mutatedKeys;let s=e.iu.ya();s.sort((e,t)=>{var r,n;let i;return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return nG(20277,{Vt:e})}})(r)-i(n)||this.eu(e.doc,t.doc)}),this.ou(r),n=n??!1;let a=t&&!n?this._u():[],o=0===this.Ya.size&&this.current&&!n?1:0,l=o!==this.Xa;return(this.Xa=o,0!==s.length||l)?{snapshot:new cm(this.query,e.tu,i,s,e.mutatedKeys,0===o,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),au:a}:{au:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({tu:this.tu,iu:new cp,mutatedKeys:this.mutatedKeys,bs:!1},!1)):{au:[]}}uu(e){return!this.Za.has(e)&&!!this.tu.has(e)&&!this.tu.get(e).hasLocalMutations}ou(e){e&&(e.addedDocuments.forEach(e=>this.Za=this.Za.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Za=this.Za.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let e=this.Ya;this.Ya=oE(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Ya=this.Ya.add(e.key))});let t=[];return e.forEach(e=>{this.Ya.has(e)||t.push(new cN(e))}),this.Ya.forEach(r=>{e.has(r)||t.push(new cx(r))}),t}cu(e){this.Za=e.ks,this.Ya=oE();let t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return cm.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Xa,this.hasCachedResults)}}let cR="SyncEngine";class cO{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class cP{constructor(e){this.key=e,this.hu=!1}}class cL{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.Pu={},this.Tu=new om(e=>oh(e),ou),this.Eu=new Map,this.Iu=new Set,this.Ru=new sW(io.comparator),this.Au=new Map,this.Vu=new uq,this.du={},this.mu=new Map,this.fu=ub.ar(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function cM(e,t,r=!0){let n,i=dr(e),s=i.Tu.get(t);return s?(i.sharedClientState.addLocalQueryTarget(s.targetId),n=s.view.lu()):n=await cF(i,t,r,!0),n}async function cV(e,t){let r=dr(e);await cF(r,t,!0,!1)}async function cF(e,t,r,n){let i,s=await hr(e.localStore,oi(t)),a=s.targetId,o=e.sharedCl
7ientState.addLocalQueryTarget(a,r);return n&&(i=await cU(e,t,a,"current"===o,s.resumeToken)),e.isPrimaryClient&&r&&hY(e.remoteStore,s),i}async function cU(e,t,r,n,i){e.pu=(t,r,n)=>(async function(e,t,r,n){let i=t.view.ru(r);i.bs&&(i=await hi(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));let s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),o=t.view.applyChanges(i,e.isPrimaryClient,s,a);return cX(e,t.targetId,o.au),o.snapshot})(e,t,r,n);let s=await hi(e.localStore,t,!0),a=new cD(t,s.ks),o=a.ru(s.documents),l=lr.createSynthesizedTargetChangeForCurrentChange(r,n&&"Offline"!==e.onlineState,i),u=a.applyChanges(o,e.isPrimaryClient,l);cX(e,r,u.au);let h=new cO(t,r,a);return e.Tu.set(t,h),e.Eu.has(r)?e.Eu.get(r).push(t):e.Eu.set(r,[t]),u.snapshot}async function cB(e,t,r){let n=e.Tu.get(t),i=e.Eu.get(n.targetId);i.length>1?(e.Eu.set(n.targetId,i.filter(e=>!ou(e,t))),e.Tu.delete(t)):e.isPrimaryClient?(e.sharedClientState.removeLocalQueryTarget(n.targetId),e.sharedClientState.isActiveQueryTarget(n.targetId)||await hn(e.localStore,n.targetId,!1).then(()=>{e.sharedClientState.clearQueryState(n.targetId),r&&hX(e.remoteStore,n.targetId),cJ(e,n.targetId)}).catch(iD)):(cJ(e,n.targetId),await hn(e.localStore,n.targetId,!0))}async function cj(e,t){let r=e.Tu.get(t),n=e.Eu.get(r.targetId);e.isPrimaryClient&&1===n.length&&(e.sharedClientState.removeLocalQueryTarget(r.targetId),hX(e.remoteStore,r.targetId))}async function cq(e,t,r){let n=dn(e);try{var i,s;let e,a,o,l,u,h=await (i=n.localStore,o=iy.now(),l=t.reduce((e,t)=>e.add(t.key),oE()),i.persistence.runTransaction("Locally write mutations","readwrite",r=>{let n=og,s=oE();return i.xs.getEntries(r,l).next(e=>{(n=e).forEach((e,t)=>{t.isValidDocument()||(s=s.add(e))})}).next(()=>i.localDocuments.getOverlayedDocuments(r,n)).next(n=>{e=n;let s=[];for(let r of t){let t=function(e,t){let r=null;for(let n of e.fieldTransforms){let e=t.data.field(n.field),i=ok(n.transform,e||null);null!=i&&(null===r&&(r=aO.empty()),r.set(n.field,i))}return r||null}(r,e.get(r.key).overlayedDocument);null!=t&&s.push(new oG(r.key,t,function e(t){let r=[];return sG(t.fields,(t,n)=>{let i=new ia([t]);if(aC(n)){let t=e(n.mapValue).fields;if(0===t.length)r.push(i);else for(let e of t)r.push(i.child(e))}else r.push(i)}),new s0(r)}(t.value.mapValue),oU.exists(!0)))}
7return i.mutationQueue.addMutationBatch(r,o,s,t)}).next(t=>{a=t;let n=t.applyToLocalDocumentSet(e,s);return i.documentOverlayCache.saveOverlays(r,t.batchId,n)})}).then(()=>({batchId:a.batchId,changes:ov(e)})));n.sharedClientState.addPendingMutation(h.batchId),s=h.batchId,(u=n.du[n.currentUser.toKey()])||(u=new sW(n8)),u=u.insert(s,r),n.du[n.currentUser.toKey()]=u,await c0(n,h.changes),await ce(n.remoteStore)}catch(t){let e=cd(t,"Failed to persist write");r.reject(e)}}async function cz(e,t){try{var r,n;let i,s,a=await (r=e.localStore,i=(n=t).snapshotVersion,s=r.vs,r.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{let t=r.xs.newChangeBuffer({trackRemovals:!0});s=r.vs;let a=[];n.targetChanges.forEach((t,o)=>{var l;let u=s.get(o);if(!u)return;a.push(r.li.removeMatchingKeys(e,t.removedDocuments,o).next(()=>r.li.addMatchingKeys(e,t.addedDocuments,o)));let h=u.withSequenceNumber(e.currentSequenceNumber);null!==n.targetMismatches.get(o)?h=h.withResumeToken(s2.EMPTY_BYTE_STRING,iw.min()).withLastLimboFreeSnapshotVersion(iw.min()):t.resumeToken.approximateByteSize()>0&&(h=h.withResumeToken(t.resumeToken,i)),s=s.insert(o,h),l=h,(0===u.resumeToken.approximateByteSize()||l.snapshotVersion.toMicroseconds()-u.snapshotVersion.toMicroseconds()>=3e8||t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size>0)&&a.push(r.li.updateTargetData(e,h))});let o=og,l=oE();if(n.documentUpdates.forEach(t=>{n.resolvedLimboDocuments.has(t)&&a.push(r.persistence.referenceDelegate.updateLimboDocument(e,t))}),a.push(ht(e,t,n.documentUpdates).next(e=>{o=e.Bs,l=e.Ls})),!i.isEqual(iw.min())){let t=r.li.getLastRemoteSnapshotVersion(e).next(t=>r.li.setTargetsMetadata(e,e.currentSequenceNumber,i));a.push(t)}return iR.waitFor(a).next(()=>t.apply(e)).next(()=>r.localDocuments.getLocalViewOfDocuments(e,o,l)).next(()=>o)}).then(e=>(r.vs=s,e)));
7t.targetChanges.forEach((t,r)=>{let n=e.Au.get(r);n&&(nW(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1,22616),t.addedDocuments.size>0?n.hu=!0:t.modifiedDocuments.size>0?nW(n.hu,14607):t.removedDocuments.size>0&&(nW(n.hu,42227),n.hu=!1))}),await c0(e,a,t)}catch(e){await iD(e)}}function c$(e,t,r){if(e.isPrimaryClient&&0===r||!e.isPrimaryClient&&1===r){var n;let r,i=[];e.Tu.forEach((e,r)=>{let n=r.view.va(t);n.snapshot&&i.push(n.snapshot)}),(n=e.eventManager).onlineState=t,r=!1,n.queries.forEach((e,n)=>{for(let e of n.Sa)e.va(t)&&(r=!0)}),r&&cE(n),i.length&&e.Pu.H_(i),e.onlineState=t,e.isPrimaryClient&&e.sharedClientState.setOnlineState(t)}}async function cK(e,t,r){e.sharedClientState.updateQueryState(t,"rejected",r);let n=e.Au.get(t),i=n&&n.key;if(i){let r=new sW(io.comparator);r=r.insert(i,aP.newNoDocument(i,iw.min()));let n=oE().add(i),s=new lt(iw.min(),new Map,new sW(n8),r,n);await cz(e,s),e.Ru=e.Ru.remove(i),e.Au.delete(t),cZ(e)}else await hn(e.localStore,t,!1).then(()=>cJ(e,t,r)).catch(iD)}async function cG(e,t){let r=t.batch.batchId;try{var n,i;let s=await (n=e.localStore,i=t,n.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t,r,s,a=i.batch.keys(),o=n.xs.newChangeBuffer({trackRemovals:!0});return(r=(t=i.batch).keys(),s=iR.resolve(),r.forEach(r=>{s=s.next(()=>o.getEntry(e,r)).next(e=>{let n=i.docVersions.get(r);nW(null!==n,48541),0>e.version.compareTo(n)&&(t.applyToRemoteDocument(e,i),e.isValidDocument()&&(e.setReadTime(i.commitVersion),o.addEntry(e)))})}),s.next(()=>n.mutationQueue.removeMutationBatch(e,t))).next(()=>o.apply(e)).next(()=>n.mutationQueue.performConsistencyCheck(e)).next(()=>n.documentOverlayCache.removeOverlaysForBatchId(e,a,i.batch.batchId)).next(()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=oE();for(let r=0;r<e.mutationResults.length;++r)e.mutationResults[r].transformResults.length>0&&(t=t.add(e.batch.mutations[r].key));return t}(i))).next(()=>n.localDocuments.getDocuments(e,a))}));cQ(e,r,null),cW(e,r),e.sharedClientState.updateMutationState(r,"acknowledged"),await c0(e,s)}catch(e){await iD(e)}}async function cH(e,t,r){try{var n;let i=await (n=e.localStore,n.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let r;
7return n.mutationQueue.lookupMutationBatch(e,t).next(t=>(nW(null!==t,37113),r=t.keys(),n.mutationQueue.removeMutationBatch(e,t))).next(()=>n.mutationQueue.performConsistencyCheck(e)).next(()=>n.documentOverlayCache.removeOverlaysForBatchId(e,r,t)).next(()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,r)).next(()=>n.localDocuments.getDocuments(e,r))}));cQ(e,t,r),cW(e,t),e.sharedClientState.updateMutationState(t,"rejected",r),await c0(e,i)}catch(e){await iD(e)}}function cW(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function cQ(e,t,r){let n=e.du[e.currentUser.toKey()];if(n){let i=n.get(t);i&&(r?i.reject(r):i.resolve(),n=n.remove(t)),e.du[e.currentUser.toKey()]=n}}function cJ(e,t,r=null){for(let n of(e.sharedClientState.removeLocalQueryTarget(t),e.Eu.get(t)))e.Tu.delete(n),r&&e.Pu.yu(n,r);e.Eu.delete(t),e.isPrimaryClient&&e.Vu.Gr(t).forEach(t=>{e.Vu.containsKey(t)||cY(e,t)})}function cY(e,t){e.Iu.delete(t.path.canonicalString());let r=e.Ru.get(t);null!==r&&(hX(e.remoteStore,r),e.Ru=e.Ru.remove(t),e.Au.delete(r),cZ(e))}function cX(e,t,r){for(let n of r)n instanceof cx?(e.Vu.addReference(n.key,t),function(e,t){let r=t.key,n=r.path.canonicalString();e.Ru.get(r)||e.Iu.has(n)||(nq(cR,"New document in limbo: "+r),e.Iu.add(n),cZ(e))}(e,n)):n instanceof cN?(nq(cR,"Document no longer in limbo: "+n.key),e.Vu.removeReference(n.key,t),e.Vu.containsKey(n.key)||cY(e,n.key)):nG(19791,{wu:n})}function cZ(e){for(;e.Iu.size>0&&e.Ru.size<e.maxConcurrentLimboResolutions;){let t=e.Iu.values().next().value;e.Iu.delete(t);let r=new io(ii.fromString(t)),n=e.fu.next();e.Au.set(n,new cP(r)),e.Ru=e.Ru.insert(r,n),hY(e.remoteStore,new lF(oi(oe(r.path)),n,"TargetPurposeLimboResolution",iH.ce))}}async function c0(e,t,r){let n=[],i=[],s=[];e.Tu.isEmpty()||(e.Tu.forEach((a,o)=>{s.push(e.pu(o,t,r).then(t=>{if((t||r)&&e.isPrimaryClient){let n=t?!t.fromCache:r?.targetChanges.get(o.targetId)?.current;e.sharedClientState.updateQueryState(o.targetId,n?"current":"not-current")}if(t){n.push(t);let e=u6.Is(o.targetId,t);i.push(e)}}))}),await Promise.all(s),e.Pu.H_(n),await async function(e,t){try{await e.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>iR.forEach(t,t=>iR.forEach(t.Ts,n=>e.persistence.referenceDelegate.addReference(r,t.targetId,n)).next(()=>iR.forEach(t.Es,n=>e.persistence.referenceDelegate.removeReference(r,t.targetId,n)))))}catch(e){if(!iU(e))throw e;nq(u8,"Failed to update sequence numbers: "+e)}for(let r of t){let t=r.targetId;if(!r.fromCache){let r=e.vs.get(t),n=r.snapshotVersion,i=r.withLastLimboFreeSnapshotVersion(n);e.vs=e.vs.insert(t,i)}}}(e.localStore,i))}async function c1(e,t){if(!e.currentUser.isEqual(t)){nq(cR,"User change. New user:",t.toKey());let r=await u7(e.localStore,t);e.currentUser=t,e.mu.forEach(e=>{e.forEach(e=>{e.reject(new nJ(nQ.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))})}),e.mu.clear(),e.sharedClientState.handleUserChange(t,r.removedBatchIds,r.addedBatchIds),await c0(e,r.Ns)}}function c2(e,t){let r=e.Au.get(t);if(r&&r.hu)return oE().add(r.key);{let r=oE(),n=e.Eu.get(t);if(!n)return r;for(let t of n){let n=e.Tu.get(t);r=r.unionWith(n.view.nu)}return r}}async function c3(e,t){let r=await hi(e.localStore,t.query,!0),n=t.view.cu(r);return e.isPrimaryClient&&cX(e,t.targetId,n.au),n}async function c6(e,t){return ha(e.localStore,t).then(t=>c0(e,t))}async function c5(e,t,r,n){var i,s;let a,o=await (i=e.localStore,a=i.mutationQueue,i.persistence.runTransaction("Lookup mutation documents","readonly",e=>a.Xn(e,t).next(t=>t?i.localDocuments.getDocuments(e,t):iR.resolve(null))));null!==o?("pending"===r?await ce(e.remoteStore):"acknowledged"===r||"rejected"===r?(cQ(e,t,n||null),cW(e,t),s=e.localStore,s.mutationQueue.nr(t)):nG(6720,"Unknown batchState",{Su:r}),await c0(e,o)):nq(cR,"Cannot apply mutation batch with id: "+t)}async function c4(e,t){if(dr(e),dn(e),!0===t&&!0!==e.gu){let t=e.sharedClientState.getAllActiveQueryTargets(),r=await c8(e,t.toArray());for(let t of(e.gu=!0,await cl(e.remoteStore,!0),r))hY(e.remoteStore,t)}else if(!1===t&&!1!==e.gu){let t=[],r=Promise.resolve();e.Eu.forEach((n,i)=>
7{e.sharedClientState.isLocalQueryTarget(i)?t.push(i):r=r.then(()=>(cJ(e,i),hn(e.localStore,i,!0))),hX(e.remoteStore,i)}),await r,await c8(e,t),e.Au.forEach((t,r)=>{hX(e.remoteStore,r)}),e.Vu.zr(),e.Au=new Map,e.Ru=new sW(io.comparator),e.gu=!1,await cl(e.remoteStore,!1)}}async function c8(e,t,r){let n=[],i=[];for(let r of t){let t,s=e.Eu.get(r);if(s&&0!==s.length)for(let r of(t=await hr(e.localStore,oi(s[0])),s)){let t=e.Tu.get(r),n=await c3(e,t);n.snapshot&&i.push(n.snapshot)}else{let n=await hs(e.localStore,r);t=await hr(e.localStore,n),await cU(e,c9(n),r,!1,t.resumeToken)}n.push(t)}return e.Pu.H_(i),n}function c9(e){var t,r,n,i,s;return t=e.path,r=e.collectionGroup,n=e.orderBy,i=e.filters,s=e.limit,new a7(t,r,n,i,s,"F",e.startAt,e.endAt)}function c7(e){return e.localStore.persistence.hs()}async function de(e,t,r,n){if(e.gu)return void nq(cR,"Ignoring unexpected query state notification.");let i=e.Eu.get(t);if(i&&i.length>0)switch(r){case"current":case"not-current":{let n=await ha(e.localStore,of(i[0])),s=lt.createSynthesizedRemoteEventForCurrentChange(t,"current"===r,s2.EMPTY_BYTE_STRING);await c0(e,n,s);break}case"rejected":await hn(e.localStore,t,!0),cJ(e,t,n);break;default:nG(64155,r)}}async function dt(e,t,r){let n=dr(e);if(n.gu){for(let e of t){if(n.Eu.has(e)&&n.sharedClientState.isActiveQueryTarget(e)){nq(cR,"Adding an already active target "+e);continue}let t=await hs(n.localStore,e),r=await hr(n.localStore,t);await cU(n,c9(t),r.targetId,!1,r.resumeToken),hY(n.remoteStore,r)}for(let e of r)n.Eu.has(e)&&await hn(n.localStore,e,!1).then(()=>{hX(n.remoteStore,e),cJ(n,e)}).catch(iD)}}function dr(e){return e.remoteStore.remoteSyncer.applyRemoteEvent=cz.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=c2.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=cK.bind(null,e),e.Pu.H_=cb.bind(null,e.eventManager),e.Pu.yu=c_.bind(null,e.eventManager),e}function dn(e){return e.remoteStore.remoteSyncer.applySuccessfulWrite=cG.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=cH.bind(null,e),e}class di{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=hF(e.databaseInfo.databaseId),this.sharedClientState=this.Du(e),this.persistence=this.Cu(e),await this.persistence.start(),this.localStore=this.vu(e),this.gcScheduler=this.Fu(e,this.localStore),this.indexBackfillerScheduler=this.Mu(e,this.localStore)}Fu(e,t){return null}Mu(e,t){return null}vu(e){var t,r;return t=this.persistence,r=new u4,new u9(t,r,e.initialUser,this.serializer)}Cu(e){return new uW(uJ.Vi,this.serializer)}Du(e){return new hE}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}di.provider={build:()=>new di};class ds extends di{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){return nW(this.persistence.referenceDelegate instanceof uY,46915),new uA(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?um.withCacheSize(this.cacheSizeBytes):um.DEFAULT;return new uW(e=>uY.Vi(e,t),this.serializer)}}class da extends di{constructor(e,t,r){super(),this.xu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.xu.initialize(this,e),await dn(this.xu.syncEngine),await ce(this.xu.remoteStore),await this.persistence.zi(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){var t,r;return t=this.persistence,r=new u4,new u9(t,r,e.initialUser,this.serializer)}Fu(e,t){return new uA(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Mu(e,t){let r=new iG(t,this.persistence);return new iK(e.asyncQueue,r)}Cu(e){let t=u3(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?um.withCacheSize(this.cacheSizeBytes):um.DEFAULT;return new u2(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,hM(),hV(),this.serializer,this.sharedCl
7ientState,!!this.forceOwnership)}Du(e){return new hE}}class dl{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>c$(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=c1.bind(null,this.syncEngine),await cl(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new cy}createDatastore(e){var t;let r=hF(e.databaseInfo.databaseId),n=new hL(e.databaseInfo);return t=e.authCredentials,new hK(t,e.appCheckCredentials,n,r)}createRemoteStore(e){var t,r;return t=this.localStore,r=this.datastore,new hW(t,r,e.asyncQueue,e=>c$(this.syncEngine,e,0),hC.v()?new hC:new hT)}createSyncEngine(e,t){var r,n,i,s,a,o;let l;return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,o=e.maxConcurrentLimboResolutions,l=new cL(r,n,i,s,a,o),t&&(l.gu=!0),l}async terminate(){await async function(e){nq(hH,"RemoteStore shutting down."),e.Ia.add(5),await hJ(e),e.Aa.shutdown(),e.Va.set("Unknown")}(this.remoteStore),this.datastore?.terminate(),this.eventManager?.terminate()}}function du(e,t=10240){let r=0;return{async read(){if(r<e.byteLength){let n={value:e.slice(r,r+t),done:!1};return r+=t,n}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}dl.provider={build:()=>new dl};class dh{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ou(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ou(this.observer.error,e):nz("Uncaught Error in snapshot listener:",e.toString()))}Nu(){this.muted=!0}Ou(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class dc{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new nY,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.Ua()?this.metadata.resolve(e.Ka.metadata):this.metadata.reject(Error(`The first element of the bundle is not a metadata, it is 8 ${JSON.stringify(e?.Ka)}`))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async bu(){return await this.getMetadata(),this.ku()}async ku(){let e=await this.qu();if(null===e)return null;let t=this.Lu.decode(e),r=Number(t);return isNaN(r)&&this.Ku(`length string (${t}) is not valid number`),new cS(JSON.parse(await this.Uu(r)),e.length+r)}$u(){return this.buffer.findIndex(e=>123===e)}async qu(){for(;0>this.$u()&&!await this.Wu(););if(0===this.buffer.length)return null;let e=this.$u();e<0&&this.Ku("Reached the end of bundle when a length string is expected.");let t=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),t}async Uu(e){for(;this.buffer.length<e;)await this.Wu()&&this.Ku("Reached the end of bundle when more is expected.");let t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Ku(e){throw this.Bu.cancel(),Error(`Invalid bundle format: ${e}`)}async Wu(){let e=await this.Bu.read();if(!e.done){let t=new Uint8Array(this.buffer.length+e.value.length);t.set(this.buffer),t.set(e.value,this.buffer.length),this.buffer=t}return e.done}}class dd{constructor(e,t){this.bundleData=e,this.serializer=t,this.cursor=0,this.elements=[];let r=this.bu();if(!r||!r.Ua())throw Error(`The first element of the bundle is not a metadata object, it is 9 ${JSON.stringify(r?.Ka)}`);this.metadata=r;do null!==(r=this.bu())&&this.elements.push(r);while(null!==r)}getMetadata(){return this.metadata}Qu(){return this.elements}bu(){if(this.cursor===this.bundleData.length)return null;let e=this.qu();return new cS(JSON.parse(this.Uu(e)),e)}Uu(e){if(this.cursor+e>this.bundleData.length)throw new nJ(nQ.INTERNAL,"Reached the end of bundle when more is expected.");return this.bundleData.slice(this.cursor,this.cursor+=e)}qu(){let e=this.cursor,t=this.cursor;for(;t<this.bundleData.length;){if("{"===this.bundleData[t]){if(t===e)throw Error("First character is a bracket and not a number");return this.cursor=t,Number(this.bundleData.slice(e,t))}t++}throw Error("Reached the end of bundle when more is expected.")}}class df{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),this.mutations.length>
90)throw this.lastTransactionError=new nJ(nQ.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;let t=await async function(e,t){let r={documents:t.map(t=>lb(e.serializer,t))},n=await e.jo("BatchGetDocuments",e.serializer.databaseId,ii.emptyPath(),r,t.length),i=new Map;n.forEach(t=>{var r;let n,s,a,o,l,u,h=(r=e.serializer,"found"in t?(nW(!!t.found,43571),t.found.name,t.found.updateTime,n=l_(r,t.found.name),s=ly(t.found.updateTime),a=t.found.createTime?ly(t.found.createTime):iw.min(),o=new aO({mapValue:{fields:t.found.fields}}),aP.newFoundDocument(n,s,a,o)):"missing"in t?(nW(!!t.missing,3894),nW(!!t.readTime,22933),l=l_(r,t.missing),u=ly(t.readTime),aP.newNoDocument(l,u)):nG(7234,{result:t}));i.set(h.key.toString(),h)});let s=[];return t.forEach(e=>{let t=i.get(e.toString());nW(!!t,55234,{key:e}),s.push(t)}),s}(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new oJ(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let e=this.readVersions;this.mutations.forEach(t=>{e.delete(t.key.toString())}),e.forEach((e,t)=>{let r=io.fromPath(t);this.mutations.push(new oY(r,this.precondition(r)))}),await async function(e,t){let r={writes:t.map(t=>lx(e.serializer,t))};await e.Wo("Commit",e.serializer.databaseId,ii.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw nG(50498,{Gu:e.constructor.name});t=iw.min()}let r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new nJ(nQ.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){let t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(iw.min())?oU.exists(!1):oU.updateTime(t):oU.none()}preconditionForUpdate(e){let t=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&t){if(t.isEqual(iw.min()))throw new nJ(nQ.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return oU.updateTime(t)}return oU.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class dp{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new hU(this.asyncQueue,"transaction_retry")}ju(){this.zu-=1,this.Ju()}Ju(){this.M_.p_(async()=>{let e=new df(this.datastore),t=this.Hu(e);t&&t.then(t=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(t)}).catch(e=>{this.Zu(e)}))}).catch(e=>{this.Zu(e)})})}Hu(e){try{let t=this.updateFunction(e);return!iW(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Zu(e){this.zu>0&&this.Xu(e)?(this.zu-=1,this.asyncQueue.enqueueAndForget(()=>(this.Ju(),Promise.resolve()))):this.deferred.reject(e)}Xu(e){if("FirebaseError"===e?.name){let t=e.code;return"aborted"===t||"failed-precondition"===t||"already-exists"===t||!o2(t)}return!1}}let dm="FirestoreClient";class dg{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=nV.UNAUTHENTICATED,this.clientId=n4.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{nq(dm,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(nq(dm,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this._databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let e=new nY;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(r){let t=cd(r,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function dy(e,t){e.asyncQueue.verifyOperationInProgress(),nq(dm,"Initializing OfflineComponentProvider");let r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await u7(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function dw(e,t){e.asyncQueue.verifyOperationInProgress();let r=await dv(e);nq(dm,"Initializing OnlineComponentProvider"),await t.initialize(r,e.configuration),e.setCredentialChangeListener(e=>co(t.remoteStore,e)),e.setAppCheckTokenChangeListener((e,r)=>co(t.remoteStore,r)),e._onlineComponents=t}async function dv(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){nq(dm,"Using user provided OfflineComponentProvider");try{await dy(e,e._uninitializedComponentsProvider._offline)}catch(t){if(!("FirebaseError"===t.name?t.code===nQ.FAILED_PRECONDITION||t.code===nQ.UNIMPLEMENT
9ED:!("u">typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw t;n$("Error using user provided cache. Falling back to memory cache: "+t),await dy(e,new di)}}else nq(dm,"Using default OfflineComponentProvider"),await dy(e,new ds(void 0));return e._offlineComponents}async function dI(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(nq(dm,"Using user provided OnlineComponentProvider"),await dw(e,e._uninitializedComponentsProvider._online)):(nq(dm,"Using default OnlineComponentProvider"),await dw(e,new dl))),e._onlineComponents}function db(e){return dv(e).then(e=>e.localStore)}function d_(e){return dI(e).then(e=>e.syncEngine)}function dE(e){return dI(e).then(e=>e.datastore)}async function dT(e){let t=await dI(e),r=t.eventManager;return r.onListen=cM.bind(null,t.syncEngine),r.onUnlisten=cB.bind(null,t.syncEngine),r.onFirstRemoteStoreListen=cV.bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=cj.bind(null,t.syncEngine),r}function dS(e,t,r={}){let n=new nY;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await dT(e),s=e.asyncQueue,a=new dh({next:e=>{a.Nu(),s.enqueueAndForget(()=>cI(i,o));let l=e.docs.has(t);!l&&e.fromCache?n.reject(new nJ(nQ.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&e.fromCache&&r&&"server"===r.source?n.reject(new nJ(nQ.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):n.resolve(e)},error:e=>n.reject(e)}),cv(i,o=new cT(oe(t.path),a,{includeMetadataChanges:!0,qa:!0}))}),n.promise}function dC(e,t,r={}){let n=new nY;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await dT(e),s=e.asyncQueue,o=new cT(t,a=new dh({next:e=>{a.Nu(),s.enqueueAndForget(()=>cI(i,o)),e.fromCache&&"server"===r.source?n.reject(new nJ(nQ.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):n.resolve(e)},error:e=>n.reject(e)}),{includeMetadataChanges:!0,qa:!0}),cv(i,o)}),n.promise}function dA(e,t){let r=new nY;return e.asyncQueue.enqueueAndForget(async()=>cq(await d_(e),t,r)),r.promise}function dk(e){let t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let dx=new Map,dN="firestore.googleapis.com";class dD{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new nJ(nQ.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=dN,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=0x2800000;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new nJ(nQ.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,r,n){if(!0===t&&!0===n)throw new nJ(nQ.INVALID_ARGUMENT,`${e} and ${r} cannot be used together.`)})("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=dk(e.experimentalLongPollingOptions??{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new nJ(nQ.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new nJ(nQ.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new nJ(nQ.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){var t,r;return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class dR{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new dD({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new nJ(nQ.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new nJ(nQ.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new dD(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new nZ;switch(e.type){case"firstParty":return new n3(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new nJ(nQ.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invali
9d credential type")}}(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){let e;return(e=dx.get(this))&&(nq("ComponentProvider","Removing Datastore"),dx.delete(this),e.terminate()),Promise.resolve()}}class dO{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new dO(this.firestore,e,this._query)}}class dP{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new dL(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new dP(this.firestore,e,this._key)}toJSON(){return{type:dP._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(ig(t,dP._jsonSchema))return new dP(e,r||null,new io(ii.fromString(t.referencePath)))}}dP._jsonSchemaVersion="firestore/documentReference/1.0",dP._jsonSchema={type:im("string",dP._jsonSchemaVersion),referencePath:im("string")};class dL extends dO{constructor(e,t,r){super(e,t,oe(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new dP(this.firestore,null,new io(e))}withConverter(e){return new dL(this.firestore,e,this._path)}}function dM(e,t,...r){if(e=J(e),il("collection","path",t),e instanceof dR){let n=ii.fromString(t,...r);return ih(n),new dL(e,null,n)}{if(!(e instanceof dP||e instanceof dL))throw new nJ(nQ.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(ii.fromString(t,...r));return ih(n),new dL(e.firestore,null,n)}}function dV(e,t,...r){if(e=J(e),1==arguments.length&&(t=n4.newId()),il("doc","path",t),e instanceof dR){let n=ii.fromString(t,...r);return iu(n),new dP(e,null,new io(n))}{if(!(e instanceof dP||e instanceof dL))throw new nJ(nQ.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(ii.fromString(t,...r));return iu(n),new dP(e.firestore,e instanceof dL?e.converter:null,new io(n))}}let dF="AsyncQueue";class dU{constructor(e=Promise.resolve()){this.Yu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new hU(this,"async_queue_retry"),this._c=()=>{let e=hV();e&&nq(dF,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;const t=hV();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){if(!this.ec){this.ec=!0,this.sc=e||!1;let t=hV();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c)}}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new nY;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Yu.push(e),this.lc()))}async lc(){if(0!==this.Yu.length){try{await this.Yu[0](),this.Yu.shift(),this.M_.reset()}catch(e){if(!iU(e))throw e;nq(dF,"Operation failed with retryable error: "+e)}this.Yu.length>0&&this.M_.p_(()=>this.lc())}}cc(e){let t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,nz("INTERNAL UNHANDLED ERROR: ",dB(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t,t}enqueueAfterDelay(e,t,r){this.uc(),this.oc.indexOf(e)>-1&&(t=0);let n=cc.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&nG(47125,{Pc:dB(this.nc)})}verifyOperationInProgress(){}async Tc(){let e;do e=this.ac,await e;while(e!==this.ac)}Ec(e){for(let t of this.tc)if(t.timerId===e)return!0;return!1}Ic(e){return this.Tc().then(()=>{for(let t of(this.tc.sort((e,t)=>
9e.targetTimeMs-t.targetTimeMs),this.tc))if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.Tc()})}Rc(e){this.oc.push(e)}hc(e){let t=this.tc.indexOf(e);this.tc.splice(t,1)}}function dB(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}class dj{constructor(){this._progressObserver={},this._taskCompletionResolver=new nY,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}class dq extends dR{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new dU,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new dU(e),this._firestoreClient=void 0,await e}}}function dz(e,t){let r=eR("object"==typeof e?e:eF(),"firestore").getImmediate({identifier:"string"==typeof e?e:t||as});if(!r._initialized){let e=(e=>{let t=D(e);if(!t)return;let r=t.lastIndexOf(":");if(r<=0||r+1===t.length)throw Error(`Invalid host ${t} with no separate hostname and port!`);let n=parseInt(t.substring(r+1),10);return"["===t[0]?[t.substring(1,r-1),n]:[t.substring(0,r),n]})("firestore");e&&function(e,t,r,n={}){e=ip(e,dR);let i=Y(t),s=e._getSettings(),a={...s,emulatorOptions:e._getEmulatorOptions()},o=`${t}:${r}`;i&&X(`https://${o}`),s.host!==dN&&s.host!==o&&n$("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");let l={...s,host:o,ssl:i,emulatorOptions:n};if(!z(l,a)&&(e._setSettings(l),n.mockUserToken)){let t,r;if("string"==typeof n.mockUserToken)t=n.mockUserToken,r=nV.MOCK_USER;else{t=function(e,t){if(e.uid)throw Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(!i)throw Error("mockUserToken must contain 'sub' or 'user_id' field!");let s={iss:`https://securetoken.google.com/${r}`,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e};return[A(JSON.stringify({alg:"none",type:"JWT"})),A(JSON.stringify(s)),""].join(".")}(n.mockUserToken,e._app?.options.projectId);let i=n.mockUserToken.sub||n.mockUserToken.user_id;if(!i)throw new nJ(nQ.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new nV(i)}e._authCredentials=new n0(new nX(t,r))}}(r,...e)}return r}function d$(e){if(e._terminated)throw new nJ(nQ.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,r,n,i,s;let a,o=e._freezeSettings(),l=(t=e._databaseId,r=e._app?.options.appId||"",n=e._persistenceKey,i=e._app?.options.apiKey,new ai(t,r,n,o.host,o.ssl,o.experimentalForceLongPolling,o.experimentalAutoDetectLongPolling,dk(o.experimentalLongPollingOptions),o.useFetchStreams,o.isUsingEmulator,i));e._componentsProvider||o.localCache?._offlineComponentProvider&&o.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:o.localCache._offlineComponentProvider,_online:o.localCache._onlineComponentProvider}),e._firestoreClient=new dg(e._authCredentials,e._appCheckCredentials,e._queue,l,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}(e),e._firestoreClient}class dK{constructor(e){this._byteString=e}static fromBase64String(e){try{return new dK(s2.fromBase64String(e))}catch(e){throw new nJ(nQ.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new dK(s2.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:dK._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(ig(e,dK._jsonSchema))return dK.fromBase64String(e.bytes)}}
9dK._jsonSchemaVersion="firestore/bytes/1.0",dK._jsonSchema={type:im("string",dK._jsonSchemaVersion),bytes:im("string")};class dG{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new nJ(nQ.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new ia(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class dH{constructor(e){this._methodName=e}}class dW{constructor(e,t){if(!isFinite(e)||e<-90||e>90)throw new nJ(nQ.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new nJ(nQ.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return n8(this._lat,e._lat)||n8(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:dW._jsonSchemaVersion}}static fromJSON(e){if(ig(e,dW._jsonSchema))return new dW(e.latitude,e.longitude)}}dW._jsonSchemaVersion="firestore/geoPoint/1.0",dW._jsonSchema={type:im("string",dW._jsonSchemaVersion),latitude:im("number"),longitude:im("number")};class dQ{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}(this._values,e._values)}toJSON(){return{type:dQ._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(ig(e,dQ._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new dQ(e.vectorValues);throw new nJ(nQ.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}dQ._jsonSchemaVersion="firestore/vectorValue/1.0",dQ._jsonSchema={type:im("string",dQ._jsonSchemaVersion),vectorValues:im("object")};let dJ=/^__.*__$/;class dY{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new oG(e,this.data,this.fieldMask,t,this.fieldTransforms):new oK(e,this.data,t,this.fieldTransforms)}}class dX{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new oG(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function dZ(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw nG(40011,{dataSource:e})}}class d0{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Ac(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}i(e){return new d0({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}dc(e){let t=this.path?.child(e),r=this.i({path:t,arrayElement:!1});return r.mc(e),r}fc(e){let t=this.path?.child(e),r=this.i({path:t,arrayElement:!1});return r.Ac(),r}gc(e){return this.i({path:void 0,arrayElement:!0})}yc(e){return fa(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(e){return void 0!==this.fieldMask.find(t=>e.isPrefixOf(t))||void 0!==this.fieldTransforms.find(t=>e.isPrefixOf(t.field))}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.mc(this.path.get(e))}mc(e){if(0===e.length)throw this.yc("Document fields must not be empty");if(dZ(this.dataSource)&&dJ.test(e))throw this.yc('Document fields cannot begin and end with "__"')}}class d1{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||hF(e)}I(e,t,r,n=!1){return new d0({dataSource:e,methodName:t,targetDoc:r,path:ia.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function d2(e){let t=e._freezeSettings(),r=hF(e._databaseId);return new d1(e._databaseId,!!t.ignoreUndefinedProperties,r)}function d3(e,t,r,n,i,s={}){let a,o,l=e.I(s.merge||s.mergeFields?2:0,t,r,i);fr("Data must be an object, but it was:",l,n);let u=fe(n,l);if(s.merge)a=new s0(l.fieldMask),o=l.fieldTransforms;else if(s.mergeFields){let e=[];
9for(let n of s.mergeFields){let i=fn(t,n,r);if(!l.contains(i))throw new nJ(nQ.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);fo(e,i)||e.push(i)}a=new s0(e),o=l.fieldTransforms.filter(e=>a.covers(e.field))}else a=null,o=l.fieldTransforms;return new dY(new aO(u),a,o)}class d6 extends dH{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.yc(`${this._methodName}() can only appear at the top level of your update data`):e.yc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof d6}}class d5 extends dH{_toFieldTransform(e){return new oV(e.path,new ox)}isEqual(e){return e instanceof d5}}function d4(e,t,r,n){let i=e.I(1,t,r);fr("Data must be an object, but it was:",i,n);let s=[],a=aO.empty();return sG(n,(e,n)=>{let o=fs(t,e,r);n=J(n);let l=i.fc(o);if(n instanceof d6)s.push(o);else{let e=d7(n,l);null!=e&&(s.push(o),a.set(o,e))}}),new dX(a,new s0(s),i.fieldTransforms)}function d8(e,t,r,n,i,s){let a=e.I(1,t,r),o=[fn(t,n,r)],l=[i];if(s.length%2!=0)throw new nJ(nQ.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let e=0;e<s.length;e+=2)o.push(fn(t,s[e])),l.push(s[e+1]);let u=[],h=aO.empty();for(let e=o.length-1;e>=0;--e)if(!fo(u,o[e])){let t=o[e],r=l[e];r=J(r);let n=a.fc(t);if(r instanceof d6)u.push(t);else{let e=d7(r,n);null!=e&&(u.push(t),h.set(t,e))}}return new dX(h,new s0(u),a.fieldTransforms)}function d9(e,t,r,n=!1){return d7(r,e.I(n?4:3,t))}function d7(e,t){if(ft(e=J(e)))return fr("Unsupported field value:",t,e),fe(e,t);if(e instanceof dH)return function(e,t){if(!dZ(t.dataSource))throw t.yc(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.yc(`${e._methodName}() is not currently supported inside arrays`);let r=e._toFieldTransform(t);r&&t.fieldTransforms.push(r)}(e,t),null;if(void 0===e&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.arrayElement&&4!==t.dataSource)throw t.yc("Nested arrays are not supported");let r=[],n=0;for(let i of e){let e=d7(i,t.gc(n));null==e&&(e={nullValue:"NULL_VALUE"}),r.push(e),n++}return{arrayValue:{values:r}}}return function(e,t){var r,n,i;if(null===(e=J(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return r=t.serializer,iJ(n=e)?oC(n):oS(r,n);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){let r=iy.fromDate(e);return{timestampValue:lm(t.serializer,r)}}if(e instanceof iy){let r=new iy(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:lm(t.serializer,r)}}if(e instanceof dW)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof dK)return{bytesValue:lg(t.serializer,e._byteString)};if(e instanceof dP){let r=t.databaseId,n=e.firestore._databaseId;if(!n.isEqual(r))throw t.yc(`Document reference is for database ${n.projectId}/${n.database} but should be for database ${r.projectId}/${r.database}`);return{referenceValue:lw(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof dQ)return{mapValue:{fields:{[al]:{stringValue:ac},[ad]:{arrayValue:{values:((i=e)instanceof dQ?i.toArray():i).map(e=>{if("number"!=typeof e)throw t.yc("VectorValues must only contain numeric values.");return oS(t.serializer,e)})}}}}};if(lV(e))return e._toProto(t.serializer);throw t.yc(`Unsupported field value: ${id(e)}`)}(e,t)}function fe(e,t){let r={};return sH(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):sG(e,(e,n)=>{let i=d7(n,t.dc(e));null!=i&&(r[e]=i)}),{mapValue:{fields:r}}}function ft(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof iy||e instanceof dW||e instanceof dK||e instanceof dP||e instanceof dH||e instanceof dQ||lV(e))}function fr(e,t,r){if(!ft(r)||!ic(r)){let n=id(r);throw"an object"===n?t.yc(e+" a custom object"):t.yc(e+" "+n)}}function fn(e,t,r){if((t=J(t))instanceof dG)return t._internalPath;if("string"==typeof t)return fs(e,t);throw fa("Field path arguments must be of type string or ",e,!1,void 0,r)}let fi=RegExp("[~\\*/\\[\\]]");function fs(e,t,r){if(t.search(fi)>=0)throw fa(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,r);try{return new dG(...t.split("."))._internalPath}catch(n){throw fa(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,r)}}function fa(e,t,r,n,i){let s=n&&!n.isEmpty(),a=void 0!==i,o=`Function ${t}
9() called with invalid data`;r&&(o+=" (via `toFirestore()`)"),o+=". ";let l="";return(s||a)&&(l+=" (found",s&&(l+=` in field ${n}`),a&&(l+=` in document ${i}`),l+=")"),new nJ(nQ.INVALID_ARGUMENT,o+e+l)}function fo(e,t){return e.some(e=>e.isEqual(t))}class fl{convertValue(e,t="none"){switch(ap(e)){case 0:return null;case 1:return e.booleanValue;case 2:return s5(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(s4(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw nG(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,t="none"){let r={};return sG(e,(e,n)=>{r[e]=this.convertValue(n,t)}),r}convertVectorValue(e){return new dQ(e.fields?.[ad].arrayValue?.values?.map(e=>s5(e.doubleValue)))}convertGeoPoint(e){return new dW(s5(e.latitude),s5(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":let r=ar(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(an(e));default:return null}}convertTimestamp(e){let t=s6(e);return new iy(t.seconds,t.nanos)}convertDocumentKey(e,t){let r=ii.fromString(e);nW(lM(r),9688,{name:e});let n=new aa(r.get(1),r.get(3)),i=new io(r.popFirst(5));return n.isEqual(t)||nz(`Document ${i} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),i}}class fu extends fl{constructor(e){super(),this.firestore=e}convertBytes(e){return new dK(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);return new dP(this.firestore,null,t)}}e.s(["$",0,d4,"A",0,fl,"B",0,dK,"C",0,aj,"D",0,dP,"E",0,function(e,t){let r=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.push(t(e[n],n,e));return r},"F",0,dq,"G",0,function(e,t,r){let n=new nY;return e.asyncQueue.enqueueAndForget(async()=>{try{let i=await dE(e);n.resolve(async function(e,t,r){var n;let{request:i,gt:s,parent:a}=function(e,t,r){let{ft:n,parent:i}=lR(e,t),s={},a=[],o=0;return r.forEach(e=>{let t="aggregate_"+o++;s[t]=e.alias,"count"===e.aggregateType?a.push({alias:t,count:{}}):"avg"===e.aggregateType?a.push({alias:t,avg:{field:lP(e.fieldPath)}}):"sum"===e.aggregateType&&a.push({alias:t,sum:{field:lP(e.fieldPath)}})}),{request:{structuredAggregationQuery:{aggregations:a,structuredQuery:n.structuredQuery},parent:n.parent},gt:s,parent:i}}(e.serializer,((n=t).Re||(n.Re=os(n,n.explicitOrderBy)),n.Re),r);e.connection.qo||delete i.parent;let o=(await e.jo("RunAggregationQuery",e.serializer.databaseId,a,i,1)).filter(e=>!!e.result);nW(1===o.length,64727);let l=o[0].result?.aggregateFields;return Object.keys(l).reduce((e,t)=>(e[s[t]]=l[t],e),{})}(i,t,r))}catch(e){n.reject(e)}}),n.promise},"H",0,fu,"I",0,ig,"J",0,hF,"K",0,function(e,t){return new dd(e,t)},"L",0,cA,"M",0,lk,"N",0,n4,"O",0,aO,"P",0,lH,"Q",0,dO,"R",0,ii,"S",0,cf,"T",0,oE,"U",0,nG,"V",0,cm,"W",0,d3,"X",0,oU,"Y",0,dG,"Z",0,d8,"_",0,nU,"a",0,n1,"a$",0,function(){return new d5("serverTimestamp")},"a0",0,oJ,"a1",0,function(e,t,r){let n=new nY;return e.asyncQueue.enqueueAndForget(async()=>{let i=await dE(e);new dp(e.asyncQueue,i,r,t,n).ju()}),n.promise},"a2",0,dS,"a3",0,function(e,t){let r=new nY;return e.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await e.persistence.runTransaction("read document","readonly",r=>e.localDocuments.getDocument(r,t));n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new nJ(nQ.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(n){let e=cd(n,`Failed to get document '${t} from cache`);r.reject(e)}})(await db(e),t,r)),r.promise},"a4",0,dC,"a5",0,function(e,t){let r=new nY;return e.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await hi(e,t,!0),i=new cD(t,n.ks),s=i.ru(n.documents),a=i.applyChanges(s,
9!1);r.resolve(a.snapshot)}catch(n){let e=cd(n,`Failed to execute query '${t} against cache`);r.reject(e)}})(await db(e),t,r)),r.promise},"a6",0,dV,"a7",0,oe,"a8",0,function(e,t,r,n){let i=new dh(n),s=new cT(t,i,r);return e.asyncQueue.enqueueAndForget(async()=>cv(await dT(e),s)),()=>{i.Nu(),e.asyncQueue.enqueueAndForget(async()=>cI(await dT(e),s))}},"a9",0,function(e,t){let r=d$(e=ip(e,dq)),n=new dj;return function(e,t,r,n){var i;let s=(i=hF(t),new dc(function(e){if(e instanceof Uint8Array)return du(e,void 0);if(e instanceof ArrayBuffer)return du(new Uint8Array(e),void 0);if(e instanceof ReadableStream)return e.getReader();throw Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}("string"==typeof r?o5().encode(r):r),i));e.asyncQueue.enqueueAndForget(async()=>{var t=await d_(e);(async function(e,t,r){try{var n,i;let s,a=await t.getMetadata();if(await (n=e.localStore,s=ly(a.createTime),n.persistence.runTransaction("hasNewerBundle","readonly",e=>n.Pi.getBundleMetadata(e,a.id)).then(e=>!!e&&e.createTime.compareTo(s)>=0)))return await t.close(),r._completeWith({taskState:"Success",documentsLoaded:a.totalDocuments,bytesLoaded:a.totalBytes,totalDocuments:a.totalDocuments,totalBytes:a.totalBytes}),Promise.resolve(new Set);r._updateProgress(ck(a));let o=new cA(a,t.serializer),l=await t.bu();for(;l;){let e=await o.Ga(l);e&&r._updateProgress(e),l=await t.bu()}let u=await o.ja(e.localStore);return await c0(e,u.Ha,void 0),await (i=e.localStore,i.persistence.runTransaction("Save bundle","readwrite",e=>i.Pi.saveBundleMetadata(e,a))),r._completeWith(u.progress),Promise.resolve(u.Ja)}catch(e){return n$(cR,`Loading bundle failed with ${e}`),r._failWith(e),Promise.resolve(new Set)}})(t,s,n).then(e=>{t.sharedClientState.notifyBundleLoaded(e)})})}(r,e._databaseId,t,n),n},"aO",0,dM,"aX",0,dz,"aa",0,function(e,t){var r;return(r=d$(e=ip(e,dq)),r.asyncQueue.enqueue(async()=>{var e;return e=await db(r),e.persistence.runTransaction("Get named query","readonly",r=>e.Pi.getNamedQuery(r,t))})).then(t=>t?new dO(e,null,t.query):null)},"ab",0,function(e,t){let r=new dh(t);return e.asyncQueue.enqueueAndForget(async()=>{var t;return t=await dT(e),void(t.Ca.add(r),r.next())}),()=>{r.Nu(),e.asyncQueue.enqueueAndForget(async()=>{var t;return t=await dT(e),void t.Ca.delete(r)})}},"ac",0,dA,"ad",0,n$,"ae",0,fs,"af",0,iE,"ag",0,iv,"ah",0,iT,"ai",0,function(e,t){return e.asyncQueue.enqueue(async()=>(async function(e,t){let r=e.indexManager,n=[];return e.persistence.runTransaction("Configure indexes","readwrite",e=>r.getFieldIndexes(e).next(i=>(function(e,t,r,n,i){t=[...t],(e=[...e]).sort(r),t.sort(r);let s=e.length,a=t.length,o=0,l=0;for(;o<a&&l<s;){let s=r(e[l],t[o]);s<0?i(e[l++]):s>0?n(t[o++]):(o++,l++)}for(;o<a;)n(t[o++]);for(;l<s;)i(e[l++])})(i,t,i_,t=>{n.push(r.addFieldIndex(e,t))},t=>{n.push(r.deleteFieldIndex(e,t))})).next(()=>iR.waitFor(n)))})(await db(e),t))},"aj",0,function(e){return e.asyncQueue.enqueue(async()=>{var t;let r;return r=(t=await db(e)).indexManager,t.persistence.runTransaction("Delete All Indexes","readwrite",e=>r.deleteAllFieldIndexes(e))})},"ak",0,nq,"al",0,function(e,t){return e.asyncQueue.enqueue(async()=>{var r;return r=await db(e),void(r.Cs.As=t)})},"am",0,function(e){if(o6)throw Error("a TestingHooksSpi instance is already set");o6=e},"an",0,aF,"ao",0,class{constructor(e,t,r){this.alias=e,this.aggregateType=t,this.fieldPath=r}},"ap",0,dl,"aq",0,ds,"ar",0,di,"as",0,da,"at",0,class extends da{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);let t=this.xu.syncEngine;this.sharedClientState instanceof h_&&(this.sharedClientState.syncEngine={bo:c5.bind(null,t),Do:de.bind(null,t),Co:dt.bind(null,t),hs:c7.bind(null,t),So:c6.bind(null,t)},await this.sharedClientState.start()),await this.persistence.zi(async e=>{await c4(this.xu.syncEngine,e),this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}Du(e){let t=hM();
9if(!h_.v(t))throw new nJ(nQ.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=u3(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new h_(t,e.asyncQueue,r,e.clientId,e.initialUser)}},"az",0,iy,"b",0,n5,"c",0,ao,"d",0,nJ,"e",0,nQ,"f",0,oa,"g",0,d2,"h",0,d9,"i",0,aB,"j",0,fn,"k",0,oo,"l",0,ol,"m",0,function(e,t){if(t<=0)throw new nJ(nQ.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)},"n",0,function(e,t){return new a7(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)},"o",0,function(e,t){return new a7(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)},"p",0,im,"q",0,on,"r",0,ab,"s",0,at,"t",0,aL,"u",0,or,"v",0,io,"w",0,id,"x",0,function(e,t){return e=J(e),t=J(t),e instanceof dO&&t instanceof dO&&e.firestore===t.firestore&&ou(e._query,t._query)&&e.converter===t.converter},"y",0,ip,"z",0,d$],69185);let fh="@firebase/firestore",fc="4.14.0";class fd{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new dP(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){let e=new ff(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){let t=this._document.data.field(fn("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class ff extends fd{data(){return super.data()}}class fp{}class fm extends fp{}class fg extends fm{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new fg(e,t,r)}_apply(e){let t=this._parse(e);return fb(e._query,t),new dO(e.firestore,e.converter,oa(e._query,t))}_parse(e){let t=d2(e.firestore);return function(e,t,r,n,i,s,a){let o;if(i.isKeyField()){if("array-contains"===s||"array-contains-any"===s)throw new nJ(nQ.INVALID_ARGUMENT,`Invalid Query. You can't perform '${s}' queries on documentId().`);if("in"===s||"not-in"===s){fI(a,s);let t=[];for(let r of a)t.push(fv(n,e,r));o={arrayValue:{values:t}}}else o=fv(n,e,a)}else"in"!==s&&"not-in"!==s&&"array-contains-any"!==s||fI(a,s),o=d9(r,t,a,"in"===s||"not-in"===s);return aB.create(i,s,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}class fy extends fp{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new fy(e,t)}_parse(e){let t=this._queryConstraints.map(t=>t._parse(e)).filter(e=>e.getFilters().length>0);return 1===t.length?t[0]:aj.create(t,this._getOperator())}_apply(e){let t=this._parse(e);return 0===t.getFilters().length?e:(function(e,t){let r=e;for(let e of t.getFlattenedFilters())fb(r,e),r=oa(r,e)}(e._query,t),new dO(e.firestore,e.converter,oa(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}class fw extends fm{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new fw(e,t)}_apply(e){let t=function(e,t,r){if(null!==e.startAt)throw new nJ(nQ.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new nJ(nQ.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new aF(t,r)}(e._query,this._field,this._direction);return new dO(e.firestore,e.converter,oo(e._query,t))}}function fv(e,t,r){if("string"==typeof(r=J(r))){if(""===r)throw new nJ(nQ.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!or(t)&&-1!==r.indexOf("/"))throw new nJ(nQ.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);let n=t.path.child(ii.fromString(r));if(!io.isDocumentKey(n))throw new nJ(nQ.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`);return ab(e,new io(n))}if(r instanceof dP)return ab(e,r._key);throw new nJ(nQ.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${id(r)}.`)}function fI(e,t){if(!Array.isArray(e)||0===e.length)throw new nJ(nQ.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function fb(e,t){let r=function(e,t){for(let r of e)for(let e of r.getFlattenedFilters())if(t.indexOf(e.op)>=0)return e.op;return null}(e.filters,function(e){switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(t.op));if(null!==r)throw r===t.op?new nJ(nQ.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new nJ(nQ.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function f_(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class fE{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class fT extends fd{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let t=new fS(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,t={}){if(this._document){let r=this._document.data.field(fn("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new nJ(nQ.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,t={};return t.type=fT._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&
9(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),this._firestore,this.ref.path,t.bundle="NOT SUPPORTED"),t}}fT._jsonSchemaVersion="firestore/documentSnapshot/1.0",fT._jsonSchema={type:im("string",fT._jsonSchemaVersion),bundleSource:im("string","DocumentSnapshot"),bundleName:im("string"),bundle:im("string")};class fS extends fT{data(e={}){return super.data(e)}}class fC{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new fE(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let e=[];return this.forEach(t=>e.push(t)),e}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(e,t){this._snapshot.docs.forEach(r=>{e.call(t,new fS(this._firestore,this._userDataWriter,r.key,r,new fE(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){let t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new nJ(nQ.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=function(e,t){if(e._snapshot.oldDocs.isEmpty()){let t=0;return e._snapshot.docChanges.map(r=>{let n=new fS(e._firestore,e._userDataWriter,r.doc.key,r.doc,new fE(e._snapshot.mutatedKeys.has(r.doc.key),e._snapshot.fromCache),e.query.converter);return r.doc,{type:"added",doc:n,oldIndex:-1,newIndex:t++}})}{let r=e._snapshot.oldDocs;return e._snapshot.docChanges.filter(e=>t||3!==e.type).map(t=>{let n=new fS(e._firestore,e._userDataWriter,t.doc.key,t.doc,new fE(e._snapshot.mutatedKeys.has(t.doc.key),e._snapshot.fromCache),e.query.converter),i=-1,s=-1;return 0!==t.type&&(i=r.indexOf(t.doc.key),r=r.delete(t.doc.key)),1!==t.type&&(s=(r=r.add(t.doc)).indexOf(t.doc.key)),{type:function(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return nG(61501,{type:e})}}(t.type),doc:n,oldIndex:i,newIndex:s}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new nJ(nQ.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=fC._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=n4.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),this._firestore,this.query._query,e.bundleName,e.bundle="NOT SUPPORTED",e}}fC._jsonSchemaVersion="firestore/querySnapshot/1.0",fC._jsonSchema={type:im("string",fC._jsonSchemaVersion),bundleSource:im("string","QuerySnapshot"),bundleName:im("string"),bundle:im("string")};new WeakMap,function(e=!0){nU(eM),eD(new Z("firestore",(t,{instanceIdentifier:r,options:n})=>{let i=t.getProvider("app").getImmediate(),s=new dq(new n1(t.getProvider("auth-internal")),new n5(i,t.getProvider("app-check-internal")),ao(i,r),i);return n={useFetchStreams:e,...n},s._setSettings(n),s},"PUBLIC").setMultipleInstances(!0)),eU(fh,fc,void 0),eU(fh,fc,"esm2020")}(),e.s(["addDoc",0,function(e,t){var r,n;let i=ip(e.firestore,dq),s=dV(e),a=f_(e.converter,t);return(r=i,n=[d3(d2(e.firestore),"addDoc",s._key,a,null!==e.converter,{}).toMutation(s._key,oU.exists(!1))],dA(d$(r),n)).then(()=>s)},"getDoc",0,function(e){e=ip(e,dP);let t=ip(e.firestore,dq);return dS(d$(t),e._key).then(r=>{var n,i,s;let a,o;return n=t,i=e,a=(s=r).docs.get(i._key),o=new fu(n),new fT(n,o,i._key,a,new fE(s.hasPendingWrites,s.fromCache),i.converter)})},"getDocs",0,function(e){e=ip(e,dO);let t=ip(e.firestore,dq),r=d$(t),n=new fu(t);return function(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new nJ(nQ.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}(e._query),dC(r,e._query).then(r=>new fC(t,n,e,r))},"orderBy",0,function(e,t="asc"){let r=fn("orderBy",e);return fw._create(r,t)},"query",0,function(e,t,...r){let n=[];for(let i of(t instanceof fp&&n.push(t),function(e){let t=e.filter(e=>e instanceof fy).length,r=e.filter(e=>e instanceof fg).length;if(t>1||t>0&&r>0)throw new nJ(nQ.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(n=n.concat(r)),n))e=i._apply(e);return e},"setDoc",0,function(e,t,r){var n,i;e=ip(e,dP);let s=ip(e.firestore,dq),a=f_(e.converter,t,r),o=d2(s);return n=s,i=[d3(o,"setDoc",e._key,a,null!==e.converter,r).toMutation(e._key,oU.none())],dA(d$(n),i)},"updateDoc",0,function(e,t,r,...n){var i,s;e=ip(e,dP);let a=ip(e.firestore,dq),o=d2(a);return i=a,s=[("string"==typeof(t=J(t))||t instanceof dG?d8(o,"updateDoc",e._key,t,r,n):d4(o,"updateDoc",e._key,t)).toMutation(e._key,oU.exists(!0))],dA(d$(i),s)},"where",0,function(e,t,r){let n=fn("where",e);return fg._create(n,t,r)}],63802),e.s([],36180);let fA=eV({apiKey:"AIzaSyBjGXAQTQLHMxB1J2-IV-jvRcz0JiY851M",authDomain:"pranshu05-23430.firebaseapp.com",projectId:"pranshu05-23430",storageBucket:"pranshu05-23430.appspot.com",messagingSenderId:"887130944679",appId:"1:887130944679:web:5b709e6c3393d8b99f1782",measurementId:"G-JZ9SC4MCHE"});!function(e=eF()){let t=eR(e,"auth");if(t.isInitialized())return t.getImmediate();let r=function(e,t){let r=eR(e,"auth");if(r.isInitialized()){let e=r.getImmediate();if(z(r.getOptions(),t??{}))return e;e0(e,"already-initialized")}return r.initialize({options:t})}(e,{popupRedirectResolver:nC,persistence:[rZ,rM,rV]}),n=O("authTokenSyncURL");if(n&&"boolean"==typeof isSecureContext&&isSecureContext){let e=new URL(n,location.origin);if(location.origin===e.origin){let t,n=(t=e.toString(),async e=>{let r=e&&await e.getIdTokenResult(),n=r&&(new Date().getTime()-Date.parse(r.issuedAtTime))/1e3;if(n&&n>nN)return;let i=r?.token;nD!==i&&(nD=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});J(r).beforeAuthStateChanged(n,()=>n(r.currentUser)),J(r).onIdTokenChanged(e=>n(e),void 0,void 0)}}let i=D("auth");i&&function(e,t){let r=J(e);
9e5(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");let n=t7(t),{host:i,port:s}=function(e){let t=t7(e),r=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!r)return{host:"",port:null};let n=r[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(n);if(i){let e=i[1];return{host:e,port:re(n.substr(e.length+1))}}{let[e,t]=n.split(":");return{host:e,port:re(t)}}}(t),a=null===s?"":`:${s}`,o={url:`${n}//${i}${a}/`},l=Object.freeze({host:i,port:s,protocol:n.replace(":",""),options:Object.freeze({disableWarnings:!1})});if(!r._canInitEmulator){e5(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),e5(z(o,r.config.emulator)&&z(l,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=o,r.emulatorConfig=l,r.settings.appVerificationDisabledForTesting=!0,Y(i)?X(`${n}//${i}${a}`):function(){function e(){let e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"u">typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"u">typeof window&&"u">typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(r,`http://${i}`)}(fA);let fk=dz(fA);e.s(["db",0,fk],20945),e.s(["collection",0,dM],93968)}]);
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.