PageSourceSearch

https://www.bobiboapp.com/_next/static/chunks/bc9e92e6-f4fa122ab1f85d50.js

js bobiboapp.com collected 2026-10-04 23:42:14 UTC 179,692 bytes, 7 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2992],{19729:(e,t,r)=>{r.d(t,{$1:()=>iX,AB:()=>iY,BN:()=>ai,GG:()=>as,GV:()=>ap,H9:()=>s7,HM:()=>iZ,My:()=>iH,O5:()=>am,P:()=>iK,_M:()=>iG,aQ:()=>au,aU:()=>ii,gS:()=>al,hq:()=>ag,kd:()=>ao,mZ:()=>aa,rJ:()=>s9,rf:()=>i1,wP:()=>ay,x7:()=>ar});var n,s,i,a,o=r(13410),l=r(86861),u=r(25282),h=r(11296),c=r(13549),d=r(48785);r(41463);var f=r(92619).Buffer;let m="@firebase/firestore",g="4.7.8";class p{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}}p.UNAUTHENTICATED=new p(null),p.GOOGLE_CREDENTIALS=new p("google-credentials-uid"),p.FIRST_PARTY=new p("first-party-uid"),p.MOCK_USER=new p("mock-user");let y="11.3.1",w=new u.Vy("@firebase/firestore");function v(){return w.logLevel}function _(e,...t){if(w.logLevel<=u.$b.DEBUG){let r=t.map(I);w.debug(`Firestore (${y}): ${e}`,...r)}}function T(e,...t){if(w.logLevel<=u.$b.ERROR){let r=t.map(I);w.error(`Firestore (${y}): ${e}`,...r)}}function E(e,...t){if(w.logLevel<=u.$b.WARN){let r=t.map(I);w.warn(`Firestore (${y}): ${e}`,...r)}}function I(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(t){return e}}function C(e="Unexpected state"){let t=`FIRESTORE (${y}) INTERNAL ASSERTION FAILED: `+e;throw T(t),Error(t)}let b={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 S extends h.g{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class A{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class N{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class k{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(p.UNAUTHENTICATED))}shutdown(){}}class D{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 x{constructor(e){this.t=e,this.currentUser=p.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,t){void 0===this.o||C();let r=this.i,n=e=>this.i!==r?(r=this.i,t(e)):Promise.resolve(),s=new A;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new A,e.enqueueRetryable(()=>n(this.currentUser))};let i=()=>{let t=s;e.enqueueRetryable(async()=>{await t.promise,await n(this.currentUser)})},a=e=>{_("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),i())};this.t.onInit(e=>a(e)),setTimeout(()=>{if(!this.auth){let e=this.t.getImmediate({optional:!0});e?a(e):(_("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new A)}},0),i()}getToken(){let e=this.i,t=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(t).then(t=>this.i!==e?(_("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):t?("string"==typeof t.accessToken||C(),new N(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 null===e||"string"==typeof e||C(),new p(e)}}class R{constructor(e,t,r){this.l=e,this.h=t,this.P=r,this.type="FirstParty",this.user=p.FIRST_PARTY,this.T=new Map}I(){return this.P?this.P():null}get headers(){this.T.set("X-Goog-AuthUser",this.l);let e=this.I();return e&&this.T.set("Authorization",e),this.h&&this.T.set("X-Goog-Iam-Authorization-Token",this.h),this.T}}class L{constructor(e,t,r){this.l=e,this.h=t,this.P=r}getToken(){return Promise.resolve(new R(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable(()=>t(p.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class V{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 M{constructor(e,t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null,this.V=null,(0,o.xZ)(e)&&e.settings.appCheckToken&&(this.V=e.settings.appCheckToken)}start(e,t){void 0===this.o||C();let r=e=>{null!=e.error&&_("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);let r=e.token!==this.R;return this.R=e.token,_("FirebaseAppCheckTokenProvider",`Received ${r?"new":"existing"} token.`),r?t(e.token):Promise.resolve()};this.o=t=>{e.enqueueRetryable(()=>r(t))};let n=e=>{_("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.A.onInit(e=>n(e)),setTimeout(()=>{if(!this.appCheck){let e=this.A.getImmediate({optional:!0});e?n(e):_("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){if(this.V)return Promise.resolve(new V(this.V));let e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?("string"==typeof e.token||C(),this.R=e.token,new V(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 O{static newId(){let e=62*Math.floor(256/62),t="";for(;t.length<20;){let r=function(e){let t="undefined"!=typeof self&&(self.crypto||self.msCrypto),r=new 
1Uint8Array(40);if(t&&"function"==typeof t.getRandomValues)t.getRandomValues(r);else for(let e=0;e<40;e++)r[e]=Math.floor(256*Math.random());return r}(0);for(let n=0;n<r.length;++n)t.length<20&&r[n]<e&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(r[n]%62))}return t}}function F(e,t){return e<t?-1:+(e>t)}function U(e,t,r){return e.length===t.length&&e.every((e,n)=>r(e,t[n]))}class P{static now(){return P.fromMillis(Date.now())}static fromDate(e){return P.fromMillis(e.getTime())}static fromMillis(e){let t=Math.floor(e/1e3),r=Math.floor((e-1e3*t)*1e6);return new P(t,r)}constructor(e,t){if(this.seconds=e,this.nanoseconds=t,t<0||t>=1e9)throw new S(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-0xe7791f700||e>=0x3afff44180)throw new S(b.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?F(this.nanoseconds,e.nanoseconds):F(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{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){return String(this.seconds- -0xe7791f700).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class q{static fromTimestamp(e){return new q(e)}static min(){return new q(new P(0,0))}static max(){return new q(new P(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}}let $="__name__";class B{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(),void 0===r?r=e.length-t:r>e.length-t&&C(),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===B.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof B?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=B.compareSegments(e.get(n),t.get(n));if(0!==r)return r}return Math.sign(e.length-t.length)}static compareSegments(e,t){let r=B.isNumericId(e),n=B.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?B.extractNumericId(e).compare(B.extractNumericId(t)):e<t?-1:+(e>t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return c.jz.fromString(e.substring(4,e.length-2))}}class K extends B{construct(e,t,r){return new K(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 S(b.INVALID_ARGUMENT,`Invalid segment (${r}). Paths must not contain // in them.`);t.push(...r.split("/").filter(e=>e.length>0))}return new K(t)}static emptyPath(){return new K([])}}let z=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class G extends B{construct(e,t,r){return new G(e,t,r)}static isValidIdentifier(e){return z.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),G.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===$}static keyField(){return new G([$])}static fromServerFormat(e){let t=[],r="",n=0,s=()=>
1{if(0===r.length)throw new S(b.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(r),r=""},i=!1;for(;n<e.length;){let t=e[n];if("\\"===t){if(n+1===e.length)throw new S(b.INVALID_ARGUMENT,"Path has trailing escape character: "+e);let t=e[n+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new S(b.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);r+=t,n+=2}else"`"===t?i=!i:"."!==t||i?r+=t:s(),n++}if(s(),i)throw new S(b.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new G(t)}static emptyPath(){return new G([])}}class Q{constructor(e){this.path=e}static fromPath(e){return new Q(K.fromString(e))}static fromName(e){return new Q(K.fromString(e).popFirst(5))}static empty(){return new Q(K.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===K.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return K.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new Q(new K(e.slice()))}}class j{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}j.UNKNOWN_ID=-1;class H{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new H(q.min(),Q.empty(),-1)}static max(){return new H(q.max(),Q.empty(),-1)}}class W{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Y(e){if(e.code!==b.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==e.message)throw e;_("LocalStore","Unexpectedly lost primary lease")}class X{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&&C(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(t,this.error):this.wrapSuccess(e,this.result):new X((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 X?t:X.resolve(t)}catch(e){return X.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):X.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):X.reject(t)}static resolve(e){return new X((t,r)=>{t(e)})}static reject(e){return new X((t,r)=>{r(e)})}static waitFor(e){return new X((t,r)=>{let n=0,s=0,i=!1;e.forEach(e=>{++n,e.next(()=>{++s,i&&s===n&&t()},e=>r(e))}),i=!0,s===n&&t()})}static or(e){let t=X.resolve(!1);for(let r of e)t=t.next(e=>e?X.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 X((r,n)=>{let s=e.length,i=Array(s),a=0;for(let o=0;o<s;o++){let l=o;t(e[l]).next(e=>{i[l]=e,++a===s&&r(i)},e=>n(e))}})}static doWhile(e,t){return new X((r,n)=>{let s=()=>{!0===e()?t().next(()=>{s()},n):r()};s()})}}function J(e){return"IndexedDbTransactionError"===e.name}class Z{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.oe(e),this._e=e=>t.writeSequenceNumber(e))}oe(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){let e=++this.previousValue;return this._e&&this._e(e),e}}Z.ae=-1;function ee(e){return 0===e&&1/e==-1/0}function et(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function er(e,t){for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function en(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class es{constructor(e,t){this.comparator=e,this.root=t||ea.EMPTY}insert(e,t){return new es(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,ea.BLACK,null,
1null))}remove(e){return new es(this.comparator,this.root.remove(e,this.comparator).copy(null,null,ea.BLACK,null,null))}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 ei(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new ei(this.root,e,this.comparator,!1)}getReverseIterator(){return new ei(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new ei(this.root,e,this.comparator,!0)}}class ei{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,t&&n&&(s*=-1),s<0)e=this.isReverse?e.left:e.right;else{if(0===s){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 ea{constructor(e,t,r,n,s){this.key=e,this.value=t,this.color=null!=r?r:ea.RED,this.left=null!=n?n:ea.EMPTY,this.right=null!=s?s:ea.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,s){return new ea(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=s?s: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,s=r(e,n.key);return(n=s<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===s?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 ea.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 ea.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,ea.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){let e=this.copy(null,null,ea.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()||this.right.isRed())throw C();let e=this.left.check();if(e!==this.right.check())throw C();return e+ +!this.isRed()}}
1ea.EMPTY=null,ea.RED=!0,ea.BLACK=!1,ea.EMPTY=new class{constructor(){this.size=0}get key(){throw C()}get value(){throw C()}get color(){throw C()}get left(){throw C()}get right(){throw C()}copy(e,t,r,n,s){return this}insert(e,t,r){return new ea(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 eo{constructor(e){this.comparator=e,this.data=new es(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 el(this.data.getIterator())}getIteratorFrom(e){return new el(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 eo)||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 eo(this.comparator);return t.data=e,t}}class el{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}class eu{constructor(e){this.fields=e,e.sort(G.comparator)}static empty(){return new eu([])}unionWith(e){let t=new eo(G.comparator);for(let e of this.fields)t=t.add(e);for(let r of e)t=t.add(r);return new eu(t.toArray())}covers(e){for(let t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return U(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class eh extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class ec{constructor(e){this.binaryString=e}static fromBase64String(e){return new ec(function(e){try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new eh("Invalid base64 string: "+e):e}}(e))}static fromUint8Array(e){return new ec(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 F(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}ec.EMPTY_BYTE_STRING=new ec("");let ed=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function ef(e){if(e||C(),"string"==typeof e){let t=0,r=ed.exec(e);if(r||C(),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:em(e.seconds),nanos:em(e.nanos)}}function em(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function eg(e){return"string"==typeof e?ec.fromBase64String(e):ec.fromUint8Array(e)}let ep="server_timestamp",ey="__type__",ew="__previous_value__",ev="__local_write_time__";function e_(e){var t,r;return(null==(r=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[ey])?void 0:r.stringValue)===ep}function eT(e){let t=e.mapValue.fields[ew];return e_(t)?eT(t):t}function eE(e){let t=ef(e.mapValue.fields[ev].timestampValue);return new P(t.seconds,t.nanos)}class eI{constructor(e,t,r,n,s,i,a,o,l){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=s,this.forceLongPolling=i,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l}}let eC="(default)";class eb{constructor(e,t){this.projectId=e,this.database=t||eC}static empty(){return new eb("","")}get isDefaultDatabase(){return this.database===eC}isEqual(e){return e instanceof eb&&e.projectId===this.projectId&&e.database===this.database}}let eS="__type__",eA="__max__",eN={},ek="__vector__",eD="value";function ex(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?e_(e)?4:eQ(e)?0x1fffffffffffff:ez(e)?10:11:C()}function eR(e,t){if(e===t)return!0;let r=ex(e);if(r!==ex(t))return!1;switch(r){case 0:case 0x1fffffffffffff:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return eE(e).isEqual(eE(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=ef(e.timestampValue),s=ef(t.timestampValue);return n.seconds===s.seconds&&n.nanos===s.nanos;case 5:return e.stringValue===t.stringValue;case 6:return eg(e.bytesValue).isEqual(eg(t.bytesValue));case 7:return e.referenceValue===t.referenceValue;case 8:return em(e.geoPointValue.latitude)===em(t.geoPointValue.latitude)&&em(e.geoPointValue.longitude)===em(t.geoPointValue.longitude);case 2:if("integerValue"in e&&"integerValue"in t)return em(e.integerValue)===em(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){let r=em(e.doubleValue),n=em(t.doubleValue);return r===n?ee(r)===ee(n):isNaN(r)&&isNaN(n)}return!1;case 9:return U(e.arrayValue.values||[],t.arrayValue.values||[],eR);case 10:case 11:let i=e.mapValue.fields||{},a=t.mapValue.fields||{};if(et(i)!==et(a))return!1;for(let e in i)if(i.hasOwnProperty(e)&&(void 0===a[e]||!eR(i[e],a[e])))return!1;return!0;default:return C()}}function eL(e,t){return void 0!==(e.values||[]).find(e=>eR(e,t))}function eV(e,t){var r,n,s,i,a,o,l,u,h,c;if(e===t)return 0;let d=ex(e),f=ex(t);if(d!==f)return F(d,f);switch(d){case 0:case 0x1fffffffffffff:return 0;case 1:return F(e.booleanValue,t.booleanValue);case 2:let m,g;return m=em(e.integerValue||e.doubleValue),m<(g=em(t.integerValue||t.doubleValue))?-1:m>g?1:m===g?0:isNaN(m)?isNaN(g)?0:-1:1;case 3:return eM(e.timestampValue,t.timestampValue);case 4:return eM(eE(e),eE(t));case 5:return F(e.stringValue,t.stringValue);case 6:let p,y;return r=e.bytesValue,n=t.bytesValue,p=eg(r),y=eg(n),p.compareTo(y);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=F(r[e],n[e]);if(0!==t)return t}return F(r.length,n.length)}(e.referenceValue,t.referenceValue);case 8:let w;return s=e.geoPointValue,i=t.geoPointValue,0!==(w=F(em(s.latitude),em(i.latitude)))?w:F(em(s.longitude),em(i.longitude));case 9:return eO(e.arrayValue,t.arrayValue);case 10:let v,_,T,E,I;return a=e.mapValue,o=t.mapValue,v=a.fields||{},_=o.fields||{},T=null==(l=v[eD])?void 0:l.arrayValue,E=null==(u=_[eD])?void 0:u.arrayValue,0!==(I=F((null==(h=null==T?void 0:T.values)?void 0:h.length)||0,(null==(c=null==E?void 0:E.values)?void 0:c.length)||0))?I:eO(T,E);case 11:return function(e,t){if(e===eN&&t===eN)return 0;if(e===eN)return 1;if(t===eN)return -1;let r=e.fields||{},n=Object.keys(r),s=t.fields||{},i=Object.keys(s);n.sort(),i.sort();for(let e=0;e<n.length&&e<i.length;++e){let t=F(n[e],i[e]);if(0!==t)return t;let a=eV(r[n[e]],s[i[e]]);if(0!==a)return a}return F(n.length,i.length)}(e.mapValue,t.mapValue);default:throw C()}}function eM(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return F(e,t);let r=ef(e),n=ef(t),s=F(r.seconds,n.seconds);return 0!==s?s:F(r.nanos,n.nanos)}function eO(e,t){let r=e.values||[],n=t.values||[];for(let e=0;e<r.length&&e<n.length;++e){let t=eV(r[e],n[e]);if(t)return t}return F(r.length,n.length)}function eF(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=ef(e.timestampValue),`time(${n.seconds},${n.nanos}
1)`):"stringValue"in e?e.stringValue:"bytesValue"in e?eg(e.bytesValue).toBase64():"referenceValue"in e?(t=e.referenceValue,Q.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+=eF(n);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(let s of t)n?n=!1:r+=",",r+=`${s}:${eF(e.fields[s])}`;return r+"}"}(e.mapValue):C()}function eU(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function eP(e){return!!e&&"integerValue"in e}function eq(e){return!!e&&"arrayValue"in e}function e$(e){return!!e&&"nullValue"in e}function eB(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function eK(e){return!!e&&"mapValue"in e}function ez(e){var t,r;return(null==(r=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[eS])?void 0:r.stringValue)===ek}function eG(e){if(e.geoPointValue)return{geoPointValue:Object.assign({},e.geoPointValue)};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:Object.assign({},e.timestampValue)};if(e.mapValue){let t={mapValue:{fields:{}}};return er(e.mapValue.fields,(e,r)=>t.mapValue.fields[e]=eG(r)),t}if(e.arrayValue){let t={arrayValue:{values:[]}};for(let r=0;r<(e.arrayValue.values||[]).length;++r)t.arrayValue.values[r]=eG(e.arrayValue.values[r]);return t}return Object.assign({},e)}function eQ(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===eA}class ej{constructor(e){this.value=e}static empty(){return new ej({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let t=this.value;for(let r=0;r<e.length-1;++r)if(!eK(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()]=eG(t)}setAll(e){let t=G.emptyPath(),r={},n=[];e.forEach((e,s)=>{if(!t.isImmediateParentOf(s)){let e=this.getFieldsMap(t);this.applyChanges(e,r,n),r={},n=[],t=s.popLast()}e?r[s.lastSegment()]=eG(e):n.push(s.lastSegment())});let s=this.getFieldsMap(t);this.applyChanges(s,r,n)}delete(e){let t=this.field(e.popLast());eK(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return eR(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)];eK(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(er(t,(t,r)=>e[t]=r),r))delete e[n]}clone(){return new ej(eG(this.value))}}class eH{constructor(e,t,r,n,s,i,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=s,this.data=i,this.documentState=a}static newInvalidDocument(e){return new eH(e,0,q.min(),q.min(),q.min(),ej.empty(),0)}static newFoundDocument(e,t,r,n){return new eH(e,1,t,q.min(),r,n,0)}static newNoDocument(e,t){return new eH(e,2,t,q.min(),q.min(),ej.empty(),0)}static newUnknownDocument(e,t){return new eH(e,3,t,q.min(),q.min(),ej.empty(),2)}convertToFoundDocument(e,t){return this.createTime.isEqual(q.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=ej.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=ej.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=q.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 eH&&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 eH(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 eW{constructor(e,t){this.position=e,this.inclusive=t}}function eY(e,t,r){let n=0;for(let s=0;s<e.position.length;s++){let i=t[s],a=e.position[s];if(n=i.field.isKeyField()?Q.comparator(Q.fromName(a.referenceValue),r.key):eV(a,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function eX(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(!eR(e.position[r],t.position[r]))return!1;return!0}class eJ{constructor(e,t="asc"){this.field=e,this.dir=t}}class eZ{}class e0 extends eZ{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 e4(e,t,r):"array-contains"===t?new e9(e,r):"in"===t?new e7(e,r):"not-in"===t?new te(e,r):"array-contains-any"===t?new tt(e,r):new e0(e,t,r)}static createKeyFieldInFilter(e,t,r){return"in"===t?new e8(e,r):new e6(e,r)}matches(e){let t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(eV(t,this.value)):null!==t&&ex(this.value)===ex(t)&&this.matchesComparison(eV(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 C()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class e1 extends eZ{constructor(e,t){super(),this.filters=e,this.op=t,this.ce=null}static create(e,t){return new e1(e,t)}matches(e){return e2(this)?void 0===this.filters.find(t=>!t.matches(e)):void 0!==this.filters.find(t=>t.matches(e))}getFlattenedFilters(){return null!==this.ce||(this.ce=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.ce}getFilters(){return Object.assign([],this.filters)}}function e2(e){return"and"===e.op}function e3(e){for(let t of e.filters)if(t instanceof e1)return!1;return!0}class e4 extends e0{constructor(e,t,r){super(e,t,r),this.key=Q.fromName(r.referenceValue)}matches(e){let t=Q.comparator(e.key,this.key);return this.matchesComparison(t)}}class e8 extends e0{constructor(e,t){super(e,"in",t),this.keys=e5("in",t)}matches(e){return this.keys.some(t=>t.isEqual(e.key))}}class e6 extends e0{constructor(e,t){super(e,"not-in",t),this.keys=e5("not-in",t)}matches(e){return!this.keys.some(t=>t.isEqual(e.key))}}function e5(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>Q.fromName(e.referenceValue))}class e9 extends e0{constructor(e,t){super(e,"array-contains",t)}matches(e){let t=e.data.field(this.field);return eq(t)&&eL(t.arrayValue,this.value)}}class e7 extends e0{constructor(e,t){super(e,"in",t)}matches(e){let t=e.data.field(this.field);return null!==t&&eL(this.value.arrayValue,t)}}class te extends e0{constructor(e,t){super(e,"not-in",t)}matches(e){if(eL(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;let t=e.data.field(this.field);return null!==t&&!eL(this.value.arrayValue,t)}}class tt extends e0{constructor(e,t){super(e,"array-contains-any",t)}matches(e){let t=e.data.field(this.field);return!(!eq(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>eL(this.value.arrayValue,e))}}class tr{constructor(e,t=null,r=[],n=[],s=null,i=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=s,this.startAt=i,this.endAt=a,this.le=null}}function tn(e,t=null,r=[],n=[],s=null,i=null,a=null){return new tr(e,t,r,n,s,i,a)}function ts(e){if(null===e.le){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 e0)return t.field.canonicalString()+t.op.toString()+eF(t.value);if(e3(t)&&e2(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(","),null==e.limit||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>eF(e)).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>eF(e)).join(",")),e.le=t}return e.le}function ti(e,t){if(e.limit!==t.limit||e.orderBy.length!==t.orderBy.length)return!1;for(let s=0;s<e.orderBy.length;s++){var r,n;if(r=e.orderBy[s],n=t.orderBy[s],!(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 e0?r instanceof e0&&t.op===r.op&&t.field.isEqual(r.field)&&eR(t.value,r.value):t instanceof e1?r instanceof e1&&t.op===r.op&&t.filters.length===r.filters.length&&t.filters.reduce((t,n,s)=>t&&e(n,r.filters[s]),!0):void C()}(e.filters[r],t.filters[r]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!eX(e.startAt,t.startAt)&&eX(e.endAt,t.endAt)}function ta(e){return Q.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}class to{constructor(e,t=null,r=[],n=[],s=null,i="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=s,this.limitType=i,this.startAt=a,this.endAt=o,this.he=null,this.Pe=null,this.Te=null,this.startAt,this.endAt}}function tl(e){return new to(e)}function tu(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 th(e){return null!==e.collectionGroup}function tc(e){if(null===e.he){let t;e.he=[];let r=new Set;for(let t of e.explicitOrderBy)e.he.push(t),r.add(t.field.canonicalString());let n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";
1(t=new eo(G.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.he.push(new eJ(t,n))}),r.has(G.keyField().canonicalString())||e.he.push(new eJ(G.keyField(),n))}return e.he}function td(e){return e.Pe||(e.Pe=function(e,t){if("F"===e.limitType)return tn(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 eJ(e.field,t)});let r=e.endAt?new eW(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new eW(e.startAt.position,e.startAt.inclusive):null;return tn(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)}}(e,tc(e))),e.Pe}function tf(e,t){let r=e.filters.concat([t]);return new to(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function tm(e,t,r){return new to(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function tg(e,t){return ti(td(e),td(t))&&e.limitType===t.limitType}function tp(e){return`${ts(td(e))}|lt:${e.limitType}`}function ty(e){var t;let r;return`Query(target=${r=(t=td(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 e0?`${t.field.canonicalString()} ${t.op} ${eF(t.value)}`:t instanceof e1?t.op.toString()+" {"+t.getFilters().map(e).join(" ,")+"}":"Filter"})(e)).join(", ")}]`),null==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=>eF(e)).join(",")),t.endAt&&(r+=", endAt: ",r+=t.endAt.inclusive?"a:":"b:",r+=t.endAt.position.map(e=>eF(e)).join(",")),`Target(${r})`}; limitType=${e.limitType})`}function tw(e,t){var r,n,s,i;let a,o,l;return t.isFoundDocument()&&(a=t.key.path,null!==e.collectionGroup?t.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(a):Q.isDocumentKey(e.path)?e.path.isEqual(a):e.path.isImmediateParentOf(a))&&function(e,t){for(let r of tc(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||(s=r.startAt,o=eY(s,tc(r),n),s.inclusive?!!(o<=0):!!(o<0)))&&(!r.endAt||(i=r.endAt,l=eY(i,tc(r),n),i.inclusive?!!(l>=0):!!(l>0))))}function tv(e){return(t,r)=>{let n=!1;for(let s of tc(e)){let e=function(e,t,r){var n;let s,i,a=e.field.isKeyField()?Q.comparator(t.key,r.key):(n=e.field,s=t.data.field(n),i=r.data.field(n),null!==s&&null!==i?eV(s,i):C());switch(e.dir){case"asc":return a;case"desc":return -1*a;default:return C()}}(s,t,r);if(0!==e)return e;n=n||s.field.isKeyField()}return 0}}class t_{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){er(this.inner,(t,r)=>{for(let[t,n]of r)e(t,n)})}isEmpty(){return en(this.inner)}size(){return this.innerSize}}let tT=new es(Q.comparator),tE=new es(Q.comparator);function tI(...e){let t=tE;for(let r of e)t=t.insert(r.key,r);return t}function tC(e){let t=tE;return e.forEach((e,r)=>t=t.insert(e,r.overlayedDocument)),t}function tb(){return new t_(e=>e.toString(),(e,t)=>e.isEqual(t))}let tS=new es(Q.comparator),tA=new eo(Q.comparator);function tN(...e){let t=tA;for(let r of e)t=t.add(r);return t}let tk=new eo(F);function tD(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:ee(t)?"-0":t}}function tx(e){return{integerValue:""+e}}function tR(e,t){return"number"==typeof t&&Number.isInteger(t)&&!ee(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER?tx(t):tD(e,t)}class tL{constructor(){this._=void 0}}function tV(e,t){return e instanceof tq?eP(t)||t&&"doubleValue"in t?t:{integerValue:0}:null}class tM extends tL{}class tO extends tL{constructor(e){super(),this.elements=e}}function tF(e,t){let r=tB(t);for(let t of e.elements)r.some(e=>eR(e,t))||r.push(t);return{arrayValue:{values:r}}}class tU extends tL{constructor(e){super(),this.elements=e}}function tP(e,t){let r=tB(t);for(let t of e.elements)r=r.filter(e=>!eR(e,t));return{arrayValue:{values:r}}}
1class tq extends tL{constructor(e,t){super(),this.serializer=e,this.Ie=t}}function t$(e){return em(e.integerValue||e.doubleValue)}function tB(e){return eq(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class tK{constructor(e,t){this.field=e,this.transform=t}}class tz{constructor(e,t){this.version=e,this.transformResults=t}}class tG{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new tG}static exists(e){return new tG(void 0,e)}static updateTime(e){return new tG(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 tQ(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class tj{}function tH(e,t){if(!e.hasLocalMutations||t&&0===t.fields.length)return null;if(null===t)return e.isNoDocument()?new t2(e.key,tG.none()):new tX(e.key,e.data,tG.none());{let r=e.data,n=ej.empty(),s=new eo(G.comparator);for(let e of t.fields)if(!s.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),s=s.add(e)}return new tJ(e.key,n,new eu(s.toArray()),tG.none())}}function tW(e,t,r,n){return e instanceof tX?function(e,t,r,n){if(!tQ(e.precondition,t))return r;let s=e.value.clone(),i=t1(e.fieldTransforms,n,t);return s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null}(e,t,r,n):e instanceof tJ?function(e,t,r,n){if(!tQ(e.precondition,t))return r;let s=t1(e.fieldTransforms,n,t),i=t.data;return(i.setAll(tZ(e)),i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null===r)?null:r.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,r,n):tQ(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):r}function tY(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)&&U(r,n,(e,t)=>{var r,n;return e.field.isEqual(t.field)&&(r=e.transform,n=t.transform,r instanceof tO&&n instanceof tO||r instanceof tU&&n instanceof tU?U(r.elements,n.elements,eR):r instanceof tq&&n instanceof tq?eR(r.Ie,n.Ie):r instanceof tM&&n instanceof tM)})))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask))}class tX extends tj{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 tJ extends tj{constructor(e,t,r,n,s=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function tZ(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 t0(e,t,r){var n;let s=new Map;e.length===r.length||C();for(let i=0;i<r.length;i++){let a=e[i],o=a.transform,l=t.data.field(a.field);s.set(a.field,(n=r[i],o instanceof tO?tF(o,l):o instanceof tU?tP(o,l):n))}return s}function t1(e,t,r){let n=new Map;for(let s of e){let e=s.transform,i=r.data.field(s.field);n.set(s.field,function(e,t,r){var n;let s,i,a;return e instanceof tM?(n=t,s={fields:{[ey]:{stringValue:ep},[ev]:{timestampValue:{seconds:r.seconds,nanos:r.nanoseconds}}}},n&&e_(n)&&(n=eT(n)),n&&(s.fields[ew]=n),{mapValue:s}):e instanceof tO?tF(e,t):e instanceof tU?tP(e,t):(a=t$(i=tV(e,t))+t$(e.Ie),eP(i)&&eP(e.Ie)?tx(a):tD(e.serializer,a))}(e,i,t))}return n}class t2 extends tj{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class t3 extends tj{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class t4{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,s;e instanceof tX?(n=e.value.clone(),s=t0(e.fieldTransforms,t,r.transformResults),n.setAll(s),t.convertToFoundDocument(r.version,n).setHasCommittedMutations()):e instanceof tJ?function(e,t,r){if(!tQ(e.precondition,t))return t.convertToUnknownDocument(r.version);let n=t0(e.fieldTransforms,t,r.transformResults),s=t.data;s.setAll(tZ(e)),s.setAll(n),t.convertToFoundDocument(r.version,s).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)&&
1(t=tW(r,e,t,this.localWriteTime));for(let r of this.mutations)r.key.isEqual(e.key)&&(t=tW(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(e,t){let r=tb();return this.mutations.forEach(n=>{let s=e.get(n.key),i=s.overlayedDocument,a=this.applyToLocalView(i,s.mutatedFields),o=tH(i,a=t.has(n.key)?null:a);null!==o&&r.set(n.key,o),i.isValidDocument()||i.convertToNoDocument(q.min())}),r}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),tN())}isEqual(e){return this.batchId===e.batchId&&U(this.mutations,e.mutations,(e,t)=>tY(e,t))&&U(this.baseMutations,e.baseMutations,(e,t)=>tY(e,t))}}class t8{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){e.mutations.length===r.length||C();let n=tS,s=e.mutations;for(let e=0;e<s.length;e++)n=n.insert(s[e].key,r[e].version);return new t8(e,t,r,n)}}class t6{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 t5{constructor(e,t){this.count=e,this.unchangedNames=t}}function t9(e){if(void 0===e)return T("GRPC error has no .code"),b.UNKNOWN;switch(e){case n.OK:return b.OK;case n.CANCELLED:return b.CANCELLED;case n.UNKNOWN:return b.UNKNOWN;case n.DEADLINE_EXCEEDED:return b.DEADLINE_EXCEEDED;case n.RESOURCE_EXHAUSTED:return b.RESOURCE_EXHAUSTED;case n.INTERNAL:return b.INTERNAL;case n.UNAVAILABLE:return b.UNAVAILABLE;case n.UNAUTHENTICATED:return b.UNAUTHENTICATED;case n.INVALID_ARGUMENT:return b.INVALID_ARGUMENT;case n.NOT_FOUND:return b.NOT_FOUND;case n.ALREADY_EXISTS:return b.ALREADY_EXISTS;case n.PERMISSION_DENIED:return b.PERMISSION_DENIED;case n.FAILED_PRECONDITION:return b.FAILED_PRECONDITION;case n.ABORTED:return b.ABORTED;case n.OUT_OF_RANGE:return b.OUT_OF_RANGE;case n.UNIMPLEMENTED:return b.UNIMPLEMENTED;case n.DATA_LOSS:return b.DATA_LOSS;default:return C()}}(s=n||(n={}))[s.OK=0]="OK",s[s.CANCELLED=1]="CANCELLED",s[s.UNKNOWN=2]="UNKNOWN",s[s.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",s[s.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",s[s.NOT_FOUND=5]="NOT_FOUND",s[s.ALREADY_EXISTS=6]="ALREADY_EXISTS",s[s.PERMISSION_DENIED=7]="PERMISSION_DENIED",s[s.UNAUTHENTICATED=16]="UNAUTHENTICATED",s[s.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",s[s.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",s[s.ABORTED=10]="ABORTED",s[s.OUT_OF_RANGE=11]="OUT_OF_RANGE",s[s.UNIMPLEMENTED=12]="UNIMPLEMENTED",s[s.INTERNAL=13]="INTERNAL",s[s.UNAVAILABLE=14]="UNAVAILABLE",s[s.DATA_LOSS=15]="DATA_LOSS";let t7=new c.jz([0xffffffff,0xffffffff],0);function re(e){let t=(new TextEncoder).encode(e),r=new c.VV;return r.update(t),new Uint8Array(r.digest())}function rt(e){let t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),s=t.getUint32(8,!0),i=t.getUint32(12,!0);return[new c.jz([r,n],0),new c.jz([s,i],0)]}class rr{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||t>=8)throw new rn(`Invalid padding: ${t}`);if(r<0||e.length>0&&0===this.hashCount)throw new rn(`Invalid hash count: ${r}`);if(0===e.length&&0!==t)throw new rn(`Invalid padding when bitmap length is 0: ${t}`);this.Ee=8*e.length-t,this.de=c.jz.fromNumber(this.Ee)}Ae(e,t,r){let n=e.add(t.multiply(c.jz.fromNumber(r)));return 1===n.compare(t7)&&(n=new c.jz([n.getBits(0),n.getBits(1)],0)),n.modulo(this.de).toNumber()}Re(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ee)return!1;let[t,r]=rt(re(e));for(let e=0;e<this.hashCount;e++){let n=this.Ae(t,r,e);if(!this.Re(n))return!1}return!0}static create(e,t,r){let n=new rr(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.Ee)return;let[t,r]=rt(re(e));for(let e=0;e<this.hashCount;e++){let n=this.Ae(t,r,e);this.Ve(n)}}Ve(e){let t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class rn extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class rs{constructor(e,t,r,n,s){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=s}static createSynthesizedRemoteEventForCurrentChange(e,t,r){let n=new Map;return n.set(e,ri.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new rs(q.min(),n,new es(F),tT,tN())}}class ri{constructor(e,t,r,n,s){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=s}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new ri(r,t,tN(),tN(),tN())}}class ra{constructor(e,t,r,n){this.me=e,this.removedTargetIds=t,this.key=r,this.fe=n}}class ro{constructor(e,t){this.targetId=e,this.ge=t}}class rl{constructor(e,t,r=ec.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class ru{constructor(){this.pe=0,this.ye=rd(),this.we=ec.EMPTY_BYTE_STRING,this.Se=!1,this.be=!0}get current(){return this.Se}get resumeToken(){return this.we}get De(){return 0!==this.pe}get ve(){return this.be}Ce(e){e.approximateByteSize()>0&&(this.be=!0,this.we=e)}Fe(){let e=tN(),t=tN(),r=tN();return this.ye.forEach((n,s)=>{switch(s){case 0:e=e.add(n);break;case 2:t=t.add(n);break;case 1:r=r.add(n);break;default:C()}}),new ri(this.we,this.Se,e,t,r)}Me(){this.be=!1,this.ye=rd()}xe(e,t){this.be=!0,this.ye=this.ye.insert(e,t)}Oe(e){this.be=!0,this.ye=this.ye.remove(e)}Ne(){this.pe+=1}Be(){this.pe-=1,this.pe>=0||C()}Le(){this.be=!0,this.Se=!0}}class rh{constructor(e){this.ke=e,this.qe=new Map,this.Qe=tT,this.$e=rc(),this.Ke=rc(),this.Ue=new es(F)}We(e){for(let t of e.me)e.fe&&e.fe.isFoundDocument()?this.Ge(t,e.fe):this.ze(t,e.key,e.fe);for(let t of e.removedTargetIds)this.ze(t,e.key,e.fe)}je(e){this.forEachTarget(e,t=>{let r=this.He(t);switch(e.state){case 0:this.Je(t)&&r.Ce(e.resumeToken);break;case 1:r.Be(),r.De||r.Me(),r.Ce(e.resumeToken);break;case 2:r.Be(),r.De||this.removeTarget(t);break;case 3:this.Je(t)&&(r.Le(),r.Ce(e.resumeToken));break;case 4:this.Je(t)&&(this.Ye(t),r.Ce(e.resumeToken));break;default:C()}})}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.qe.forEach((e,r)=>{this.Je(r)&&t(r)})}Ze(e){let t=e.targetId,r=e.ge.count,n=this.Xe(t);if(n){let s=n.target;if(ta(s))if(0===r){let e=new Q(s.path);this.ze(t,e,eH.newNoDocument(e,q.min()))}else 1===r||C();else{let n=this.et(t);if(n!==r){let r=this.tt(e),s=r?this.nt(r,e,n):1;0!==s&&(this.Ye(t),this.Ue=this.Ue.insert(t,2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch"))}}}}tt(e){let t,r,n=e.ge.unchangedNames;if(!n||!n.bits)return null;let{bits:{bitmap:s="",padding:i=0},hashCount:a=0}=n;try{t=eg(s).toUint8Array()}catch(e){if(e instanceof eh)return E("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 rr(t,i,a)}catch(e){return E(e instanceof rn?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===r.Ee?null:r}nt(e,t,r){return 2*(t.ge.count!==r-this.st(e,t.targetId))}st(e,t){let r=this.ke.getRemoteKeysForTarget(t),n=0;return r.forEach(r=>{let s=this.ke.it(),i=`projects/${s.projectId}/databases/${s.database}/documents/${r.path.canonicalString()}`;e.mightContain(i)||(this.ze(t,r,null),n++)}),n}ot(e){let t=new Map;this.qe.forEach((r,n)=>{let s=this.Xe(n);if(s){if(r.current&&ta(s.target)){let t=new Q(s.target.path);this._t(t).has(n)||this.ut(n,t)||this.ze(n,t,eH.newNoDocument(t,e))}r.ve&&(t.set(n,r.Fe()),r.Me())}});let r=tN();this.Ke.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{let t=this.Xe(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(n=!1,!1)}),n&&(r=r.add(e))}),this.Qe.forEach((t,r)=>r.setReadTime(e));let n=new rs(e,t,this.Ue,this.Qe,r);return this.Qe=tT,this.$e=rc(),this.Ke=rc(),this.Ue=new es(F),n}Ge(e,t){if(!this.Je(e))return;let r=2*!!this.ut(e,t.key);this.He(e).xe(t.key,r),this.Qe=this.Qe.insert(t.key,t),this.$e=this.$e.insert(t.key,this._t(t.key).add(e)),this.Ke=this.Ke.insert(t.key,this.ct(t.key).add(e))}ze(e,t,r){if(!this.Je(e))return;let n=this.He(e);this.ut(e,t)?n.xe(t,1):n.Oe(t),this.Ke=this.Ke.insert(t,this.ct(t).delete(e)),this.Ke=this.Ke.insert(t,this.ct(t).add(e)),r&&(this.Qe=this.Qe.insert(t,r))}removeTarget(e){this.qe.delete(e)}et(e){let t=this.He(e).Fe();return this.ke.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ne(e){this.He(e).Ne()}He(e){let t=this.qe.get(e);return t||(t=new ru,this.qe.set(e,t)),t}ct(e){let t=this.Ke.get(e);return t||(t=new eo(F),this.Ke=this.Ke.insert(e,t)),t}_t(e){let t=this.$e.get(e);return t||(t=new eo(F),this.$e=this.$e.insert(e,t)),t}Je(e){let t=null!==this.Xe(e);return t||_("WatchChangeAggregator","Detected inactive target",e),t}Xe(e){let t=this.qe.get(e);return t&&t.De?null:this.ke.lt(e)}Ye(e){this.qe.set(e,new ru),this.ke.getRemoteKeysForTarget(e).forEach(t=>{this.ze(e,t,null)})}ut(e,t){return this.ke.getRemoteKeysForTarget(e).has(t)}}function rc(){return new es(Q.comparator)}function rd(){return new es(Q.comparator)}let rf={asc:"ASCENDING",desc:"DESCENDING"},rm={"<":"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"},rg={and:"AND",or:"OR"};class rp{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ry(e,t){return e.useProto3Json||null==t?t:{value:t}}function rw(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 rv(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function r_(e){let t;return e||C(),q.fromTimestamp(new P((t=ef(e)).seconds,t.nanos))}function rT(e,t){return rE(e,t).canonicalString()}function rE(e,t){let r=new K(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function rI(e){let t=K.fromString(e);return rR(t)||C(),t}function rC(e,t){return rT(e.databaseId,t.path)}function rb(e,t){let r=rI(t);
4if(r.get(1)!==e.databaseId.projectId)throw new S(b.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 S(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new Q(rN(r))}function rS(e,t){return rT(e.databaseId,t)}function rA(e){return new K(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function rN(e){return e.length>4&&"documents"===e.get(4)||C(),e.popFirst(5)}function rk(e,t,r){return{name:rC(e,t),fields:r.value.mapValue.fields}}function rD(e){return{fieldPath:e.canonicalString()}}function rx(e){return G.fromServerFormat(e.fieldPath)}function rR(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}class rL{constructor(e,t,r,n,s=q.min(),i=q.min(),a=ec.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new rL(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new rL(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new rL(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new rL(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class rV{constructor(e){this.Tt=e}}class rM{At(e,t){this.Rt(e,t),t.Vt()}Rt(e,t){if("nullValue"in e)this.ft(t,5);else if("booleanValue"in e)this.ft(t,10),t.gt(+!!e.booleanValue);else if("integerValue"in e)this.ft(t,15),t.gt(em(e.integerValue));else if("doubleValue"in e){let r=em(e.doubleValue);isNaN(r)?this.ft(t,13):(this.ft(t,15),ee(r)?t.gt(0):t.gt(r))}else if("timestampValue"in e){let r=e.timestampValue;this.ft(t,20),"string"==typeof r&&(r=ef(r)),t.yt(`${r.seconds||""}`),t.gt(r.nanos||0)}else if("stringValue"in e)this.wt(e.stringValue,t),this.St(t);else if("bytesValue"in e)this.ft(t,30),t.bt(eg(e.bytesValue)),this.St(t);else if("referenceValue"in e)this.Dt(e.referenceValue,t);else if("geoPointValue"in e){let r=e.geoPointValue;this.ft(t,45),t.gt(r.latitude||0),t.gt(r.longitude||0)}else"mapValue"in e?eQ(e)?this.ft(t,Number.MAX_SAFE_INTEGER):ez(e)?this.vt(e.mapValue,t):(this.Ct(e.mapValue,t),this.St(t)):"arrayValue"in e?(this.Ft(e.arrayValue,t),this.St(t)):C()}wt(e,t){this.ft(t,25),this.Mt(e,t)}Mt(e,t){t.yt(e)}Ct(e,t){let r=e.fields||{};for(let e of(this.ft(t,55),Object.keys(r)))this.wt(e,t),this.Rt(r[e],t)}vt(e,t){var r,n;let s=e.fields||{};this.ft(t,53);let i=(null==(n=null==(r=s[eD].arrayValue)?void 0:r.values)?void 0:n.length)||0;this.ft(t,15),t.gt(em(i)),this.wt(eD,t),this.Rt(s[eD],t)}Ft(e,t){let r=e.values||[];for(let e of(this.ft(t,50),r))this.Rt(e,t)}Dt(e,t){this.ft(t,37),Q.fromName(e).path.forEach(e=>{this.ft(t,60),this.Mt(e,t)})}ft(e,t){e.gt(t)}St(e){e.gt(2)}}rM.xt=new rM;class rO{constructor(){this.Tn=new rF}addToCollectionParentIndex(e,t){return this.Tn.add(t),X.resolve()}getCollectionParents(e,t){return X.resolve(this.Tn.getEntries(t))}addFieldIndex(e,t){return X.resolve()}deleteFieldIndex(e,t){return X.resolve()}deleteAllFieldIndexes(e){return X.resolve()}createTargetIndexes(e,t){return X.resolve()}getDocumentsMatchingTarget(e,t){return X.resolve(null)}getIndexType(e,t){return X.resolve(0)}getFieldIndexes(e,t){return X.resolve([])}getNextCollectionGroupToUpdate(e){return X.resolve(null)}getMinOffset(e,t){return X.resolve(H.min())}getMinOffsetFromCollectionGroup(e,t){return X.resolve(H.min())}updateCollectionGroup(e,t,r){return X.resolve()}updateIndexEntries(e,t){return X.resolve()}}class rF{constructor(){this.index={}}add(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new eo(K.comparator),s=!n.has(r);return this.index[t]=n.add(r),s}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 eo(K.comparator)).toArray()}}new Uint8Array(0);let rU={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class rP{static withCacheSize(e){return new rP(e,rP.DEFAULT_COLLECTION_PE
4RCENTILE,rP.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}rP.DEFAULT_COLLECTION_PERCENTILE=10,rP.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,rP.DEFAULT=new rP(0x2800000,rP.DEFAULT_COLLECTION_PERCENTILE,rP.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),rP.DISABLED=new rP(-1,0,0);class rq{constructor(e){this.$n=e}next(){return this.$n+=2,this.$n}static Kn(){return new rq(0)}static Un(){return new rq(-1)}}let r$="LruGarbageCollector";function rB([e,t],[r,n]){let s=F(e,r);return 0===s?F(t,n):s}class rK{constructor(e){this.Hn=e,this.buffer=new eo(rB),this.Jn=0}Yn(){return++this.Jn}Zn(e){let t=[e,this.Yn()];if(this.buffer.size<this.Hn)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();0>rB(t,e)&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class rz{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Xn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.er(6e4)}stop(){this.Xn&&(this.Xn.cancel(),this.Xn=null)}get started(){return null!==this.Xn}er(e){_(r$,`Garbage collection scheduled in ${e}ms`),this.Xn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Xn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){J(e)?_(r$,"Ignoring IndexedDB error during garbage collection: ",e):await Y(e)}await this.er(3e5)})}}class rG{constructor(e,t){this.tr=e,this.params=t}calculateTargetCount(e,t){return this.tr.nr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return X.resolve(Z.ae);let r=new rK(t);return this.tr.forEachTarget(e,e=>r.Zn(e.sequenceNumber)).next(()=>this.tr.rr(e,e=>r.Zn(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.tr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.tr.removeOrphanedDocuments(e,t)}collect(e,t){return -1===this.params.cacheSizeCollectionThreshold?(_("LruGarbageCollector","Garbage collection skipped; disabled"),X.resolve(rU)):this.getCacheSize(e).next(r=>r<this.params.cacheSizeCollectionThreshold?(_("LruGarbageCollector",`Garbage collection skipped; Cache size ${r} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),rU):this.ir(e,t))}getCacheSize(e){return this.tr.getCacheSize(e)}ir(e,t){let r,n,s,i,a,o,l,h=Date.now();return this.calculateTargetCount(e,this.params.percentileToCollect).next(t=>(t>this.params.maximumSequenceNumbersToCollect?(_("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${t}`),n=this.params.maximumSequenceNumbersToCollect):n=t,i=Date.now(),this.nthSequenceNumber(e,n))).next(n=>(r=n,a=Date.now(),this.removeTargets(e,r,t))).next(t=>(s=t,o=Date.now(),this.removeOrphanedDocuments(e,r))).next(e=>(l=Date.now(),v()<=u.$b.DEBUG&&_("LruGarbageCollector",`LRU Garbage Collection
5	Counted targets in ${i-h}ms
6	Determined least recently used ${n} in `+(a-i)+"ms\n"+`	Removed ${s} targets in `+(o-a)+"ms\n"+`	Removed ${e} documents in `+(l-o)+"ms\n"+`Total Duration: ${l-h}ms`),X.resolve({didRun:!0,sequenceNumbersCollected:n,targetsRemoved:s,documentsRemoved:e})))}}class rQ{constructor(){this.changes=new t_(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,eH.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();let r=this.changes.get(t);return void 0!==r?X.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 rj{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class rH{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&&tW(r.mutation,e,eu.empty(),P.now()),e))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.getLocalViewOfDocuments(e,t,tN()).next(()=>t))}getLocalViewOfDocuments(e,t,r=tN()){let n=tb();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let t=tI();return e.forEach((e,r)=>{t=t.insert(e,r.overlayedDocument)}),t}))}getOverlayedDocuments(e,t){let r=tb();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,tN()))}populateOverlays(e,t,r){let n=[];
6return 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 s=tT,i=tb(),a=tb();return t.forEach((e,t)=>{let a=r.get(t.key);n.has(t.key)&&(void 0===a||a.mutation instanceof tJ)?s=s.insert(t.key,t):void 0!==a?(i.set(t.key,a.mutation.getFieldMask()),tW(a.mutation,t,a.mutation.getFieldMask(),P.now())):i.set(t.key,eu.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>i.set(e,t)),t.forEach((e,t)=>{var r;return a.set(e,new rj(t,null!=(r=i.get(e))?r:null))}),a))}recalculateAndSaveOverlays(e,t){let r=tb(),n=new es((e,t)=>e-t),s=tN();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next(e=>{for(let s of e)s.keys().forEach(e=>{let i=t.get(e);if(null===i)return;let a=r.get(e)||eu.empty();a=s.applyToLocalView(i,a),r.set(e,a);let o=(n.get(s.batchId)||tN()).add(e);n=n.insert(s.batchId,o)})}).next(()=>{let i=[],a=n.getReverseIterator();for(;a.hasNext();){let n=a.getNext(),o=n.key,l=n.value,u=tb();l.forEach(e=>{if(!s.has(e)){let n=tH(t.get(e),r.get(e));null!==n&&u.set(e,n),s=s.add(e)}}),i.push(this.documentOverlayCache.saveOverlays(e,o,u))}return X.waitFor(i)}).next(()=>r)}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.recalculateAndSaveOverlays(e,t))}getDocumentsMatchingQuery(e,t,r,n){return Q.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):th(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(s=>{let i=n-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,r.largestBatchId,n-s.size):X.resolve(tb()),a=-1,o=s;return i.next(t=>X.forEach(t,(t,r)=>(a<r.largestBatchId&&(a=r.largestBatchId),s.get(t)?X.resolve():this.remoteDocumentCache.getEntry(e,t).next(e=>{o=o.insert(t,e)}))).next(()=>this.populateOverlays(e,t,s)).next(()=>this.computeViews(e,o,t,tN())).next(e=>({batchId:a,changes:tC(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new Q(t)).next(e=>{let t=tI();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(e,t,r,n){let s=t.collectionGroup,i=tI();return this.indexManager.getCollectionParents(e,s).next(a=>X.forEach(a,a=>{let o=new to(a.child(s),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)=>{i=i.insert(e,t)})})}).next(()=>i))}getDocumentsMatchingCollectionQuery(e,t,r,n){let s;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,r.largestBatchId).next(i=>(s=i,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,r,s,n))).next(e=>{s.forEach((t,r)=>{let n=r.getKey();null===e.get(n)&&(e=e.insert(n,eH.newInvalidDocument(n)))});let r=tI();return e.forEach((e,n)=>{let i=s.get(e);void 0!==i&&tW(i.mutation,n,eu.empty(),P.now()),tw(t,n)&&(r=r.insert(e,n))}),r})}}class rW{constructor(e){this.serializer=e,this.dr=new Map,this.Ar=new Map}getBundleMetadata(e,t){return X.resolve(this.dr.get(t))}saveBundleMetadata(e,t){return this.dr.set(t.id,{id:t.id,version:t.version,createTime:r_(t.createTime)}),X.resolve()}getNamedQuery(e,t){return X.resolve(this.Ar.get(t))}saveNamedQuery(e,t){var r;let n;return this.Ar.set(t.name,{name:t.name,query:(n=function(e){var t,r,n,s;let i,a,o,l,u,h=4===(i=rI(e.parent)).length?K.emptyPath():rN(i),c=e.structuredQuery,d=c.from?c.from.length:0,f=null;if(d>0){1===d||C();let e=c.from[0];e.allDescendants?f=e.collectionId:h=h.child(e.collectionId)}let m=[];c.where&&(m=(a=function e(t){return void 0!==t.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":let t=rx(e.unaryFilter.field);return e0.create(t,"==",{doubleValue:NaN});case"IS_NULL":let r=rx(e.unaryFilter.field);return e0.create(r,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let n=rx(e.unaryFilter.field);return e0.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let s=rx(e.unaryFilter.field);return e0.create(s,"!=",{nullValue:"NULL_VALUE"});default:return C()}}(t):void 0!==t.fieldFilter?e0.create(rx(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";default:return C()}}(t.fieldFilter.op),t.fieldFilter.value):void 0!==t.compositeFilter?e1.create(t.compositeFilter.filters.map(t=>e(t)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return C()}}(t.compositeFilter.op)):C()}(c.where))instanceof e1&&e3(t=a)&&e2(t)?a.getFilters():[a]);let g=[];c.orderBy&&(g=c.orderBy.map(e=>new eJ(rx(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))));let p=null;c.limit&&(p=null==(o="object"==typeof(r=c.limit)?r.value:r)?null:o);let y=null;c.startAt&&(l=!!(n=c.startAt).before,y=new eW(n.values||[],l));let w=null;return c.endAt&&(u=!(s=c.endAt).before,w=new eW(s.values||[],u)),new to(h,f,g,m,p,"F",y,w)}({parent:(r=t.bundledQuery).parent,structuredQuery:r.structuredQuery}
6),"LAST"===r.limitType?tm(n,n.limit,"L"):n),readTime:r_(t.readTime)}),X.resolve()}}class rY{constructor(){this.overlays=new es(Q.comparator),this.Rr=new Map}getOverlay(e,t){return X.resolve(this.overlays.get(t))}getOverlays(e,t){let r=tb();return X.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.Et(e,t,n)}),X.resolve()}removeOverlaysForBatchId(e,t,r){let n=this.Rr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Rr.delete(r)),X.resolve()}getOverlaysForCollection(e,t,r){let n=tb(),s=t.length+1,i=new Q(t.child("")),a=this.overlays.getIteratorFrom(i);for(;a.hasNext();){let e=a.getNext().value,i=e.getKey();if(!t.isPrefixOf(i.path))break;i.path.length===s&&e.largestBatchId>r&&n.set(e.getKey(),e)}return X.resolve(n)}getOverlaysForCollectionGroup(e,t,r,n){let s=new es((e,t)=>e-t),i=this.overlays.getIterator();for(;i.hasNext();){let e=i.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>r){let t=s.get(e.largestBatchId);null===t&&(t=tb(),s=s.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}let a=tb(),o=s.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=n)););return X.resolve(a)}Et(e,t,r){let n=this.overlays.get(r.key);if(null!==n){let e=this.Rr.get(n.largestBatchId).delete(r.key);this.Rr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new t6(t,r));let s=this.Rr.get(t);void 0===s&&(s=tN(),this.Rr.set(t,s)),this.Rr.set(t,s.add(r.key))}}class rX{constructor(){this.sessionToken=ec.EMPTY_BYTE_STRING}getSessionToken(e){return X.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,X.resolve()}}class rJ{constructor(){this.Vr=new eo(rZ.mr),this.gr=new eo(rZ.pr)}isEmpty(){return this.Vr.isEmpty()}addReference(e,t){let r=new rZ(e,t);this.Vr=this.Vr.add(r),this.gr=this.gr.add(r)}yr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.wr(new rZ(e,t))}Sr(e,t){e.forEach(e=>this.removeReference(e,t))}br(e){let t=new Q(new K([])),r=new rZ(t,e),n=new rZ(t,e+1),s=[];return this.gr.forEachInRange([r,n],e=>{this.wr(e),s.push(e.key)}),s}Dr(){this.Vr.forEach(e=>this.wr(e))}wr(e){this.Vr=this.Vr.delete(e),this.gr=this.gr.delete(e)}vr(e){let t=new Q(new K([])),r=new rZ(t,e),n=new rZ(t,e+1),s=tN();return this.gr.forEachInRange([r,n],e=>{s=s.add(e.key)}),s}containsKey(e){let t=new rZ(e,0),r=this.Vr.firstAfterOrEqual(t);return null!==r&&e.isEqual(r.key)}}class rZ{constructor(e,t){this.key=e,this.Cr=t}static mr(e,t){return Q.comparator(e.key,t.key)||F(e.Cr,t.Cr)}static pr(e,t){return F(e.Cr,t.Cr)||Q.comparator(e.key,t.key)}}class r0{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Fr=1,this.Mr=new eo(rZ.mr)}checkEmpty(e){return X.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){let s=this.Fr;this.Fr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];let i=new t4(s,t,r,n);for(let t of(this.mutationQueue.push(i),n))this.Mr=this.Mr.add(new rZ(t.key,s)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return X.resolve(i)}lookupMutationBatch(e,t){return X.resolve(this.Or(t))}getNextMutationBatchAfterBatchId(e,t){let r=this.Nr(t+1),n=r<0?0:r;return X.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return X.resolve(0===this.mutationQueue.length?-1:this.Fr-1)}getAllMutationBatches(e){return X.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new rZ(t,0),n=new rZ(t,1/0),s=[];return this.Mr.forEachInRange([r,n],e=>{let t=this.Or(e.Cr);s.push(t)}),X.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new eo(F);return t.forEach(e=>{let t=new rZ(e,0),n=new rZ(e,1/0);this.Mr.forEachInRange([t,n],e=>{r=r.add(e.Cr)})}),X.resolve(this.Br(r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,s=r;Q.isDocumentKey(s)||(s=s.child(""));let i=new rZ(new Q(s),0),a=new eo(F);return this.Mr.forEachWhile(e=>{let t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Cr)),!0)},i),X.resolve(this.Br(a))}Br(e){let t=[];
6return e.forEach(e=>{let r=this.Or(e);null!==r&&t.push(r)}),t}removeMutationBatch(e,t){0===this.Lr(t.batchId,"removed")||C(),this.mutationQueue.shift();let r=this.Mr;return X.forEach(t.mutations,n=>{let s=new rZ(n.key,t.batchId);return r=r.delete(s),this.referenceDelegate.markPotentiallyOrphaned(e,n.key)}).next(()=>{this.Mr=r})}qn(e){}containsKey(e,t){let r=new rZ(t,0),n=this.Mr.firstAfterOrEqual(r);return X.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,X.resolve()}Lr(e,t){return this.Nr(e)}Nr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Or(e){let t=this.Nr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class r1{constructor(e){this.kr=e,this.docs=new es(Q.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){let r=t.key,n=this.docs.get(r),s=n?n.size:0,i=this.kr(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-s,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);return X.resolve(r?r.document.mutableCopy():eH.newInvalidDocument(t))}getEntries(e,t){let r=tT;return t.forEach(e=>{let t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():eH.newInvalidDocument(e))}),X.resolve(r)}getDocumentsMatchingQuery(e,t,r,n){let s=tT,i=t.path,a=new Q(i.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(a);for(;o.hasNext();){let{key:e,value:{document:a}}=o.getNext();if(!i.isPrefixOf(e.path))break;e.path.length>i.length+1||0>=function(e,t){let r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=Q.comparator(e.documentKey,t.documentKey))?r:F(e.largestBatchId,t.largestBatchId)}(new H(a.readTime,a.key,-1),r)||(n.has(a.key)||tw(t,a))&&(s=s.insert(a.key,a.mutableCopy()))}return X.resolve(s)}getAllFromCollectionGroup(e,t,r,n){C()}qr(e,t){return X.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new r2(this)}getSize(e){return X.resolve(this.size)}}class r2 extends rQ{constructor(e){super(),this.Ir=e}applyChanges(e){let t=[];
vendor: 4,976 bytes, line 6
6return this.changes.forEach((r,n)=>{n.isValidDocument()?t.push(this.Ir.addEntry(e,n)):this.Ir.removeEntry(r)}),X.waitFor(t)}getFromCache(e,t){return this.Ir.getEntry(e,t)}getAllFromCache(e,t){return this.Ir.getEntries(e,t)}}class r3{constructor(e){this.persistence=e,this.Qr=new t_(e=>ts(e),ti),this.lastRemoteSnapshotVersion=q.min(),this.highestTargetId=0,this.$r=0,this.Kr=new rJ,this.targetCount=0,this.Ur=rq.Kn()}forEachTarget(e,t){return this.Qr.forEach((e,r)=>t(r)),X.resolve()}getLastRemoteSnapshotVersion(e){return X.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return X.resolve(this.$r)}allocateTargetId(e){return this.highestTargetId=this.Ur.next(),X.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.$r&&(this.$r=t),X.resolve()}zn(e){this.Qr.set(e.target,e);let t=e.targetId;t>this.highestTargetId&&(this.Ur=new rq(t),this.highestTargetId=t),e.sequenceNumber>this.$r&&(this.$r=e.sequenceNumber)}addTargetData(e,t){return this.zn(t),this.targetCount+=1,X.resolve()}updateTargetData(e,t){return this.zn(t),X.resolve()}removeTargetData(e,t){return this.Qr.delete(t.target),this.Kr.br(t.targetId),this.targetCount-=1,X.resolve()}removeTargets(e,t,r){let n=0,s=[];return this.Qr.forEach((i,a)=>{a.sequenceNumber<=t&&null===r.get(a.targetId)&&(this.Qr.delete(i),s.push(this.removeMatchingKeysForTargetId(e,a.targetId)),n++)}),X.waitFor(s).next(()=>n)}getTargetCount(e){return X.resolve(this.targetCount)}getTargetData(e,t){let r=this.Qr.get(t)||null;return X.resolve(r)}addMatchingKeys(e,t,r){return this.Kr.yr(t,r),X.resolve()}removeMatchingKeys(e,t,r){this.Kr.Sr(t,r);let n=this.persistence.referenceDelegate,s=[];return n&&t.forEach(t=>{s.push(n.markPotentiallyOrphaned(e,t))}),X.waitFor(s)}removeMatchingKeysForTargetId(e,t){return this.Kr.br(t),X.resolve()}getMatchingKeysForTargetId(e,t){let r=this.Kr.vr(t);return X.resolve(r)}containsKey(e,t){return X.resolve(this.Kr.containsKey(t))}}class r4{constructor(e,t){this.Wr={},this.overlays={},this.Gr=new Z(0),this.zr=!1,this.zr=!0,this.jr=new rX,this.referenceDelegate=e(this),this.Hr=new r3(this),this.indexManager=new rO,this.remoteDocumentCache=new r1(e=>this.referenceDelegate.Jr(e)),this.serializer=new rV(t),this.Yr=new rW(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.zr=!1,Promise.resolve()}get started(){return this.zr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new rY,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.Wr[e.toKey()];return r||(r=new r0(t,this.referenceDelegate),this.Wr[e.toKey()]=r),r}getGlobalsCache(){return this.jr}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Yr}runTransaction(e,t,r){_("MemoryPersistence","Starting transaction:",e);let n=new r8(this.Gr.next());return this.referenceDelegate.Zr(),r(n).next(e=>this.referenceDelegate.Xr(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}ei(e,t){return X.or(Object.values(this.Wr).map(r=>()=>r.containsKey(e,t)))}}class r8 extends W{constructor(e){super(),this.currentSequenceNumber=e}}class r6{constructor(e){this.persistence=e,this.ti=new rJ,this.ni=null}static ri(e){return new r6(e)}get ii(){if(this.ni)return this.ni;throw C()}addReference(e,t,r){return this.ti.addReference(r,t),this.ii.delete(r.toString()),X.resolve()}removeReference(e,t,r){return this.ti.removeReference(r,t),this.ii.add(r.toString()),X.resolve()}markPotentiallyOrphaned(e,t){return this.ii.add(t.toString()),X.resolve()}removeTarget(e,t){this.ti.br(t.targetId).forEach(e=>this.ii.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.ii.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Zr(){this.ni=new Set}Xr(e){let t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return X.forEach(this.ii,r=>{let n=Q.fromPath(r);return this.si(e,n).next(e=>{e||t.removeEntry(n,q.min())})}).next(()=>(this.ni=null,t.apply(e)))}updateLimboDocument(e,t){return this.si(e,t).next(e=>{e?this.ii.delete(t.toString()):this.ii.add(t.toString())})}Jr(e){return 0}si(e,t){return X.or([()=>X.resolve(this.ti.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.ei(e,t)])}}class r5{constructor(e,t){this.persistence=e,this.oi=new t_(e=>(function(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"})(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=new rG(this,t)}static ri(e,t){return new r5(e,t)}Zr(){}Xr(e){return X.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEac
6hTarget(e,t)}nr(e){let t=this.sr(e);return this.persistence.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}rr(e,t){return X.forEach(this.oi,(r,n)=>this.ar(e,r,n).next(e=>e?X.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(),s=n.newChangeBuffer();return n.qr(e,n=>this.ar(e,n,t).next(e=>{e||(r++,s.removeEntry(n,q.min()))})).next(()=>s.apply(e)).next(()=>r)}markPotentiallyOrphaned(e,t){return this.oi.set(t,e.currentSequenceNumber),X.resolve()}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),X.resolve()}removeReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),X.resolve()}updateLimboDocument(e,t){return this.oi.set(t,e.currentSequenceNumber),X.resolve()}Jr(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function e(t){switch(ex(t)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:let r=eT(t);return r?16+e(r):16;case 5:return 2*t.stringValue.length;case 6:return eg(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 s;return n=t.mapValue,s=0,er(n.fields,(t,r)=>{s+=t.length+e(r)}),s;default:throw C()}}(e.data.value)),t}ar(e,t,r){return X.or([()=>this.persistence.ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{let e=this.oi.get(t);return X.resolve(void 0!==e&&e>r)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class r9{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Hi=r,this.Ji=n}static Yi(e,t){let r=tN(),n=tN();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 r9(e,t.fromCache,r,n)}}class r7{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class ne{constructor(){this.Zi=!1,this.Xi=!1,this.es=100,this.ts=function(){let e;return(0,h.nr)()?8:Number((e=(0,h.ZQ)().match(/Android ([\d.]+)/i))?e[1].split(".").slice(0,2).join("."):"-1")>0?6:4}()}initialize(e,t){this.ns=e,this.indexManager=t,this.Zi=!0}getDocumentsMatchingQuery(e,t,r,n){let s={result:null};return this.rs(e,t).next(e=>{s.result=e}).next(()=>{if(!s.result)return this.ss(e,t,n,r).next(e=>{s.result=e})}).next(()=>{if(s.result)return;let r=new r7;return this._s(e,t,r).next(n=>{if(s.result=n,this.Xi)return this.us(e,t,r,n.size)})}).next(()=>s.result)}us(e,t,r,n){return r.documentReadCount<this.es?(v()<=u.$b.DEBUG&&_("QueryEngine","SDK will not create cache indexes for query:",ty(t),"since it only creates cache indexes for collection contains","more than or equal to",this.es,"documents"),X.resolve()):(v()<=u.$b.DEBUG&&_("QueryEngine","Query:",ty(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ts*n?(v()<=u.$b.DEBUG&&_("QueryEngine","The SDK decides to create cache indexes for query:",ty(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,td(t))):X.resolve())}rs(e,t){if(tu(t))return X.resolve(null);let r=td(t);return this.indexManager.getIndexType(e,r).next(n=>0===n?null:(null!==t.limit&&1===n&&(r=td(t=tm(t,null,"F"))),this.indexManager.getDocumentsMatchingTarget(e,r).next(n=>{let s=tN(...n);return this.ns.getDocuments(e,s).next(n=>this.indexManager.getMinOffset(e,r).next(r=>{let i=this.cs(t,n);return this.ls(t,i,s,r.readTime)?this.rs(e,tm(t,null,"F")):this.hs(e,i,t,r)}))})))}ss(e,t,r,n){return tu(t)||n.isEqual(q.min())?X.resolve(null):this.ns.getDocuments(e,r).next(s=>{let i,a,o=this.cs(t,s);return this.ls(t,o,r,n)?X.resolve(null):(v()<=u.$b.DEBUG&&_("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),ty(t)),this.hs(e,o,t,(i=n.toTimestamp().seconds,a=n.toTimestamp().nanoseconds+1,new H(q.fromTimestamp(1e9===a?new P(i+1,0):new P(i,a)),Q.empty(),-1))
6).next(e=>e))})}cs(e,t){let r=new eo(tv(e));return t.forEach((t,n)=>{tw(e,n)&&(r=r.add(n))}),r}ls(e,t,r,n){if(null===e.limit)return!1;if(r.size!==t.size)return!0;let s="F"===e.limitType?t.last():t.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(n)>0)}_s(e,t,r){return v()<=u.$b.DEBUG&&_("QueryEngine","Using full collection scan to execute query:",ty(t)),this.ns.getDocumentsMatchingQuery(e,t,H.min(),r)}hs(e,t,r,n){return this.ns.getDocumentsMatchingQuery(e,r,n).next(e=>(t.forEach(t=>{e=e.insert(t.key,t)}),e))}}let nt="LocalStore";class nr{constructor(e,t,r,n){this.persistence=e,this.Ps=t,this.serializer=n,this.Ts=new es(F),this.Is=new t_(e=>ts(e),ti),this.Es=new Map,this.ds=e.getRemoteDocumentCache(),this.Hr=e.getTargetCache(),this.Yr=e.getBundleCache(),this.As(r)}As(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new rH(this.ds,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.ds.setIndexManager(this.indexManager),this.Ps.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",t=>e.collect(t,this.Ts))}}async function nn(e,t){return await e.persistence.runTransaction("Handle user change","readonly",r=>{let n;return e.mutationQueue.getAllMutationBatches(r).next(s=>(n=s,e.As(t),e.mutationQueue.getAllMutationBatches(r))).next(t=>{let s=[],i=[],a=tN();for(let e of n)for(let t of(s.push(e.batchId),e.mutations))a=a.add(t.key);for(let e of t)for(let t of(i.push(e.batchId),e.mutations))a=a.add(t.key);return e.localDocuments.getDocuments(r,a).next(e=>({Rs:e,removedBatchIds:s,addedBatchIds:i}))})})}function ns(e){return e.persistence.runTransaction("Get last remote snapshot version","readonly",t=>e.Hr.getLastRemoteSnapshotVersion(t))}async function ni(e,t,r){let n=e.Ts.get(t);try{r||await e.persistence.runTransaction("Release target",r?"readwrite":"readwrite-primary",t=>e.persistence.referenceDelegate.removeTarget(t,n))}catch(e){if(!J(e))throw e;_(nt,`Failed to update sequence numbers for target ${t}: ${e}`)}e.Ts=e.Ts.remove(t),e.Is.delete(n.target)}function na(e,t,r){let n=q.min(),s=tN();return e.persistence.runTransaction("Execute query","readwrite",i=>{var a;let o;return(a=td(t),void 0!==(o=e.Is.get(a))?X.resolve(e.Ts.get(o)):e.Hr.getTargetData(i,a)).next(t=>{if(t)return n=t.lastLimboFreeSnapshotVersion,e.Hr.getMatchingKeysForTargetId(i,t.targetId).next(e=>{s=e})}).next(()=>e.Ps.getDocumentsMatchingQuery(i,t,r?n:q.min(),r?s:tN())).next(r=>{var n,i,a;let o;return n=e,i=t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2)),a=r,o=n.Es.get(i)||q.min(),a.forEach((e,t)=>{t.readTime.compareTo(o)>0&&(o=t.readTime)}),n.Es.set(i,o),{documents:r,gs:s}})})}class no{constructor(){this.activeTargetIds=tk}Ds(e){this.activeTargetIds=this.activeTargetIds.add(e)}vs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}bs(){return JSON.stringify({activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()})}}class nl{constructor(){this.ho=new no,this.Po={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.ho.Ds(e),this.Po[e]||"not-current"}updateQueryState(e,t,r){this.Po[e]=t}removeLocalQueryTarget(e){this.ho.vs(e)}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){delete this.Po[e]}getAllActiveQueryTargets(){return this.ho.activeTargetIds}isActiveQueryTarget(e){return this.ho.activeTargetIds.has(e)}start(){return this.ho=new no,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class nu{To(e){}shutdown(){}}let nh="ConnectivityMonitor";class nc{constructor(){this.Io=()=>this.Eo(),this.Ao=()=>this.Ro(),this.Vo=[],this.mo()}To(e){this.Vo.push(e)}shutdown(){window.removeEventListener("online",this.Io),window.removeEventListener("offline",this.Ao)}mo(){window.addEventListener("online",this.Io),window.addEventListener("offline",this.Ao)}Eo(){for(let e of(_(nh,"Network connectivity changed: AVAILABLE"),this.Vo))e(0)}Ro(){for(let e of(_(nh,"Network connectivity changed: UNAVAILABLE"),this.Vo))e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let nd=null;function nf(){return null===nd?nd=0x10000000+Math.round(0x80000000*Math.random()):nd++,"0x"+nd.toString(16)}let nm="RestConnection",ng={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregation
6Query:"runAggregationQuery"};class np{get fo(){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.po=t+"://"+e.host,this.yo=`projects/${r}/databases/${n}`,this.wo=this.databaseId.database===eC?`project_id=${r}`:`project_id=${r}&database_id=${n}`}So(e,t,r,n,s){let i=nf(),a=this.bo(e,t.toUriEncodedString());_(nm,`Sending RPC '${e}' ${i}:`,a,r);let o={"google-cloud-resource-prefix":this.yo,"x-goog-request-params":this.wo};return this.Do(o,n,s),this.vo(e,a,o,r).then(t=>(_(nm,`Received RPC '${e}' ${i}: `,t),t),t=>{throw E(nm,`RPC '${e}' ${i} failed with error: `,t,"url: ",a,"request:",r),t})}Co(e,t,r,n,s,i){return this.So(e,t,r,n,s)}Do(e,t,r){e["X-Goog-Api-Client"]="gl-js/ fire/"+y,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)}bo(e,t){let r=ng[e];return`${this.po}/v1/${t}:${r}`}terminate(){}}class ny{constructor(e){this.Fo=e.Fo,this.Mo=e.Mo}xo(e){this.Oo=e}No(e){this.Bo=e}Lo(e){this.ko=e}onMessage(e){this.qo=e}close(){this.Mo()}send(e){this.Fo(e)}Qo(){this.Oo()}$o(){this.Bo()}Ko(e){this.ko(e)}Uo(e){this.qo(e)}}let nw="WebChannelConnection";class nv extends np{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}vo(e,t,r,n){let s=nf();return new Promise((i,a)=>{let o=new d.ZS;o.setWithCredentials(!0),o.listenOnce(d.Bx.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case d.O4.NO_ERROR:let t=o.getResponseJson();_(nw,`XHR for RPC '${e}' ${s} received:`,JSON.stringify(t)),i(t);break;case d.O4.TIMEOUT:_(nw,`RPC '${e}' ${s} timed out`),a(new S(b.DEADLINE_EXCEEDED,"Request time out"));break;case d.O4.HTTP_ERROR:let r=o.getStatus();if(_(nw,`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=null==e?void 0:e.error;if(t&&t.status&&t.message){let e,r=(e=t.status.toLowerCase().replace(/_/g,"-"),Object.values(b).indexOf(e)>=0?e:b.UNKNOWN);a(new S(r,t.message))}else a(new S(b.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new S(b.UNAVAILABLE,"Connection failed."));break;default:C()}}finally{_(nw,`RPC '${e}' ${s} completed.`)}});let l=JSON.stringify(n);_(nw,`RPC '${e}' ${s} sending request:`,n),o.send(t,"POST",l,r,15)})}Wo(e,t,r){let s=nf(),i=[this.po,"/","google.firestore.v1.Firestore","/",e,"/channel"],a=(0,d.fF)(),o=(0,d.Ao)(),l={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},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(l.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(l.useFetchStreams=!0),this.Do(l.initMessageHeaders,t,r),l.encodeInitMessageHeaders=!0;let h=i.join("");_(nw,`Creating RPC '${e}' stream ${s}: ${h}`,l);let c=a.createWebChannel(h,l),f=!1,m=!1,g=new ny({Fo:t=>{m?_(nw,`Not sending because RPC '${e}' stream ${s} is closed:`,t):(f||(_(nw,`Opening RPC '${e}' stream ${s} transport.`),c.open(),f=!0),_(nw,`RPC '${e}' stream ${s} sending:`,t),c.send(t))},Mo:()=>c.close()}),p=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return p(c,d.iO.EventType.OPEN,()=>{m||(_(nw,`RPC '${e}' stream ${s} transport opened.`),g.Qo())}),p(c,d.iO.EventType.CLOSE,()=>{m||(m=!0,_(nw,`RPC '${e}' stream ${s} transport closed`),g.Ko())}),p(c,d.iO.EventType.ERROR,t=>{m||(m=!0,E(nw,`RPC '${e}' stream ${s} transport errored:`,t),g.Ko(new S(b.UNAVAILABLE,"The operation could not be completed")))}),p(c,d.iO.EventType.MESSAGE,t=>{var r;if(!m){let i=t.data[0];i||C();let a=(null==i?void 0:i.error)||(null==(r=i[0])?void 0:r.error);if(a){_(nw,`RPC '${e}' stream ${s} received error:`,a);let t=a.status,r=function(e){let t=n[e];if(void 0!==t)return t9(t)}(t),i=a.message;void 0===r&&(r=b.INTERNAL,i="Unknown error status: "+t+" with message "+a.message),m=!0,g.Ko(new S(r,i)),c.close()}else _(nw,`RPC '${e}' stream ${s} received:`,i),g.Uo(i)}}),p(o,d.Jh.STAT_EVENT,t=>{t.stat===d.ro.PROXY?_(nw,`RPC '${e}' stream ${s} detected buffering proxy`):t.stat===d.ro.NOPROXY&&_(nw,`RPC '${e}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{g.$o()},0),g}}function n_(){return"undefined"!=typeof document?document:null}function nT(e){return new rp(e,!0)}class nE{constructor(e,t,r=1e3,n=1.5,s=6e4){this.Ti=e,this.timerId=t,this.Go=r,this.zo=n,this.jo=s,this.Ho=0,this.Jo=null,this.Yo=Date.now(),this.reset()}reset(){this.Ho=0}Zo(){this.Ho=this.jo}Xo(e){this.cancel();let t=Math.floor(this.Ho+this.e_()),r=Math.max(0,Date.now()-this.Yo),n=Math.max(0,t-r);n>0&&_("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.Ho}
6 ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.Jo=this.Ti.enqueueAfterDelay(this.timerId,n,()=>(this.Yo=Date.now(),e())),this.Ho*=this.zo,this.Ho<this.Go&&(this.Ho=this.Go),this.Ho>this.jo&&(this.Ho=this.jo)}t_(){null!==this.Jo&&(this.Jo.skipDelay(),this.Jo=null)}cancel(){null!==this.Jo&&(this.Jo.cancel(),this.Jo=null)}e_(){return(Math.random()-.5)*this.Ho}}let nI="PersistentStream";class nC{constructor(e,t,r,n,s,i,a,o){this.Ti=e,this.n_=r,this.r_=n,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.i_=0,this.s_=null,this.o_=null,this.stream=null,this.__=0,this.a_=new nE(e,t)}u_(){return 1===this.state||5===this.state||this.c_()}c_(){return 2===this.state||3===this.state}start(){this.__=0,4!==this.state?this.auth():this.l_()}async stop(){this.u_()&&await this.close(0)}h_(){this.state=0,this.a_.reset()}P_(){this.c_()&&null===this.s_&&(this.s_=this.Ti.enqueueAfterDelay(this.n_,6e4,()=>this.T_()))}I_(e){this.E_(),this.stream.send(e)}async T_(){if(this.c_())return this.close(0)}E_(){this.s_&&(this.s_.cancel(),this.s_=null)}d_(){this.o_&&(this.o_.cancel(),this.o_=null)}async close(e,t){this.E_(),this.d_(),this.a_.cancel(),this.i_++,4!==e?this.a_.reset():t&&t.code===b.RESOURCE_EXHAUSTED?(T(t.toString()),T("Using maximum backoff delay to prevent overloading the backend."),this.a_.Zo()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.A_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.Lo(t)}A_(){}auth(){this.state=1;let e=this.R_(this.i_),t=this.i_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,r])=>{this.i_===t&&this.V_(e,r)},t=>{e(()=>{let e=new S(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.m_(e)})})}V_(e,t){let r=this.R_(this.i_);this.stream=this.f_(e,t),this.stream.xo(()=>{r(()=>this.listener.xo())}),this.stream.No(()=>{r(()=>(this.state=2,this.o_=this.Ti.enqueueAfterDelay(this.r_,1e4,()=>(this.c_()&&(this.state=3),Promise.resolve())),this.listener.No()))}),this.stream.Lo(e=>{r(()=>this.m_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.__?this.g_(e):this.onNext(e))})}l_(){this.state=5,this.a_.Xo(async()=>{this.state=0,this.start()})}m_(e){return _(nI,`close with error: ${e}`),this.stream=null,this.close(4,e)}R_(e){return t=>{this.Ti.enqueueAndForget(()=>this.i_===e?t():(_(nI,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class nb extends nC{constructor(e,t,r,n,s,i){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,i),this.serializer=s}f_(e,t){return this.connection.Wo("Listen",e,t)}g_(e){return this.onNext(e)}onNext(e){this.a_.reset();let t=function(e,t){let r;if("targetChange"in t){var n,s;t.targetChange;let i="NO_CHANGE"===(n=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===n?1:"REMOVE"===n?2:"CURRENT"===n?3:"RESET"===n?4:C(),a=t.targetChange.targetIds||[],o=(s=t.targetChange.resumeToken,e.useProto3Json?(void 0===s||"string"==typeof s||C(),ec.fromBase64String(s||"")):(void 0===s||s instanceof f||s instanceof Uint8Array||C(),ec.fromUint8Array(s||new Uint8Array))),l=t.targetChange.cause;r=new rl(i,a,o,l&&new S(void 0===l.code?b.UNKNOWN:t9(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 s=rb(e,n.document.name),i=r_(n.document.updateTime),a=n.document.createTime?r_(n.document.createTime):q.min(),o=new ej({mapValue:{fields:n.document.fields}}),l=eH.newFoundDocument(s,i,a,o);r=new ra(n.targetIds||[],n.removedTargetIds||[],l.key,l)}else if("documentDelete"in t){t.documentDelete;let n=t.documentDelete;n.document;let s=rb(e,n.document),i=n.readTime?r_(n.readTime):q.min(),a=eH.newNoDocument(s,i);r=new ra([],n.removedTargetIds||[],a.key,a)}else if("documentRemove"in t){t.documentRemove;let n=t.documentRemove;n.document;let s=rb(e,n.document);r=new ra([],n.removedTargetIds||[],s,null)}else{if(!("filter"in t))return C();{t.filter;let e=t.filter;e.targetId;
6let{count:n=0,unchangedNames:s}=e,i=new t5(n,s);r=new ro(e.targetId,i)}}return r}(this.serializer,e),r=function(e){if(!("targetChange"in e))return q.min();let t=e.targetChange;return t.targetIds&&t.targetIds.length?q.min():t.readTime?r_(t.readTime):q.min()}(e);return this.listener.p_(t,r)}y_(e){let t,r={};r.database=rA(this.serializer),r.addTarget=function(e,t){var r,n;let s,i,a,o,l,u,h,c=t.target;if((s=ta(c)?{documents:{documents:[rS(e,c.path)]}}:{query:(a={structuredQuery:{}},o=c.path,null!==c.collectionGroup?(i=o,a.structuredQuery.from=[{collectionId:c.collectionGroup,allDescendants:!0}]):(i=o.popLast(),a.structuredQuery.from=[{collectionId:o.lastSegment()}]),a.parent=rS(e,i),(l=function(e){if(0!==e.length)return function e(t){var r;let n;return t instanceof e0?function(e){if("=="===e.op){if(eB(e.value))return{unaryFilter:{field:rD(e.field),op:"IS_NAN"}};if(e$(e.value))return{unaryFilter:{field:rD(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(eB(e.value))return{unaryFilter:{field:rD(e.field),op:"IS_NOT_NAN"}};if(e$(e.value))return{unaryFilter:{field:rD(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:rD(e.field),op:rm[e.op],value:e.value}}}(t):t instanceof e1?1===(n=(r=t).getFilters().map(t=>e(t))).length?n[0]:{compositeFilter:{op:rg[r.op],filters:n}}:C()}(e1.create(e,"and"))}(c.filters))&&(a.structuredQuery.where=l),(u=function(e){if(0!==e.length)return e.map(e=>({field:rD(e.field),direction:rf[e.dir]}))}(c.orderBy))&&(a.structuredQuery.orderBy=u),null!==(h=ry(e,c.limit))&&(a.structuredQuery.limit=h),c.startAt&&(a.structuredQuery.startAt={before:(r=c.startAt).inclusive,values:r.position}),c.endAt&&(a.structuredQuery.endAt={before:!(n=c.endAt).inclusive,values:n.position}),{ht:a,parent:i}).ht}).targetId=t.targetId,t.resumeToken.approximateByteSize()>0){s.resumeToken=rv(e,t.resumeToken);let r=ry(e,t.expectedCount);null!==r&&(s.expectedCount=r)}else if(t.snapshotVersion.compareTo(q.min())>0){s.readTime=rw(e,t.snapshotVersion.toTimestamp());let r=ry(e,t.expectedCount);null!==r&&(s.expectedCount=r)}return s}(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 C()}}(e.purpose))?null:{"goog-listen-tags":t});n&&(r.labels=n),this.I_(r)}w_(e){let t={};t.database=rA(this.serializer),t.removeTarget=e,this.I_(t)}}class nS extends nC{constructor(e,t,r,n,s,i){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,i),this.serializer=s}get S_(){return this.__>0}start(){this.lastStreamToken=void 0,super.start()}A_(){this.S_&&this.b_([])}f_(e,t){return this.connection.Wo("Write",e,t)}g_(e){return e.streamToken||C(),this.lastStreamToken=e.streamToken,e.writeResults&&0!==e.writeResults.length&&C(),this.listener.D_()}onNext(e){var t,r;e.streamToken||C(),this.lastStreamToken=e.streamToken,this.a_.reset();let n=(t=e.writeResults,r=e.commitTime,t&&t.length>0?(void 0!==r||C(),t.map(e=>{let t;return(t=e.updateTime?r_(e.updateTime):r_(r)).isEqual(q.min())&&(t=r_(r)),new tz(t,e.transformResults||[])})):[]),s=r_(e.commitTime);return this.listener.v_(s,n)}C_(){let e={};e.database=rA(this.serializer),this.I_(e)}b_(e){let t={streamToken:this.lastStreamToken,writes:e.map(e=>(function(e,t){var r,n;let s;if(t instanceof tX)s={update:rk(e,t.key,t.value)};else if(t instanceof t2)s={delete:rC(e,t.key)};else if(t instanceof tJ){let r;s={update:rk(e,t.key,t.data),updateMask:(n=t.fieldMask,r=[],n.fields.forEach(e=>r.push(e.canonicalString())),{fieldPaths:r})}}else{if(!(t instanceof t3))return C();s={verify:rC(e,t.key)}}return t.fieldTransforms.length>0&&(s.updateTransforms=t.fieldTransforms.map(e=>(function(e,t){let r=t.transform;if(r instanceof tM)return{fieldPath:t.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(r instanceof tO)return{fieldPath:t.field.canonicalString(),appendMissingElements:{values:r.elements}};if(r instanceof tU)return{fieldPath:t.field.canonicalString(),removeAllFromArray:{values:r.elements}};if(r instanceof tq)return{fieldPath:t.field.canonicalString(),increment:r.Ie};throw C()})(0,e))),t.precondition.isNone||(s.currentDocument=void 0!==(r=t.precondition).updateTime?{updateTime:rw(e,r.updateTime.toTimestamp())}:void 0!==r.exists?{exists:r.exists}:C()),s})(this.serializer,e))};this.I_(t)}}class nA{}class nN extends nA{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer
6=n,this.F_=!1}M_(){if(this.F_)throw new S(b.FAILED_PRECONDITION,"The client has already been terminated.")}So(e,t,r,n){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([s,i])=>this.connection.So(e,rE(t,r),n,s,i)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new S(b.UNKNOWN,e.toString())})}Co(e,t,r,n,s){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([i,a])=>this.connection.Co(e,rE(t,r),n,i,a,s)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new S(b.UNKNOWN,e.toString())})}terminate(){this.F_=!0,this.connection.terminate()}}class nk{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.x_=0,this.O_=null,this.N_=!0}B_(){0===this.x_&&(this.L_("Unknown"),this.O_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.O_=null,this.k_("Backend didn't respond within 10 seconds."),this.L_("Offline"),Promise.resolve())))}q_(e){"Online"===this.state?this.L_("Unknown"):(this.x_++,this.x_>=1&&(this.Q_(),this.k_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.L_("Offline")))}set(e){this.Q_(),this.x_=0,"Online"===e&&(this.N_=!1),this.L_(e)}L_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}k_(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.N_?(T(t),this.N_=!1):_("OnlineStateTracker",t)}Q_(){null!==this.O_&&(this.O_.cancel(),this.O_=null)}}let nD="RemoteStore";class nx{constructor(e,t,r,n,s){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.K_=[],this.U_=new Map,this.W_=new Set,this.G_=[],this.z_=s,this.z_.To(e=>{r.enqueueAndForget(async()=>{nq(this)&&(_(nD,"Restarting streams for network reachability change."),await async function(e){e.W_.add(4),await nL(e),e.j_.set("Unknown"),e.W_.delete(4),await nR(e)}(this))})}),this.j_=new nk(r,n)}}async function nR(e){if(nq(e))for(let t of e.G_)await t(!0)}async function nL(e){for(let t of e.G_)await t(!1)}function nV(e,t){e.U_.has(t.targetId)||(e.U_.set(t.targetId,t),nP(e)?nU(e):n2(e).c_()&&nO(e,t))}function nM(e,t){let r=n2(e);e.U_.delete(t),r.c_()&&nF(e,t),0===e.U_.size&&(r.c_()?r.P_():nq(e)&&e.j_.set("Unknown"))}function nO(e,t){if(e.H_.Ne(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(q.min())>0){let r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(r)}n2(e).y_(t)}function nF(e,t){e.H_.Ne(t),n2(e).w_(t)}function nU(e){e.H_=new rh({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),lt:t=>e.U_.get(t)||null,it:()=>e.datastore.serializer.databaseId}),n2(e).start(),e.j_.B_()}function nP(e){return nq(e)&&!n2(e).u_()&&e.U_.size>0}function nq(e){return 0===e.W_.size}async function n$(e){e.j_.set("Online")}async function nB(e){e.U_.forEach((t,r)=>{nO(e,t)})}async function nK(e,t){e.H_=void 0,nP(e)?(e.j_.q_(t),nU(e)):e.j_.set("Unknown")}async function nz(e,t,r){if(e.j_.set("Online"),t instanceof rl&&2===t.state&&t.cause)try{await async function(e,t){let r=t.cause;for(let n of t.targetIds)e.U_.has(n)&&(await e.remoteSyncer.rejectListen(n,r),e.U_.delete(n),e.H_.removeTarget(n))}(e,t)}catch(r){_(nD,"Failed to remove targets %s: %s ",t.targetIds.join(","),r),await nG(e,r)}else if(t instanceof ra?e.H_.We(t):t instanceof ro?e.H_.Ze(t):e.H_.je(t),!r.isEqual(q.min()))try{let t,n=await ns(e.localStore);r.compareTo(n)>
7=0&&await ((t=e.H_.ot(r)).targetChanges.forEach((t,n)=>{if(t.resumeToken.approximateByteSize()>0){let s=e.U_.get(n);s&&e.U_.set(n,s.withResumeToken(t.resumeToken,r))}}),t.targetMismatches.forEach((t,r)=>{let n=e.U_.get(t);if(!n)return;e.U_.set(t,n.withResumeToken(ec.EMPTY_BYTE_STRING,n.snapshotVersion)),nF(e,t);let s=new rL(n.target,t,r,n.sequenceNumber);nO(e,s)}),e.remoteSyncer.applyRemoteEvent(t))}catch(t){_(nD,"Failed to raise snapshot:",t),await nG(e,t)}}async function nG(e,t,r){if(!J(t))throw t;e.W_.add(1),await nL(e),e.j_.set("Offline"),r||(r=()=>ns(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{_(nD,"Retrying IndexedDB access"),await r(),e.W_.delete(1),await nR(e)})}function nQ(e,t){return t().catch(r=>nG(e,r,t))}async function nj(e){var t;let r=n3(e),n=e.K_.length>0?e.K_[e.K_.length-1].batchId:-1;for(;nq(t=e)&&t.K_.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.K_.length&&r.P_();break}n=t.batchId,function(e,t){e.K_.push(t);let r=n3(e);r.c_()&&r.S_&&r.b_(t.mutations)}(e,t)}catch(t){await nG(e,t)}nH(e)&&nW(e)}function nH(e){return nq(e)&&!n3(e).u_()&&e.K_.length>0}function nW(e){n3(e).start()}async function nY(e){n3(e).C_()}async function nX(e){let t=n3(e);for(let r of e.K_)t.b_(r.mutations)}async function nJ(e,t,r){let n=e.K_.shift(),s=t8.from(n,t,r);await nQ(e,()=>e.remoteSyncer.applySuccessfulWrite(s)),await nj(e)}async function nZ(e,t){t&&n3(e).S_&&await async function(e,t){var r;if(function(e){switch(e){case b.OK:return C();case b.CANCELLED:case b.UNKNOWN:case b.DEADLINE_EXCEEDED:case b.RESOURCE_EXHAUSTED:case b.INTERNAL:case b.UNAVAILABLE:case b.UNAUTHENTICATED:return!1;case b.INVALID_ARGUMENT:case b.NOT_FOUND:case b.ALREADY_EXISTS:case b.PERMISSION_DENIED:case b.FAILED_PRECONDITION:case b.ABORTED:case b.OUT_OF_RANGE:case b.UNIMPLEMENTED:case b.DATA_LOSS:return!0;default:return C()}}(r=t.code)&&r!==b.ABORTED){let r=e.K_.shift();n3(e).h_(),await nQ(e,()=>e.remoteSyncer.rejectFailedWrite(r.batchId,t)),await nj(e)}}(e,t),nH(e)&&nW(e)}async function n0(e,t){e.asyncQueue.verifyOperationInProgress(),_(nD,"RemoteStore received new credentials");let r=nq(e);e.W_.add(3),await nL(e),r&&e.j_.set("Unknown"),await e.remoteSyncer.handleCredentialChange(t),e.W_.delete(3),await nR(e)}async function n1(e,t){t?(e.W_.delete(2),await nR(e)):t||(e.W_.add(2),await nL(e),e.j_.set("Unknown"))}function n2(e){var t,r,n;return e.J_||(t=e.datastore,r=e.asyncQueue,n={xo:n$.bind(null,e),No:nB.bind(null,e),Lo:nK.bind(null,e),p_:nz.bind(null,e)},t.M_(),e.J_=new nb(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.G_.push(async t=>{t?(e.J_.h_(),nP(e)?nU(e):e.j_.set("Unknown")):(await e.J_.stop(),e.H_=void 0)})),e.J_}function n3(e){var t,r,n;return e.Y_||(t=e.datastore,r=e.asyncQueue,n={xo:()=>Promise.resolve(),No:nY.bind(null,e),Lo:nZ.bind(null,e),D_:nX.bind(null,e),v_:nJ.bind(null,e)},t.M_(),e.Y_=new nS(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.G_.push(async t=>{t?(e.Y_.h_(),await nj(e)):(await e.Y_.stop(),e.K_.length>0&&(_(nD,`Stopping write stream with ${e.K_.length} pending writes`),e.K_=[]))})),e.Y_}class n4{constructor(e,t,r,n,s){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=s,this.deferred=new A,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,s){let i=new n4(e,t,Date.now()+r,n,s);return i.start(r),i}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new S(b.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 n8(e,t){if(T("AsyncQueue",`${t}: ${e}`),J(e))return new S(b.UNAVAILABLE,`${t}: ${e}`);throw e}class n6{static emptySet(e){return new n6(e.comparator)}constructor(e){this.comparator=e?(t,r)=>e(t,r)||Q.comparator(t.key,r.key):(e,t)=>Q.comparator(e.key,t.key),this.keyedMap=tI(),this.sortedSet=new es(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 n6)||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 n6;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class n5{constructor(){this.Z_=new es(Q.comparator)}track(e){let t=e.doc.key,r=this.Z_.get(t);r?0!==e.type&&3===r.type?this.Z_=this.Z_.insert(t,e):3===e.type&&1!==r.type?this.Z_=this.Z_.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.Z_=this.Z_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.Z_=this.Z_.remove(t):1===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):C():this.Z_=this.Z_.insert(t,e)}X_(){let e=[];return this.Z_.inorderTraversal((t,r)=>{e.push(r)}),e}}class n9{constructor(e,t,r,n,s,i,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,s){let i=[];
7return t.forEach(e=>{i.push({type:0,doc:e})}),new n9(e,t,n6.emptySet(t),i,r,n,!0,!1,s)}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)&&tg(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 n7{constructor(){this.ea=void 0,this.ta=[]}na(){return this.ta.some(e=>e.ra())}}class se{constructor(){this.queries=st(),this.onlineState="Unknown",this.ia=new Set}terminate(){var e;let t;e=new S(b.ABORTED,"Firestore shutting down"),t=this.queries,this.queries=st(),t.forEach((t,r)=>{for(let t of r.ta)t.onError(e)})}}function st(){return new t_(e=>tp(e),tg)}async function sr(e,t){let r=3,n=t.query,s=e.queries.get(n);s?!s.na()&&t.ra()&&(r=2):(s=new n7,r=+!t.ra());try{switch(r){case 0:s.ea=await e.onListen(n,!0);break;case 1:s.ea=await e.onListen(n,!1);break;case 2:await e.onFirstRemoteStoreListen(n)}}catch(r){let e=n8(r,`Initialization of query '${ty(t.query)}' failed`);return void t.onError(e)}e.queries.set(n,s),s.ta.push(t),t.sa(e.onlineState),s.ea&&t.oa(s.ea)&&sa(e)}async function sn(e,t){let r=t.query,n=3,s=e.queries.get(r);if(s){let e=s.ta.indexOf(t);e>=0&&(s.ta.splice(e,1),0===s.ta.length?n=+!t.ra():!s.na()&&t.ra()&&(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 ss(e,t){let r=!1;for(let n of t){let t=n.query,s=e.queries.get(t);if(s){for(let e of s.ta)e.oa(n)&&(r=!0);s.ea=n}}r&&sa(e)}function si(e,t,r){let n=e.queries.get(t);if(n)for(let e of n.ta)e.onError(r);e.queries.delete(t)}function sa(e){e.ia.forEach(e=>{e.next()})}(a=i||(i={}))._a="default",a.Cache="cache";class so{constructor(e,t,r){this.query=e,this.aa=t,this.ua=!1,this.ca=null,this.onlineState="Unknown",this.options=r||{}}oa(e){if(!this.options.includeMetadataChanges){let t=[];for(let r of e.docChanges)3!==r.type&&t.push(r);e=new n9(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.ua?this.la(e)&&(this.aa.next(e),t=!0):this.ha(e,this.onlineState)&&(this.Pa(e),t=!0),this.ca=e,t}onError(e){this.aa.error(e)}sa(e){this.onlineState=e;let t=!1;return this.ca&&!this.ua&&this.ha(this.ca,e)&&(this.Pa(this.ca),t=!0),t}ha(e,t){return!(e.fromCache&&this.ra())||(!this.options.Ta||"Offline"===t)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}la(e){if(e.docChanges.length>0)return!0;let t=this.ca&&this.ca.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}Pa(e){e=n9.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.ua=!0,this.aa.next(e)}ra(){return this.options.source!==i.Cache}}class sl{constructor(e){this.key=e}}class su{constructor(e){this.key=e}}class sh{constructor(e,t){this.query=e,this.fa=t,this.ga=null,this.hasCachedResults=!1,this.current=!1,this.pa=tN(),this.mutatedKeys=tN(),this.ya=tv(e),this.wa=new n6(this.ya)}get Sa(){return this.fa}ba(e,t){let r=t?t.Da:new n5,n=t?t.wa:this.wa,s=t?t.mutatedKeys:this.mutatedKeys,i=n,a=!1,o="F"===this.query.limitType&&n.size===this.query.limit?n.last():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=tw(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.va(u,h)||(r.track({type:2,doc:h}),f=!0,(o&&this.ya(h,o)>0||l&&0>this.ya(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?(i=i.add(h),s=d?s.add(e):s.delete(e)):(i=i.delete(e),s=s.delete(e)))}),null!==this.query.limit)for(;i.size>this.query.limit;
7){let e="F"===this.query.limitType?i.last():i.first();i=i.delete(e.key),s=s.delete(e.key),r.track({type:1,doc:e})}return{wa:i,Da:r,ls:a,mutatedKeys:s}}va(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){let s=this.wa;this.wa=e.wa,this.mutatedKeys=e.mutatedKeys;let i=e.Da.X_();i.sort((e,t)=>{var r,n;let s;return r=e.type,n=t.type,(s=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return C()}})(r)-s(n)||this.ya(e.doc,t.doc)}),this.Ca(r),n=null!=n&&n;let a=t&&!n?this.Fa():[],o=0===this.pa.size&&this.current&&!n?1:0,l=o!==this.ga;return(this.ga=o,0!==i.length||l)?{snapshot:new n9(this.query,e.wa,s,i,e.mutatedKeys,0===o,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),Ma:a}:{Ma:a}}sa(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({wa:this.wa,Da:new n5,mutatedKeys:this.mutatedKeys,ls:!1},!1)):{Ma:[]}}xa(e){return!this.fa.has(e)&&!!this.wa.has(e)&&!this.wa.get(e).hasLocalMutations}Ca(e){e&&(e.addedDocuments.forEach(e=>this.fa=this.fa.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.fa=this.fa.delete(e)),this.current=e.current)}Fa(){if(!this.current)return[];let e=this.pa;this.pa=tN(),this.wa.forEach(e=>{this.xa(e.key)&&(this.pa=this.pa.add(e.key))});let t=[];return e.forEach(e=>{this.pa.has(e)||t.push(new su(e))}
7),this.pa.forEach(r=>{e.has(r)||t.push(new sl(r))}),t}Oa(e){this.fa=e.gs,this.pa=tN();let t=this.ba(e.documents);return this.applyChanges(t,!0)}Na(){return n9.fromInitialDocuments(this.query,this.wa,this.mutatedKeys,0===this.ga,this.hasCachedResults)}}let sc="SyncEngine";class sd{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class sf{constructor(e){this.key=e,this.Ba=!1}}class sm{constructor(e,t,r,n,s,i){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.La={},this.ka=new t_(e=>tp(e),tg),this.qa=new Map,this.Qa=new Set,this.$a=new es(Q.comparator),this.Ka=new Map,this.Ua=new rJ,this.Wa={},this.Ga=new Map,this.za=rq.Un(),this.onlineState="Unknown",this.ja=void 0}get isPrimaryClient(){return!0===this.ja}}async function sg(e,t,r=!0){let n,s=sO(e),i=s.ka.get(t);return i?(s.sharedClientState.addLocalQueryTarget(i.targetId),n=i.view.Na()):n=await sy(s,t,r,!0),n}async function sp(e,t){let r=sO(e);await sy(r,t,!0,!1)}async function sy(e,t,r,n){var s,i;let a,o=await (s=e.localStore,i=td(t),s.persistence.runTransaction("Allocate target","readwrite",e=>{let t;return s.Hr.getTargetData(e,i).next(r=>r?(t=r,X.resolve(t)):s.Hr.allocateTargetId(e).next(r=>(t=new rL(i,r,"TargetPurposeListen",e.currentSequenceNumber),s.Hr.addTargetData(e,t).next(()=>t))))}).then(e=>{let t=s.Ts.get(e.targetId);return(null===t||e.snapshotVersion.compareTo(t.snapshotVersion)>0)&&(s.Ts=s.Ts.insert(e.targetId,e),s.Is.set(i,e.targetId)),e})),l=o.targetId,u=e.sharedClientState.addLocalQueryTarget(l,r);return n&&(a=await sw(e,t,l,"current"===u,o.resumeToken)),e.isPrimaryClient&&r&&nV(e.remoteStore,o),a}async function sw(e,t,r,n,s){e.Ha=(t,r,n)=>(async function(e,t,r,n){let s=t.view.ba(r);s.ls&&(s=await na(e.localStore,t.query,!1).then(({documents:e})=>t.view.ba(e,s)));let i=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),o=t.view.applyChanges(s,e.isPrimaryClient,i,a);return sx(e,t.targetId,o.Ma),o.snapshot})(e,t,r,n);let i=await na(e.localStore,t,!0),a=new sh(t,i.gs),o=a.ba(i.documents),l=ri.createSynthesizedTargetChangeForCurrentChange(r,n&&"Offline"!==e.onlineState,s),u=a.applyChanges(o,e.isPrimaryClient,l);sx(e,r,u.Ma);let h=new sd(t,r,a);return e.ka.set(t,h),e.qa.has(r)?e.qa.get(r).push(t):e.qa.set(r,[t]),u.snapshot}async function sv(e,t,r){let n=e.ka.get(t),s=e.qa.get(n.targetId);s.length>1?(e.qa.set(n.targetId,s.filter(e=>!tg(e,t))),e.ka.delete(t)):e.isPrimaryClient?(e.sharedClientState.removeLocalQueryTarget(n.targetId),e.sharedClientState.isActiveQueryTarget(n.targetId)||await ni(e.localStore,n.targetId,!1).then(()=>{e.sharedClientState.clearQueryState(n.targetId),r&&nM(e.remoteStore,n.targetId),sk(e,n.targetId)}).catch(Y)):(sk(e,n.targetId),await ni(e.localStore,n.targetId,!0))}async function s_(e,t){let r=e.ka.get(t),n=e.qa.get(r.targetId);e.isPrimaryClient&&1===n.length&&(e.sharedClientState.removeLocalQueryTarget(r.targetId),nM(e.remoteStore,r.targetId))}async function sT(e,t,r){var n,s,i;let a=((n=e).remoteStore.remoteSyncer.applySuccessfulWrite=sb.bind(null,n),n.remoteStore.remoteSyncer.rejectFailedWrite=sS.bind(null,n),n);try{let e,n,o,l,u,h=await (s=a.localStore,o=P.now(),l=t.reduce((e,t)=>e.add(t.key),tN()),s.persistence.runTransaction("Locally write mutations","readwrite",r=>{let i=tT,a=tN();return s.ds.getEntries(r,l).next(e=>{(i=e).forEach((e,t)=>{t.isValidDocument()||(a=a.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(r,i)).next(n=>{e=n;let i=[];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),s=tV(n.transform,e||null);null!=s&&(null===r&&(r=ej.empty()),r.set(n.field,s))}return r||null}(r,e.get(r.key).overlayedDocument);null!=t&&i.push(new tJ(r.key,t,function e(t){let r=[];return er(t.fields,(t,n)=>{let s=new G([t]);if(eK(n)){let t=e(n.mapValue).fields;if(0===t.length)r.push(s);else for(let e of t)r.push(s.child(e))}else r.push(s)}),new eu(r)}(t.value.mapValue),tG.exists(!0)))}
7return s.mutationQueue.addMutationBatch(r,o,i,t)}).next(t=>{n=t;let i=t.applyToLocalDocumentSet(e,a);return s.documentOverlayCache.saveOverlays(r,t.batchId,i)})}).then(()=>({batchId:n.batchId,changes:tC(e)})));a.sharedClientState.addPendingMutation(h.batchId),i=h.batchId,(u=a.Wa[a.currentUser.toKey()])||(u=new es(F)),u=u.insert(i,r),a.Wa[a.currentUser.toKey()]=u,await sL(a,h.changes),await nj(a.remoteStore)}catch(t){let e=n8(t,"Failed to persist write");r.reject(e)}}async function sE(e,t){var r;try{let n,s,i=await (r=e.localStore,n=t.snapshotVersion,s=r.Ts,r.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{var i,a,o;let l,u,h=r.ds.newChangeBuffer({trackRemovals:!0});s=r.Ts;let c=[];t.targetChanges.forEach((i,a)=>{var o;let l=s.get(a);if(!l)return;c.push(r.Hr.removeMatchingKeys(e,i.removedDocuments,a).next(()=>r.Hr.addMatchingKeys(e,i.addedDocuments,a)));let u=l.withSequenceNumber(e.currentSequenceNumber);null!==t.targetMismatches.get(a)?u=u.withResumeToken(ec.EMPTY_BYTE_STRING,q.min()).withLastLimboFreeSnapshotVersion(q.min()):i.resumeToken.approximateByteSize()>0&&(u=u.withResumeToken(i.resumeToken,n)),s=s.insert(a,u),o=u,(0===l.resumeToken.approximateByteSize()||o.snapshotVersion.toMicroseconds()-l.snapshotVersion.toMicroseconds()>=3e8||i.addedDocuments.size+i.modifiedDocuments.size+i.removedDocuments.size>0)&&c.push(r.Hr.updateTargetData(e,u))});let d=tT,f=tN();if(t.documentUpdates.forEach(n=>{t.resolvedLimboDocuments.has(n)&&c.push(r.persistence.referenceDelegate.updateLimboDocument(e,n))}),c.push((i=e,a=h,o=t.documentUpdates,l=tN(),u=tN(),o.forEach(e=>l=l.add(e)),a.getEntries(i,l).next(e=>{let t=tT;return o.forEach((r,n)=>{let s=e.get(r);n.isFoundDocument()!==s.isFoundDocument()&&(u=u.add(r)),n.isNoDocument()&&n.version.isEqual(q.min())?(a.removeEntry(r,n.readTime),t=t.insert(r,n)):!s.isValidDocument()||n.version.compareTo(s.version)>0||0===n.version.compareTo(s.version)&&s.hasPendingWrites?(a.addEntry(n),t=t.insert(r,n)):_(nt,"Ignoring outdated watch update for ",r,". Current version:",s.version," Watch version:",n.version)}),{Vs:t,fs:u}})).next(e=>{d=e.Vs,f=e.fs})),!n.isEqual(q.min())){let t=r.Hr.getLastRemoteSnapshotVersion(e).next(t=>r.Hr.setTargetsMetadata(e,e.currentSequenceNumber,n));c.push(t)}return X.waitFor(c).next(()=>h.apply(e)).next(()=>r.localDocuments.getLocalViewOfDocuments(e,d,f)).next(()=>d)}).then(e=>(r.Ts=s,e)));
7t.targetChanges.forEach((t,r)=>{let n=e.Ka.get(r);n&&(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1||C(),t.addedDocuments.size>0?n.Ba=!0:t.modifiedDocuments.size>0?n.Ba||C():t.removedDocuments.size>0&&(n.Ba||C(),n.Ba=!1))}),await sL(e,i,t)}catch(e){await Y(e)}}function sI(e,t,r){var n;if(e.isPrimaryClient&&0===r||!e.isPrimaryClient&&1===r){let r,s=[];e.ka.forEach((e,r)=>{let n=r.view.sa(t);n.snapshot&&s.push(n.snapshot)}),(n=e.eventManager).onlineState=t,r=!1,n.queries.forEach((e,n)=>{for(let e of n.ta)e.sa(t)&&(r=!0)}),r&&sa(n),s.length&&e.La.p_(s),e.onlineState=t,e.isPrimaryClient&&e.sharedClientState.setOnlineState(t)}}async function sC(e,t,r){e.sharedClientState.updateQueryState(t,"rejected",r);let n=e.Ka.get(t),s=n&&n.key;if(s){let r=new es(Q.comparator);r=r.insert(s,eH.newNoDocument(s,q.min()));let n=tN().add(s),i=new rs(q.min(),new Map,new es(F),r,n);await sE(e,i),e.$a=e.$a.remove(s),e.Ka.delete(t),sR(e)}else await ni(e.localStore,t,!1).then(()=>sk(e,t,r)).catch(Y)}async function sb(e,t){var r;let n=t.batch.batchId;try{let s=await (r=e.localStore,r.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let n,s,i,a=t.batch.keys(),o=r.ds.newChangeBuffer({trackRemovals:!0});return(s=(n=t.batch).keys(),i=X.resolve(),s.forEach(r=>{i=i.next(()=>o.getEntry(e,r)).next(e=>{let s=t.docVersions.get(r);null!==s||C(),0>e.version.compareTo(s)&&(n.applyToRemoteDocument(e,t),e.isValidDocument()&&(e.setReadTime(t.commitVersion),o.addEntry(e)))})}),i.next(()=>r.mutationQueue.removeMutationBatch(e,n))).next(()=>o.apply(e)).next(()=>r.mutationQueue.performConsistencyCheck(e)).next(()=>r.documentOverlayCache.removeOverlaysForBatchId(e,a,t.batch.batchId)).next(()=>r.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=tN();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}(t))).next(()=>r.localDocuments.getDocuments(e,a))}));sN(e,n,null),sA(e,n),e.sharedClientState.updateMutationState(n,"acknowledged"),await sL(e,s)}catch(e){await Y(e)}}async function sS(e,t,r){var n;try{let s=await (n=e.localStore,n.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let r;
7return n.mutationQueue.lookupMutationBatch(e,t).next(t=>(null!==t||C(),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))}));sN(e,t,r),sA(e,t),e.sharedClientState.updateMutationState(t,"rejected",r),await sL(e,s)}catch(e){await Y(e)}}function sA(e,t){(e.Ga.get(t)||[]).forEach(e=>{e.resolve()}),e.Ga.delete(t)}function sN(e,t,r){let n=e.Wa[e.currentUser.toKey()];if(n){let s=n.get(t);s&&(r?s.reject(r):s.resolve(),n=n.remove(t)),e.Wa[e.currentUser.toKey()]=n}}function sk(e,t,r=null){for(let n of(e.sharedClientState.removeLocalQueryTarget(t),e.qa.get(t)))e.ka.delete(n),r&&e.La.Ja(n,r);e.qa.delete(t),e.isPrimaryClient&&e.Ua.br(t).forEach(t=>{e.Ua.containsKey(t)||sD(e,t)})}function sD(e,t){e.Qa.delete(t.path.canonicalString());let r=e.$a.get(t);null!==r&&(nM(e.remoteStore,r),e.$a=e.$a.remove(t),e.Ka.delete(r),sR(e))}function sx(e,t,r){for(let n of r)n instanceof sl?(e.Ua.addReference(n.key,t),function(e,t){let r=t.key,n=r.path.canonicalString();e.$a.get(r)||e.Qa.has(n)||(_(sc,"New document in limbo: "+r),e.Qa.add(n),sR(e))}(e,n)):n instanceof su?(_(sc,"Document no longer in limbo: "+n.key),e.Ua.removeReference(n.key,t),e.Ua.containsKey(n.key)||sD(e,n.key)):C()}function sR(e){for(;e.Qa.size>0&&e.$a.size<e.maxConcurrentLimboResolutions;){let t=e.Qa.values().next().value;e.Qa.delete(t);let r=new Q(K.fromString(t)),n=e.za.next();e.Ka.set(n,new sf(r)),e.$a=e.$a.insert(r,n),nV(e.remoteStore,new rL(td(tl(r.path)),n,"TargetPurposeLimboResolution",Z.ae))}}async function sL(e,t,r){let n=[],s=[],i=[];e.ka.isEmpty()||(e.ka.forEach((a,o)=>{i.push(e.Ha(o,t,r).then(t=>{var i;if((t||r)&&e.isPrimaryClient){let n=t?!t.fromCache:null==(i=null==r?void 0:r.targetChanges.get(o.targetId))?void 0:i.current;e.sharedClientState.updateQueryState(o.targetId,n?"current":"not-current")}if(t){n.push(t);let e=r9.Yi(o.targetId,t);s.push(e)}}))}),await Promise.all(i),e.La.p_(n),await async function(e,t){try{await e.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>X.forEach(t,t=>X.forEach(t.Hi,n=>e.persistence.referenceDelegate.addReference(r,t.targetId,n)).next(()=>X.forEach(t.Ji,n=>e.persistence.referenceDelegate.removeReference(r,t.targetId,n)))))}catch(e){if(!J(e))throw e;_(nt,"Failed to update sequence numbers: "+e)}for(let r of t){let t=r.targetId;if(!r.fromCache){let r=e.Ts.get(t),n=r.snapshotVersion,s=r.withLastLimboFreeSnapshotVersion(n);e.Ts=e.Ts.insert(t,s)}}}(e.localStore,s))}async function sV(e,t){if(!e.currentUser.isEqual(t)){_(sc,"User change. New user:",t.toKey());let r=await nn(e.localStore,t);e.currentUser=t,e.Ga.forEach(e=>{e.forEach(e=>{e.reject(new S(b.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))})}),e.Ga.clear(),e.sharedClientState.handleUserChange(t,r.removedBatchIds,r.addedBatchIds),await sL(e,r.Rs)}}function sM(e,t){let r=e.Ka.get(t);if(r&&r.Ba)return tN().add(r.key);{let r=tN(),n=e.qa.get(t);if(!n)return r;for(let t of n){let n=e.ka.get(t);r=r.unionWith(n.view.Sa)}return r}}function sO(e){return e.remoteStore.remoteSyncer.applyRemoteEvent=sE.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=sM.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=sC.bind(null,e),e.La.p_=ss.bind(null,e.eventManager),e.La.Ja=si.bind(null,e.eventManager),e}class sF{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=nT(e.databaseInfo.databaseId),this.sharedClientState=this.Za(e),this.persistence=this.Xa(e),await this.persistence.start(),this.localStore=this.eu(e),this.gcScheduler=this.tu(e,this.localStore),this.indexBackfillerScheduler=this.nu(e,this.localStore)}tu(e,t){return null}nu(e,t){return null}eu(e){var t,r;return t=this.persistence,r=new ne,new nr(t,r,e.initialUser,this.serializer)}Xa(e){return new r4(r6.ri,this.serializer)}Za(e){return new nl}async terminate(){var e,t;null==(e=this.gcScheduler)||e.stop(),null==(t=this.indexBackfillerScheduler)||t.stop(),this.sharedCl
7ientState.shutdown(),await this.persistence.shutdown()}}sF.provider={build:()=>new sF};class sU extends sF{constructor(e){super(),this.cacheSizeBytes=e}tu(e,t){return this.persistence.referenceDelegate instanceof r5||C(),new rz(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Xa(e){let t=void 0!==this.cacheSizeBytes?rP.withCacheSize(this.cacheSizeBytes):rP.DEFAULT;return new r4(e=>r5.ri(e,t),this.serializer)}}class sP{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=>sI(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=sV.bind(null,this.syncEngine),await n1(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new se}createDatastore(e){var t;let r=nT(e.databaseInfo.databaseId),n=new nv(e.databaseInfo);return t=e.authCredentials,new nN(t,e.appCheckCredentials,n,r)}createRemoteStore(e){var t,r;return t=this.localStore,r=this.datastore,new nx(t,r,e.asyncQueue,e=>sI(this.syncEngine,e,0),nc.D()?new nc:new nu)}createSyncEngine(e,t){var r,n,s,i,a,o;let l;return r=this.localStore,n=this.remoteStore,s=this.eventManager,i=this.sharedClientState,a=e.initialUser,o=e.maxConcurrentLimboResolutions,l=new sm(r,n,s,i,a,o),t&&(l.ja=!0),l}async terminate(){var e,t;await async function(e){_(nD,"RemoteStore shutting down."),e.W_.add(5),await nL(e),e.z_.shutdown(),e.j_.set("Unknown")}(this.remoteStore),null==(e=this.datastore)||e.terminate(),null==(t=this.eventManager)||t.terminate()}}sP.provider={build:()=>new sP};class sq{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.iu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.iu(this.observer.error,e):T("Uncaught Error in snapshot listener:",e.toString()))}su(){this.muted=!0}iu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}let s$="FirestoreClient";class sB{constructor(e,t,r,n,s){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=p.UNAUTHENTICATED,this.clientId=O.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=s,this.authCredentials.start(r,async e=>{_(s$,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(_(s$,"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 A;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=n8(r,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function sK(e,t){e.asyncQueue.verifyOperationInProgress(),_(s$,"Initializing OfflineComponentProvider");let r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await nn(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function sz(e,t){e.asyncQueue.verifyOperationInProgress();let r=await sG(e);_(s$,"Initializing OnlineComponentProvider"),await t.initialize(r,e.configuration),e.setCredentialChangeListener(e=>n0(t.remoteStore,e)),e.setAppCheckTokenChangeListener((e,r)=>n0(t.remoteStore,r)),e._onlineComponents=t}async function sG(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){_(s$,"Using user provided OfflineComponentProvider");try{await sK(e,e._uninitializedComponentsProvider._offline)}catch(t){if(!("FirebaseError"===t.name?t.code===b.FAILED_PRECONDITION||t.code===b.UNIMPLEMENT
7ED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw t;E("Error using user provided cache. Falling back to memory cache: "+t),await sK(e,new sF)}}else _(s$,"Using default OfflineComponentProvider"),await sK(e,new sU(void 0));return e._offlineComponents}async function sQ(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(_(s$,"Using user provided OnlineComponentProvider"),await sz(e,e._uninitializedComponentsProvider._online)):(_(s$,"Using default OnlineComponentProvider"),await sz(e,new sP))),e._onlineComponents}async function sj(e){let t=await sQ(e),r=t.eventManager;return r.onListen=sg.bind(null,t.syncEngine),r.onUnlisten=sv.bind(null,t.syncEngine),r.onFirstRemoteStoreListen=sp.bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=s_.bind(null,t.syncEngine),r}function sH(e){let t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let sW=new Map;function sY(e,t,r){if(!r)throw new S(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function sX(e){if(!Q.isDocumentKey(e))throw new S(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function sJ(e){if(Q.isDocumentKey(e))throw new S(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function sZ(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":C()}function s0(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new S(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{let r=sZ(e);throw new S(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${r}`)}}return e}function s1(e,t){if(t<=0)throw new S(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let s2="firestore.googleapis.com";class s3{constructor(e){var t,r;if(void 0===e.host){if(void 0!==e.ssl)throw new S(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=s2,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(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 S(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,r,n){if(!0===t&&!0===n)throw new S(b.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=sH(null!=(r=e.experimentalLongPollingOptions)?r:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new S(b.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new S(b.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new S(b.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 s4{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 s3({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new S(b.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 S(b.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 s3(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new k;switch(e.type){case"firstParty":return new L(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new S(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invali
7d credential type")}}(e.credentials))}_getSettings(){return this._settings}_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=sW.get(this))&&(_("ComponentProvider","Removing Datastore"),sW.delete(this),e.terminate()),Promise.resolve()}}class s8{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new s8(this.firestore,e,this._query)}}class s6{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 s5(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new s6(this.firestore,e,this._key)}}class s5 extends s8{constructor(e,t,r){super(e,t,tl(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 s6(this.firestore,null,new Q(e))}withConverter(e){return new s5(this.firestore,e,this._path)}}function s9(e,t,...r){if(e=(0,h.Ku)(e),sY("collection","path",t),e instanceof s4){let n=K.fromString(t,...r);return sJ(n),new s5(e,null,n)}{if(!(e instanceof s6||e instanceof s5))throw new S(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(K.fromString(t,...r));return sJ(n),new s5(e.firestore,null,n)}}function s7(e,t,...r){if(e=(0,h.Ku)(e),1==arguments.length&&(t=O.newId()),sY("doc","path",t),e instanceof s4){let n=K.fromString(t,...r);return sX(n),new s6(e,null,new Q(n))}{if(!(e instanceof s6||e instanceof s5))throw new S(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(K.fromString(t,...r));return sX(n),new s6(e.firestore,e instanceof s5?e.converter:null,new Q(n))}}let ie="AsyncQueue";class it{constructor(e=Promise.resolve()){this.Vu=[],this.mu=!1,this.fu=[],this.gu=null,this.pu=!1,this.yu=!1,this.wu=[],this.a_=new nE(this,"async_queue_retry"),this.Su=()=>{let e=n_();e&&_(ie,"Visibility state changed to "+e.visibilityState),this.a_.t_()},this.bu=e;const t=n_();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Su)}get isShuttingDown(){return this.mu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.Du(),this.vu(e)}enterRestrictedMode(e){if(!this.mu){this.mu=!0,this.yu=e||!1;let t=n_();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Su)}}enqueue(e){if(this.Du(),this.mu)return new Promise(()=>{});let t=new A;return this.vu(()=>this.mu&&this.yu?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Vu.push(e),this.Cu()))}async Cu(){if(0!==this.Vu.length){try{await this.Vu[0](),this.Vu.shift(),this.a_.reset()}catch(e){if(!J(e))throw e;_(ie,"Operation failed with retryable error: "+e)}this.Vu.length>0&&this.a_.Xo(()=>this.Cu())}}vu(e){let t=this.bu.then(()=>(this.pu=!0,e().catch(e=>{let t;throw this.gu=e,this.pu=!1,T("INTERNAL UNHANDLED ERROR: ",(t=e.message||"",e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t)),e}).then(e=>(this.pu=!1,e))));return this.bu=t,t}enqueueAfterDelay(e,t,r){this.Du(),this.wu.indexOf(e)>-1&&(t=0);let n=n4.createAndSchedule(this,e,t,r,e=>this.Fu(e));return this.fu.push(n),n}Du(){this.gu&&C()}verifyOperationInProgress(){}async Mu(){let e;do e=this.bu,await e;while(e!==this.bu)}xu(e){for(let t of this.fu)if(t.timerId===e)return!0;return!1}Ou(e){return this.Mu().then(()=>{for(let t of(this.fu.sort((e,t)=>
7e.targetTimeMs-t.targetTimeMs),this.fu))if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.Mu()})}Nu(e){this.wu.push(e)}Fu(e){let t=this.fu.indexOf(e);this.fu.splice(t,1)}}function ir(e){if("object"!=typeof e||null===e)return!1;for(let t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}class is extends s4{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new it,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new it(e),this._firestoreClient=void 0,await e}}}function ii(e,t){let r="object"==typeof e?e:(0,o.Sx)(),n=(0,o.j6)(r,"firestore").getImmediate({identifier:"string"==typeof e?e:t||eC});if(!n._initialized){let e=(0,h.yU)("firestore");e&&function(e,t,r,n={}){var s;let i=(e=s0(e,s4))._getSettings(),a=`${t}:${r}`;if(i.host!==s2&&i.host!==a&&E("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},i),{host:a,ssl:!1})),n.mockUserToken){let t,r;if("string"==typeof n.mockUserToken)t=n.mockUserToken,r=p.MOCK_USER;else{t=(0,h.Fy)(n.mockUserToken,null==(s=e._app)?void 0:s.options.projectId);let i=n.mockUserToken.sub||n.mockUserToken.user_id;if(!i)throw new S(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new p(i)}e._authCredentials=new D(new N(t,r))}}(n,...e)}return n}function ia(e){if(e._terminated)throw new S(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,r,n,s,i,a;let o,l=e._freezeSettings(),u=(s=e._databaseId,i=(null==(t=e._app)?void 0:t.options.appId)||"",new eI(s,i,e._persistenceKey,l.host,l.ssl,l.experimentalForceLongPolling,l.experimentalAutoDetectLongPolling,sH(l.experimentalLongPollingOptions),l.useFetchStreams));e._componentsProvider||(null==(r=l.localCache)?void 0:r._offlineComponentProvider)&&(null==(n=l.localCache)?void 0:n._onlineComponentProvider)&&(e._componentsProvider={_offline:l.localCache._offlineComponentProvider,_online:l.localCache._onlineComponentProvider}),e._firestoreClient=new sB(e._authCredentials,e._appCheckCredentials,e._queue,u,e._componentsProvider&&(o=null==(a=e._componentsProvider)?void 0:a._online.build(),{_offline:null==a?void 0:a._offline.build(o),_online:o}))}(e),e._firestoreClient}class io{constructor(e){this._byteString=e}static fromBase64String(e){try{return new io(ec.fromBase64String(e))}catch(e){throw new S(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new io(ec.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)}}class il{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new S(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new G(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class iu{constructor(e){this._methodName=e}}class ih{constructor(e,t){if(!isFinite(e)||e<-90||e>90)throw new S(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new S(b.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}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return F(this._lat,e._lat)||F(this._long,e._long)}}class ic{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)}}let id=/^__.*__$/;class im{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new tJ(e,this.data,this.fieldMask,t,this.fieldTransforms):new tX(e,this.data,t,this.fieldTransforms)}}class ig{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new tJ(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function ip(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw C()}}class iy{constructor(e,t,r,n,s,i){this.settings=e,this.databaseId=t,this.serializer
7=r,this.ignoreUndefinedProperties=n,void 0===s&&this.Bu(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get Lu(){return this.settings.Lu}ku(e){return new iy(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}qu(e){var t;let r=null==(t=this.path)?void 0:t.child(e),n=this.ku({path:r,Qu:!1});return n.$u(e),n}Ku(e){var t;let r=null==(t=this.path)?void 0:t.child(e),n=this.ku({path:r,Qu:!1});return n.Bu(),n}Uu(e){return this.ku({path:void 0,Qu:!0})}Wu(e){return iM(e,this.settings.methodName,this.settings.Gu||!1,this.path,this.settings.zu)}contains(e){return void 0!==this.fieldMask.find(t=>e.isPrefixOf(t))||void 0!==this.fieldTransforms.find(t=>e.isPrefixOf(t.field))}Bu(){if(this.path)for(let e=0;e<this.path.length;e++)this.$u(this.path.get(e))}$u(e){if(0===e.length)throw this.Wu("Document fields must not be empty");if(ip(this.Lu)&&id.test(e))throw this.Wu('Document fields cannot begin and end with "__"')}}class iw{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||nT(e)}ju(e,t,r,n=!1){return new iy({Lu:e,methodName:t,zu:r,path:G.emptyPath(),Qu:!1,Gu:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function iv(e){let t=e._freezeSettings(),r=nT(e._databaseId);return new iw(e._databaseId,!!t.ignoreUndefinedProperties,r)}function i_(e,t,r,n,s,i={}){let a,o,l=e.ju(i.merge||i.mergeFields?2:0,t,r,s);ix("Data must be an object, but it was:",l,n);let u=ik(n,l);if(i.merge)a=new eu(l.fieldMask),o=l.fieldTransforms;else if(i.mergeFields){let e=[];for(let n of i.mergeFields){let s=iR(t,n,r);if(!l.contains(s))throw new S(b.INVALID_ARGUMENT,`Field '${s}' is specified in your field mask but missing from your input data.`);iO(e,s)||e.push(s)}a=new eu(e),o=l.fieldTransforms.filter(e=>a.covers(e.field))}else a=null,o=l.fieldTransforms;return new im(new ej(u),a,o)}class iT extends iu{_toFieldTransform(e){if(2!==e.Lu)throw 1===e.Lu?e.Wu(`${this._methodName}() can only appear at the top level of your update data`):e.Wu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof iT}}class iE extends iu{_toFieldTransform(e){return new tK(e.path,new tM)}isEqual(e){return e instanceof iE}}class iI extends iu{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=new iy({Lu:3,zu:e.settings.zu,methodName:this._methodName,Qu:!0},e.databaseId,e.serializer,e.ignoreUndefinedProperties),r=new tO(this.Hu.map(e=>iN(e,t)));return new tK(e.path,r)}isEqual(e){return e instanceof iI&&(0,h.bD)(this.Hu,e.Hu)}}class iC extends iu{constructor(e,t){super(e),this.Ju=t}_toFieldTransform(e){let t=new tq(e.serializer,tR(e.serializer,this.Ju));return new tK(e.path,t)}isEqual(e){return e instanceof iC&&this.Ju===e.Ju}}function ib(e,t,r,n){let s=e.ju(1,t,r);ix("Data must be an object, but it was:",s,n);let i=[],a=ej.empty();return er(n,(e,n)=>{let o=iV(t,e,r);n=(0,h.Ku)(n);let l=s.Ku(o);if(n instanceof iT)i.push(o);else{let e=iN(n,l);null!=e&&(i.push(o),a.set(o,e))}}),new ig(a,new eu(i),s.fieldTransforms)}function iS(e,t,r,n,s,i){let a=e.ju(1,t,r),o=[iR(t,n,r)],l=[s];if(i.length%2!=0)throw new S(b.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<i.length;e+=2)o.push(iR(t,i[e])),l.push(i[e+1]);let u=[],c=ej.empty();for(let e=o.length-1;e>=0;--e)if(!iO(u,o[e])){let t=o[e],r=l[e];r=(0,h.Ku)(r);let n=a.Ku(t);if(r instanceof iT)u.push(t);else{let e=iN(r,n);null!=e&&(u.push(t),c.set(t,e))}}return new ig(c,new eu(u),a.fieldTransforms)}function iA(e,t,r,n=!1){return iN(r,e.ju(n?4:3,t))}function iN(e,t){if(iD(e=(0,h.Ku)(e)))return ix("Unsupported field value:",t,e),ik(e,t);if(e instanceof iu)return function(e,t){if(!ip(t.Lu))throw t.Wu(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.Wu(`${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.Qu&&4!==t.Lu)throw t.Wu("Nested arrays are not supported");let r=[],n=0;for(let s of e){let e=iN(s,t.Uu(n));null==e&&(e={nullValue:"NULL_VALUE"}),r.push(e),n++}return{arrayValue:{values:r}}}return function(e,t){if(null===(e=(0,h.Ku)(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return tR(t.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){let r=P.fromDate(e);return{timestampValue:rw(t.serializer,r)}}if(e instanceof P){let r=new P(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:rw(t.serializer,r)}}if(e instanceof ih)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof io)return{bytesValue:rv(t.serializer,e._byteString)};if(e instanceof s6){let r=t.databaseId,n=e.firestore._databaseId;if(!n.isEqual(r))throw t.Wu(`Document reference is for database ${n.projectId}/${n.database} but should be for database ${r.projectId}/${r.database}`);return{referenceValue:rT(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof ic)return{mapValue:{fields:{[eS]:{stringValue:ek},[eD]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw t.Wu("VectorValues must only contain numeric values.");return tD(t.serializer,e)})}}}}};throw t.Wu(`Unsupported field value: ${sZ(e)}`)}(e,t)}function ik(e,t){let r={};return en(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):er(e,(e,n)=>{let s=iN(n,t.qu(e));null!=s&&(r[e]=s)}),{mapValue:{fields:r}}}function iD(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof P||e instanceof ih||e instanceof io||e instanceof s6||e instanceof iu||e instanceof ic)}function ix(e,t,r){if(!iD(r)||"object"!=typeof r||null===r||Object.getPrototypeOf(r)!==Object.prototype&&null!==Object.getPrototypeOf(r)){let n=sZ(r);throw"an object"===n?t.Wu(e+" a custom object"):t.Wu(e+" "+n)}}function iR(e,t,r){if((t=(0,h.Ku)(t))instanceof il)return t._internalPath;if("string"==typeof t)return iV(e,t);throw iM("Field path arguments must be of type string or ",e,!1,void 0,r)}let iL=RegExp("[~\\*/\\[\\]]");function iV(e,t,r){if(t.search(iL)>=0)throw iM(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,r);try{return new il(...t.split("."))._internalPath}catch(n){throw iM(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,r)}}function iM(e,t,r,n,s){let i=n&&!n.isEmpty(),a=void 0!==s,o=`Function ${t}
7() called with invalid data`;r&&(o+=" (via `toFirestore()`)"),o+=". ";let l="";return(i||a)&&(l+=" (found",i&&(l+=` in field ${n}`),a&&(l+=` in document ${s}`),l+=")"),new S(b.INVALID_ARGUMENT,o+e+l)}function iO(e,t){return e.some(e=>e.isEqual(t))}class iF{constructor(e,t,r,n,s){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new s6(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){let e=new iU(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let t=this._document.data.field(iP("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class iU extends iF{data(){return super.data()}}function iP(e,t){return"string"==typeof t?iV(e,t):t instanceof il?t._internalPath:t._delegate._internalPath}function iq(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new S(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class i${}class iB extends i${}function iK(e,t,...r){let n=[];for(let s of(t instanceof i$&&n.push(t),function(e){let t=e.filter(e=>e instanceof iQ).length,r=e.filter(e=>e instanceof iz).length;if(t>1||t>0&&r>0)throw new S(b.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=s._apply(e);return e}class iz extends iB{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new iz(e,t,r)}_apply(e){let t=this._parse(e);return i8(e._query,t),new s8(e.firestore,e.converter,tf(e._query,t))}_parse(e){let t=iv(e.firestore);return function(e,t,r,n,s,i,a){let o;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new S(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){i4(a,i);let t=[];for(let r of a)t.push(i3(n,e,r));o={arrayValue:{values:t}}}else o=i3(n,e,a)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||i4(a,i),o=iA(r,t,a,"in"===i||"not-in"===i);return e0.create(s,i,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}function iG(e,t,r){let n=iP("where",e);return iz._create(n,t,r)}class iQ extends i${constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new iQ(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]:e1.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())i8(r,e),r=tf(r,e)}(e._query,t),new s8(e.firestore,e.converter,tf(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}class ij extends iB{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new ij(e,t)}_apply(e){var t;let r,n=function(e,t,r){if(null!==e.startAt)throw new S(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new S(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new eJ(t,r)}(e._query,this._field,this._direction);return new s8(e.firestore,e.converter,(t=e._query,r=t.explicitOrderBy.concat([n]),new to(t.path,t.collectionGroup,r,t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)))}}function iH(e,t="asc"){let r=iP("orderBy",e);return ij._create(r,t)}class iW extends iB{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new iW(e,t,r)}_apply(e){return new s8(e.firestore,e.converter,tm(e._query,this._limit,this._limitType))}}function iY(e){return s1("limit",e),iW._create("limit",e,"F")}function iX(e){return s1("limitToLast",e),iW._create("limitToLast",e,"L")}class iJ extends iB{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new iJ(e,t,r)}_apply(e){var t;let r=i2(e,this.type,this._docOrFields,this._inclusive);return new s8(e.firestore,e.converter,(t=e._query,new to(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,r,t.endAt)))}}function iZ(...e){return iJ._create("startAfter",e,!1)}class i0 extends iB{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new i0(e,t,r)}_apply(e){var t;let r=i2(e,this.type,this._docOrFields,this._inclusive);return new s8(e.firestore,e.converter,(t=e._query,new to(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,r)))}}function i1(...e){return i0._create("endBefore",e,!1)}function i2(e,t,r,n){if(r[0]=(0,h.Ku)(r[0]),r[0]instanceof iF)return function(e,t,r,n,s){if(!n)throw new S(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${r}().`);let i=[];for(let r of tc(e))if(r.field.isKeyField())i.push(eU(t,n.key));else{let e=n.data.field(r.field);if(e_(e))throw new S(b.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+r.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=r.field.canonicalString();throw new S(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}i.push(e)}return new eW(i,s)}(e._query,e.firestore._databaseId,t,r[0]._document,n);{let s=iv(e.firestore);return function(e,t,r,n,s,i){let a=e.explicitOrderBy;if(s.length>a.length)throw new S(b.INVALID_ARGUMENT,`Too many arguments provided to ${n}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let o=[];for(let i=0;i<s.length;i++){let l=s[i];
7if(a[i].field.isKeyField()){if("string"!=typeof l)throw new S(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${n}(), but got a ${typeof l}`);if(!th(e)&&-1!==l.indexOf("/"))throw new S(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${n}() must be a plain document ID, but '${l}' contains a slash.`);let r=e.path.child(K.fromString(l));if(!Q.isDocumentKey(r))throw new S(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${n}() must result in a valid document path, but '${r}' is not because it contains an odd number of segments.`);let s=new Q(r);o.push(eU(t,s))}else{let e=iA(r,n,l);o.push(e)}}return new eW(o,i)}(e._query,e.firestore._databaseId,s,t,r,n)}}function i3(e,t,r){if("string"==typeof(r=(0,h.Ku)(r))){if(""===r)throw new S(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!th(t)&&-1!==r.indexOf("/"))throw new S(b.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(K.fromString(r));if(!Q.isDocumentKey(n))throw new S(b.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 eU(e,new Q(n))}if(r instanceof s6)return eU(e,r._key);throw new S(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${sZ(r)}.`)}function i4(e,t){if(!Array.isArray(e)||0===e.length)throw new S(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function i8(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 S(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new S(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class i6{convertValue(e,t="none"){switch(ex(e)){case 0:return null;case 1:return e.booleanValue;case 2:return em(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(eg(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 C()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,t="none"){let r={};return er(e,(e,n)=>{r[e]=this.convertValue(n,t)}),r}convertVectorValue(e){var t,r,n;return new ic(null==(n=null==(r=null==(t=e.fields)?void 0:t[eD].arrayValue)?void 0:r.values)?void 0:n.map(e=>em(e.doubleValue)))}convertGeoPoint(e){return new ih(em(e.latitude),em(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":let r=eT(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(eE(e));default:return null}}convertTimestamp(e){let t=ef(e);return new P(t.seconds,t.nanos)}convertDocumentKey(e,t){let r=K.fromString(e);rR(r)||C();let n=new eb(r.get(1),r.get(3)),s=new Q(r.popFirst(5));return n.isEqual(t)||T(`Document ${s} 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.`),s}}function i5(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class i9{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class i7 extends iF{constructor(e,t,r,n,s,i){super(e,t,r,n,i),this._firestore=e,this._firestoreImpl=e,this.metadata=s}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let t=new ae(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(iP("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class ae extends i7{data(e={}){return super.data(e)}}class at{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new i9(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 ae(this._firestore,this._userDataWriter,r.key,r,new i9(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}
7docChanges(e={}){let t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new S(b.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 ae(e._firestore,e._userDataWriter,r.doc.key,r.doc,new i9(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 ae(e._firestore,e._userDataWriter,t.doc.key,t.doc,new i9(e._snapshot.mutatedKeys.has(t.doc.key),e._snapshot.fromCache),e.query.converter),s=-1,i=-1;return 0!==t.type&&(s=r.indexOf(t.doc.key),r=r.delete(t.doc.key)),1!==t.type&&(i=(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 C()}}(t.type),doc:n,oldIndex:s,newIndex:i}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function ar(e){e=s0(e,s6);let t=s0(e.firestore,is);return(function(e,t,r={}){let n=new A;return e.asyncQueue.enqueueAndForget(async()=>{var s,i;let a,o;return s=await sj(e),i=e.asyncQueue,a=new sq({next:e=>{a.su(),i.enqueueAndForget(()=>sn(s,o));let l=e.docs.has(t);!l&&e.fromCache?n.reject(new S(b.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&e.fromCache&&r&&"server"===r.source?n.reject(new S(b.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)}),sr(s,o=new so(tl(t.path),a,{includeMetadataChanges:!0,Ta:!0}))}),n.promise})(ia(t),e._key).then(r=>ac(t,e,r))}class an extends i6{constructor(e){super(),this.firestore=e}convertBytes(e){return new io(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);return new s6(this.firestore,null,t)}}function as(e){e=s0(e,s8);let t=s0(e.firestore,is),r=ia(t),n=new an(t);return iq(e._query),(function(e,t,r={}){let n=new A;return e.asyncQueue.enqueueAndForget(async()=>{var s,i;let a,o;return s=await sj(e),i=e.asyncQueue,o=new so(t,a=new sq({next:e=>{a.su(),i.enqueueAndForget(()=>sn(s,o)),e.fromCache&&"server"===r.source?n.reject(new S(b.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,Ta:!0}),sr(s,o)}),n.promise})(r,e._query).then(r=>new at(t,n,e,r))}function ai(e,t,r){e=s0(e,s6);let n=s0(e.firestore,is),s=i5(e.converter,t,r);return ah(n,[i_(iv(n),"setDoc",e._key,s,null!==e.converter,r).toMutation(e._key,tG.none())])}function aa(e,t,r,...n){e=s0(e,s6);let s=s0(e.firestore,is),i=iv(s);return ah(s,[("string"==typeof(t=(0,h.Ku)(t))||t instanceof il?iS(i,"updateDoc",e._key,t,r,n):ib(i,"updateDoc",e._key,t)).toMutation(e._key,tG.exists(!0))])}function ao(e){return ah(s0(e.firestore,is),[new t2(e._key,tG.none())])}function al(e,t){let r=s0(e.firestore,is),n=s7(e),s=i5(e.converter,t);return ah(r,[i_(iv(e.firestore),"addDoc",n._key,s,null!==e.converter,{}).toMutation(n._key,tG.exists(!1))]).then(()=>n)}function au(e,...t){var r,n,s,i;let a,o,l,u,c;e=(0,h.Ku)(e);let d={includeMetadataChanges:!1,source:"default"},f=0;"object"!=typeof t[0]||ir(t[f])||(d=t[f],f++);let m={includeMetadataChanges:d.includeMetadataChanges,source:d.source};if(ir(t[f])){let e=t[f];t[f]=null==(r=e.next)?void 0:r.bind(e),t[f+1]=null==(n=e.error)?void 0:n.bind(e),t[f+2]=null==(s=e.complete)?void 0:s.bind(e)}if(e instanceof s6)o=s0(e.firestore,is),l=tl(e._key.path),a={next:r=>{t[f]&&t[f](ac(o,e,r))},error:t[f+1],complete:t[f+2]};else{let r=s0(e,s8);o=s0(r.firestore,is),l=r._query;let n=new an(o);a={next:e=>{t[f]&&t[f](new at(o,n,r,e))},error:t[f+1],complete:t[f+2]},iq(e._query)}return i=ia(o),c=new so(l,u=new sq(a),m),i.asyncQueue.enqueueAndForget(async()=>sr(await sj(i),c)),()=>{u.su(),i.asyncQueue.enqueueAndForget(async()=>sn(await sj(i),c))}}function ah(e,t){var r;let n;return r=ia(e),n=new A,r.asyncQueue.enqueueAndForget(async()=>sT(await sQ(r).then(e=>e.syncEngine),t,n)),n.promise}function ac(e,t,r){let n=r.docs.get(t._key),s=new an(e);return new i7(e,s,t._key,n,new i9(r.hasPendingWrites,r.fromCache),t.converter)}class ad{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=iv(e)}set(e,t,r){this._verifyNotCommitted();let n=af(e,this._firestore),s=i5(n.converter,t,r),i=i_(this._dataReader,"WriteBatch.set",n._key,s,null!==n.converter,r);
7return this._mutations.push(i.toMutation(n._key,tG.none())),this}update(e,t,r,...n){let s;this._verifyNotCommitted();let i=af(e,this._firestore);return s="string"==typeof(t=(0,h.Ku)(t))||t instanceof il?iS(this._dataReader,"WriteBatch.update",i._key,t,r,n):ib(this._dataReader,"WriteBatch.update",i._key,t),this._mutations.push(s.toMutation(i._key,tG.exists(!0))),this}delete(e){this._verifyNotCommitted();let t=af(e,this._firestore);return this._mutations=this._mutations.concat(new t2(t._key,tG.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,this._mutations.length>0?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new S(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function af(e,t){if((e=(0,h.Ku)(e)).firestore!==t)throw new S(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}function am(){return new iE("serverTimestamp")}function ag(...e){return new iI("arrayUnion",e)}function ap(e){return new iC("increment",e)}function ay(e){return ia(e=s0(e,is)),new ad(e,t=>ah(e,t))}new WeakMap,function(e=!0){y=o.MF,(0,o.om)(new l.uA("firestore",(t,{instanceIdentifier:r,options:n})=>{let s=t.getProvider("app").getImmediate(),i=new is(new x(t.getProvider("auth-internal")),new M(s,t.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new S(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new eb(e.options.projectId,t)}(s,r),s);return n=Object.assign({useFetchStreams:e},n),i._setSettings(n),i},"PUBLIC").setMultipleInstances(!0)),(0,o.KO)(m,g,void 0),(0,o.KO)(m,g,"esm2017")}()}}]);

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.