@thefittingroom/sdk 0.0.1-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3169 @@
1
+ /*!
2
+ * thefittingroom v0.0.1-alpha.9 (2023-07-17T20:26:11.306Z)
3
+ * Copyright 2022-present, TheFittingRoom, Inc. All rights reserved.
4
+ */
5
+ var t=Object.freeze({__proto__:null}),e=Object.freeze({__proto__:null});
6
+ /**
7
+ * @license
8
+ * Copyright 2017 Google LLC
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+ /**
23
+ * @license
24
+ * Copyright 2017 Google LLC
25
+ *
26
+ * Licensed under the Apache License, Version 2.0 (the "License");
27
+ * you may not use this file except in compliance with the License.
28
+ * You may obtain a copy of the License at
29
+ *
30
+ * http://www.apache.org/licenses/LICENSE-2.0
31
+ *
32
+ * Unless required by applicable law or agreed to in writing, software
33
+ * distributed under the License is distributed on an "AS IS" BASIS,
34
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
35
+ * See the License for the specific language governing permissions and
36
+ * limitations under the License.
37
+ */
38
+ const n=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);s<128?e[n++]=s:s<2048?(e[n++]=s>>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1<t.length&&56320==(64512&t.charCodeAt(r+1))?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++r)),e[n++]=s>>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},r={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e<t.length;e+=3){const s=t[e],i=e+1<t.length,o=i?t[e+1]:0,a=e+2<t.length,c=a?t[e+2]:0,u=s>>2,h=(3&s)<<4|o>>4;let l=(15&o)<<2|c>>6,d=63&c;a||(d=64,i||(l=64)),r.push(n[u],n[h],n[l],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(n(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n<t.length;){const s=t[n++];if(s<128)e[r++]=String.fromCharCode(s);else if(s>191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e<t.length;){const s=n[t.charAt(e++)],i=e<t.length?n[t.charAt(e)]:0;++e;const o=e<t.length?n[t.charAt(e)]:64;++e;const a=e<t.length?n[t.charAt(e)]:64;if(++e,null==s||null==i||null==o||null==a)throw Error();const c=s<<2|i>>4;if(r.push(c),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},s=function(t){return function(t){const e=n(t);return r.encodeByteArray(e,!0)}(t).replace(/\./g,"")},i=function(t){try{return r.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null};
39
+ /**
40
+ * @license
41
+ * Copyright 2017 Google LLC
42
+ *
43
+ * Licensed under the Apache License, Version 2.0 (the "License");
44
+ * you may not use this file except in compliance with the License.
45
+ * You may obtain a copy of the License at
46
+ *
47
+ * http://www.apache.org/licenses/LICENSE-2.0
48
+ *
49
+ * Unless required by applicable law or agreed to in writing, software
50
+ * distributed under the License is distributed on an "AS IS" BASIS,
51
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
52
+ * See the License for the specific language governing permissions and
53
+ * limitations under the License.
54
+ */
55
+ function o(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}
56
+ /**
57
+ * @license
58
+ * Copyright 2022 Google LLC
59
+ *
60
+ * Licensed under the Apache License, Version 2.0 (the "License");
61
+ * you may not use this file except in compliance with the License.
62
+ * You may obtain a copy of the License at
63
+ *
64
+ * http://www.apache.org/licenses/LICENSE-2.0
65
+ *
66
+ * Unless required by applicable law or agreed to in writing, software
67
+ * distributed under the License is distributed on an "AS IS" BASIS,
68
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
69
+ * See the License for the specific language governing permissions and
70
+ * limitations under the License.
71
+ */
72
+ const a=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,c=()=>{try{return a()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const t=process.env.__FIREBASE_DEFAULTS__;return t?JSON.parse(t):void 0})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&i(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}},u=t=>{var e,n;return null===(n=null===(e=c())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]},h=t=>{var e;return null===(e=c())||void 0===e?void 0:e[`_${t}`]};
73
+ /**
74
+ * @license
75
+ * Copyright 2017 Google LLC
76
+ *
77
+ * Licensed under the Apache License, Version 2.0 (the "License");
78
+ * you may not use this file except in compliance with the License.
79
+ * You may obtain a copy of the License at
80
+ *
81
+ * http://www.apache.org/licenses/LICENSE-2.0
82
+ *
83
+ * Unless required by applicable law or agreed to in writing, software
84
+ * distributed under the License is distributed on an "AS IS" BASIS,
85
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
86
+ * See the License for the specific language governing permissions and
87
+ * limitations under the License.
88
+ */
89
+ class l{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}wrapCallback(t){return(e,n)=>{e?this.reject(e):this.resolve(n),"function"==typeof t&&(this.promise.catch((()=>{})),1===t.length?t(e):t(e,n))}}}
90
+ /**
91
+ * @license
92
+ * Copyright 2021 Google LLC
93
+ *
94
+ * Licensed under the Apache License, Version 2.0 (the "License");
95
+ * you may not use this file except in compliance with the License.
96
+ * You may obtain a copy of the License at
97
+ *
98
+ * http://www.apache.org/licenses/LICENSE-2.0
99
+ *
100
+ * Unless required by applicable law or agreed to in writing, software
101
+ * distributed under the License is distributed on an "AS IS" BASIS,
102
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
103
+ * See the License for the specific language governing permissions and
104
+ * limitations under the License.
105
+ */class d extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,d.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,f.prototype.create)}}class f{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new d(r,o,n)}}const p=/\{\$([^}]+)}/g;function g(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(m(n)&&m(i)){if(!g(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function m(t){return null!==t&&"object"==typeof t}
106
+ /**
107
+ * @license
108
+ * Copyright 2017 Google LLC
109
+ *
110
+ * Licensed under the Apache License, Version 2.0 (the "License");
111
+ * you may not use this file except in compliance with the License.
112
+ * You may obtain a copy of the License at
113
+ *
114
+ * http://www.apache.org/licenses/LICENSE-2.0
115
+ *
116
+ * Unless required by applicable law or agreed to in writing, software
117
+ * distributed under the License is distributed on an "AS IS" BASIS,
118
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
119
+ * See the License for the specific language governing permissions and
120
+ * limitations under the License.
121
+ */function y(t){const e=[];for(const[n,r]of Object.entries(t))Array.isArray(r)?r.forEach((t=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(t))})):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function v(t){const e={};return t.replace(/^\?/,"").split("&").forEach((t=>{if(t){const[n,r]=t.split("=");e[decodeURIComponent(n)]=decodeURIComponent(r)}})),e}function w(t){const e=t.indexOf("?");if(!e)return"";const n=t.indexOf("#",e);return t.substring(e,n>0?n:void 0)}class I{constructor(t,e){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then((()=>{t(this)})).catch((t=>{this.error(t)}))}next(t){this.forEachObserver((e=>{e.next(t)}))}error(t){this.forEachObserver((e=>{e.error(t)})),this.close(t)}complete(){this.forEachObserver((t=>{t.complete()})),this.close()}subscribe(t,e,n){let r;if(void 0===t&&void 0===e&&void 0===n)throw new Error("Missing Observer.");r=function(t,e){if("object"!=typeof t||null===t)return!1;for(const n of e)if(n in t&&"function"==typeof t[n])return!0;return!1}(t,["next","error","complete"])?t:{next:t,error:e,complete:n},void 0===r.next&&(r.next=b),void 0===r.error&&(r.error=b),void 0===r.complete&&(r.complete=b);const s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(t){}})),this.observers.push(r),s}unsubscribeOne(t){void 0!==this.observers&&void 0!==this.observers[t]&&(delete this.observers[t],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(t,e){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[t])try{e(this.observers[t])}catch(t){"undefined"!=typeof console&&console.error&&console.error(t)}}))}close(t){this.finalized||(this.finalized=!0,void 0!==t&&(this.finalError=t),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function b(){}
122
+ /**
123
+ * @license
124
+ * Copyright 2021 Google LLC
125
+ *
126
+ * Licensed under the Apache License, Version 2.0 (the "License");
127
+ * you may not use this file except in compliance with the License.
128
+ * You may obtain a copy of the License at
129
+ *
130
+ * http://www.apache.org/licenses/LICENSE-2.0
131
+ *
132
+ * Unless required by applicable law or agreed to in writing, software
133
+ * distributed under the License is distributed on an "AS IS" BASIS,
134
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135
+ * See the License for the specific language governing permissions and
136
+ * limitations under the License.
137
+ */function E(t){return t&&t._delegate?t._delegate:t}class _{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}
138
+ /**
139
+ * @license
140
+ * Copyright 2019 Google LLC
141
+ *
142
+ * Licensed under the Apache License, Version 2.0 (the "License");
143
+ * you may not use this file except in compliance with the License.
144
+ * You may obtain a copy of the License at
145
+ *
146
+ * http://www.apache.org/licenses/LICENSE-2.0
147
+ *
148
+ * Unless required by applicable law or agreed to in writing, software
149
+ * distributed under the License is distributed on an "AS IS" BASIS,
150
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
151
+ * See the License for the specific language governing permissions and
152
+ * limitations under the License.
153
+ */const T="[DEFAULT]";
154
+ /**
155
+ * @license
156
+ * Copyright 2019 Google LLC
157
+ *
158
+ * Licensed under the Apache License, Version 2.0 (the "License");
159
+ * you may not use this file except in compliance with the License.
160
+ * You may obtain a copy of the License at
161
+ *
162
+ * http://www.apache.org/licenses/LICENSE-2.0
163
+ *
164
+ * Unless required by applicable law or agreed to in writing, software
165
+ * distributed under the License is distributed on an "AS IS" BASIS,
166
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
167
+ * See the License for the specific language governing permissions and
168
+ * limitations under the License.
169
+ */class S{constructor(t,e){this.name=t,this.container=e,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(t){const e=this.normalizeInstanceIdentifier(t);if(!this.instancesDeferred.has(e)){const t=new l;if(this.instancesDeferred.set(e,t),this.isInitialized(e)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:e});n&&t.resolve(n)}catch(t){}}return this.instancesDeferred.get(e).promise}getImmediate(t){var e;const n=this.normalizeInstanceIdentifier(null==t?void 0:t.identifier),r=null!==(e=null==t?void 0:t.optional)&&void 0!==e&&e;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(t){if(r)return null;throw t}}getComponent(){return this.component}setComponent(t){if(t.name!==this.name)throw Error(`Mismatching Component ${t.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=t,this.shouldAutoInitialize()){if(function(t){return"EAGER"===t.instantiationMode}
170
+ /**
171
+ * @license
172
+ * Copyright 2019 Google LLC
173
+ *
174
+ * Licensed under the Apache License, Version 2.0 (the "License");
175
+ * you may not use this file except in compliance with the License.
176
+ * You may obtain a copy of the License at
177
+ *
178
+ * http://www.apache.org/licenses/LICENSE-2.0
179
+ *
180
+ * Unless required by applicable law or agreed to in writing, software
181
+ * distributed under the License is distributed on an "AS IS" BASIS,
182
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
183
+ * See the License for the specific language governing permissions and
184
+ * limitations under the License.
185
+ */(t))try{this.getOrInitializeService({instanceIdentifier:T})}catch(t){}for(const[t,e]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(t);try{const t=this.getOrInitializeService({instanceIdentifier:n});e.resolve(t)}catch(t){}}}}clearInstance(t=T){this.instancesDeferred.delete(t),this.instancesOptions.delete(t),this.instances.delete(t)}async delete(){const t=Array.from(this.instances.values());await Promise.all([...t.filter((t=>"INTERNAL"in t)).map((t=>t.INTERNAL.delete())),...t.filter((t=>"_delete"in t)).map((t=>t._delete()))])}isComponentSet(){return null!=this.component}isInitialized(t=T){return this.instances.has(t)}getOptions(t=T){return this.instancesOptions.get(t)||{}}initialize(t={}){const{options:e={}}=t,n=this.normalizeInstanceIdentifier(t.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const r=this.getOrInitializeService({instanceIdentifier:n,options:e});for(const[t,e]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(t)&&e.resolve(r)}return r}onInit(t,e){var n;const r=this.normalizeInstanceIdentifier(e),s=null!==(n=this.onInitCallbacks.get(r))&&void 0!==n?n:new Set;s.add(t),this.onInitCallbacks.set(r,s);const i=this.instances.get(r);return i&&t(i,r),()=>{s.delete(t)}}invokeOnInitCallbacks(t,e){const n=this.onInitCallbacks.get(e);if(n)for(const r of n)try{r(t,e)}catch(t){}}getOrInitializeService({instanceIdentifier:t,options:e={}}){let n=this.instances.get(t);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=t,r===T?void 0:r),options:e}),this.instances.set(t,n),this.instancesOptions.set(t,e),this.invokeOnInitCallbacks(n,t),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,t,n)}catch(t){}var r;return n||null}normalizeInstanceIdentifier(t=T){return this.component?this.component.multipleInstances?t:T:t}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class A{constructor(t){this.name=t,this.providers=new Map}addComponent(t){const e=this.getProvider(t.name);if(e.isComponentSet())throw new Error(`Component ${t.name} has already been registered with ${this.name}`);e.setComponent(t)}addOrOverwriteComponent(t){this.getProvider(t.name).isComponentSet()&&this.providers.delete(t.name),this.addComponent(t)}getProvider(t){if(this.providers.has(t))return this.providers.get(t);const e=new S(t,this);return this.providers.set(t,e),e}getProviders(){return Array.from(this.providers.values())}}
186
+ /**
187
+ * @license
188
+ * Copyright 2017 Google LLC
189
+ *
190
+ * Licensed under the Apache License, Version 2.0 (the "License");
191
+ * you may not use this file except in compliance with the License.
192
+ * You may obtain a copy of the License at
193
+ *
194
+ * http://www.apache.org/licenses/LICENSE-2.0
195
+ *
196
+ * Unless required by applicable law or agreed to in writing, software
197
+ * distributed under the License is distributed on an "AS IS" BASIS,
198
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
199
+ * See the License for the specific language governing permissions and
200
+ * limitations under the License.
201
+ */var C;!function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"}(C||(C={}));const k={debug:C.DEBUG,verbose:C.VERBOSE,info:C.INFO,warn:C.WARN,error:C.ERROR,silent:C.SILENT},N=C.INFO,D={[C.DEBUG]:"log",[C.VERBOSE]:"log",[C.INFO]:"info",[C.WARN]:"warn",[C.ERROR]:"error"},R=(t,e,...n)=>{if(e<t.logLevel)return;const r=(new Date).toISOString(),s=D[e];if(!s)throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`);console[s](`[${r}] ${t.name}:`,...n)};class O{constructor(t){this.name=t,this._logLevel=N,this._logHandler=R,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in C))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?k[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,C.DEBUG,...t),this._logHandler(this,C.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,C.VERBOSE,...t),this._logHandler(this,C.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,C.INFO,...t),this._logHandler(this,C.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,C.WARN,...t),this._logHandler(this,C.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,C.ERROR,...t),this._logHandler(this,C.ERROR,...t)}}let L,P;const M=new WeakMap,x=new WeakMap,U=new WeakMap,F=new WeakMap,V=new WeakMap;let q={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return x.get(t);if("objectStoreNames"===e)return t.objectStoreNames||U.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return z(t[e])},set:(t,e,n)=>(t[e]=n,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function j(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(P||(P=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply($(this),e),z(M.get(this))}:function(...e){return z(t.apply($(this),e))}:function(e,...n){const r=t.call($(this),e,...n);return U.set(r,e.sort?e.sort():[e]),z(r)}}function B(t){return"function"==typeof t?j(t):(t instanceof IDBTransaction&&function(t){if(x.has(t))return;const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("complete",s),t.removeEventListener("error",i),t.removeEventListener("abort",i)},s=()=>{e(),r()},i=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",s),t.addEventListener("error",i),t.addEventListener("abort",i)}));x.set(t,e)}(t),e=t,(L||(L=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((t=>e instanceof t))?new Proxy(t,q):t);var e}function z(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("success",s),t.removeEventListener("error",i)},s=()=>{e(z(t.result)),r()},i=()=>{n(t.error),r()};t.addEventListener("success",s),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&M.set(e,t)})).catch((()=>{})),V.set(e,t),e}(t);if(F.has(t))return F.get(t);const e=B(t);return e!==t&&(F.set(t,e),V.set(e,t)),e}const $=t=>V.get(t);const K=["get","getKey","getAll","getAllKeys","count"],H=["put","add","delete","clear"],G=new Map;function W(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(G.get(e))return G.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,s=H.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!s&&!K.includes(n))return;const i=async function(t,...e){const i=this.transaction(t,s?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(e.shift())),(await Promise.all([o[n](...e),s&&i.done]))[0]};return G.set(e,i),i}q=(t=>({...t,get:(e,n,r)=>W(e,n)||t.get(e,n,r),has:(e,n)=>!!W(e,n)||t.has(e,n)}))(q);
202
+ /**
203
+ * @license
204
+ * Copyright 2019 Google LLC
205
+ *
206
+ * Licensed under the Apache License, Version 2.0 (the "License");
207
+ * you may not use this file except in compliance with the License.
208
+ * You may obtain a copy of the License at
209
+ *
210
+ * http://www.apache.org/licenses/LICENSE-2.0
211
+ *
212
+ * Unless required by applicable law or agreed to in writing, software
213
+ * distributed under the License is distributed on an "AS IS" BASIS,
214
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
215
+ * See the License for the specific language governing permissions and
216
+ * limitations under the License.
217
+ */
218
+ class Q{constructor(t){this.container=t}getPlatformInfoString(){return this.container.getProviders().map((t=>{if(function(t){const e=t.getComponent();return"VERSION"===(null==e?void 0:e.type)}(t)){const e=t.getImmediate();return`${e.library}/${e.version}`}return null})).filter((t=>t)).join(" ")}}const J="@firebase/app",X="0.9.0",Y=new O("@firebase/app"),Z="[DEFAULT]",tt={[J]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},et=new Map,nt=new Map;function rt(t,e){try{t.container.addComponent(e)}catch(n){Y.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function st(t){const e=t.name;if(nt.has(e))return Y.debug(`There were multiple attempts to register component ${e}.`),!1;nt.set(e,t);for(const e of et.values())rt(e,t);return!0}function it(t,e){const n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}
219
+ /**
220
+ * @license
221
+ * Copyright 2019 Google LLC
222
+ *
223
+ * Licensed under the Apache License, Version 2.0 (the "License");
224
+ * you may not use this file except in compliance with the License.
225
+ * You may obtain a copy of the License at
226
+ *
227
+ * http://www.apache.org/licenses/LICENSE-2.0
228
+ *
229
+ * Unless required by applicable law or agreed to in writing, software
230
+ * distributed under the License is distributed on an "AS IS" BASIS,
231
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
232
+ * See the License for the specific language governing permissions and
233
+ * limitations under the License.
234
+ */const ot=new f("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."});
235
+ /**
236
+ * @license
237
+ * Copyright 2019 Google LLC
238
+ *
239
+ * Licensed under the Apache License, Version 2.0 (the "License");
240
+ * you may not use this file except in compliance with the License.
241
+ * You may obtain a copy of the License at
242
+ *
243
+ * http://www.apache.org/licenses/LICENSE-2.0
244
+ *
245
+ * Unless required by applicable law or agreed to in writing, software
246
+ * distributed under the License is distributed on an "AS IS" BASIS,
247
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
248
+ * See the License for the specific language governing permissions and
249
+ * limitations under the License.
250
+ */
251
+ class at{constructor(t,e,n){this._isDeleted=!1,this._options=Object.assign({},t),this._config=Object.assign({},e),this._name=e.name,this._automaticDataCollectionEnabled=e.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(t){this.checkDestroyed(),this._automaticDataCollectionEnabled=t}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(t){this._isDeleted=t}checkDestroyed(){if(this.isDeleted)throw ot.create("app-deleted",{appName:this._name})}}
252
+ /**
253
+ * @license
254
+ * Copyright 2019 Google LLC
255
+ *
256
+ * Licensed under the Apache License, Version 2.0 (the "License");
257
+ * you may not use this file except in compliance with the License.
258
+ * You may obtain a copy of the License at
259
+ *
260
+ * http://www.apache.org/licenses/LICENSE-2.0
261
+ *
262
+ * Unless required by applicable law or agreed to in writing, software
263
+ * distributed under the License is distributed on an "AS IS" BASIS,
264
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
265
+ * See the License for the specific language governing permissions and
266
+ * limitations under the License.
267
+ */const ct="9.15.0";function ut(t,e={}){let n=t;if("object"!=typeof e){e={name:e}}const r=Object.assign({name:Z,automaticDataCollectionEnabled:!1},e),s=r.name;if("string"!=typeof s||!s)throw ot.create("bad-app-name",{appName:String(s)});if(n||(n=(()=>{var t;return null===(t=c())||void 0===t?void 0:t.config})()),!n)throw ot.create("no-options");const i=et.get(s);if(i){if(g(n,i.options)&&g(r,i.config))return i;throw ot.create("duplicate-app",{appName:s})}const o=new A(s);for(const t of nt.values())o.addComponent(t);const a=new at(n,r,o);return et.set(s,a),a}function ht(t=Z){const e=et.get(t);if(!e&&t===Z)return ut();if(!e)throw ot.create("no-app",{appName:t});return e}function lt(t,e,n){var r;let s=null!==(r=tt[t])&&void 0!==r?r:t;n&&(s+=`-${n}`);const i=s.match(/\s|\//),o=e.match(/\s|\//);if(i||o){const t=[`Unable to register library "${s}" with version "${e}":`];return i&&t.push(`library name "${s}" contains illegal characters (whitespace or "/")`),i&&o&&t.push("and"),o&&t.push(`version name "${e}" contains illegal characters (whitespace or "/")`),void Y.warn(t.join(" "))}st(new _(`${s}-version`,(()=>({library:s,version:e})),"VERSION"))}
268
+ /**
269
+ * @license
270
+ * Copyright 2021 Google LLC
271
+ *
272
+ * Licensed under the Apache License, Version 2.0 (the "License");
273
+ * you may not use this file except in compliance with the License.
274
+ * You may obtain a copy of the License at
275
+ *
276
+ * http://www.apache.org/licenses/LICENSE-2.0
277
+ *
278
+ * Unless required by applicable law or agreed to in writing, software
279
+ * distributed under the License is distributed on an "AS IS" BASIS,
280
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
281
+ * See the License for the specific language governing permissions and
282
+ * limitations under the License.
283
+ */const dt="firebase-heartbeat-store";let ft=null;function pt(){return ft||(ft=function(t,e,{blocked:n,upgrade:r,blocking:s,terminated:i}={}){const o=indexedDB.open(t,e),a=z(o);return r&&o.addEventListener("upgradeneeded",(t=>{r(z(o.result),t.oldVersion,t.newVersion,z(o.transaction))})),n&&o.addEventListener("blocked",(()=>n())),a.then((t=>{i&&t.addEventListener("close",(()=>i())),s&&t.addEventListener("versionchange",(()=>s()))})).catch((()=>{})),a}("firebase-heartbeat-database",1,{upgrade:(t,e)=>{if(0===e)t.createObjectStore(dt)}}).catch((t=>{throw ot.create("idb-open",{originalErrorMessage:t.message})}))),ft}async function gt(t,e){try{const n=(await pt()).transaction(dt,"readwrite"),r=n.objectStore(dt);return await r.put(e,mt(t)),n.done}catch(t){if(t instanceof d)Y.warn(t.message);else{const e=ot.create("idb-set",{originalErrorMessage:null==t?void 0:t.message});Y.warn(e.message)}}}function mt(t){return`${t.name}!${t.options.appId}`}
284
+ /**
285
+ * @license
286
+ * Copyright 2021 Google LLC
287
+ *
288
+ * Licensed under the Apache License, Version 2.0 (the "License");
289
+ * you may not use this file except in compliance with the License.
290
+ * You may obtain a copy of the License at
291
+ *
292
+ * http://www.apache.org/licenses/LICENSE-2.0
293
+ *
294
+ * Unless required by applicable law or agreed to in writing, software
295
+ * distributed under the License is distributed on an "AS IS" BASIS,
296
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
297
+ * See the License for the specific language governing permissions and
298
+ * limitations under the License.
299
+ */class yt{constructor(t){this.container=t,this._heartbeatsCache=null;const e=this.container.getProvider("app").getImmediate();this._storage=new wt(e),this._heartbeatsCachePromise=this._storage.read().then((t=>(this._heartbeatsCache=t,t)))}async triggerHeartbeat(){const t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),e=vt();if(null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise),this._heartbeatsCache.lastSentHeartbeatDate!==e&&!this._heartbeatsCache.heartbeats.some((t=>t.date===e)))return this._heartbeatsCache.heartbeats.push({date:e,agent:t}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((t=>{const e=new Date(t.date).valueOf();return Date.now()-e<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return"";const t=vt(),{heartbeatsToSend:e,unsentEntries:n}=function(t,e=1024){const n=[];let r=t.slice();for(const s of t){const t=n.find((t=>t.agent===s.agent));if(t){if(t.dates.push(s.date),It(n)>e){t.dates.pop();break}}else if(n.push({agent:s.agent,dates:[s.date]}),It(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),r=s(JSON.stringify({version:2,heartbeats:e}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function vt(){return(new Date).toISOString().substring(0,10)}class wt{constructor(t){this.app=t,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}()&&new Promise(((t,e)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",s=self.indexedDB.open(r);s.onsuccess=()=>{s.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},s.onupgradeneeded=()=>{n=!1},s.onerror=()=>{var t;e((null===(t=s.error)||void 0===t?void 0:t.message)||"")}}catch(t){e(t)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){return await async function(t){try{return(await pt()).transaction(dt).objectStore(dt).get(mt(t))}catch(t){if(t instanceof d)Y.warn(t.message);else{const e=ot.create("idb-get",{originalErrorMessage:null==t?void 0:t.message});Y.warn(e.message)}}}(this.app)||{heartbeats:[]}}return{heartbeats:[]}}async overwrite(t){var e;if(await this._canUseIndexedDBPromise){const n=await this.read();return gt(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:n.lastSentHeartbeatDate,heartbeats:t.heartbeats})}}async add(t){var e;if(await this._canUseIndexedDBPromise){const n=await this.read();return gt(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...t.heartbeats]})}}}function It(t){return s(JSON.stringify({version:2,heartbeats:t})).length}
300
+ /**
301
+ * @license
302
+ * Copyright 2019 Google LLC
303
+ *
304
+ * Licensed under the Apache License, Version 2.0 (the "License");
305
+ * you may not use this file except in compliance with the License.
306
+ * You may obtain a copy of the License at
307
+ *
308
+ * http://www.apache.org/licenses/LICENSE-2.0
309
+ *
310
+ * Unless required by applicable law or agreed to in writing, software
311
+ * distributed under the License is distributed on an "AS IS" BASIS,
312
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
313
+ * See the License for the specific language governing permissions and
314
+ * limitations under the License.
315
+ */var bt;bt="",st(new _("platform-logger",(t=>new Q(t)),"PRIVATE")),st(new _("heartbeat",(t=>new yt(t)),"PRIVATE")),lt(J,X,bt),lt(J,X,"esm2017"),lt("fire-js","");var Et=function(t,e){return Et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Et(t,e)};function _t(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Tt(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,s,i=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(t){s={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return o}var St,At="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ct=Ct||{},kt=At||self;function Nt(){}function Dt(t){var e=typeof t;return"array"==(e="object"!=e?e:t?Array.isArray(t)?"array":e:"null")||"object"==e&&"number"==typeof t.length}function Rt(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var Ot="closure_uid_"+(1e9*Math.random()>>>0),Lt=0;function Pt(t,e,n){return t.call.apply(t.bind,arguments)}function Mt(t,e,n){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),t.apply(e,n)}}return function(){return t.apply(e,arguments)}}function xt(t,e,n){return(xt=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?Pt:Mt).apply(null,arguments)}function Ut(t,e){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function Ft(t,e){function n(){}n.prototype=e.prototype,t.X=e.prototype,t.prototype=new n,t.prototype.constructor=t,t.Wb=function(t,n,r){for(var s=Array(arguments.length-2),i=2;i<arguments.length;i++)s[i-2]=arguments[i];return e.prototype[n].apply(t,s)}}function Vt(){this.s=this.s,this.o=this.o}Vt.prototype.s=!1,Vt.prototype.na=function(){var t;!this.s&&(this.s=!0,this.M(),0)&&(t=this,Object.prototype.hasOwnProperty.call(t,Ot)&&t[Ot]||(t[Ot]=++Lt))},Vt.prototype.M=function(){if(this.o)for(;this.o.length;)this.o.shift()()};var qt=Array.prototype.indexOf?function(t,e){return Array.prototype.indexOf.call(t,e,void 0)}:function(t,e){if("string"==typeof t)return"string"!=typeof e||1!=e.length?-1:t.indexOf(e,0);for(var n=0;n<t.length;n++)if(n in t&&t[n]===e)return n;return-1};function jt(t){var e=t.length;if(0<e){for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}return[]}function Bt(t,e){for(var n=1;n<arguments.length;n++){var r=arguments[n];if(Dt(r)){var s=t.length||0,i=r.length||0;t.length=s+i;for(var o=0;o<i;o++)t[s+o]=r[o]}else t.push(r)}}function zt(t,e){this.type=t,this.g=this.target=e,this.defaultPrevented=!1}zt.prototype.h=function(){this.defaultPrevented=!0};var $t=function(){if(!kt.addEventListener||!Object.defineProperty)return!1;var t=!1,e=Object.defineProperty({},"passive",{get:function(){t=!0}});try{kt.addEventListener("test",Nt,e),kt.removeEventListener("test",Nt,e)}catch(t){}return t}();function Kt(t){return/^[\s\xa0]*$/.test(t)}var Ht=String.prototype.trim?function(t){return t.trim()}:function(t){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(t)[1]};function Gt(t,e){return t<e?-1:t>e?1:0}function Wt(){var t=kt.navigator;return t&&(t=t.userAgent)?t:""}function Qt(t){return-1!=Wt().indexOf(t)}function Jt(t){return Jt[" "](t),t}Jt[" "]=Nt;var Xt,Yt,Zt=Qt("Opera"),te=Qt("Trident")||Qt("MSIE"),ee=Qt("Edge"),ne=ee||te,re=Qt("Gecko")&&!(-1!=Wt().toLowerCase().indexOf("webkit")&&!Qt("Edge"))&&!(Qt("Trident")||Qt("MSIE"))&&!Qt("Edge"),se=-1!=Wt().toLowerCase().indexOf("webkit")&&!Qt("Edge");function ie(){var t=kt.document;return t?t.documentMode:void 0}t:{var oe="",ae=(Yt=Wt(),re?/rv:([^\);]+)(\)|;)/.exec(Yt):ee?/Edge\/([\d\.]+)/.exec(Yt):te?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Yt):se?/WebKit\/(\S+)/.exec(Yt):Zt?/(?:Version)[ \/]?(\S+)/.exec(Yt):void 0);if(ae&&(oe=ae?ae[1]:""),te){var ce=ie();if(null!=ce&&ce>parseFloat(oe)){Xt=String(ce);break t}}Xt=oe}var ue,he={};function le(){return function(t){var e=he;return Object.prototype.hasOwnProperty.call(e,9)?e[9]:e[9]=t(9)}((function(){for(var t=0,e=Ht(String(Xt)).split("."),n=Ht("9").split("."),r=Math.max(e.length,n.length),s=0;0==t&&s<r;s++){var i=e[s]||"",o=n[s]||"";do{if(i=/(\d*)(\D*)(.*)/.exec(i)||["","","",""],o=/(\d*)(\D*)(.*)/.exec(o)||["","","",""],0==i[0].length&&0==o[0].length)break;t=Gt(0==i[1].length?0:parseInt(i[1],10),0==o[1].length?0:parseInt(o[1],10))||Gt(0==i[2].length,0==o[2].length)||Gt(i[2],o[2]),i=i[3],o=o[3]}while(0==t)}return 0<=t}))}if(kt.document&&te){var de=ie();ue=de||(parseInt(Xt,10)||void 0)}else ue=void 0;var fe=ue;function pe(t,e){if(zt.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(re){t:{try{Jt(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ge[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&pe.X.h.call(this)}}Ft(pe,zt);var ge={2:"touch",3:"pen",4:"mouse"};pe.prototype.h=function(){pe.X.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var me="closure_listenable_"+(1e6*Math.random()|0),ye=0;function ve(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.ha=s,this.key=++ye,this.ba=this.ea=!1}function we(t){t.ba=!0,t.listener=null,t.proxy=null,t.src=null,t.ha=null}function Ie(t,e,n){for(var r in t)e.call(n,t[r],r,t)}function be(t){var e={};for(var n in t)e[n]=t[n];return e}var Ee="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function _e(t,e){for(var n,r,s=1;s<arguments.length;s++){for(n in r=arguments[s])t[n]=r[n];for(var i=0;i<Ee.length;i++)n=Ee[i],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}function Te(t){this.src=t,this.g={},this.h=0}function Se(t,e){var n=e.type;if(n in t.g){var r,s=t.g[n],i=qt(s,e);(r=0<=i)&&Array.prototype.splice.call(s,i,1),r&&(we(e),0==t.g[n].length&&(delete t.g[n],t.h--))}}function Ae(t,e,n,r){for(var s=0;s<t.length;++s){var i=t[s];if(!i.ba&&i.listener==e&&i.capture==!!n&&i.ha==r)return s}return-1}Te.prototype.add=function(t,e,n,r,s){var i=t.toString();(t=this.g[i])||(t=this.g[i]=[],this.h++);var o=Ae(t,e,r,s);return-1<o?(e=t[o],n||(e.ea=!1)):((e=new ve(e,this.src,i,!!r,s)).ea=n,t.push(e)),e};var Ce="closure_lm_"+(1e6*Math.random()|0),ke={};function Ne(t,e,n,r,s){if(r&&r.once)return Re(t,e,n,r,s);if(Array.isArray(e)){for(var i=0;i<e.length;i++)Ne(t,e[i],n,r,s);return null}return n=Fe(n),t&&t[me]?t.N(e,n,Rt(r)?!!r.capture:!!r,s):De(t,e,n,!1,r,s)}function De(t,e,n,r,s,i){if(!e)throw Error("Invalid event type");var o=Rt(s)?!!s.capture:!!s,a=xe(t);if(a||(t[Ce]=a=new Te(t)),(n=a.add(e,n,r,o,i)).proxy)return n;if(r=function(){function t(n){return e.call(t.src,t.listener,n)}var e=Me;return t}(),n.proxy=r,r.src=t,r.listener=n,t.addEventListener)$t||(s=o),void 0===s&&(s=!1),t.addEventListener(e.toString(),r,s);else if(t.attachEvent)t.attachEvent(Pe(e.toString()),r);else{if(!t.addListener||!t.removeListener)throw Error("addEventListener and attachEvent are unavailable.");t.addListener(r)}return n}function Re(t,e,n,r,s){if(Array.isArray(e)){for(var i=0;i<e.length;i++)Re(t,e[i],n,r,s);return null}return n=Fe(n),t&&t[me]?t.O(e,n,Rt(r)?!!r.capture:!!r,s):De(t,e,n,!0,r,s)}function Oe(t,e,n,r,s){if(Array.isArray(e))for(var i=0;i<e.length;i++)Oe(t,e[i],n,r,s);else r=Rt(r)?!!r.capture:!!r,n=Fe(n),t&&t[me]?(t=t.i,(e=String(e).toString())in t.g&&(-1<(n=Ae(i=t.g[e],n,r,s))&&(we(i[n]),Array.prototype.splice.call(i,n,1),0==i.length&&(delete t.g[e],t.h--)))):t&&(t=xe(t))&&(e=t.g[e.toString()],t=-1,e&&(t=Ae(e,n,r,s)),(n=-1<t?e[t]:null)&&Le(n))}function Le(t){if("number"!=typeof t&&t&&!t.ba){var e=t.src;if(e&&e[me])Se(e.i,t);else{var n=t.type,r=t.proxy;e.removeEventListener?e.removeEventListener(n,r,t.capture):e.detachEvent?e.detachEvent(Pe(n),r):e.addListener&&e.removeListener&&e.removeListener(r),(n=xe(e))?(Se(n,t),0==n.h&&(n.src=null,e[Ce]=null)):we(t)}}}function Pe(t){return t in ke?ke[t]:ke[t]="on"+t}function Me(t,e){if(t.ba)t=!0;else{e=new pe(e,this);var n=t.listener,r=t.ha||t.src;t.ea&&Le(t),t=n.call(r,e)}return t}function xe(t){return(t=t[Ce])instanceof Te?t:null}var Ue="__closure_events_fn_"+(1e9*Math.random()>>>0);function Fe(t){return"function"==typeof t?t:(t[Ue]||(t[Ue]=function(e){return t.handleEvent(e)}),t[Ue])}function Ve(){Vt.call(this),this.i=new Te(this),this.P=this,this.I=null}function qe(t,e){var n,r=t.I;if(r)for(n=[];r;r=r.I)n.push(r);if(t=t.P,r=e.type||e,"string"==typeof e)e=new zt(e,t);else if(e instanceof zt)e.target=e.target||t;else{var s=e;_e(e=new zt(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=je(o,r,!0,e)&&s}if(s=je(o=e.g=t,r,!0,e)&&s,s=je(o,r,!1,e)&&s,n)for(i=0;i<n.length;i++)s=je(o=e.g=n[i],r,!1,e)&&s}function je(t,e,n,r){if(!(e=t.i.g[String(e)]))return!0;e=e.concat();for(var s=!0,i=0;i<e.length;++i){var o=e[i];if(o&&!o.ba&&o.capture==n){var a=o.listener,c=o.ha||o.src;o.ea&&Se(t.i,o),s=!1!==a.call(c,r)&&s}}return s&&!r.defaultPrevented}Ft(Ve,Vt),Ve.prototype[me]=!0,Ve.prototype.removeEventListener=function(t,e,n,r){Oe(this,t,e,n,r)},Ve.prototype.M=function(){if(Ve.X.M.call(this),this.i){var t,e=this.i;for(t in e.g){for(var n=e.g[t],r=0;r<n.length;r++)we(n[r]);delete e.g[t],e.h--}}this.I=null},Ve.prototype.N=function(t,e,n,r){return this.i.add(String(t),e,!1,n,r)},Ve.prototype.O=function(t,e,n,r){return this.i.add(String(t),e,!0,n,r)};var Be=kt.JSON.stringify;function ze(){var t=Xe,e=null;return t.g&&(e=t.g,t.g=t.g.next,t.g||(t.h=null),e.next=null),e}var $e,Ke=function(){function t(){this.h=this.g=null}return t.prototype.add=function(t,e){var n=He.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n},t}(),He=new(function(){function t(t,e){this.i=t,this.j=e,this.h=0,this.g=null}return t.prototype.get=function(){var t;return 0<this.h?(this.h--,t=this.g,this.g=t.next,t.next=null):t=this.i(),t},t}())((function(){return new Ge}),(function(t){return t.reset()})),Ge=function(){function t(){this.next=this.g=this.h=null}return t.prototype.set=function(t,e){this.h=t,this.g=e,this.next=null},t.prototype.reset=function(){this.next=this.g=this.h=null},t}();function We(t){kt.setTimeout((function(){throw t}),0)}function Qe(t,e){$e||function(){var t=kt.Promise.resolve(void 0);$e=function(){t.then(Ye)}}(),Je||($e(),Je=!0),Xe.add(t,e)}var Je=!1,Xe=new Ke;function Ye(){for(var t;t=ze();){try{t.h.call(t.g)}catch(t){We(t)}var e=He;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Je=!1}function Ze(t,e){Ve.call(this),this.h=t||1,this.g=e||kt,this.j=xt(this.lb,this),this.l=Date.now()}function tn(t){t.ca=!1,t.R&&(t.g.clearTimeout(t.R),t.R=null)}function en(t,e,n){if("function"==typeof t)n&&(t=xt(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=xt(t.handleEvent,t)}return 2147483647<Number(e)?-1:kt.setTimeout(t,e||0)}function nn(t){t.g=en((function(){t.g=null,t.i&&(t.i=!1,nn(t))}),t.j);var e=t.h;t.h=null,t.m.apply(null,e)}Ft(Ze,Ve),(St=Ze.prototype).ca=!1,St.R=null,St.lb=function(){if(this.ca){var t=Date.now()-this.l;0<t&&t<.8*this.h?this.R=this.g.setTimeout(this.j,this.h-t):(this.R&&(this.g.clearTimeout(this.R),this.R=null),qe(this,"tick"),this.ca&&(tn(this),this.start()))}},St.start=function(){this.ca=!0,this.R||(this.R=this.g.setTimeout(this.j,this.h),this.l=Date.now())},St.M=function(){Ze.X.M.call(this),tn(this),delete this.g};var rn=function(t){function e(e,n){var r=t.call(this)||this;return r.m=e,r.j=n,r.h=null,r.i=!1,r.g=null,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Et(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(e,t),e.prototype.l=function(t){this.h=arguments,this.g?this.i=!0:nn(this)},e.prototype.M=function(){t.prototype.M.call(this),this.g&&(kt.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)},e}(Vt);function sn(t){Vt.call(this),this.h=t,this.g={}}Ft(sn,Vt);var on=[];function an(t,e,n,r){Array.isArray(n)||(n&&(on[0]=n.toString()),n=on);for(var s=0;s<n.length;s++){var i=Ne(e,n[s],r||t.handleEvent,!1,t.h||t);if(!i)break;t.g[i.key]=i}}function cn(t){Ie(t.g,(function(t,e){this.g.hasOwnProperty(e)&&Le(t)}),t),t.g={}}function un(){this.g=!0}function hn(t,e,n,r){t.info((function(){return"XMLHTTP TEXT ("+e+"): "+function(t,e){if(!t.g)return e;if(!e)return null;try{var n=JSON.parse(e);if(n)for(t=0;t<n.length;t++)if(Array.isArray(n[t])){var r=n[t];if(!(2>r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;o<s.length;o++)s[o]=""}}}return Be(n)}catch(t){return e}}(t,n)+(r?" "+r:"")}))}sn.prototype.M=function(){sn.X.M.call(this),cn(this)},sn.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")},un.prototype.Aa=function(){this.g=!1},un.prototype.info=function(){};var ln={},dn=null;function fn(){return dn=dn||new Ve}function pn(t){zt.call(this,ln.Pa,t)}function gn(t){var e=fn();qe(e,new pn(e))}function mn(t,e){zt.call(this,ln.STAT_EVENT,t),this.stat=e}function yn(t){var e=fn();qe(e,new mn(e,t))}function vn(t,e){zt.call(this,ln.Qa,t),this.size=e}function wn(t,e){if("function"!=typeof t)throw Error("Fn must not be null and must be a function");return kt.setTimeout((function(){t()}),e)}ln.Pa="serverreachability",Ft(pn,zt),ln.STAT_EVENT="statevent",Ft(mn,zt),ln.Qa="timingevent",Ft(vn,zt);var In={NO_ERROR:0,mb:1,zb:2,yb:3,tb:4,xb:5,Ab:6,Ma:7,TIMEOUT:8,Db:9},bn={rb:"complete",Nb:"success",Na:"error",Ma:"abort",Fb:"ready",Gb:"readystatechange",TIMEOUT:"timeout",Bb:"incrementaldata",Eb:"progress",ub:"downloadprogress",Vb:"uploadprogress"};function En(){}function _n(t){return t.h||(t.h=t.i())}function Tn(){}En.prototype.h=null;var Sn,An={OPEN:"a",qb:"b",Na:"c",Cb:"d"};function Cn(){zt.call(this,"d")}function kn(){zt.call(this,"c")}function Nn(){}function Dn(t,e,n,r){this.l=t,this.j=e,this.m=n,this.U=r||1,this.S=new sn(this),this.O=On,t=ne?125:void 0,this.T=new Ze(t),this.H=null,this.i=!1,this.s=this.A=this.v=this.K=this.F=this.V=this.B=null,this.D=[],this.g=null,this.C=0,this.o=this.u=null,this.Y=-1,this.I=!1,this.N=0,this.L=null,this.$=this.J=this.Z=this.P=!1,this.h=new Rn}function Rn(){this.i=null,this.g="",this.h=!1}Ft(Cn,zt),Ft(kn,zt),Ft(Nn,En),Nn.prototype.g=function(){return new XMLHttpRequest},Nn.prototype.i=function(){return{}},Sn=new Nn;var On=45e3,Ln={},Pn={};function Mn(t,e,n){t.K=1,t.v=tr(Qn(e)),t.s=n,t.P=!0,xn(t,null)}function xn(t,e){t.F=Date.now(),qn(t),t.A=Qn(t.v);var n=t.A,r=t.U;Array.isArray(r)||(r=[String(r)]),fr(n.i,"t",r),t.C=0,n=t.l.H,t.h=new Rn,t.g=fs(t.l,n?e:null,!t.s),0<t.N&&(t.L=new rn(xt(t.La,t,t.g),t.N)),an(t.S,t.g,"readystatechange",t.ib),e=t.H?be(t.H):{},t.s?(t.u||(t.u="POST"),e["Content-Type"]="application/x-www-form-urlencoded",t.g.da(t.A,t.u,t.s,e)):(t.u="GET",t.g.da(t.A,t.u,null,e)),gn(),function(t,e,n,r,s,i){t.info((function(){if(t.g)if(i)for(var o="",a=i.split("&"),c=0;c<a.length;c++){var u=a[c].split("=");if(1<u.length){var h=u[0];u=u[1];var l=h.split("_");o=2<=l.length&&"type"==l[1]?o+(h+"=")+u+"&":o+(h+"=redacted&")}}else o=null;else o=i;return"XMLHTTP REQ ("+r+") [attempt "+s+"]: "+e+"\n"+n+"\n"+o}))}(t.j,t.u,t.A,t.m,t.U,t.s)}function Un(t){return!!t.g&&("GET"==t.u&&2!=t.K&&t.l.Da)}function Fn(t,e,n){for(var r,s=!0;!t.I&&t.C<n.length;){if((r=Vn(t,n))==Pn){4==e&&(t.o=4,yn(14),s=!1),hn(t.j,t.m,null,"[Incomplete Response]");break}if(r==Ln){t.o=4,yn(15),hn(t.j,t.m,n,"[Invalid Chunk]"),s=!1;break}hn(t.j,t.m,r,null),Kn(t,r)}Un(t)&&r!=Pn&&r!=Ln&&(t.h.g="",t.C=0),4!=e||0!=n.length||t.h.h||(t.o=1,yn(16),s=!1),t.i=t.i&&s,s?0<n.length&&!t.$&&(t.$=!0,(e=t.l).g==t&&e.$&&!e.K&&(e.j.info("Great, no buffering proxy detected. Bytes received: "+n.length),is(e),e.K=!0,yn(11))):(hn(t.j,t.m,n,"[Invalid Chunked Response]"),$n(t),zn(t))}function Vn(t,e){var n=t.C,r=e.indexOf("\n",n);return-1==r?Pn:(n=Number(e.substring(n,r)),isNaN(n)?Ln:(r+=1)+n>e.length?Pn:(e=e.substr(r,n),t.C=r+n,e))}function qn(t){t.V=Date.now()+t.O,jn(t,t.O)}function jn(t,e){if(null!=t.B)throw Error("WatchDog timer not null");t.B=wn(xt(t.gb,t),e)}function Bn(t){t.B&&(kt.clearTimeout(t.B),t.B=null)}function zn(t){0==t.l.G||t.I||cs(t.l,t)}function $n(t){Bn(t);var e=t.L;e&&"function"==typeof e.na&&e.na(),t.L=null,tn(t.T),cn(t.S),t.g&&(e=t.g,t.g=null,e.abort(),e.na())}function Kn(t,e){try{var n=t.l;if(0!=n.G&&(n.g==t||Ir(n.h,t)))if(!t.J&&Ir(n.h,t)&&3==n.G){try{var r=n.Fa.g.parse(e)}catch(i){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.F+3e3<t.F))break t;as(n),Xr(n)}ss(n),yn(18)}}else n.Ba=s[1],0<n.Ba-n.T&&37500>s[2]&&n.L&&0==n.A&&!n.v&&(n.v=wn(xt(n.cb,n),6e3));if(1>=wr(n.h)&&n.ja){try{n.ja()}catch(i){}n.ja=void 0}}else hs(n,11)}else if((t.J||n.g==t)&&as(n),!Kt(e))for(s=n.Fa.g.parse(e),e=0;e<s.length;e++){var i=s[e];if(n.T=i[0],i=i[1],2==n.G)if("c"==i[0]){n.I=i[1],n.ka=i[2];var o=i[3];null!=o&&(n.ma=o,n.j.info("VER="+n.ma));var a=i[4];null!=a&&(n.Ca=a,n.j.info("SVER="+n.Ca));var c=i[5];null!=c&&"number"==typeof c&&0<c&&(r=1.5*c,n.J=r,n.j.info("backChannelRequestTimeoutMs_="+r)),r=n;var u=t.g;if(u){var h=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(h){var l=r.h;l.g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(l.j=l.l,l.g=new Set,l.h&&(br(l,l.h),l.h=null))}if(r.D){var d=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null;d&&(r.za=d,Zn(r.F,r.D,d))}}n.G=3,n.l&&n.l.xa(),n.$&&(n.P=Date.now()-t.F,n.j.info("Handshake RTT: "+n.P+"ms"));var f=t;if((r=n).sa=ds(r,r.H?r.ka:null,r.V),f.J){Er(r.h,f);var p=f,g=r.J;g&&p.setTimeout(g),p.B&&(Bn(p),qn(p)),r.g=f}else rs(r);0<n.i.length&&Zr(n)}else"stop"!=i[0]&&"close"!=i[0]||hs(n,7);else 3==n.G&&("stop"==i[0]||"close"==i[0]?"stop"==i[0]?hs(n,7):Jr(n):"noop"!=i[0]&&n.l&&n.l.wa(i),n.A=0)}gn()}catch(i){}}function Hn(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(Dt(t)||"string"==typeof t)Array.prototype.forEach.call(t,e,void 0);else for(var n=function(t){if(t.oa&&"function"==typeof t.oa)return t.oa();if(!t.W||"function"!=typeof t.W){if("undefined"!=typeof Map&&t instanceof Map)return Array.from(t.keys());if(!("undefined"!=typeof Set&&t instanceof Set)){if(Dt(t)||"string"==typeof t){var e=[];t=t.length;for(var n=0;n<t;n++)e.push(n);return e}for(var r in e=[],n=0,t)e[n++]=r;return e}}}(t),r=function(t){if(t.W&&"function"==typeof t.W)return t.W();if("undefined"!=typeof Map&&t instanceof Map||"undefined"!=typeof Set&&t instanceof Set)return Array.from(t.values());if("string"==typeof t)return t.split("");if(Dt(t)){for(var e=[],n=t.length,r=0;r<n;r++)e.push(t[r]);return e}for(r in e=[],n=0,t)e[n++]=t[r];return e}(t),s=r.length,i=0;i<s;i++)e.call(void 0,r[i],n&&n[i],t)}(St=Dn.prototype).setTimeout=function(t){this.O=t},St.ib=function(t){t=t.target;var e=this.L;e&&3==$r(t)?e.l():this.La(t)},St.La=function(t){try{if(t==this.g)t:{var e=$r(this.g),n=this.g.Ea();this.g.aa();if(!(3>e)&&(3!=e||ne||this.g&&(this.h.h||this.g.fa()||Kr(this.g)))){this.I||4!=e||7==n||gn(),Bn(this);var r=this.g.aa();this.Y=r;e:if(Un(this)){var s=Kr(this.g);t="";var i=s.length,o=4==$r(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){$n(this),zn(this);var a="";break e}this.h.i=new kt.TextDecoder}for(n=0;n<i;n++)this.h.h=!0,t+=this.h.i.decode(s[n],{stream:o&&n==i-1});s.splice(0,i),this.h.g+=t,this.C=0,a=this.h.g}else a=this.g.fa();if(this.i=200==r,function(t,e,n,r,s,i,o){t.info((function(){return"XMLHTTP RESP ("+r+") [ attempt "+s+"]: "+e+"\n"+n+"\n"+i+" "+o}))}(this.j,this.u,this.A,this.m,this.U,e,r),this.i){if(this.Z&&!this.J){e:{if(this.g){var c,u=this.g;if((c=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!Kt(c)){var h=c;break e}}h=null}if(!(r=h)){this.i=!1,this.o=3,yn(12),$n(this),zn(this);break t}hn(this.j,this.m,r,"Initial handshake response via X-HTTP-Initial-Response"),this.J=!0,Kn(this,r)}this.P?(Fn(this,e,a),ne&&this.i&&3==e&&(an(this.S,this.T,"tick",this.hb),this.T.start())):(hn(this.j,this.m,a,null),Kn(this,a)),4==e&&$n(this),this.i&&!this.I&&(4==e?cs(this.l,this):(this.i=!1,qn(this)))}else 400==r&&0<a.indexOf("Unknown SID")?(this.o=3,yn(12)):(this.o=0,yn(13)),$n(this),zn(this)}}}catch(e){}},St.hb=function(){if(this.g){var t=$r(this.g),e=this.g.fa();this.C<e.length&&(Bn(this),Fn(this,t,e),this.i&&4!=t&&qn(this))}},St.cancel=function(){this.I=!0,$n(this)},St.gb=function(){this.B=null;var t=Date.now();0<=t-this.V?(function(t,e){t.info((function(){return"TIMEOUT: "+e}))}(this.j,this.A),2!=this.K&&(gn(),yn(17)),$n(this),this.o=2,zn(this)):jn(this,this.V-t)};var Gn=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function Wn(t,e){if(this.g=this.s=this.j="",this.m=null,this.o=this.l="",this.h=!1,t instanceof Wn){this.h=void 0!==e?e:t.h,Jn(this,t.j),this.s=t.s,this.g=t.g,Xn(this,t.m),this.l=t.l,e=t.i;var n=new ur;n.i=e.i,e.g&&(n.g=new Map(e.g),n.h=e.h),Yn(this,n),this.o=t.o}else t&&(n=String(t).match(Gn))?(this.h=!!e,Jn(this,n[1]||"",!0),this.s=er(n[2]||""),this.g=er(n[3]||"",!0),Xn(this,n[4]),this.l=er(n[5]||"",!0),Yn(this,n[6]||"",!0),this.o=er(n[7]||"")):(this.h=!!e,this.i=new ur(null,this.h))}function Qn(t){return new Wn(t)}function Jn(t,e,n){t.j=n?er(e,!0):e,t.j&&(t.j=t.j.replace(/:$/,""))}function Xn(t,e){if(e){if(e=Number(e),isNaN(e)||0>e)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Yn(t,e,n){e instanceof ur?(t.i=e,function(t,e){e&&!t.j&&(hr(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(lr(this,e),fr(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=nr(e,ar)),t.i=new ur(e,t.h))}function Zn(t,e,n){t.i.set(e,n)}function tr(t){return Zn(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function er(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function nr(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,rr),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function rr(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Wn.prototype.toString=function(){var t=[],e=this.j;e&&t.push(nr(e,sr,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(nr(e,sr,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(nr(n,"/"==n.charAt(0)?or:ir,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",nr(n,cr)),t.join("")};var sr=/[#\/\?@]/g,ir=/[#\?:]/g,or=/[#\?]/g,ar=/[#\?@]/g,cr=/#/g;function ur(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function hr(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n<t.length;n++){var r=t[n].indexOf("="),s=null;if(0<=r){var i=t[n].substring(0,r);s=t[n].substring(r+1)}else i=t[n];e(i,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(t.i,(function(e,n){t.add(decodeURIComponent(e.replace(/\+/g," ")),n)})))}function lr(t,e){hr(t),e=pr(t,e),t.g.has(e)&&(t.i=null,t.h-=t.g.get(e).length,t.g.delete(e))}function dr(t,e){return hr(t),e=pr(t,e),t.g.has(e)}function fr(t,e,n){lr(t,e),0<n.length&&(t.i=null,t.g.set(pr(t,e),jt(n)),t.h+=n.length)}function pr(t,e){return e=String(e),t.j&&(e=e.toLowerCase()),e}(St=ur.prototype).add=function(t,e){hr(this),this.i=null,t=pr(this,t);var n=this.g.get(t);return n||this.g.set(t,n=[]),n.push(e),this.h+=1,this},St.forEach=function(t,e){hr(this),this.g.forEach((function(n,r){n.forEach((function(n){t.call(e,n,r,this)}),this)}),this)},St.oa=function(){hr(this);for(var t=Array.from(this.g.values()),e=Array.from(this.g.keys()),n=[],r=0;r<e.length;r++)for(var s=t[r],i=0;i<s.length;i++)n.push(e[r]);return n},St.W=function(t){hr(this);var e=[];if("string"==typeof t)dr(this,t)&&(e=e.concat(this.g.get(pr(this,t))));else{t=Array.from(this.g.values());for(var n=0;n<t.length;n++)e=e.concat(t[n])}return e},St.set=function(t,e){return hr(this),this.i=null,dr(this,t=pr(this,t))&&(this.h-=this.g.get(t).length),this.g.set(t,[e]),this.h+=1,this},St.get=function(t,e){return t&&0<(t=this.W(t)).length?String(t[0]):e},St.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var t=[],e=Array.from(this.g.keys()),n=0;n<e.length;n++){var r=e[n],s=encodeURIComponent(String(r)),i=this.W(r);for(r=0;r<i.length;r++){var o=s;""!==i[r]&&(o+="="+encodeURIComponent(String(i[r]))),t.push(o)}}return this.i=t.join("&")};var gr=function(t,e){this.h=t,this.g=e};function mr(t){this.l=t||yr,kt.PerformanceNavigationTiming?t=0<(t=kt.performance.getEntriesByType("navigation")).length&&("hq"==t[0].nextHopProtocol||"h2"==t[0].nextHopProtocol):t=!!(kt.g&&kt.g.Ga&&kt.g.Ga()&&kt.g.Ga().$b),this.j=t?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}var yr=10;function vr(t){return!!t.h||!!t.g&&t.g.size>=t.j}function wr(t){return t.h?1:t.g?t.g.size:0}function Ir(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function br(t,e){t.g?t.g.add(e):t.h=e}function Er(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function _r(t){var e,n;if(null!=t.h)return t.i.concat(t.h.D);if(null!=t.g&&0!==t.g.size){var r=t.i;try{for(var s=_t(t.g.values()),i=s.next();!i.done;i=s.next()){var o=i.value;r=r.concat(o.D)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}return r}return jt(t.i)}function Tr(){}function Sr(){this.g=new Tr}function Ar(t,e,n){var r=n||"";try{Hn(t,(function(t,n){var s=t;Rt(t)&&(s=Be(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function Cr(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function kr(t){this.l=t.ac||null,this.j=t.jb||!1}function Nr(t,e){Ve.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Dr,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}mr.prototype.cancel=function(){var t,e;if(this.i=_r(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){try{for(var n=_t(this.g.values()),r=n.next();!r.done;r=n.next()){r.value.cancel()}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this.g.clear()}},Tr.prototype.stringify=function(t){return kt.JSON.stringify(t,void 0)},Tr.prototype.parse=function(t){return kt.JSON.parse(t,void 0)},Ft(kr,En),kr.prototype.g=function(){return new Nr(this.l,this.j)},kr.prototype.i=function(t){return function(){return t}}({}),Ft(Nr,Ve);var Dr=0;function Rr(t){t.j.read().then(t.Ta.bind(t)).catch(t.ga.bind(t))}function Or(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Lr(t)}function Lr(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(St=Nr.prototype).open=function(t,e){if(this.readyState!=Dr)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Lr(this)},St.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.D||kt).fetch(new Request(this.B,e)).then(this.Wa.bind(this),this.ga.bind(this))},St.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((function(){})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Or(this)),this.readyState=Dr},St.Wa=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Lr(this)),this.g&&(this.readyState=3,Lr(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ua.bind(this),this.ga.bind(this));else if(void 0!==kt.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;Rr(this)}else t.text().then(this.Va.bind(this),this.ga.bind(this))},St.Ta=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Or(this):Lr(this),3==this.readyState&&Rr(this)}},St.Va=function(t){this.g&&(this.response=this.responseText=t,Or(this))},St.Ua=function(t){this.g&&(this.response=t,Or(this))},St.ga=function(){this.g&&Or(this)},St.setRequestHeader=function(t,e){this.v.append(t,e)},St.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},St.getAllResponseHeaders=function(){if(!this.h)return"";for(var t=[],e=this.h.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(Nr.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Pr=kt.JSON.parse;function Mr(t){Ve.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=xr,this.K=this.L=!1}Ft(Mr,Ve);var xr="",Ur=/^https?$/i,Fr=["POST","PUT"];function Vr(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,qr(t),Br(t)}function qr(t){t.D||(t.D=!0,qe(t,"complete"),qe(t,"error"))}function jr(t){if(t.h&&void 0!==Ct&&(!t.C[1]||4!=$r(t)||2!=t.aa()))if(t.v&&4==$r(t))en(t.Ha,0,t);else if(qe(t,"readystatechange"),4==$r(t)){t.h=!1;try{var e,n=t.aa();t:switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var r=!0;break t;default:r=!1}if(!(e=r)){var s;if(s=0===n){var i=String(t.H).match(Gn)[1]||null;if(!i&&kt.self&&kt.self.location){var o=kt.self.location.protocol;i=o.substr(0,o.length-1)}s=!Ur.test(i?i.toLowerCase():"")}e=s}if(e)qe(t,"complete"),qe(t,"success");else{t.m=6;try{var a=2<$r(t)?t.g.statusText:""}catch(t){a=""}t.j=a+" ["+t.aa()+"]",qr(t)}}finally{Br(t)}}}function Br(t,e){if(t.g){zr(t);var n=t.g,r=t.C[0]?Nt:null;t.g=null,t.C=null,e||qe(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function zr(t){t.g&&t.K&&(t.g.ontimeout=null),t.A&&(kt.clearTimeout(t.A),t.A=null)}function $r(t){return t.g?t.g.readyState:0}function Kr(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.J){case xr:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Hr(t){var e="";return Ie(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function Gr(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Hr(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):Zn(t,e,n))}function Wr(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Qr(t){this.Ca=0,this.i=[],this.j=new un,this.ka=this.sa=this.F=this.V=this.g=this.za=this.D=this.ia=this.o=this.S=this.s=null,this.ab=this.U=0,this.Za=Wr("failFast",!1,t),this.L=this.v=this.u=this.m=this.l=null,this.Y=!0,this.pa=this.Ba=this.T=-1,this.Z=this.A=this.C=0,this.Xa=Wr("baseRetryDelayMs",5e3,t),this.bb=Wr("retryDelaySeedMs",1e4,t),this.$a=Wr("forwardChannelMaxRetries",2,t),this.ta=Wr("forwardChannelRequestTimeoutMs",2e4,t),this.ra=t&&t.xmlHttpFactory||void 0,this.Da=t&&t.Zb||!1,this.J=void 0,this.H=t&&t.supportsCrossDomainXhr||!1,this.I="",this.h=new mr(t&&t.concurrentRequestLimit),this.Fa=new Sr,this.O=t&&t.fastHandshake||!1,this.N=t&&t.encodeInitMessageHeaders||!1,this.O&&this.N&&(this.N=!1),this.Ya=t&&t.Xb||!1,t&&t.Aa&&this.j.Aa(),t&&t.forceLongPolling&&(this.Y=!1),this.$=!this.O&&this.Y&&t&&t.detectBufferingProxy||!1,this.ja=void 0,this.P=0,this.K=!1,this.la=this.B=null}function Jr(t){if(Yr(t),3==t.G){var e=t.U++,n=Qn(t.F);Zn(n,"SID",t.I),Zn(n,"RID",e),Zn(n,"TYPE","terminate"),es(t,n),(e=new Dn(t,t.j,e,void 0)).K=2,e.v=tr(Qn(n)),n=!1,kt.navigator&&kt.navigator.sendBeacon&&(n=kt.navigator.sendBeacon(e.v.toString(),"")),!n&&kt.Image&&((new Image).src=e.v,n=!0),n||(e.g=fs(e.l,null),e.g.da(e.v)),e.F=Date.now(),qn(e)}ls(t)}function Xr(t){t.g&&(is(t),t.g.cancel(),t.g=null)}function Yr(t){Xr(t),t.u&&(kt.clearTimeout(t.u),t.u=null),as(t),t.h.cancel(),t.m&&("number"==typeof t.m&&kt.clearTimeout(t.m),t.m=null)}function Zr(t){vr(t.h)||t.m||(t.m=!0,Qe(t.Ja,t),t.C=0)}function ts(t,e){var n;n=e?e.m:t.U++;var r=Qn(t.F);Zn(r,"SID",t.I),Zn(r,"RID",n),Zn(r,"AID",t.T),es(t,r),t.o&&t.s&&Gr(r,t.o,t.s),n=new Dn(t,t.j,n,t.C+1),null===t.o&&(n.H=t.s),e&&(t.i=e.D.concat(t.i)),e=ns(t,n,1e3),n.setTimeout(Math.round(.5*t.ta)+Math.round(.5*t.ta*Math.random())),br(t.h,n),Mn(n,r,e)}function es(t,e){t.ia&&Ie(t.ia,(function(t,n){Zn(e,n,t)})),t.l&&Hn({},(function(t,n){Zn(e,n,t)}))}function ns(t,e,n){n=Math.min(t.i.length,n);var r=t.l?xt(t.l.Ra,t.l,t):null;t:for(var s=t.i,i=-1;;){var o=["count="+n];-1==i?0<n?(i=s[0].h,o.push("ofs="+i)):i=0:o.push("ofs="+i);for(var a=!0,c=0;c<n;c++){var u=s[c].h,h=s[c].g;if(0>(u-=i))i=Math.max(0,s[c].h-100),a=!1;else try{Ar(h,o,"req"+u+"_")}catch(t){r&&r(h)}}if(a){r=o.join("&");break t}}return t=t.i.splice(0,n),e.D=t,r}function rs(t){t.g||t.u||(t.Z=1,Qe(t.Ia,t),t.A=0)}function ss(t){return!(t.g||t.u||3<=t.A)&&(t.Z++,t.u=wn(xt(t.Ia,t),us(t,t.A)),t.A++,!0)}function is(t){null!=t.B&&(kt.clearTimeout(t.B),t.B=null)}function os(t){t.g=new Dn(t,t.j,"rpc",t.Z),null===t.o&&(t.g.H=t.s),t.g.N=0;var e=Qn(t.sa);Zn(e,"RID","rpc"),Zn(e,"SID",t.I),Zn(e,"CI",t.L?"0":"1"),Zn(e,"AID",t.T),Zn(e,"TYPE","xmlhttp"),es(t,e),t.o&&t.s&&Gr(e,t.o,t.s),t.J&&t.g.setTimeout(t.J);var n=t.g;t=t.ka,n.K=1,n.v=tr(Qn(e)),n.s=null,n.P=!0,xn(n,t)}function as(t){null!=t.v&&(kt.clearTimeout(t.v),t.v=null)}function cs(t,e){var n=null;if(t.g==e){as(t),is(t),t.g=null;var r=2}else{if(!Ir(t.h,e))return;n=e.D,Er(t.h,e),r=1}if(0!=t.G)if(t.pa=e.Y,e.i)if(1==r){n=e.s?e.s.length:0,e=Date.now()-e.F;var s=t.C;qe(r=fn(),new vn(r,n)),Zr(t)}else rs(t);else if(3==(s=e.o)||0==s&&0<t.pa||!(1==r&&function(t,e){return!(wr(t.h)>=t.h.j-(t.m?1:0)||(t.m?(t.i=e.D.concat(t.i),0):1==t.G||2==t.G||t.C>=(t.Za?0:t.$a)||(t.m=wn(xt(t.Ja,t,e),us(t,t.C)),t.C++,0)))}(t,e)||2==r&&ss(t)))switch(n&&0<n.length&&(e=t.h,e.i=e.i.concat(n)),s){case 1:hs(t,5);break;case 4:hs(t,10);break;case 3:hs(t,6);break;default:hs(t,2)}}function us(t,e){var n=t.Xa+Math.floor(Math.random()*t.bb);return t.l||(n*=2),n*e}function hs(t,e){if(t.j.info("Error code "+e),2==e){var n=null;t.l&&(n=null);var r=xt(t.kb,t);n||(n=new Wn("//www.google.com/images/cleardot.gif"),kt.location&&"http"==kt.location.protocol||Jn(n,"https"),tr(n)),function(t,e){var n=new un;if(kt.Image){var r=new Image;r.onload=Ut(Cr,n,r,"TestLoadImage: loaded",!0,e),r.onerror=Ut(Cr,n,r,"TestLoadImage: error",!1,e),r.onabort=Ut(Cr,n,r,"TestLoadImage: abort",!1,e),r.ontimeout=Ut(Cr,n,r,"TestLoadImage: timeout",!1,e),kt.setTimeout((function(){r.ontimeout&&r.ontimeout()}),1e4),r.src=t}else e(!1)}(n.toString(),r)}else yn(2);t.G=0,t.l&&t.l.va(e),ls(t),Yr(t)}function ls(t){if(t.G=0,t.la=[],t.l){var e=_r(t.h);0==e.length&&0==t.i.length||(Bt(t.la,e),Bt(t.la,t.i),t.h.i.length=0,jt(t.i),t.i.length=0),t.l.ua()}}function ds(t,e,n){var r=n instanceof Wn?Qn(n):new Wn(n,void 0);if(""!=r.g)e&&(r.g=e+"."+r.g),Xn(r,r.m);else{var s=kt.location;r=s.protocol,e=e?e+"."+s.hostname:s.hostname,s=+s.port;var i=new Wn(null,void 0);r&&Jn(i,r),e&&(i.g=e),s&&Xn(i,s),n&&(i.l=n),r=i}return n=t.D,e=t.za,n&&e&&Zn(r,n,e),Zn(r,"VER",t.ma),es(t,r),r}function fs(t,e,n){if(e&&!t.H)throw Error("Can't create secondary domain capable XhrIo object.");return(e=n&&t.Da&&!t.ra?new Mr(new kr({jb:!0})):new Mr(t.ra)).Ka(t.H),e}function ps(){}function gs(){if(te&&!(10<=Number(fe)))throw Error("Environmental error: no available transport.")}function ms(t,e){Ve.call(this),this.g=new Qr(e),this.l=t,this.h=e&&e.messageUrlParams||null,t=e&&e.messageHeaders||null,e&&e.clientProtocolHeaderRequired&&(t?t["X-Client-Protocol"]="webchannel":t={"X-Client-Protocol":"webchannel"}),this.g.s=t,t=e&&e.initMessageHeaders||null,e&&e.messageContentType&&(t?t["X-WebChannel-Content-Type"]=e.messageContentType:t={"X-WebChannel-Content-Type":e.messageContentType}),e&&e.ya&&(t?t["X-WebChannel-Client-Profile"]=e.ya:t={"X-WebChannel-Client-Profile":e.ya}),this.g.S=t,(t=e&&e.Yb)&&!Kt(t)&&(this.g.o=t),this.A=e&&e.supportsCrossDomainXhr||!1,this.v=e&&e.sendRawJson||!1,(e=e&&e.httpSessionIdParam)&&!Kt(e)&&(this.g.D=e,null!==(t=this.h)&&e in t&&(e in(t=this.h)&&delete t[e])),this.j=new ws(this)}function ys(t){Cn.call(this);var e=t.__sm__;if(e){t:{for(var n in e){t=n;break t}t=void 0}(this.i=t)&&(t=this.i,e=null!==e&&t in e?e[t]:void 0),this.data=e}else this.data=t}function vs(){kn.call(this),this.status=1}function ws(t){this.g=t}(St=Mr.prototype).Ka=function(t){this.L=t},St.da=function(t,e,n,r){var s,i,o,a;if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.H+"; newUri="+t);e=e?e.toUpperCase():"GET",this.H=t,this.j="",this.m=0,this.D=!1,this.h=!0,this.g=this.u?this.u.g():Sn.g(),this.C=this.u?_n(this.u):_n(Sn),this.g.onreadystatechange=xt(this.Ha,this);try{this.F=!0,this.g.open(e,String(t),!0),this.F=!1}catch(l){return void Vr(this,l)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var c in r)n.set(c,r[c]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));try{for(var u=_t(r.keys()),h=u.next();!h.done;h=u.next()){var l=h.value;n.set(l,r.get(l))}}catch(t){s={error:t}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(s)throw s.error}}}r=Array.from(n.keys()).find((function(t){return"content-type"==t.toLowerCase()})),c=kt.FormData&&t instanceof kt.FormData,!(0<=qt(Fr,e))||r||c||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");try{for(var d=_t(n),f=d.next();!f.done;f=d.next()){var p=Tt(f.value,2),g=(l=p[0],p[1]);this.g.setRequestHeader(l,g)}}catch(t){o={error:t}}finally{try{f&&!f.done&&(a=d.return)&&a.call(d)}finally{if(o)throw o.error}}this.J&&(this.g.responseType=this.J),"withCredentials"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{zr(this),0<this.B&&((this.K=function(t){return te&&le()&&"number"==typeof t.timeout&&void 0!==t.ontimeout}(this.g))?(this.g.timeout=this.B,this.g.ontimeout=xt(this.qa,this)):this.A=en(this.qa,this.B,this)),this.v=!0,this.g.send(t),this.v=!1}catch(l){Vr(this,l)}},St.qa=function(){void 0!==Ct&&this.g&&(this.j="Timed out after "+this.B+"ms, aborting",this.m=8,qe(this,"timeout"),this.abort(8))},St.abort=function(t){this.g&&this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1,this.m=t||7,qe(this,"complete"),qe(this,"abort"),Br(this))},St.M=function(){this.g&&(this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1),Br(this,!0)),Mr.X.M.call(this)},St.Ha=function(){this.s||(this.F||this.v||this.l?jr(this):this.fb())},St.fb=function(){jr(this)},St.aa=function(){try{return 2<$r(this)?this.g.status:-1}catch(t){return-1}},St.fa=function(){try{return this.g?this.g.responseText:""}catch(t){return""}},St.Sa=function(t){if(this.g){var e=this.g.responseText;return t&&0==e.indexOf(t)&&(e=e.substring(t.length)),Pr(e)}},St.Ea=function(){return this.m},St.Oa=function(){return"string"==typeof this.j?this.j:String(this.j)},(St=Qr.prototype).ma=8,St.G=1,St.Ja=function(t){if(this.m)if(this.m=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var e=new Dn(this,this.j,t,void 0),n=this.s;if(this.S&&(n?_e(n=be(n),this.S):n=this.S),null!==this.o||this.N||(e.H=n,n=null),this.O)t:{for(var r=0,s=0;s<this.i.length;s++){var i=this.i[s];if(void 0===(i="__data__"in i.g&&"string"==typeof(i=i.g.__data__)?i.length:void 0))break;if(4096<(r+=i)){r=s;break t}if(4096===r||s===this.i.length-1){r=s+1;break t}}r=1e3}else r=1e3;r=ns(this,e,r),Zn(s=Qn(this.F),"RID",t),Zn(s,"CVER",22),this.D&&Zn(s,"X-HTTP-Session-Id",this.D),es(this,s),n&&(this.N?r="headers="+encodeURIComponent(String(Hr(n)))+"&"+r:this.o&&Gr(s,this.o,n)),br(this.h,e),this.Ya&&Zn(s,"TYPE","init"),this.O?(Zn(s,"$req",r),Zn(s,"SID","null"),e.Z=!0,Mn(e,s,null)):Mn(e,s,r),this.G=2}}else 3==this.G&&(t?ts(this,t):0==this.i.length||vr(this.h)||ts(this))},St.Ia=function(){if(this.u=null,os(this),this.$&&!(this.K||null==this.g||0>=this.P)){var t=2*this.P;this.j.info("BP detection timer enabled: "+t),this.B=wn(xt(this.eb,this),t)}},St.eb=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.L=!1,this.K=!0,yn(10),Xr(this),os(this))},St.cb=function(){null!=this.v&&(this.v=null,Xr(this),ss(this),yn(19))},St.kb=function(t){t?(this.j.info("Successfully pinged google.com"),yn(2)):(this.j.info("Failed to ping google.com"),yn(1))},(St=ps.prototype).xa=function(){},St.wa=function(){},St.va=function(){},St.ua=function(){},St.Ra=function(){},gs.prototype.g=function(t,e){return new ms(t,e)},Ft(ms,Ve),ms.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.H=!0);var t=this.g,e=this.l,n=this.h||void 0;yn(0),t.V=e,t.ia=n||{},t.L=t.Y,t.F=ds(t,null,t.V),Zr(t)},ms.prototype.close=function(){Jr(this.g)},ms.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Be(t),t=n);e.i.push(new gr(e.ab++,t)),3==e.G&&Zr(e)},ms.prototype.M=function(){this.g.l=null,delete this.j,Jr(this.g),delete this.g,ms.X.M.call(this)},Ft(ys,Cn),Ft(vs,kn),Ft(ws,ps),ws.prototype.xa=function(){qe(this.g,"a")},ws.prototype.wa=function(t){qe(this.g,new ys(t))},ws.prototype.va=function(t){qe(this.g,new vs)},ws.prototype.ua=function(){qe(this.g,"b")},gs.prototype.createWebChannel=gs.prototype.g,ms.prototype.send=ms.prototype.u,ms.prototype.open=ms.prototype.m,ms.prototype.close=ms.prototype.close,In.NO_ERROR=0,In.TIMEOUT=8,In.HTTP_ERROR=6,bn.COMPLETE="complete",Tn.EventType=An,An.OPEN="a",An.CLOSE="b",An.ERROR="c",An.MESSAGE="d",Ve.prototype.listen=Ve.prototype.N,Mr.prototype.listenOnce=Mr.prototype.O,Mr.prototype.getLastError=Mr.prototype.Oa,Mr.prototype.getLastErrorCode=Mr.prototype.Ea,Mr.prototype.getStatus=Mr.prototype.aa,Mr.prototype.getResponseJson=Mr.prototype.Sa,Mr.prototype.getResponseText=Mr.prototype.fa,Mr.prototype.send=Mr.prototype.da,Mr.prototype.setWithCredentials=Mr.prototype.Ka;var Is=In,bs=bn,Es=ln,_s=10,Ts=11,Ss=kr,As=Tn,Cs=Mr;const ks="@firebase/firestore";
316
+ /**
317
+ * @license
318
+ * Copyright 2017 Google LLC
319
+ *
320
+ * Licensed under the Apache License, Version 2.0 (the "License");
321
+ * you may not use this file except in compliance with the License.
322
+ * You may obtain a copy of the License at
323
+ *
324
+ * http://www.apache.org/licenses/LICENSE-2.0
325
+ *
326
+ * Unless required by applicable law or agreed to in writing, software
327
+ * distributed under the License is distributed on an "AS IS" BASIS,
328
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
329
+ * See the License for the specific language governing permissions and
330
+ * limitations under the License.
331
+ */class Ns{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}Ns.UNAUTHENTICATED=new Ns(null),Ns.GOOGLE_CREDENTIALS=new Ns("google-credentials-uid"),Ns.FIRST_PARTY=new Ns("first-party-uid"),Ns.MOCK_USER=new Ns("mock-user");
332
+ /**
333
+ * @license
334
+ * Copyright 2017 Google LLC
335
+ *
336
+ * Licensed under the Apache License, Version 2.0 (the "License");
337
+ * you may not use this file except in compliance with the License.
338
+ * You may obtain a copy of the License at
339
+ *
340
+ * http://www.apache.org/licenses/LICENSE-2.0
341
+ *
342
+ * Unless required by applicable law or agreed to in writing, software
343
+ * distributed under the License is distributed on an "AS IS" BASIS,
344
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
345
+ * See the License for the specific language governing permissions and
346
+ * limitations under the License.
347
+ */
348
+ let Ds="9.15.0";
349
+ /**
350
+ * @license
351
+ * Copyright 2017 Google LLC
352
+ *
353
+ * Licensed under the Apache License, Version 2.0 (the "License");
354
+ * you may not use this file except in compliance with the License.
355
+ * You may obtain a copy of the License at
356
+ *
357
+ * http://www.apache.org/licenses/LICENSE-2.0
358
+ *
359
+ * Unless required by applicable law or agreed to in writing, software
360
+ * distributed under the License is distributed on an "AS IS" BASIS,
361
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
362
+ * See the License for the specific language governing permissions and
363
+ * limitations under the License.
364
+ */const Rs=new O("@firebase/firestore");function Os(){return Rs.logLevel}function Ls(t,...e){if(Rs.logLevel<=C.DEBUG){const n=e.map(xs);Rs.debug(`Firestore (${Ds}): ${t}`,...n)}}function Ps(t,...e){if(Rs.logLevel<=C.ERROR){const n=e.map(xs);Rs.error(`Firestore (${Ds}): ${t}`,...n)}}function Ms(t,...e){if(Rs.logLevel<=C.WARN){const n=e.map(xs);Rs.warn(`Firestore (${Ds}): ${t}`,...n)}}function xs(t){if("string"==typeof t)return t;try{return e=t,JSON.stringify(e)}catch(e){return t}
365
+ /**
366
+ * @license
367
+ * Copyright 2020 Google LLC
368
+ *
369
+ * Licensed under the Apache License, Version 2.0 (the "License");
370
+ * you may not use this file except in compliance with the License.
371
+ * You may obtain a copy of the License at
372
+ *
373
+ * http://www.apache.org/licenses/LICENSE-2.0
374
+ *
375
+ * Unless required by applicable law or agreed to in writing, software
376
+ * distributed under the License is distributed on an "AS IS" BASIS,
377
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
378
+ * See the License for the specific language governing permissions and
379
+ * limitations under the License.
380
+ */var e}
381
+ /**
382
+ * @license
383
+ * Copyright 2017 Google LLC
384
+ *
385
+ * Licensed under the Apache License, Version 2.0 (the "License");
386
+ * you may not use this file except in compliance with the License.
387
+ * You may obtain a copy of the License at
388
+ *
389
+ * http://www.apache.org/licenses/LICENSE-2.0
390
+ *
391
+ * Unless required by applicable law or agreed to in writing, software
392
+ * distributed under the License is distributed on an "AS IS" BASIS,
393
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
394
+ * See the License for the specific language governing permissions and
395
+ * limitations under the License.
396
+ */function Us(t="Unexpected state"){const e=`FIRESTORE (${Ds}) INTERNAL ASSERTION FAILED: `+t;throw Ps(e),new Error(e)}function Fs(t,e){t||Us()}function Vs(t,e){return t}
397
+ /**
398
+ * @license
399
+ * Copyright 2017 Google LLC
400
+ *
401
+ * Licensed under the Apache License, Version 2.0 (the "License");
402
+ * you may not use this file except in compliance with the License.
403
+ * You may obtain a copy of the License at
404
+ *
405
+ * http://www.apache.org/licenses/LICENSE-2.0
406
+ *
407
+ * Unless required by applicable law or agreed to in writing, software
408
+ * distributed under the License is distributed on an "AS IS" BASIS,
409
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
410
+ * See the License for the specific language governing permissions and
411
+ * limitations under the License.
412
+ */const qs={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 js extends d{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}
413
+ /**
414
+ * @license
415
+ * Copyright 2017 Google LLC
416
+ *
417
+ * Licensed under the Apache License, Version 2.0 (the "License");
418
+ * you may not use this file except in compliance with the License.
419
+ * You may obtain a copy of the License at
420
+ *
421
+ * http://www.apache.org/licenses/LICENSE-2.0
422
+ *
423
+ * Unless required by applicable law or agreed to in writing, software
424
+ * distributed under the License is distributed on an "AS IS" BASIS,
425
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
426
+ * See the License for the specific language governing permissions and
427
+ * limitations under the License.
428
+ */class Bs{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}
429
+ /**
430
+ * @license
431
+ * Copyright 2017 Google LLC
432
+ *
433
+ * Licensed under the Apache License, Version 2.0 (the "License");
434
+ * you may not use this file except in compliance with the License.
435
+ * You may obtain a copy of the License at
436
+ *
437
+ * http://www.apache.org/licenses/LICENSE-2.0
438
+ *
439
+ * Unless required by applicable law or agreed to in writing, software
440
+ * distributed under the License is distributed on an "AS IS" BASIS,
441
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
442
+ * See the License for the specific language governing permissions and
443
+ * limitations under the License.
444
+ */class zs{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class $s{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(Ns.UNAUTHENTICATED)))}shutdown(){}}class Ks{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class Hs{constructor(t){this.t=t,this.currentUser=Ns.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new Bs;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Bs,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{Ls("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(Ls("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Bs)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(Ls("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Fs("string"==typeof e.accessToken),new zs(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Fs(null===t||"string"==typeof t),new Ns(t)}}class Gs{constructor(t,e,n,r){this.h=t,this.l=e,this.m=n,this.g=r,this.type="FirstParty",this.user=Ns.FIRST_PARTY,this.p=new Map}I(){return this.g?this.g():(Fs(!("object"!=typeof this.h||null===this.h||!this.h.auth||!this.h.auth.getAuthHeaderValueForFirstParty)),this.h.auth.getAuthHeaderValueForFirstParty([]))}get headers(){this.p.set("X-Goog-AuthUser",this.l);const t=this.I();return t&&this.p.set("Authorization",t),this.m&&this.p.set("X-Goog-Iam-Authorization-Token",this.m),this.p}}class Ws{constructor(t,e,n,r){this.h=t,this.l=e,this.m=n,this.g=r}getToken(){return Promise.resolve(new Gs(this.h,this.l,this.m,this.g))}start(t,e){t.enqueueRetryable((()=>e(Ns.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class Qs{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class Js{constructor(t){this.T=t,this.forceRefresh=!1,this.appCheck=null,this.A=null}start(t,e){const n=t=>{null!=t.error&&Ls("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.A;return this.A=t.token,Ls("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{Ls("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.T.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.T.getImmediate({optional:!0});t?r(t):Ls("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Fs("string"==typeof t.token),this.A=t.token,new Qs(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}
445
+ /**
446
+ * @license
447
+ * Copyright 2020 Google LLC
448
+ *
449
+ * Licensed under the Apache License, Version 2.0 (the "License");
450
+ * you may not use this file except in compliance with the License.
451
+ * You may obtain a copy of the License at
452
+ *
453
+ * http://www.apache.org/licenses/LICENSE-2.0
454
+ *
455
+ * Unless required by applicable law or agreed to in writing, software
456
+ * distributed under the License is distributed on an "AS IS" BASIS,
457
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
458
+ * See the License for the specific language governing permissions and
459
+ * limitations under the License.
460
+ */function Xs(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n}
461
+ /**
462
+ * @license
463
+ * Copyright 2017 Google LLC
464
+ *
465
+ * Licensed under the Apache License, Version 2.0 (the "License");
466
+ * you may not use this file except in compliance with the License.
467
+ * You may obtain a copy of the License at
468
+ *
469
+ * http://www.apache.org/licenses/LICENSE-2.0
470
+ *
471
+ * Unless required by applicable law or agreed to in writing, software
472
+ * distributed under the License is distributed on an "AS IS" BASIS,
473
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
474
+ * See the License for the specific language governing permissions and
475
+ * limitations under the License.
476
+ */class Ys{static R(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e=Math.floor(256/t.length)*t.length;let n="";for(;n.length<20;){const r=Xs(40);for(let s=0;s<r.length;++s)n.length<20&&r[s]<e&&(n+=t.charAt(r[s]%t.length))}return n}}function Zs(t,e){return t<e?-1:t>e?1:0}function ti(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}
477
+ /**
478
+ * @license
479
+ * Copyright 2017 Google LLC
480
+ *
481
+ * Licensed under the Apache License, Version 2.0 (the "License");
482
+ * you may not use this file except in compliance with the License.
483
+ * You may obtain a copy of the License at
484
+ *
485
+ * http://www.apache.org/licenses/LICENSE-2.0
486
+ *
487
+ * Unless required by applicable law or agreed to in writing, software
488
+ * distributed under the License is distributed on an "AS IS" BASIS,
489
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
490
+ * See the License for the specific language governing permissions and
491
+ * limitations under the License.
492
+ */class ei{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new js(qs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new js(qs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new js(qs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new js(qs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ei.fromMillis(Date.now())}static fromDate(t){return ei.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ei(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?Zs(this.nanoseconds,t.nanoseconds):Zs(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}
493
+ /**
494
+ * @license
495
+ * Copyright 2017 Google LLC
496
+ *
497
+ * Licensed under the Apache License, Version 2.0 (the "License");
498
+ * you may not use this file except in compliance with the License.
499
+ * You may obtain a copy of the License at
500
+ *
501
+ * http://www.apache.org/licenses/LICENSE-2.0
502
+ *
503
+ * Unless required by applicable law or agreed to in writing, software
504
+ * distributed under the License is distributed on an "AS IS" BASIS,
505
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
506
+ * See the License for the specific language governing permissions and
507
+ * limitations under the License.
508
+ */class ni{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ni(t)}static min(){return new ni(new ei(0,0))}static max(){return new ni(new ei(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}
509
+ /**
510
+ * @license
511
+ * Copyright 2017 Google LLC
512
+ *
513
+ * Licensed under the Apache License, Version 2.0 (the "License");
514
+ * you may not use this file except in compliance with the License.
515
+ * You may obtain a copy of the License at
516
+ *
517
+ * http://www.apache.org/licenses/LICENSE-2.0
518
+ *
519
+ * Unless required by applicable law or agreed to in writing, software
520
+ * distributed under the License is distributed on an "AS IS" BASIS,
521
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
522
+ * See the License for the specific language governing permissions and
523
+ * limitations under the License.
524
+ */class ri{constructor(t,e,n){void 0===e?e=0:e>t.length&&Us(),void 0===n?n=t.length-e:n>t.length-e&&Us(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ri.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ri?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}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(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.length<this.length)return!1;for(let e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0}isImmediateParentOf(t){if(this.length+1!==t.length)return!1;for(let e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0}forEach(t){for(let e=this.offset,n=this.limit();e<n;e++)t(this.segments[e])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,e){const n=Math.min(t.length,e.length);for(let r=0;r<n;r++){const n=t.get(r),s=e.get(r);if(n<s)return-1;if(n>s)return 1}return t.length<e.length?-1:t.length>e.length?1:0}}class si extends ri{construct(t,e,n){return new si(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new js(qs.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new si(e)}static emptyPath(){return new si([])}}const ii=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class oi extends ri{construct(t,e,n){return new oi(t,e,n)}static isValidIdentifier(t){return ii.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),oi.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new oi(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new js(qs.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r<t.length;){const e=t[r];if("\\"===e){if(r+1===t.length)throw new js(qs.INVALID_ARGUMENT,"Path has trailing escape character: "+t);const e=t[r+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new js(qs.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);n+=e,r+=2}else"`"===e?(i=!i,r++):"."!==e||i?(n+=e,r++):(s(),r++)}if(s(),i)throw new js(qs.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new oi(e)}static emptyPath(){return new oi([])}}
525
+ /**
526
+ * @license
527
+ * Copyright 2017 Google LLC
528
+ *
529
+ * Licensed under the Apache License, Version 2.0 (the "License");
530
+ * you may not use this file except in compliance with the License.
531
+ * You may obtain a copy of the License at
532
+ *
533
+ * http://www.apache.org/licenses/LICENSE-2.0
534
+ *
535
+ * Unless required by applicable law or agreed to in writing, software
536
+ * distributed under the License is distributed on an "AS IS" BASIS,
537
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
538
+ * See the License for the specific language governing permissions and
539
+ * limitations under the License.
540
+ */class ai{constructor(t){this.path=t}static fromPath(t){return new ai(si.fromString(t))}static fromName(t){return new ai(si.fromString(t).popFirst(5))}static empty(){return new ai(si.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===si.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return si.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new ai(new si(t.slice()))}}function ci(t){return new ui(t.readTime,t.key,-1)}class ui{constructor(t,e,n){this.readTime=t,this.documentKey=e,this.largestBatchId=n}static min(){return new ui(ni.min(),ai.empty(),-1)}static max(){return new ui(ni.max(),ai.empty(),-1)}}function hi(t,e){let n=t.readTime.compareTo(e.readTime);return 0!==n?n:(n=ai.comparator(t.documentKey,e.documentKey),0!==n?n:Zs(t.largestBatchId,e.largestBatchId))}
541
+ /**
542
+ * @license
543
+ * Copyright 2020 Google LLC
544
+ *
545
+ * Licensed under the Apache License, Version 2.0 (the "License");
546
+ * you may not use this file except in compliance with the License.
547
+ * You may obtain a copy of the License at
548
+ *
549
+ * http://www.apache.org/licenses/LICENSE-2.0
550
+ *
551
+ * Unless required by applicable law or agreed to in writing, software
552
+ * distributed under the License is distributed on an "AS IS" BASIS,
553
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
554
+ * See the License for the specific language governing permissions and
555
+ * limitations under the License.
556
+ */class li{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(t){this.onCommittedListeners.push(t)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((t=>t()))}}
557
+ /**
558
+ * @license
559
+ * Copyright 2017 Google LLC
560
+ *
561
+ * Licensed under the Apache License, Version 2.0 (the "License");
562
+ * you may not use this file except in compliance with the License.
563
+ * You may obtain a copy of the License at
564
+ *
565
+ * http://www.apache.org/licenses/LICENSE-2.0
566
+ *
567
+ * Unless required by applicable law or agreed to in writing, software
568
+ * distributed under the License is distributed on an "AS IS" BASIS,
569
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
570
+ * See the License for the specific language governing permissions and
571
+ * limitations under the License.
572
+ */async function di(t){if(t.code!==qs.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==t.message)throw t;Ls("LocalStore","Unexpectedly lost primary lease")}
573
+ /**
574
+ * @license
575
+ * Copyright 2017 Google LLC
576
+ *
577
+ * Licensed under the Apache License, Version 2.0 (the "License");
578
+ * you may not use this file except in compliance with the License.
579
+ * You may obtain a copy of the License at
580
+ *
581
+ * http://www.apache.org/licenses/LICENSE-2.0
582
+ *
583
+ * Unless required by applicable law or agreed to in writing, software
584
+ * distributed under the License is distributed on an "AS IS" BASIS,
585
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
586
+ * See the License for the specific language governing permissions and
587
+ * limitations under the License.
588
+ */class fi{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Us(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new fi(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof fi?e:fi.resolve(e)}catch(t){return fi.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):fi.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):fi.reject(e)}static resolve(t){return new fi(((e,n)=>{e(t)}))}static reject(t){return new fi(((e,n)=>{n(t)}))}static waitFor(t){return new fi(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=fi.resolve(!1);for(const n of t)e=e.next((t=>t?fi.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new fi(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a<s;a++){const c=a;e(t[c]).next((t=>{i[c]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new fi(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}function pi(t){return"IndexedDbTransactionError"===t.name}
589
+ /**
590
+ * @license
591
+ * Copyright 2018 Google LLC
592
+ *
593
+ * Licensed under the Apache License, Version 2.0 (the "License");
594
+ * you may not use this file except in compliance with the License.
595
+ * You may obtain a copy of the License at
596
+ *
597
+ * http://www.apache.org/licenses/LICENSE-2.0
598
+ *
599
+ * Unless required by applicable law or agreed to in writing, software
600
+ * distributed under the License is distributed on an "AS IS" BASIS,
601
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
602
+ * See the License for the specific language governing permissions and
603
+ * limitations under the License.
604
+ */class gi{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.ut(t),this.ct=t=>e.writeSequenceNumber(t))}ut(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.ct&&this.ct(t),t}}gi.at=-1;
605
+ /**
606
+ * @license
607
+ * Copyright 2017 Google LLC
608
+ *
609
+ * Licensed under the Apache License, Version 2.0 (the "License");
610
+ * you may not use this file except in compliance with the License.
611
+ * You may obtain a copy of the License at
612
+ *
613
+ * http://www.apache.org/licenses/LICENSE-2.0
614
+ *
615
+ * Unless required by applicable law or agreed to in writing, software
616
+ * distributed under the License is distributed on an "AS IS" BASIS,
617
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
618
+ * See the License for the specific language governing permissions and
619
+ * limitations under the License.
620
+ */
621
+ class mi{constructor(t,e,n,r,s,i,o,a){this.databaseId=t,this.appId=e,this.persistenceKey=n,this.host=r,this.ssl=s,this.forceLongPolling=i,this.autoDetectLongPolling=o,this.useFetchStreams=a}}class yi{constructor(t,e){this.projectId=t,this.database=e||"(default)"}static empty(){return new yi("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(t){return t instanceof yi&&t.projectId===this.projectId&&t.database===this.database}}
622
+ /**
623
+ * @license
624
+ * Copyright 2017 Google LLC
625
+ *
626
+ * Licensed under the Apache License, Version 2.0 (the "License");
627
+ * you may not use this file except in compliance with the License.
628
+ * You may obtain a copy of the License at
629
+ *
630
+ * http://www.apache.org/licenses/LICENSE-2.0
631
+ *
632
+ * Unless required by applicable law or agreed to in writing, software
633
+ * distributed under the License is distributed on an "AS IS" BASIS,
634
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
635
+ * See the License for the specific language governing permissions and
636
+ * limitations under the License.
637
+ */function vi(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function wi(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ii(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}
638
+ /**
639
+ * @license
640
+ * Copyright 2017 Google LLC
641
+ *
642
+ * Licensed under the Apache License, Version 2.0 (the "License");
643
+ * you may not use this file except in compliance with the License.
644
+ * You may obtain a copy of the License at
645
+ *
646
+ * http://www.apache.org/licenses/LICENSE-2.0
647
+ *
648
+ * Unless required by applicable law or agreed to in writing, software
649
+ * distributed under the License is distributed on an "AS IS" BASIS,
650
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
651
+ * See the License for the specific language governing permissions and
652
+ * limitations under the License.
653
+ */function bi(t){return null==t}function Ei(t){return 0===t&&1/t==-1/0}
654
+ /**
655
+ * @license
656
+ * Copyright 2020 Google LLC
657
+ *
658
+ * Licensed under the Apache License, Version 2.0 (the "License");
659
+ * you may not use this file except in compliance with the License.
660
+ * You may obtain a copy of the License at
661
+ *
662
+ * http://www.apache.org/licenses/LICENSE-2.0
663
+ *
664
+ * Unless required by applicable law or agreed to in writing, software
665
+ * distributed under the License is distributed on an "AS IS" BASIS,
666
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
667
+ * See the License for the specific language governing permissions and
668
+ * limitations under the License.
669
+ */
670
+ class _i{constructor(t){this.binaryString=t}static fromBase64String(t){const e=atob(t);return new _i(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;n<t.length;++n)e+=String.fromCharCode(t[n]);return e}(t);return new _i(e)}[Symbol.iterator](){let t=0;return{next:()=>t<this.binaryString.length?{value:this.binaryString.charCodeAt(t++),done:!1}:{value:void 0,done:!0}}}toBase64(){return t=this.binaryString,btoa(t);var t}toUint8Array(){return function(t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}
671
+ /**
672
+ * @license
673
+ * Copyright 2020 Google LLC
674
+ *
675
+ * Licensed under the Apache License, Version 2.0 (the "License");
676
+ * you may not use this file except in compliance with the License.
677
+ * You may obtain a copy of the License at
678
+ *
679
+ * http://www.apache.org/licenses/LICENSE-2.0
680
+ *
681
+ * Unless required by applicable law or agreed to in writing, software
682
+ * distributed under the License is distributed on an "AS IS" BASIS,
683
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
684
+ * See the License for the specific language governing permissions and
685
+ * limitations under the License.
686
+ */(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(t){return Zs(this.binaryString,t.binaryString)}isEqual(t){return this.binaryString===t.binaryString}}_i.EMPTY_BYTE_STRING=new _i("");const Ti=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Si(t){if(Fs(!!t),"string"==typeof t){let e=0;const n=Ti.exec(t);if(Fs(!!n),n[1]){let t=n[1];t=(t+"000000000").substr(0,9),e=Number(t)}const r=new Date(t);return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}return{seconds:Ai(t.seconds),nanos:Ai(t.nanos)}}function Ai(t){return"number"==typeof t?t:"string"==typeof t?Number(t):0}function Ci(t){return"string"==typeof t?_i.fromBase64String(t):_i.fromUint8Array(t)}
687
+ /**
688
+ * @license
689
+ * Copyright 2020 Google LLC
690
+ *
691
+ * Licensed under the Apache License, Version 2.0 (the "License");
692
+ * you may not use this file except in compliance with the License.
693
+ * You may obtain a copy of the License at
694
+ *
695
+ * http://www.apache.org/licenses/LICENSE-2.0
696
+ *
697
+ * Unless required by applicable law or agreed to in writing, software
698
+ * distributed under the License is distributed on an "AS IS" BASIS,
699
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
700
+ * See the License for the specific language governing permissions and
701
+ * limitations under the License.
702
+ */function ki(t){var e,n;return"server_timestamp"===(null===(n=((null===(e=null==t?void 0:t.mapValue)||void 0===e?void 0:e.fields)||{}).__type__)||void 0===n?void 0:n.stringValue)}function Ni(t){const e=t.mapValue.fields.__previous_value__;return ki(e)?Ni(e):e}function Di(t){const e=Si(t.mapValue.fields.__local_write_time__.timestampValue);return new ei(e.seconds,e.nanos)}
703
+ /**
704
+ * @license
705
+ * Copyright 2020 Google LLC
706
+ *
707
+ * Licensed under the Apache License, Version 2.0 (the "License");
708
+ * you may not use this file except in compliance with the License.
709
+ * You may obtain a copy of the License at
710
+ *
711
+ * http://www.apache.org/licenses/LICENSE-2.0
712
+ *
713
+ * Unless required by applicable law or agreed to in writing, software
714
+ * distributed under the License is distributed on an "AS IS" BASIS,
715
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
716
+ * See the License for the specific language governing permissions and
717
+ * limitations under the License.
718
+ */const Ri={fields:{__type__:{stringValue:"__max__"}}};function Oi(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?ki(t)?4:function(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}
719
+ /**
720
+ * @license
721
+ * Copyright 2022 Google LLC
722
+ *
723
+ * Licensed under the Apache License, Version 2.0 (the "License");
724
+ * you may not use this file except in compliance with the License.
725
+ * You may obtain a copy of the License at
726
+ *
727
+ * http://www.apache.org/licenses/LICENSE-2.0
728
+ *
729
+ * Unless required by applicable law or agreed to in writing, software
730
+ * distributed under the License is distributed on an "AS IS" BASIS,
731
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
732
+ * See the License for the specific language governing permissions and
733
+ * limitations under the License.
734
+ */(t)?9007199254740991:10:Us()}function Li(t,e){if(t===e)return!0;const n=Oi(t);if(n!==Oi(e))return!1;switch(n){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===e.booleanValue;case 4:return Di(t).isEqual(Di(e));case 3:return function(t,e){if("string"==typeof t.timestampValue&&"string"==typeof e.timestampValue&&t.timestampValue.length===e.timestampValue.length)return t.timestampValue===e.timestampValue;const n=Si(t.timestampValue),r=Si(e.timestampValue);return n.seconds===r.seconds&&n.nanos===r.nanos}(t,e);case 5:return t.stringValue===e.stringValue;case 6:return function(t,e){return Ci(t.bytesValue).isEqual(Ci(e.bytesValue))}(t,e);case 7:return t.referenceValue===e.referenceValue;case 8:return function(t,e){return Ai(t.geoPointValue.latitude)===Ai(e.geoPointValue.latitude)&&Ai(t.geoPointValue.longitude)===Ai(e.geoPointValue.longitude)}(t,e);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Ai(t.integerValue)===Ai(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){const n=Ai(t.doubleValue),r=Ai(e.doubleValue);return n===r?Ei(n)===Ei(r):isNaN(n)&&isNaN(r)}return!1}(t,e);case 9:return ti(t.arrayValue.values||[],e.arrayValue.values||[],Li);case 10:return function(t,e){const n=t.mapValue.fields||{},r=e.mapValue.fields||{};if(vi(n)!==vi(r))return!1;for(const t in n)if(n.hasOwnProperty(t)&&(void 0===r[t]||!Li(n[t],r[t])))return!1;return!0}(t,e);default:return Us()}}function Pi(t,e){return void 0!==(t.values||[]).find((t=>Li(t,e)))}function Mi(t,e){if(t===e)return 0;const n=Oi(t),r=Oi(e);if(n!==r)return Zs(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return Zs(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=Ai(t.integerValue||t.doubleValue),r=Ai(e.integerValue||e.doubleValue);return n<r?-1:n>r?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return xi(t.timestampValue,e.timestampValue);case 4:return xi(Di(t),Di(e));case 5:return Zs(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Ci(t),r=Ci(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;t<n.length&&t<r.length;t++){const e=Zs(n[t],r[t]);if(0!==e)return e}return Zs(n.length,r.length)}(t.referenceValue,e.referenceValue);case 8:return function(t,e){const n=Zs(Ai(t.latitude),Ai(e.latitude));return 0!==n?n:Zs(Ai(t.longitude),Ai(e.longitude))}(t.geoPointValue,e.geoPointValue);case 9:return function(t,e){const n=t.values||[],r=e.values||[];for(let t=0;t<n.length&&t<r.length;++t){const e=Mi(n[t],r[t]);if(e)return e}return Zs(n.length,r.length)}(t.arrayValue,e.arrayValue);case 10:return function(t,e){if(t===Ri&&e===Ri)return 0;if(t===Ri)return 1;if(e===Ri)return-1;const n=t.fields||{},r=Object.keys(n),s=e.fields||{},i=Object.keys(s);r.sort(),i.sort();for(let t=0;t<r.length&&t<i.length;++t){const e=Zs(r[t],i[t]);if(0!==e)return e;const o=Mi(n[r[t]],s[i[t]]);if(0!==o)return o}return Zs(r.length,i.length)}(t.mapValue,e.mapValue);default:throw Us()}}function xi(t,e){if("string"==typeof t&&"string"==typeof e&&t.length===e.length)return Zs(t,e);const n=Si(t),r=Si(e),s=Zs(n.seconds,r.seconds);return 0!==s?s:Zs(n.nanos,r.nanos)}function Ui(t){return Fi(t)}function Fi(t){return"nullValue"in t?"null":"booleanValue"in t?""+t.booleanValue:"integerValue"in t?""+t.integerValue:"doubleValue"in t?""+t.doubleValue:"timestampValue"in t?function(t){const e=Si(t);return`time(${e.seconds},${e.nanos})`}(t.timestampValue):"stringValue"in t?t.stringValue:"bytesValue"in t?Ci(t.bytesValue).toBase64():"referenceValue"in t?(n=t.referenceValue,ai.fromName(n).toString()):"geoPointValue"in t?`geo(${(e=t.geoPointValue).latitude},${e.longitude})`:"arrayValue"in t?function(t){let e="[",n=!0;for(const r of t.values||[])n?n=!1:e+=",",e+=Fi(r);return e+"]"}(t.arrayValue):"mapValue"in t?function(t){const e=Object.keys(t.fields||{}).sort();let n="{",r=!0;for(const s of e)r?r=!1:n+=",",n+=`${s}:${Fi(t.fields[s])}`;return n+"}"}(t.mapValue):Us();var e,n}function Vi(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function qi(t){return!!t&&"integerValue"in t}function ji(t){return!!t&&"arrayValue"in t}function Bi(t){return!!t&&"nullValue"in t}function zi(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function $i(t){return!!t&&"mapValue"in t}function Ki(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return wi(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=Ki(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=Ki(t.arrayValue.values[n]);return e}return Object.assign({},t)}class Hi{constructor(t,e){this.position=t,this.inclusive=e}}function Gi(t,e,n){let r=0;for(let s=0;s<t.position.length;s++){const i=e[s],o=t.position[s];if(r=i.field.isKeyField()?ai.comparator(ai.fromName(o.referenceValue),n.key):Mi(o,n.data.field(i.field)),"desc"===i.dir&&(r*=-1),0!==r)break}return r}function Wi(t,e){if(null===t)return null===e;if(null===e)return!1;if(t.inclusive!==e.inclusive||t.position.length!==e.position.length)return!1;for(let n=0;n<t.position.length;n++)if(!Li(t.position[n],e.position[n]))return!1;return!0}
735
+ /**
736
+ * @license
737
+ * Copyright 2022 Google LLC
738
+ *
739
+ * Licensed under the Apache License, Version 2.0 (the "License");
740
+ * you may not use this file except in compliance with the License.
741
+ * You may obtain a copy of the License at
742
+ *
743
+ * http://www.apache.org/licenses/LICENSE-2.0
744
+ *
745
+ * Unless required by applicable law or agreed to in writing, software
746
+ * distributed under the License is distributed on an "AS IS" BASIS,
747
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
748
+ * See the License for the specific language governing permissions and
749
+ * limitations under the License.
750
+ */class Qi{}class Ji extends Qi{constructor(t,e,n){super(),this.field=t,this.op=e,this.value=n}static create(t,e,n){return t.isKeyField()?"in"===e||"not-in"===e?this.createKeyFieldInFilter(t,e,n):new ro(t,e,n):"array-contains"===e?new ao(t,n):"in"===e?new co(t,n):"not-in"===e?new uo(t,n):"array-contains-any"===e?new ho(t,n):new Ji(t,e,n)}static createKeyFieldInFilter(t,e,n){return"in"===e?new so(t,n):new io(t,n)}matches(t){const e=t.data.field(this.field);return"!="===this.op?null!==e&&this.matchesComparison(Mi(e,this.value)):null!==e&&Oi(this.value)===Oi(e)&&this.matchesComparison(Mi(e,this.value))}matchesComparison(t){switch(this.op){case"<":return t<0;case"<=":return t<=0;case"==":return 0===t;case"!=":return 0!==t;case">":return t>0;case">=":return t>=0;default:return Us()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}getFirstInequalityField(){return this.isInequality()?this.field:null}}class Xi extends Qi{constructor(t,e){super(),this.filters=t,this.op=e,this.ht=null}static create(t,e){return new Xi(t,e)}matches(t){return Yi(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ht||(this.ht=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ht}getFilters(){return Object.assign([],this.filters)}getFirstInequalityField(){const t=this.lt((t=>t.isInequality()));return null!==t?t.field:null}lt(t){for(const e of this.getFlattenedFilters())if(t(e))return e;return null}}function Yi(t){return"and"===t.op}function Zi(t){return function(t){for(const e of t.filters)if(e instanceof Xi)return!1;return!0}(t)&&Yi(t)}function to(t){if(t instanceof Ji)return t.field.canonicalString()+t.op.toString()+Ui(t.value);{const e=t.filters.map((t=>to(t))).join(",");return`${t.op}(${e})`}}function eo(t,e){return t instanceof Ji?function(t,e){return e instanceof Ji&&t.op===e.op&&t.field.isEqual(e.field)&&Li(t.value,e.value)}(t,e):t instanceof Xi?function(t,e){return e instanceof Xi&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&eo(n,e.filters[r])),!0)}(t,e):void Us()}function no(t){return t instanceof Ji?function(t){return`${t.field.canonicalString()} ${t.op} ${Ui(t.value)}`}(t):t instanceof Xi?function(t){return t.op.toString()+" {"+t.getFilters().map(no).join(" ,")+"}"}(t):"Filter"}class ro extends Ji{constructor(t,e,n){super(t,e,n),this.key=ai.fromName(n.referenceValue)}matches(t){const e=ai.comparator(t.key,this.key);return this.matchesComparison(e)}}class so extends Ji{constructor(t,e){super(t,"in",e),this.keys=oo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class io extends Ji{constructor(t,e){super(t,"not-in",e),this.keys=oo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function oo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>ai.fromName(t.referenceValue)))}class ao extends Ji{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ji(e)&&Pi(e.arrayValue,this.value)}}class co extends Ji{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Pi(this.value.arrayValue,e)}}class uo extends Ji{constructor(t,e){super(t,"not-in",e)}matches(t){if(Pi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Pi(this.value.arrayValue,e)}}class ho extends Ji{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ji(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Pi(this.value.arrayValue,t)))}}
751
+ /**
752
+ * @license
753
+ * Copyright 2022 Google LLC
754
+ *
755
+ * Licensed under the Apache License, Version 2.0 (the "License");
756
+ * you may not use this file except in compliance with the License.
757
+ * You may obtain a copy of the License at
758
+ *
759
+ * http://www.apache.org/licenses/LICENSE-2.0
760
+ *
761
+ * Unless required by applicable law or agreed to in writing, software
762
+ * distributed under the License is distributed on an "AS IS" BASIS,
763
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
764
+ * See the License for the specific language governing permissions and
765
+ * limitations under the License.
766
+ */class lo{constructor(t,e="asc"){this.field=t,this.dir=e}}function fo(t,e){return t.dir===e.dir&&t.field.isEqual(e.field)}
767
+ /**
768
+ * @license
769
+ * Copyright 2017 Google LLC
770
+ *
771
+ * Licensed under the Apache License, Version 2.0 (the "License");
772
+ * you may not use this file except in compliance with the License.
773
+ * You may obtain a copy of the License at
774
+ *
775
+ * http://www.apache.org/licenses/LICENSE-2.0
776
+ *
777
+ * Unless required by applicable law or agreed to in writing, software
778
+ * distributed under the License is distributed on an "AS IS" BASIS,
779
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
780
+ * See the License for the specific language governing permissions and
781
+ * limitations under the License.
782
+ */class po{constructor(t,e){this.comparator=t,this.root=e||mo.EMPTY}insert(t,e){return new po(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,mo.BLACK,null,null))}remove(t){return new po(this.comparator,this.root.remove(t,this.comparator).copy(null,null,mo.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.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(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new go(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new go(this.root,t,this.comparator,!1)}getReverseIterator(){return new go(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new go(this.root,t,this.comparator,!0)}}class go{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class mo{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:mo.RED,this.left=null!=r?r:mo.EMPTY,this.right=null!=s?s:mo.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new mo(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}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(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return mo.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return mo.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,mo.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,mo.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Us();if(this.right.isRed())throw Us();const t=this.left.check();if(t!==this.right.check())throw Us();return t+(this.isRed()?0:1)}}mo.EMPTY=null,mo.RED=!0,mo.BLACK=!1,mo.EMPTY=new class{constructor(){this.size=0}get key(){throw Us()}get value(){throw Us()}get color(){throw Us()}get left(){throw Us()}get right(){throw Us()}copy(t,e,n,r,s){return this}insert(t,e,n){return new mo(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};
783
+ /**
784
+ * @license
785
+ * Copyright 2017 Google LLC
786
+ *
787
+ * Licensed under the Apache License, Version 2.0 (the "License");
788
+ * you may not use this file except in compliance with the License.
789
+ * You may obtain a copy of the License at
790
+ *
791
+ * http://www.apache.org/licenses/LICENSE-2.0
792
+ *
793
+ * Unless required by applicable law or agreed to in writing, software
794
+ * distributed under the License is distributed on an "AS IS" BASIS,
795
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
796
+ * See the License for the specific language governing permissions and
797
+ * limitations under the License.
798
+ */
799
+ class yo{constructor(t){this.comparator=t,this.data=new po(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new vo(this.data.getIterator())}getIteratorFrom(t){return new vo(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size<t.size&&(e=t,t=this),t.forEach((t=>{e=e.add(t)})),e}isEqual(t){if(!(t instanceof yo))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new yo(this.comparator);return e.data=t,e}}class vo{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}
800
+ /**
801
+ * @license
802
+ * Copyright 2020 Google LLC
803
+ *
804
+ * Licensed under the Apache License, Version 2.0 (the "License");
805
+ * you may not use this file except in compliance with the License.
806
+ * You may obtain a copy of the License at
807
+ *
808
+ * http://www.apache.org/licenses/LICENSE-2.0
809
+ *
810
+ * Unless required by applicable law or agreed to in writing, software
811
+ * distributed under the License is distributed on an "AS IS" BASIS,
812
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
813
+ * See the License for the specific language governing permissions and
814
+ * limitations under the License.
815
+ */class wo{constructor(t){this.fields=t,t.sort(oi.comparator)}static empty(){return new wo([])}unionWith(t){let e=new yo(oi.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new wo(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return ti(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}
816
+ /**
817
+ * @license
818
+ * Copyright 2017 Google LLC
819
+ *
820
+ * Licensed under the Apache License, Version 2.0 (the "License");
821
+ * you may not use this file except in compliance with the License.
822
+ * You may obtain a copy of the License at
823
+ *
824
+ * http://www.apache.org/licenses/LICENSE-2.0
825
+ *
826
+ * Unless required by applicable law or agreed to in writing, software
827
+ * distributed under the License is distributed on an "AS IS" BASIS,
828
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
829
+ * See the License for the specific language governing permissions and
830
+ * limitations under the License.
831
+ */class Io{constructor(t){this.value=t}static empty(){return new Io({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n<t.length-1;++n)if(e=(e.mapValue.fields||{})[t.get(n)],!$i(e))return null;return e=(e.mapValue.fields||{})[t.lastSegment()],e||null}}set(t,e){this.getFieldsMap(t.popLast())[t.lastSegment()]=Ki(e)}setAll(t){let e=oi.emptyPath(),n={},r=[];t.forEach(((t,s)=>{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=Ki(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());$i(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Li(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;n<t.length;++n){let r=e.mapValue.fields[t.get(n)];$i(r)&&r.mapValue.fields||(r={mapValue:{fields:{}}},e.mapValue.fields[t.get(n)]=r),e=r}return e.mapValue.fields}applyChanges(t,e,n){wi(e,((e,n)=>t[e]=n));for(const e of n)delete t[e]}clone(){return new Io(Ki(this.value))}}
832
+ /**
833
+ * @license
834
+ * Copyright 2017 Google LLC
835
+ *
836
+ * Licensed under the Apache License, Version 2.0 (the "License");
837
+ * you may not use this file except in compliance with the License.
838
+ * You may obtain a copy of the License at
839
+ *
840
+ * http://www.apache.org/licenses/LICENSE-2.0
841
+ *
842
+ * Unless required by applicable law or agreed to in writing, software
843
+ * distributed under the License is distributed on an "AS IS" BASIS,
844
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
845
+ * See the License for the specific language governing permissions and
846
+ * limitations under the License.
847
+ */class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ni.min(),ni.min(),ni.min(),Io.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ni.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ni.min(),ni.min(),Io.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ni.min(),ni.min(),Io.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ni.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=Io.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=Io.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ni.min(),this}setReadTime(t){return this.readTime=t,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(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(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}})`}}
848
+ /**
849
+ * @license
850
+ * Copyright 2019 Google LLC
851
+ *
852
+ * Licensed under the Apache License, Version 2.0 (the "License");
853
+ * you may not use this file except in compliance with the License.
854
+ * You may obtain a copy of the License at
855
+ *
856
+ * http://www.apache.org/licenses/LICENSE-2.0
857
+ *
858
+ * Unless required by applicable law or agreed to in writing, software
859
+ * distributed under the License is distributed on an "AS IS" BASIS,
860
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
861
+ * See the License for the specific language governing permissions and
862
+ * limitations under the License.
863
+ */class Eo{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ft=null}}function _o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Eo(t,e,n,r,s,i,o)}function To(t){const e=Vs(t);if(null===e.ft){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>to(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),bi(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>Ui(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>Ui(t))).join(",")),e.ft=t}return e.ft}function So(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;n<t.orderBy.length;n++)if(!fo(t.orderBy[n],e.orderBy[n]))return!1;if(t.filters.length!==e.filters.length)return!1;for(let n=0;n<t.filters.length;n++)if(!eo(t.filters[n],e.filters[n]))return!1;return t.collectionGroup===e.collectionGroup&&!!t.path.isEqual(e.path)&&!!Wi(t.startAt,e.startAt)&&Wi(t.endAt,e.endAt)}function Ao(t){return ai.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}
864
+ /**
865
+ * @license
866
+ * Copyright 2017 Google LLC
867
+ *
868
+ * Licensed under the Apache License, Version 2.0 (the "License");
869
+ * you may not use this file except in compliance with the License.
870
+ * You may obtain a copy of the License at
871
+ *
872
+ * http://www.apache.org/licenses/LICENSE-2.0
873
+ *
874
+ * Unless required by applicable law or agreed to in writing, software
875
+ * distributed under the License is distributed on an "AS IS" BASIS,
876
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
877
+ * See the License for the specific language governing permissions and
878
+ * limitations under the License.
879
+ */class Co{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.dt=null,this._t=null,this.startAt,this.endAt}}function ko(t){return new Co(t)}function No(t){return 0===t.filters.length&&null===t.limit&&null==t.startAt&&null==t.endAt&&(0===t.explicitOrderBy.length||1===t.explicitOrderBy.length&&t.explicitOrderBy[0].field.isKeyField())}function Do(t){return t.explicitOrderBy.length>0?t.explicitOrderBy[0].field:null}function Ro(t){for(const e of t.filters){const t=e.getFirstInequalityField();if(null!==t)return t}return null}function Oo(t){return null!==t.collectionGroup}function Lo(t){const e=Vs(t);if(null===e.dt){e.dt=[];const t=Ro(e),n=Do(e);if(null!==t&&null===n)t.isKeyField()||e.dt.push(new lo(t)),e.dt.push(new lo(oi.keyField(),"asc"));else{let t=!1;for(const n of e.explicitOrderBy)e.dt.push(n),n.field.isKeyField()&&(t=!0);if(!t){const t=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";e.dt.push(new lo(oi.keyField(),t))}}}return e.dt}function Po(t){const e=Vs(t);if(!e._t)if("F"===e.limitType)e._t=_o(e.path,e.collectionGroup,Lo(e),e.filters,e.limit,e.startAt,e.endAt);else{const t=[];for(const n of Lo(e)){const e="desc"===n.dir?"asc":"desc";t.push(new lo(n.field,e))}const n=e.endAt?new Hi(e.endAt.position,e.endAt.inclusive):null,r=e.startAt?new Hi(e.startAt.position,e.startAt.inclusive):null;e._t=_o(e.path,e.collectionGroup,t,e.filters,e.limit,n,r)}return e._t}function Mo(t,e){e.getFirstInequalityField(),Ro(t);const n=t.filters.concat([e]);return new Co(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function xo(t,e,n){return new Co(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function Uo(t,e){return So(Po(t),Po(e))&&t.limitType===e.limitType}function Fo(t){return`${To(Po(t))}|lt:${t.limitType}`}function Vo(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>no(t))).join(", ")}]`),bi(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>Ui(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>Ui(t))).join(",")),`Target(${e})`}(Po(t))}; limitType=${t.limitType})`}function qo(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):ai.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of Lo(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Gi(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,Lo(t),e))&&!(t.endAt&&!function(t,e,n){const r=Gi(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,Lo(t),e))}(t,e)}function jo(t){return(e,n)=>{let r=!1;for(const s of Lo(t)){const t=Bo(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function Bo(t,e,n){const r=t.field.isKeyField()?ai.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?Mi(r,s):Us()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Us()}}
880
+ /**
881
+ * @license
882
+ * Copyright 2020 Google LLC
883
+ *
884
+ * Licensed under the Apache License, Version 2.0 (the "License");
885
+ * you may not use this file except in compliance with the License.
886
+ * You may obtain a copy of the License at
887
+ *
888
+ * http://www.apache.org/licenses/LICENSE-2.0
889
+ *
890
+ * Unless required by applicable law or agreed to in writing, software
891
+ * distributed under the License is distributed on an "AS IS" BASIS,
892
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
893
+ * See the License for the specific language governing permissions and
894
+ * limitations under the License.
895
+ */function zo(t,e){if(t.wt){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ei(e)?"-0":e}}function $o(t){return{integerValue:""+t}}function Ko(t,e){return function(t){return"number"==typeof t&&Number.isInteger(t)&&!Ei(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}(e)?$o(e):zo(t,e)}
896
+ /**
897
+ * @license
898
+ * Copyright 2018 Google LLC
899
+ *
900
+ * Licensed under the Apache License, Version 2.0 (the "License");
901
+ * you may not use this file except in compliance with the License.
902
+ * You may obtain a copy of the License at
903
+ *
904
+ * http://www.apache.org/licenses/LICENSE-2.0
905
+ *
906
+ * Unless required by applicable law or agreed to in writing, software
907
+ * distributed under the License is distributed on an "AS IS" BASIS,
908
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
909
+ * See the License for the specific language governing permissions and
910
+ * limitations under the License.
911
+ */class Ho{constructor(){this._=void 0}}function Go(t,e,n){return t instanceof Qo?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Jo?Xo(t,e):t instanceof Yo?Zo(t,e):function(t,e){const n=function(t,e){return t instanceof ta?qi(n=e)||function(t){return!!t&&"doubleValue"in t}(n)?e:{integerValue:0}:null;var n}(t,e),r=ea(n)+ea(t.gt);return qi(n)&&qi(t.gt)?$o(r):zo(t.yt,r)}(t,e)}function Wo(t,e,n){return t instanceof Jo?Xo(t,e):t instanceof Yo?Zo(t,e):n}class Qo extends Ho{}class Jo extends Ho{constructor(t){super(),this.elements=t}}function Xo(t,e){const n=na(e);for(const e of t.elements)n.some((t=>Li(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Yo extends Ho{constructor(t){super(),this.elements=t}}function Zo(t,e){let n=na(e);for(const e of t.elements)n=n.filter((t=>!Li(t,e)));return{arrayValue:{values:n}}}class ta extends Ho{constructor(t,e){super(),this.yt=t,this.gt=e}}function ea(t){return Ai(t.integerValue||t.doubleValue)}function na(t){return ji(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class ra{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new ra}static exists(t){return new ra(void 0,t)}static updateTime(t){return new ra(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function sa(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class ia{}function oa(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ga(t.key,ra.none()):new ha(t.key,t.data,ra.none());{const n=t.data,r=Io.empty();let s=new yo(oi.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new la(t.key,r,new wo(s.toArray()),ra.none())}}function aa(t,e,n){t instanceof ha?function(t,e,n){const r=t.value.clone(),s=fa(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof la?function(t,e,n){if(!sa(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=fa(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(da(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function ca(t,e,n,r){return t instanceof ha?function(t,e,n,r){if(!sa(t.precondition,e))return n;const s=t.value.clone(),i=pa(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof la?function(t,e,n,r){if(!sa(t.precondition,e))return n;const s=pa(t.fieldTransforms,r,e),i=e.data;return i.setAll(da(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return sa(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function ua(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&ti(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Jo&&e instanceof Jo||t instanceof Yo&&e instanceof Yo?ti(t.elements,e.elements,Li):t instanceof ta&&e instanceof ta?Li(t.gt,e.gt):t instanceof Qo&&e instanceof Qo}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class ha extends ia{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class la extends ia{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function da(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function fa(t,e,n){const r=new Map;Fs(t.length===n.length);for(let s=0;s<n.length;s++){const i=t[s],o=i.transform,a=e.data.field(i.field);r.set(i.field,Wo(o,a,n[s]))}return r}function pa(t,e,n){const r=new Map;for(const s of t){const t=s.transform,i=n.data.field(s.field);r.set(s.field,Go(t,i,e))}return r}class ga extends ia{constructor(t,e){super(),this.key=t,this.precondition=e,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}
912
+ /**
913
+ * @license
914
+ * Copyright 2017 Google LLC
915
+ *
916
+ * Licensed under the Apache License, Version 2.0 (the "License");
917
+ * you may not use this file except in compliance with the License.
918
+ * You may obtain a copy of the License at
919
+ *
920
+ * http://www.apache.org/licenses/LICENSE-2.0
921
+ *
922
+ * Unless required by applicable law or agreed to in writing, software
923
+ * distributed under the License is distributed on an "AS IS" BASIS,
924
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
925
+ * See the License for the specific language governing permissions and
926
+ * limitations under the License.
927
+ */class ma{constructor(t){this.count=t}}
928
+ /**
929
+ * @license
930
+ * Copyright 2017 Google LLC
931
+ *
932
+ * Licensed under the Apache License, Version 2.0 (the "License");
933
+ * you may not use this file except in compliance with the License.
934
+ * You may obtain a copy of the License at
935
+ *
936
+ * http://www.apache.org/licenses/LICENSE-2.0
937
+ *
938
+ * Unless required by applicable law or agreed to in writing, software
939
+ * distributed under the License is distributed on an "AS IS" BASIS,
940
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
941
+ * See the License for the specific language governing permissions and
942
+ * limitations under the License.
943
+ */var ya,va;function wa(t){if(void 0===t)return Ps("GRPC error has no .code"),qs.UNKNOWN;switch(t){case ya.OK:return qs.OK;case ya.CANCELLED:return qs.CANCELLED;case ya.UNKNOWN:return qs.UNKNOWN;case ya.DEADLINE_EXCEEDED:return qs.DEADLINE_EXCEEDED;case ya.RESOURCE_EXHAUSTED:return qs.RESOURCE_EXHAUSTED;case ya.INTERNAL:return qs.INTERNAL;case ya.UNAVAILABLE:return qs.UNAVAILABLE;case ya.UNAUTHENTICATED:return qs.UNAUTHENTICATED;case ya.INVALID_ARGUMENT:return qs.INVALID_ARGUMENT;case ya.NOT_FOUND:return qs.NOT_FOUND;case ya.ALREADY_EXISTS:return qs.ALREADY_EXISTS;case ya.PERMISSION_DENIED:return qs.PERMISSION_DENIED;case ya.FAILED_PRECONDITION:return qs.FAILED_PRECONDITION;case ya.ABORTED:return qs.ABORTED;case ya.OUT_OF_RANGE:return qs.OUT_OF_RANGE;case ya.UNIMPLEMENTED:return qs.UNIMPLEMENTED;case ya.DATA_LOSS:return qs.DATA_LOSS;default:return Us()}}(va=ya||(ya={}))[va.OK=0]="OK",va[va.CANCELLED=1]="CANCELLED",va[va.UNKNOWN=2]="UNKNOWN",va[va.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",va[va.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",va[va.NOT_FOUND=5]="NOT_FOUND",va[va.ALREADY_EXISTS=6]="ALREADY_EXISTS",va[va.PERMISSION_DENIED=7]="PERMISSION_DENIED",va[va.UNAUTHENTICATED=16]="UNAUTHENTICATED",va[va.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",va[va.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",va[va.ABORTED=10]="ABORTED",va[va.OUT_OF_RANGE=11]="OUT_OF_RANGE",va[va.UNIMPLEMENTED=12]="UNIMPLEMENTED",va[va.INTERNAL=13]="INTERNAL",va[va.UNAVAILABLE=14]="UNAVAILABLE",va[va.DATA_LOSS=15]="DATA_LOSS";
944
+ /**
945
+ * @license
946
+ * Copyright 2017 Google LLC
947
+ *
948
+ * Licensed under the Apache License, Version 2.0 (the "License");
949
+ * you may not use this file except in compliance with the License.
950
+ * You may obtain a copy of the License at
951
+ *
952
+ * http://www.apache.org/licenses/LICENSE-2.0
953
+ *
954
+ * Unless required by applicable law or agreed to in writing, software
955
+ * distributed under the License is distributed on an "AS IS" BASIS,
956
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
957
+ * See the License for the specific language governing permissions and
958
+ * limitations under the License.
959
+ */
960
+ class Ia{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n<r.length;n++)if(this.equalsFn(r[n][0],t))return void(r[n]=[t,e]);r.push([t,e]),this.innerSize++}delete(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)return!1;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],t))return 1===n.length?delete this.inner[e]:n.splice(r,1),this.innerSize--,!0;return!1}forEach(t){wi(this.inner,((e,n)=>{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ii(this.inner)}size(){return this.innerSize}}
961
+ /**
962
+ * @license
963
+ * Copyright 2017 Google LLC
964
+ *
965
+ * Licensed under the Apache License, Version 2.0 (the "License");
966
+ * you may not use this file except in compliance with the License.
967
+ * You may obtain a copy of the License at
968
+ *
969
+ * http://www.apache.org/licenses/LICENSE-2.0
970
+ *
971
+ * Unless required by applicable law or agreed to in writing, software
972
+ * distributed under the License is distributed on an "AS IS" BASIS,
973
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
974
+ * See the License for the specific language governing permissions and
975
+ * limitations under the License.
976
+ */const ba=new po(ai.comparator);function Ea(){return ba}const _a=new po(ai.comparator);function Ta(...t){let e=_a;for(const n of t)e=e.insert(n.key,n);return e}function Sa(t){let e=_a;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Aa(){return ka()}function Ca(){return ka()}function ka(){return new Ia((t=>t.toString()),((t,e)=>t.isEqual(e)))}new po(ai.comparator);const Na=new yo(ai.comparator);function Da(...t){let e=Na;for(const n of t)e=e.add(n);return e}const Ra=new yo(Zs);function Oa(){return Ra}
977
+ /**
978
+ * @license
979
+ * Copyright 2017 Google LLC
980
+ *
981
+ * Licensed under the Apache License, Version 2.0 (the "License");
982
+ * you may not use this file except in compliance with the License.
983
+ * You may obtain a copy of the License at
984
+ *
985
+ * http://www.apache.org/licenses/LICENSE-2.0
986
+ *
987
+ * Unless required by applicable law or agreed to in writing, software
988
+ * distributed under the License is distributed on an "AS IS" BASIS,
989
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
990
+ * See the License for the specific language governing permissions and
991
+ * limitations under the License.
992
+ */class La{constructor(t,e,n,r,s){this.snapshotVersion=t,this.targetChanges=e,this.targetMismatches=n,this.documentUpdates=r,this.resolvedLimboDocuments=s}static createSynthesizedRemoteEventForCurrentChange(t,e,n){const r=new Map;return r.set(t,Pa.createSynthesizedTargetChangeForCurrentChange(t,e,n)),new La(ni.min(),r,Oa(),Ea(),Da())}}class Pa{constructor(t,e,n,r,s){this.resumeToken=t,this.current=e,this.addedDocuments=n,this.modifiedDocuments=r,this.removedDocuments=s}static createSynthesizedTargetChangeForCurrentChange(t,e,n){return new Pa(n,e,Da(),Da(),Da())}}
993
+ /**
994
+ * @license
995
+ * Copyright 2017 Google LLC
996
+ *
997
+ * Licensed under the Apache License, Version 2.0 (the "License");
998
+ * you may not use this file except in compliance with the License.
999
+ * You may obtain a copy of the License at
1000
+ *
1001
+ * http://www.apache.org/licenses/LICENSE-2.0
1002
+ *
1003
+ * Unless required by applicable law or agreed to in writing, software
1004
+ * distributed under the License is distributed on an "AS IS" BASIS,
1005
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1006
+ * See the License for the specific language governing permissions and
1007
+ * limitations under the License.
1008
+ */class Ma{constructor(t,e,n,r){this.It=t,this.removedTargetIds=e,this.key=n,this.Tt=r}}class xa{constructor(t,e){this.targetId=t,this.Et=e}}class Ua{constructor(t,e,n=_i.EMPTY_BYTE_STRING,r=null){this.state=t,this.targetIds=e,this.resumeToken=n,this.cause=r}}class Fa{constructor(){this.At=0,this.Rt=ja(),this.bt=_i.EMPTY_BYTE_STRING,this.Pt=!1,this.vt=!0}get current(){return this.Pt}get resumeToken(){return this.bt}get Vt(){return 0!==this.At}get St(){return this.vt}Dt(t){t.approximateByteSize()>0&&(this.vt=!0,this.bt=t)}Ct(){let t=Da(),e=Da(),n=Da();return this.Rt.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Us()}})),new Pa(this.bt,this.Pt,t,e,n)}xt(){this.vt=!1,this.Rt=ja()}Nt(t,e){this.vt=!0,this.Rt=this.Rt.insert(t,e)}kt(t){this.vt=!0,this.Rt=this.Rt.remove(t)}Ot(){this.At+=1}Mt(){this.At-=1}Ft(){this.vt=!0,this.Pt=!0}}class Va{constructor(t){this.$t=t,this.Bt=new Map,this.Lt=Ea(),this.qt=qa(),this.Ut=new yo(Zs)}Kt(t){for(const e of t.It)t.Tt&&t.Tt.isFoundDocument()?this.Gt(e,t.Tt):this.Qt(e,t.key,t.Tt);for(const e of t.removedTargetIds)this.Qt(e,t.key,t.Tt)}jt(t){this.forEachTarget(t,(e=>{const n=this.Wt(e);switch(t.state){case 0:this.zt(e)&&n.Dt(t.resumeToken);break;case 1:n.Mt(),n.Vt||n.xt(),n.Dt(t.resumeToken);break;case 2:n.Mt(),n.Vt||this.removeTarget(e);break;case 3:this.zt(e)&&(n.Ft(),n.Dt(t.resumeToken));break;case 4:this.zt(e)&&(this.Ht(e),n.Dt(t.resumeToken));break;default:Us()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.Bt.forEach(((t,n)=>{this.zt(n)&&e(n)}))}Jt(t){const e=t.targetId,n=t.Et.count,r=this.Yt(e);if(r){const t=r.target;if(Ao(t))if(0===n){const n=new ai(t.path);this.Qt(e,n,bo.newNoDocument(n,ni.min()))}else Fs(1===n);else this.Xt(e)!==n&&(this.Ht(e),this.Ut=this.Ut.add(e))}}Zt(t){const e=new Map;this.Bt.forEach(((n,r)=>{const s=this.Yt(r);if(s){if(n.current&&Ao(s.target)){const e=new ai(s.target.path);null!==this.Lt.get(e)||this.te(r,e)||this.Qt(r,e,bo.newNoDocument(e,t))}n.St&&(e.set(r,n.Ct()),n.xt())}}));let n=Da();this.qt.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Yt(t);return!e||2===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.Lt.forEach(((e,n)=>n.setReadTime(t)));const r=new La(t,e,this.Ut,this.Lt,n);return this.Lt=Ea(),this.qt=qa(),this.Ut=new yo(Zs),r}Gt(t,e){if(!this.zt(t))return;const n=this.te(t,e.key)?2:0;this.Wt(t).Nt(e.key,n),this.Lt=this.Lt.insert(e.key,e),this.qt=this.qt.insert(e.key,this.ee(e.key).add(t))}Qt(t,e,n){if(!this.zt(t))return;const r=this.Wt(t);this.te(t,e)?r.Nt(e,1):r.kt(e),this.qt=this.qt.insert(e,this.ee(e).delete(t)),n&&(this.Lt=this.Lt.insert(e,n))}removeTarget(t){this.Bt.delete(t)}Xt(t){const e=this.Wt(t).Ct();return this.$t.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Ot(t){this.Wt(t).Ot()}Wt(t){let e=this.Bt.get(t);return e||(e=new Fa,this.Bt.set(t,e)),e}ee(t){let e=this.qt.get(t);return e||(e=new yo(Zs),this.qt=this.qt.insert(t,e)),e}zt(t){const e=null!==this.Yt(t);return e||Ls("WatchChangeAggregator","Detected inactive target",t),e}Yt(t){const e=this.Bt.get(t);return e&&e.Vt?null:this.$t.ne(t)}Ht(t){this.Bt.set(t,new Fa),this.$t.getRemoteKeysForTarget(t).forEach((e=>{this.Qt(t,e,null)}))}te(t,e){return this.$t.getRemoteKeysForTarget(t).has(e)}}function qa(){return new po(ai.comparator)}function ja(){return new po(ai.comparator)}
1009
+ /**
1010
+ * @license
1011
+ * Copyright 2017 Google LLC
1012
+ *
1013
+ * Licensed under the Apache License, Version 2.0 (the "License");
1014
+ * you may not use this file except in compliance with the License.
1015
+ * You may obtain a copy of the License at
1016
+ *
1017
+ * http://www.apache.org/licenses/LICENSE-2.0
1018
+ *
1019
+ * Unless required by applicable law or agreed to in writing, software
1020
+ * distributed under the License is distributed on an "AS IS" BASIS,
1021
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1022
+ * See the License for the specific language governing permissions and
1023
+ * limitations under the License.
1024
+ */const Ba={asc:"ASCENDING",desc:"DESCENDING"},za={"<":"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"},$a={and:"AND",or:"OR"};class Ka{constructor(t,e){this.databaseId=t,this.wt=e}}function Ha(t,e){return t.wt?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function Ga(t,e){return t.wt?e.toBase64():e.toUint8Array()}function Wa(t){return Fs(!!t),ni.fromTimestamp(function(t){const e=Si(t);return new ei(e.seconds,e.nanos)}(t))}function Qa(t,e){return function(t){return new si(["projects",t.projectId,"databases",t.database])}(t).child("documents").child(e).canonicalString()}function Ja(t){const e=si.fromString(t);return Fs(lc(e)),e}function Xa(t,e){const n=Ja(e);if(n.get(1)!==t.databaseId.projectId)throw new js(qs.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new js(qs.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new ai(tc(n))}function Ya(t,e){return Qa(t.databaseId,e)}function Za(t){return new si(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function tc(t){return Fs(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function ec(t,e){return{documents:[Ya(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;null!==e.collectionGroup?(n.parent=Ya(t,r),n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(n.parent=Ya(t,r.popLast()),n.structuredQuery.from=[{collectionId:r.lastSegment()}]);const s=function(t){if(0!==t.length)return hc(Xi.create(t,"and"))}(e.filters);s&&(n.structuredQuery.where=s);const i=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:cc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);i&&(n.structuredQuery.orderBy=i);const o=function(t,e){return t.wt||bi(e)?e:{value:e}}(t,e.limit);var a;return null!==o&&(n.structuredQuery.limit=o),e.startAt&&(n.structuredQuery.startAt={before:(a=e.startAt).inclusive,values:a.position}),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),n}function rc(t){let e=function(t){const e=Ja(t);return 4===e.length?si.emptyPath():tc(e)}(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Fs(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Xi&&Zi(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=n.orderBy.map((t=>function(t){return new lo(uc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t))));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,bi(e)?null:e}(n.limit));let c=null;n.startAt&&(c=function(t){const e=!!t.before,n=t.values||[];return new Hi(n,e)}(n.startAt));let u=null;return n.endAt&&(u=function(t){const e=!t.before,n=t.values||[];return new Hi(n,e)}(n.endAt)),function(t,e,n,r,s,i,o,a){return new Co(t,e,n,r,s,i,o,a)}(e,s,o,i,a,"F",c,u)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=uc(t.unaryFilter.field);return Ji.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=uc(t.unaryFilter.field);return Ji.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=uc(t.unaryFilter.field);return Ji.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=uc(t.unaryFilter.field);return Ji.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Us()}}(t):void 0!==t.fieldFilter?function(t){return Ji.create(uc(t.fieldFilter.field),function(t){switch(t){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 Us()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Xi.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Us()}}(t.compositeFilter.op))}(t):Us()}function ic(t){return Ba[t]}function oc(t){return za[t]}function ac(t){return $a[t]}function cc(t){return{fieldPath:t.canonicalString()}}function uc(t){return oi.fromServerFormat(t.fieldPath)}function hc(t){return t instanceof Ji?function(t){if("=="===t.op){if(zi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NAN"}};if(Bi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(zi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NOT_NAN"}};if(Bi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:cc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Xi?function(t){const e=t.getFilters().map((t=>hc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Us()}function lc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}
1025
+ /**
1026
+ * @license
1027
+ * Copyright 2017 Google LLC
1028
+ *
1029
+ * Licensed under the Apache License, Version 2.0 (the "License");
1030
+ * you may not use this file except in compliance with the License.
1031
+ * You may obtain a copy of the License at
1032
+ *
1033
+ * http://www.apache.org/licenses/LICENSE-2.0
1034
+ *
1035
+ * Unless required by applicable law or agreed to in writing, software
1036
+ * distributed under the License is distributed on an "AS IS" BASIS,
1037
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1038
+ * See the License for the specific language governing permissions and
1039
+ * limitations under the License.
1040
+ */class dc{constructor(t,e,n,r){this.batchId=t,this.localWriteTime=e,this.baseMutations=n,this.mutations=r}applyToRemoteDocument(t,e){const n=e.mutationResults;for(let e=0;e<this.mutations.length;e++){const r=this.mutations[e];r.key.isEqual(t.key)&&aa(r,t,n[e])}}applyToLocalView(t,e){for(const n of this.baseMutations)n.key.isEqual(t.key)&&(e=ca(n,t,e,this.localWriteTime));for(const n of this.mutations)n.key.isEqual(t.key)&&(e=ca(n,t,e,this.localWriteTime));return e}applyToLocalDocumentSet(t,e){const n=Ca();return this.mutations.forEach((r=>{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=oa(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ni.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Da())}isEqual(t){return this.batchId===t.batchId&&ti(this.mutations,t.mutations,((t,e)=>ua(t,e)))&&ti(this.baseMutations,t.baseMutations,((t,e)=>ua(t,e)))}}
1041
+ /**
1042
+ * @license
1043
+ * Copyright 2022 Google LLC
1044
+ *
1045
+ * Licensed under the Apache License, Version 2.0 (the "License");
1046
+ * you may not use this file except in compliance with the License.
1047
+ * You may obtain a copy of the License at
1048
+ *
1049
+ * http://www.apache.org/licenses/LICENSE-2.0
1050
+ *
1051
+ * Unless required by applicable law or agreed to in writing, software
1052
+ * distributed under the License is distributed on an "AS IS" BASIS,
1053
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1054
+ * See the License for the specific language governing permissions and
1055
+ * limitations under the License.
1056
+ */class fc{constructor(t,e){this.largestBatchId=t,this.mutation=e}getKey(){return this.mutation.key}isEqual(t){return null!==t&&this.mutation===t.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}
1057
+ /**
1058
+ * @license
1059
+ * Copyright 2017 Google LLC
1060
+ *
1061
+ * Licensed under the Apache License, Version 2.0 (the "License");
1062
+ * you may not use this file except in compliance with the License.
1063
+ * You may obtain a copy of the License at
1064
+ *
1065
+ * http://www.apache.org/licenses/LICENSE-2.0
1066
+ *
1067
+ * Unless required by applicable law or agreed to in writing, software
1068
+ * distributed under the License is distributed on an "AS IS" BASIS,
1069
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1070
+ * See the License for the specific language governing permissions and
1071
+ * limitations under the License.
1072
+ */class pc{constructor(t,e,n,r,s=ni.min(),i=ni.min(),o=_i.EMPTY_BYTE_STRING){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o}withSequenceNumber(t){return new pc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken)}withResumeToken(t,e){return new pc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t)}withLastLimboFreeSnapshotVersion(t){return new pc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken)}}
1073
+ /**
1074
+ * @license
1075
+ * Copyright 2017 Google LLC
1076
+ *
1077
+ * Licensed under the Apache License, Version 2.0 (the "License");
1078
+ * you may not use this file except in compliance with the License.
1079
+ * You may obtain a copy of the License at
1080
+ *
1081
+ * http://www.apache.org/licenses/LICENSE-2.0
1082
+ *
1083
+ * Unless required by applicable law or agreed to in writing, software
1084
+ * distributed under the License is distributed on an "AS IS" BASIS,
1085
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1086
+ * See the License for the specific language governing permissions and
1087
+ * limitations under the License.
1088
+ */class gc{constructor(t){this.ie=t}}function mc(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?xo(e,e.limit,"L"):e}
1089
+ /**
1090
+ * @license
1091
+ * Copyright 2019 Google LLC
1092
+ *
1093
+ * Licensed under the Apache License, Version 2.0 (the "License");
1094
+ * you may not use this file except in compliance with the License.
1095
+ * You may obtain a copy of the License at
1096
+ *
1097
+ * http://www.apache.org/licenses/LICENSE-2.0
1098
+ *
1099
+ * Unless required by applicable law or agreed to in writing, software
1100
+ * distributed under the License is distributed on an "AS IS" BASIS,
1101
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1102
+ * See the License for the specific language governing permissions and
1103
+ * limitations under the License.
1104
+ */class yc{constructor(){this.Je=new vc}addToCollectionParentIndex(t,e){return this.Je.add(e),fi.resolve()}getCollectionParents(t,e){return fi.resolve(this.Je.getEntries(e))}addFieldIndex(t,e){return fi.resolve()}deleteFieldIndex(t,e){return fi.resolve()}getDocumentsMatchingTarget(t,e){return fi.resolve(null)}getIndexType(t,e){return fi.resolve(0)}getFieldIndexes(t,e){return fi.resolve([])}getNextCollectionGroupToUpdate(t){return fi.resolve(null)}getMinOffset(t,e){return fi.resolve(ui.min())}getMinOffsetFromCollectionGroup(t,e){return fi.resolve(ui.min())}updateCollectionGroup(t,e,n){return fi.resolve()}updateIndexEntries(t,e){return fi.resolve()}}class vc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new yo(si.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new yo(si.comparator)).toArray()}}
1105
+ /**
1106
+ * @license
1107
+ * Copyright 2017 Google LLC
1108
+ *
1109
+ * Licensed under the Apache License, Version 2.0 (the "License");
1110
+ * you may not use this file except in compliance with the License.
1111
+ * You may obtain a copy of the License at
1112
+ *
1113
+ * http://www.apache.org/licenses/LICENSE-2.0
1114
+ *
1115
+ * Unless required by applicable law or agreed to in writing, software
1116
+ * distributed under the License is distributed on an "AS IS" BASIS,
1117
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1118
+ * See the License for the specific language governing permissions and
1119
+ * limitations under the License.
1120
+ */class wc{constructor(t){this.bn=t}next(){return this.bn+=2,this.bn}static Pn(){return new wc(0)}static vn(){return new wc(-1)}}
1121
+ /**
1122
+ * @license
1123
+ * Copyright 2017 Google LLC
1124
+ *
1125
+ * Licensed under the Apache License, Version 2.0 (the "License");
1126
+ * you may not use this file except in compliance with the License.
1127
+ * You may obtain a copy of the License at
1128
+ *
1129
+ * http://www.apache.org/licenses/LICENSE-2.0
1130
+ *
1131
+ * Unless required by applicable law or agreed to in writing, software
1132
+ * distributed under the License is distributed on an "AS IS" BASIS,
1133
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1134
+ * See the License for the specific language governing permissions and
1135
+ * limitations under the License.
1136
+ */class Ic{constructor(){this.changes=new Ia((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?fi.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}
1137
+ /**
1138
+ * @license
1139
+ * Copyright 2017 Google LLC
1140
+ *
1141
+ * Licensed under the Apache License, Version 2.0 (the "License");
1142
+ * you may not use this file except in compliance with the License.
1143
+ * You may obtain a copy of the License at
1144
+ *
1145
+ * http://www.apache.org/licenses/LICENSE-2.0
1146
+ *
1147
+ * Unless required by applicable law or agreed to in writing, software
1148
+ * distributed under the License is distributed on an "AS IS" BASIS,
1149
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1150
+ * See the License for the specific language governing permissions and
1151
+ * limitations under the License.
1152
+ */
1153
+ /**
1154
+ * @license
1155
+ * Copyright 2022 Google LLC
1156
+ *
1157
+ * Licensed under the Apache License, Version 2.0 (the "License");
1158
+ * you may not use this file except in compliance with the License.
1159
+ * You may obtain a copy of the License at
1160
+ *
1161
+ * http://www.apache.org/licenses/LICENSE-2.0
1162
+ *
1163
+ * Unless required by applicable law or agreed to in writing, software
1164
+ * distributed under the License is distributed on an "AS IS" BASIS,
1165
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1166
+ * See the License for the specific language governing permissions and
1167
+ * limitations under the License.
1168
+ */class bc{constructor(t,e){this.overlayedDocument=t,this.mutatedFields=e}}
1169
+ /**
1170
+ * @license
1171
+ * Copyright 2017 Google LLC
1172
+ *
1173
+ * Licensed under the Apache License, Version 2.0 (the "License");
1174
+ * you may not use this file except in compliance with the License.
1175
+ * You may obtain a copy of the License at
1176
+ *
1177
+ * http://www.apache.org/licenses/LICENSE-2.0
1178
+ *
1179
+ * Unless required by applicable law or agreed to in writing, software
1180
+ * distributed under the License is distributed on an "AS IS" BASIS,
1181
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1182
+ * See the License for the specific language governing permissions and
1183
+ * limitations under the License.
1184
+ */class Ec{constructor(t,e,n,r){this.remoteDocumentCache=t,this.mutationQueue=e,this.documentOverlayCache=n,this.indexManager=r}getDocument(t,e){let n=null;return this.documentOverlayCache.getOverlay(t,e).next((r=>(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&ca(n.mutation,t,wo.empty(),ei.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Da()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Da()){const r=Aa();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=Ta();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Aa();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Da())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=Ea();const i=ka(),o=ka();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof la)?s=s.insert(e.key,e):void 0!==o&&(i.set(e.key,o.mutation.getFieldMask()),ca(o.mutation,e,o.mutation.getFieldMask(),ei.now()))})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new bc(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=ka();let r=new po(((t,e)=>t-e)),s=Da();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||wo.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Da()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,c=r.value,u=Ca();c.forEach((t=>{if(!s.has(t)){const r=oa(e.get(t),n.get(t));null!==r&&u.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,u))}return fi.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n){return function(t){return ai.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):Oo(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n):this.getDocumentsMatchingCollectionQuery(t,e,n)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):fi.resolve(Aa());let o=-1,a=s;return i.next((e=>fi.forEach(e,((e,n)=>(o<n.largestBatchId&&(o=n.largestBatchId),s.get(e)?fi.resolve():this.remoteDocumentCache.getEntry(t,e).next((t=>{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Da()))).next((t=>({batchId:o,changes:Sa(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new ai(e)).next((t=>{let e=Ta();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n){const r=e.collectionGroup;let s=Ta();return this.indexManager.getCollectionParents(t,r).next((i=>fi.forEach(i,(i=>{const o=function(t,e){return new Co(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,i.child(r));return this.getDocumentsMatchingCollectionQuery(t,o,n).next((t=>{t.forEach(((t,e)=>{s=s.insert(t,e)}))}))})).next((()=>s))))}getDocumentsMatchingCollectionQuery(t,e,n){let r;return this.remoteDocumentCache.getAllFromCollection(t,e.path,n).next((s=>(r=s,this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId)))).next((t=>{t.forEach(((t,e)=>{const n=e.getKey();null===r.get(n)&&(r=r.insert(n,bo.newInvalidDocument(n)))}));let n=Ta();return r.forEach(((r,s)=>{const i=t.get(r);void 0!==i&&ca(i.mutation,s,wo.empty(),ei.now()),qo(e,s)&&(n=n.insert(r,s))})),n}))}}
1185
+ /**
1186
+ * @license
1187
+ * Copyright 2020 Google LLC
1188
+ *
1189
+ * Licensed under the Apache License, Version 2.0 (the "License");
1190
+ * you may not use this file except in compliance with the License.
1191
+ * You may obtain a copy of the License at
1192
+ *
1193
+ * http://www.apache.org/licenses/LICENSE-2.0
1194
+ *
1195
+ * Unless required by applicable law or agreed to in writing, software
1196
+ * distributed under the License is distributed on an "AS IS" BASIS,
1197
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1198
+ * See the License for the specific language governing permissions and
1199
+ * limitations under the License.
1200
+ */class _c{constructor(t){this.yt=t,this.Zn=new Map,this.ts=new Map}getBundleMetadata(t,e){return fi.resolve(this.Zn.get(e))}saveBundleMetadata(t,e){var n;return this.Zn.set(e.id,{id:(n=e).id,version:n.version,createTime:Wa(n.createTime)}),fi.resolve()}getNamedQuery(t,e){return fi.resolve(this.ts.get(e))}saveNamedQuery(t,e){return this.ts.set(e.name,function(t){return{name:t.name,query:mc(t.bundledQuery),readTime:Wa(t.readTime)}}(e)),fi.resolve()}}
1201
+ /**
1202
+ * @license
1203
+ * Copyright 2022 Google LLC
1204
+ *
1205
+ * Licensed under the Apache License, Version 2.0 (the "License");
1206
+ * you may not use this file except in compliance with the License.
1207
+ * You may obtain a copy of the License at
1208
+ *
1209
+ * http://www.apache.org/licenses/LICENSE-2.0
1210
+ *
1211
+ * Unless required by applicable law or agreed to in writing, software
1212
+ * distributed under the License is distributed on an "AS IS" BASIS,
1213
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1214
+ * See the License for the specific language governing permissions and
1215
+ * limitations under the License.
1216
+ */class Tc{constructor(){this.overlays=new po(ai.comparator),this.es=new Map}getOverlay(t,e){return fi.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Aa();return fi.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.oe(t,e,r)})),fi.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.es.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.es.delete(n)),fi.resolve()}getOverlaysForCollection(t,e,n){const r=Aa(),s=e.length+1,i=new ai(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return fi.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new po(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Aa(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Aa(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return fi.resolve(o)}oe(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.es.get(r.largestBatchId).delete(n.key);this.es.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new fc(e,n));let s=this.es.get(e);void 0===s&&(s=Da(),this.es.set(e,s)),this.es.set(e,s.add(n.key))}}
1217
+ /**
1218
+ * @license
1219
+ * Copyright 2017 Google LLC
1220
+ *
1221
+ * Licensed under the Apache License, Version 2.0 (the "License");
1222
+ * you may not use this file except in compliance with the License.
1223
+ * You may obtain a copy of the License at
1224
+ *
1225
+ * http://www.apache.org/licenses/LICENSE-2.0
1226
+ *
1227
+ * Unless required by applicable law or agreed to in writing, software
1228
+ * distributed under the License is distributed on an "AS IS" BASIS,
1229
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1230
+ * See the License for the specific language governing permissions and
1231
+ * limitations under the License.
1232
+ */class Sc{constructor(){this.ns=new yo(Ac.ss),this.rs=new yo(Ac.os)}isEmpty(){return this.ns.isEmpty()}addReference(t,e){const n=new Ac(t,e);this.ns=this.ns.add(n),this.rs=this.rs.add(n)}us(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.cs(new Ac(t,e))}hs(t,e){t.forEach((t=>this.removeReference(t,e)))}ls(t){const e=new ai(new si([])),n=new Ac(e,t),r=new Ac(e,t+1),s=[];return this.rs.forEachInRange([n,r],(t=>{this.cs(t),s.push(t.key)})),s}fs(){this.ns.forEach((t=>this.cs(t)))}cs(t){this.ns=this.ns.delete(t),this.rs=this.rs.delete(t)}ds(t){const e=new ai(new si([])),n=new Ac(e,t),r=new Ac(e,t+1);let s=Da();return this.rs.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ac(t,0),n=this.ns.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ac{constructor(t,e){this.key=t,this._s=e}static ss(t,e){return ai.comparator(t.key,e.key)||Zs(t._s,e._s)}static os(t,e){return Zs(t._s,e._s)||ai.comparator(t.key,e.key)}}
1233
+ /**
1234
+ * @license
1235
+ * Copyright 2017 Google LLC
1236
+ *
1237
+ * Licensed under the Apache License, Version 2.0 (the "License");
1238
+ * you may not use this file except in compliance with the License.
1239
+ * You may obtain a copy of the License at
1240
+ *
1241
+ * http://www.apache.org/licenses/LICENSE-2.0
1242
+ *
1243
+ * Unless required by applicable law or agreed to in writing, software
1244
+ * distributed under the License is distributed on an "AS IS" BASIS,
1245
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1246
+ * See the License for the specific language governing permissions and
1247
+ * limitations under the License.
1248
+ */class Cc{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.ws=1,this.gs=new yo(Ac.ss)}checkEmpty(t){return fi.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.ws;this.ws++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new dc(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.gs=this.gs.add(new Ac(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return fi.resolve(i)}lookupMutationBatch(t,e){return fi.resolve(this.ys(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.ps(n),s=r<0?0:r;return fi.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return fi.resolve(0===this.mutationQueue.length?-1:this.ws-1)}getAllMutationBatches(t){return fi.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ac(e,0),r=new Ac(e,Number.POSITIVE_INFINITY),s=[];return this.gs.forEachInRange([n,r],(t=>{const e=this.ys(t._s);s.push(e)})),fi.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(Zs);return e.forEach((t=>{const e=new Ac(t,0),r=new Ac(t,Number.POSITIVE_INFINITY);this.gs.forEachInRange([e,r],(t=>{n=n.add(t._s)}))})),fi.resolve(this.Is(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;ai.isDocumentKey(s)||(s=s.child(""));const i=new Ac(new ai(s),0);let o=new yo(Zs);return this.gs.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t._s)),!0)}),i),fi.resolve(this.Is(o))}Is(t){const e=[];return t.forEach((t=>{const n=this.ys(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Fs(0===this.Ts(e.batchId,"removed")),this.mutationQueue.shift();let n=this.gs;return fi.forEach(e.mutations,(r=>{const s=new Ac(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.gs=n}))}An(t){}containsKey(t,e){const n=new Ac(e,0),r=this.gs.firstAfterOrEqual(n);return fi.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,fi.resolve()}Ts(t,e){return this.ps(t)}ps(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}ys(t){const e=this.ps(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}
1249
+ /**
1250
+ * @license
1251
+ * Copyright 2017 Google LLC
1252
+ *
1253
+ * Licensed under the Apache License, Version 2.0 (the "License");
1254
+ * you may not use this file except in compliance with the License.
1255
+ * You may obtain a copy of the License at
1256
+ *
1257
+ * http://www.apache.org/licenses/LICENSE-2.0
1258
+ *
1259
+ * Unless required by applicable law or agreed to in writing, software
1260
+ * distributed under the License is distributed on an "AS IS" BASIS,
1261
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1262
+ * See the License for the specific language governing permissions and
1263
+ * limitations under the License.
1264
+ */class kc{constructor(t){this.Es=t,this.docs=new po(ai.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.Es(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return fi.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=Ea();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),fi.resolve(n)}getAllFromCollection(t,e,n){let r=Ea();const s=new ai(e.child("")),i=this.docs.getIteratorFrom(s);for(;i.hasNext();){const{key:t,value:{document:s}}=i.getNext();if(!e.isPrefixOf(t.path))break;t.path.length>e.length+1||hi(ci(s),n)<=0||(r=r.insert(s.key,s.mutableCopy()))}return fi.resolve(r)}getAllFromCollectionGroup(t,e,n,r){Us()}As(t,e){return fi.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new Nc(this)}getSize(t){return fi.resolve(this.size)}}class Nc extends Ic{constructor(t){super(),this.Yn=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.Yn.addEntry(t,r)):this.Yn.removeEntry(n)})),fi.waitFor(e)}getFromCache(t,e){return this.Yn.getEntry(t,e)}getAllFromCache(t,e){return this.Yn.getEntries(t,e)}}
1265
+ /**
1266
+ * @license
1267
+ * Copyright 2017 Google LLC
1268
+ *
1269
+ * Licensed under the Apache License, Version 2.0 (the "License");
1270
+ * you may not use this file except in compliance with the License.
1271
+ * You may obtain a copy of the License at
1272
+ *
1273
+ * http://www.apache.org/licenses/LICENSE-2.0
1274
+ *
1275
+ * Unless required by applicable law or agreed to in writing, software
1276
+ * distributed under the License is distributed on an "AS IS" BASIS,
1277
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1278
+ * See the License for the specific language governing permissions and
1279
+ * limitations under the License.
1280
+ */class Dc{constructor(t){this.persistence=t,this.Rs=new Ia((t=>To(t)),So),this.lastRemoteSnapshotVersion=ni.min(),this.highestTargetId=0,this.bs=0,this.Ps=new Sc,this.targetCount=0,this.vs=wc.Pn()}forEachTarget(t,e){return this.Rs.forEach(((t,n)=>e(n))),fi.resolve()}getLastRemoteSnapshotVersion(t){return fi.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return fi.resolve(this.bs)}allocateTargetId(t){return this.highestTargetId=this.vs.next(),fi.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.bs&&(this.bs=e),fi.resolve()}Dn(t){this.Rs.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.vs=new wc(e),this.highestTargetId=e),t.sequenceNumber>this.bs&&(this.bs=t.sequenceNumber)}addTargetData(t,e){return this.Dn(e),this.targetCount+=1,fi.resolve()}updateTargetData(t,e){return this.Dn(e),fi.resolve()}removeTargetData(t,e){return this.Rs.delete(e.target),this.Ps.ls(e.targetId),this.targetCount-=1,fi.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Rs.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Rs.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),fi.waitFor(s).next((()=>r))}getTargetCount(t){return fi.resolve(this.targetCount)}getTargetData(t,e){const n=this.Rs.get(e)||null;return fi.resolve(n)}addMatchingKeys(t,e,n){return this.Ps.us(e,n),fi.resolve()}removeMatchingKeys(t,e,n){this.Ps.hs(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),fi.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Ps.ls(e),fi.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Ps.ds(e);return fi.resolve(n)}containsKey(t,e){return fi.resolve(this.Ps.containsKey(e))}}
1281
+ /**
1282
+ * @license
1283
+ * Copyright 2017 Google LLC
1284
+ *
1285
+ * Licensed under the Apache License, Version 2.0 (the "License");
1286
+ * you may not use this file except in compliance with the License.
1287
+ * You may obtain a copy of the License at
1288
+ *
1289
+ * http://www.apache.org/licenses/LICENSE-2.0
1290
+ *
1291
+ * Unless required by applicable law or agreed to in writing, software
1292
+ * distributed under the License is distributed on an "AS IS" BASIS,
1293
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1294
+ * See the License for the specific language governing permissions and
1295
+ * limitations under the License.
1296
+ */class Rc{constructor(t,e){this.Vs={},this.overlays={},this.Ss=new gi(0),this.Ds=!1,this.Ds=!0,this.referenceDelegate=t(this),this.Cs=new Dc(this),this.indexManager=new yc,this.remoteDocumentCache=function(t){return new kc(t)}((t=>this.referenceDelegate.xs(t))),this.yt=new gc(e),this.Ns=new _c(this.yt)}start(){return Promise.resolve()}shutdown(){return this.Ds=!1,Promise.resolve()}get started(){return this.Ds}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new Tc,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Vs[t.toKey()];return n||(n=new Cc(e,this.referenceDelegate),this.Vs[t.toKey()]=n),n}getTargetCache(){return this.Cs}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ns}runTransaction(t,e,n){Ls("MemoryPersistence","Starting transaction:",t);const r=new Oc(this.Ss.next());return this.referenceDelegate.ks(),n(r).next((t=>this.referenceDelegate.Os(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Ms(t,e){return fi.or(Object.values(this.Vs).map((n=>()=>n.containsKey(t,e))))}}class Oc extends li{constructor(t){super(),this.currentSequenceNumber=t}}class Lc{constructor(t){this.persistence=t,this.Fs=new Sc,this.$s=null}static Bs(t){return new Lc(t)}get Ls(){if(this.$s)return this.$s;throw Us()}addReference(t,e,n){return this.Fs.addReference(n,e),this.Ls.delete(n.toString()),fi.resolve()}removeReference(t,e,n){return this.Fs.removeReference(n,e),this.Ls.add(n.toString()),fi.resolve()}markPotentiallyOrphaned(t,e){return this.Ls.add(e.toString()),fi.resolve()}removeTarget(t,e){this.Fs.ls(e.targetId).forEach((t=>this.Ls.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Ls.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}ks(){this.$s=new Set}Os(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return fi.forEach(this.Ls,(n=>{const r=ai.fromPath(n);return this.qs(t,r).next((t=>{t||e.removeEntry(r,ni.min())}))})).next((()=>(this.$s=null,e.apply(t))))}updateLimboDocument(t,e){return this.qs(t,e).next((t=>{t?this.Ls.delete(e.toString()):this.Ls.add(e.toString())}))}xs(t){return 0}qs(t,e){return fi.or([()=>fi.resolve(this.Fs.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Ms(t,e)])}}
1297
+ /**
1298
+ * @license
1299
+ * Copyright 2017 Google LLC
1300
+ *
1301
+ * Licensed under the Apache License, Version 2.0 (the "License");
1302
+ * you may not use this file except in compliance with the License.
1303
+ * You may obtain a copy of the License at
1304
+ *
1305
+ * http://www.apache.org/licenses/LICENSE-2.0
1306
+ *
1307
+ * Unless required by applicable law or agreed to in writing, software
1308
+ * distributed under the License is distributed on an "AS IS" BASIS,
1309
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1310
+ * See the License for the specific language governing permissions and
1311
+ * limitations under the License.
1312
+ */class Pc{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.Si=n,this.Di=r}static Ci(t,e){let n=Da(),r=Da();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new Pc(t,e.fromCache,n,r)}}
1313
+ /**
1314
+ * @license
1315
+ * Copyright 2019 Google LLC
1316
+ *
1317
+ * Licensed under the Apache License, Version 2.0 (the "License");
1318
+ * you may not use this file except in compliance with the License.
1319
+ * You may obtain a copy of the License at
1320
+ *
1321
+ * http://www.apache.org/licenses/LICENSE-2.0
1322
+ *
1323
+ * Unless required by applicable law or agreed to in writing, software
1324
+ * distributed under the License is distributed on an "AS IS" BASIS,
1325
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1326
+ * See the License for the specific language governing permissions and
1327
+ * limitations under the License.
1328
+ */class Mc{constructor(){this.xi=!1}initialize(t,e){this.Ni=t,this.indexManager=e,this.xi=!0}getDocumentsMatchingQuery(t,e,n,r){return this.ki(t,e).next((s=>s||this.Oi(t,e,r,n))).next((n=>n||this.Mi(t,e)))}ki(t,e){if(No(e))return fi.resolve(null);let n=Po(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=xo(e,null,"F"),n=Po(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Da(...r);return this.Ni.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Fi(e,r);return this.$i(e,i,s,n.readTime)?this.ki(t,xo(e,null,"F")):this.Bi(t,i,e,n)}))))})))))}Oi(t,e,n,r){return No(e)||r.isEqual(ni.min())?this.Mi(t,e):this.Ni.getDocuments(t,n).next((s=>{const i=this.Fi(e,s);return this.$i(e,i,n,r)?this.Mi(t,e):(Os()<=C.DEBUG&&Ls("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),Vo(e)),this.Bi(t,i,e,function(t,e){const n=t.toTimestamp().seconds,r=t.toTimestamp().nanoseconds+1,s=ni.fromTimestamp(1e9===r?new ei(n+1,0):new ei(n,r));return new ui(s,ai.empty(),e)}(r,-1)))}))}Fi(t,e){let n=new yo(jo(t));return e.forEach(((e,r)=>{qo(t,r)&&(n=n.add(r))})),n}$i(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Mi(t,e){return Os()<=C.DEBUG&&Ls("QueryEngine","Using full collection scan to execute query:",Vo(e)),this.Ni.getDocumentsMatchingQuery(t,e,ui.min())}Bi(t,e,n,r){return this.Ni.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}
1329
+ /**
1330
+ * @license
1331
+ * Copyright 2020 Google LLC
1332
+ *
1333
+ * Licensed under the Apache License, Version 2.0 (the "License");
1334
+ * you may not use this file except in compliance with the License.
1335
+ * You may obtain a copy of the License at
1336
+ *
1337
+ * http://www.apache.org/licenses/LICENSE-2.0
1338
+ *
1339
+ * Unless required by applicable law or agreed to in writing, software
1340
+ * distributed under the License is distributed on an "AS IS" BASIS,
1341
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1342
+ * See the License for the specific language governing permissions and
1343
+ * limitations under the License.
1344
+ */class xc{constructor(t,e,n,r){this.persistence=t,this.Li=e,this.yt=r,this.qi=new po(Zs),this.Ui=new Ia((t=>To(t)),So),this.Ki=new Map,this.Gi=t.getRemoteDocumentCache(),this.Cs=t.getTargetCache(),this.Ns=t.getBundleCache(),this.Qi(n)}Qi(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Ec(this.Gi,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Gi.setIndexManager(this.indexManager),this.Li.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.qi)))}}async function Uc(t,e){const n=Vs(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n.Qi(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Da();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({ji:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function Fc(t){const e=Vs(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Cs.getLastRemoteSnapshotVersion(t)))}function Vc(t,e){const n=Vs(t),r=e.snapshotVersion;let s=n.qi;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.Gi.newChangeBuffer({trackRemovals:!0});s=n.qi;const o=[];e.targetChanges.forEach(((i,a)=>{const c=s.get(a);if(!c)return;o.push(n.Cs.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Cs.addMatchingKeys(t,i.addedDocuments,a))));let u=c.withSequenceNumber(t.currentSequenceNumber);e.targetMismatches.has(a)?u=u.withResumeToken(_i.EMPTY_BYTE_STRING,ni.min()).withLastLimboFreeSnapshotVersion(ni.min()):i.resumeToken.approximateByteSize()>0&&(u=u.withResumeToken(i.resumeToken,r)),s=s.insert(a,u),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||(e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0)}(c,u,i)&&o.push(n.Cs.updateTargetData(t,u))}));let a=Ea(),c=Da();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(function(t,e,n){let r=Da(),s=Da();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=Ea();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ni.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):Ls("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{Wi:r,zi:s}}))}(t,i,e.documentUpdates).next((t=>{a=t.Wi,c=t.zi}))),!r.isEqual(ni.min())){const e=n.Cs.getLastRemoteSnapshotVersion(t).next((e=>n.Cs.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return fi.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,c))).next((()=>a))})).then((t=>(n.qi=s,t)))}async function qc(t,e,n){const r=Vs(t),s=r.qi.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!pi(t))throw t;Ls("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.qi=r.qi.remove(e),r.Ui.delete(s.target)}function jc(t,e,n){const r=Vs(t);let s=ni.min(),i=Da();return r.persistence.runTransaction("Execute query","readonly",(t=>function(t,e,n){const r=Vs(t),s=r.Ui.get(n);return void 0!==s?fi.resolve(r.qi.get(s)):r.Cs.getTargetData(e,n)}(r,t,Po(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Cs.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.Li.getDocumentsMatchingQuery(t,e,n?s:ni.min(),n?i:Da()))).next((t=>(function(t,e,n){let r=t.Ki.get(e)||ni.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.Ki.set(e,r)}(r,function(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}(e),t),{documents:t,Hi:i})))))}class Bc{constructor(){this.activeTargetIds=Oa()}er(t){this.activeTargetIds=this.activeTargetIds.add(t)}nr(t){this.activeTargetIds=this.activeTargetIds.delete(t)}tr(){const t={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(t)}}class zc{constructor(){this.Lr=new Bc,this.qr={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.Lr.er(t),this.qr[t]||"not-current"}updateQueryState(t,e,n){this.qr[t]=e}removeLocalQueryTarget(t){this.Lr.nr(t)}isLocalQueryTarget(t){return this.Lr.activeTargetIds.has(t)}clearQueryState(t){delete this.qr[t]}getAllActiveQueryTargets(){return this.Lr.activeTargetIds}isActiveQueryTarget(t){return this.Lr.activeTargetIds.has(t)}start(){return this.Lr=new Bc,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}
1345
+ /**
1346
+ * @license
1347
+ * Copyright 2019 Google LLC
1348
+ *
1349
+ * Licensed under the Apache License, Version 2.0 (the "License");
1350
+ * you may not use this file except in compliance with the License.
1351
+ * You may obtain a copy of the License at
1352
+ *
1353
+ * http://www.apache.org/licenses/LICENSE-2.0
1354
+ *
1355
+ * Unless required by applicable law or agreed to in writing, software
1356
+ * distributed under the License is distributed on an "AS IS" BASIS,
1357
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1358
+ * See the License for the specific language governing permissions and
1359
+ * limitations under the License.
1360
+ */class $c{Ur(t){}shutdown(){}}
1361
+ /**
1362
+ * @license
1363
+ * Copyright 2019 Google LLC
1364
+ *
1365
+ * Licensed under the Apache License, Version 2.0 (the "License");
1366
+ * you may not use this file except in compliance with the License.
1367
+ * You may obtain a copy of the License at
1368
+ *
1369
+ * http://www.apache.org/licenses/LICENSE-2.0
1370
+ *
1371
+ * Unless required by applicable law or agreed to in writing, software
1372
+ * distributed under the License is distributed on an "AS IS" BASIS,
1373
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1374
+ * See the License for the specific language governing permissions and
1375
+ * limitations under the License.
1376
+ */class Kc{constructor(){this.Kr=()=>this.Gr(),this.Qr=()=>this.jr(),this.Wr=[],this.zr()}Ur(t){this.Wr.push(t)}shutdown(){window.removeEventListener("online",this.Kr),window.removeEventListener("offline",this.Qr)}zr(){window.addEventListener("online",this.Kr),window.addEventListener("offline",this.Qr)}Gr(){Ls("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.Wr)t(0)}jr(){Ls("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.Wr)t(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}
1377
+ /**
1378
+ * @license
1379
+ * Copyright 2020 Google LLC
1380
+ *
1381
+ * Licensed under the Apache License, Version 2.0 (the "License");
1382
+ * you may not use this file except in compliance with the License.
1383
+ * You may obtain a copy of the License at
1384
+ *
1385
+ * http://www.apache.org/licenses/LICENSE-2.0
1386
+ *
1387
+ * Unless required by applicable law or agreed to in writing, software
1388
+ * distributed under the License is distributed on an "AS IS" BASIS,
1389
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1390
+ * See the License for the specific language governing permissions and
1391
+ * limitations under the License.
1392
+ */const Hc={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};
1393
+ /**
1394
+ * @license
1395
+ * Copyright 2017 Google LLC
1396
+ *
1397
+ * Licensed under the Apache License, Version 2.0 (the "License");
1398
+ * you may not use this file except in compliance with the License.
1399
+ * You may obtain a copy of the License at
1400
+ *
1401
+ * http://www.apache.org/licenses/LICENSE-2.0
1402
+ *
1403
+ * Unless required by applicable law or agreed to in writing, software
1404
+ * distributed under the License is distributed on an "AS IS" BASIS,
1405
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1406
+ * See the License for the specific language governing permissions and
1407
+ * limitations under the License.
1408
+ */class Gc{constructor(t){this.Hr=t.Hr,this.Jr=t.Jr}Yr(t){this.Xr=t}Zr(t){this.eo=t}onMessage(t){this.no=t}close(){this.Jr()}send(t){this.Hr(t)}so(){this.Xr()}io(t){this.eo(t)}ro(t){this.no(t)}}
1409
+ /**
1410
+ * @license
1411
+ * Copyright 2017 Google LLC
1412
+ *
1413
+ * Licensed under the Apache License, Version 2.0 (the "License");
1414
+ * you may not use this file except in compliance with the License.
1415
+ * You may obtain a copy of the License at
1416
+ *
1417
+ * http://www.apache.org/licenses/LICENSE-2.0
1418
+ *
1419
+ * Unless required by applicable law or agreed to in writing, software
1420
+ * distributed under the License is distributed on an "AS IS" BASIS,
1421
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1422
+ * See the License for the specific language governing permissions and
1423
+ * limitations under the License.
1424
+ */class Wc extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http";this.oo=e+"://"+t.host,this.uo="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}get co(){return!1}ao(t,e,n,r,s){const i=this.ho(t,e);Ls("RestConnection","Sending: ",i,n);const o={};return this.lo(o,r,s),this.fo(t,i,o,n).then((t=>(Ls("RestConnection","Received: ",t),t)),(e=>{throw Ms("RestConnection",`${t} failed with error: `,e,"url: ",i,"request:",n),e}))}_o(t,e,n,r,s,i){return this.ao(t,e,n,r,s)}lo(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Ds,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}ho(t,e){const n=Hc[t];return`${this.oo}/v1/${e}:${n}`}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams}fo(t,e,n,r){return new Promise(((s,i)=>{const o=new Cs;o.setWithCredentials(!0),o.listenOnce(bs.COMPLETE,(()=>{try{switch(o.getLastErrorCode()){case Is.NO_ERROR:const e=o.getResponseJson();Ls("Connection","XHR received:",JSON.stringify(e)),s(e);break;case Is.TIMEOUT:Ls("Connection",'RPC "'+t+'" timed out'),i(new js(qs.DEADLINE_EXCEEDED,"Request time out"));break;case Is.HTTP_ERROR:const n=o.getStatus();if(Ls("Connection",'RPC "'+t+'" failed with status:',n,"response text:",o.getResponseText()),n>0){let t=o.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(qs).indexOf(e)>=0?e:qs.UNKNOWN}(e.status);i(new js(t,e.message))}else i(new js(qs.UNKNOWN,"Server responded with status "+o.getStatus()))}else i(new js(qs.UNAVAILABLE,"Connection failed."));break;default:Us()}}finally{Ls("Connection",'RPC "'+t+'" completed.')}}));const a=JSON.stringify(r);o.send(e,"POST",a,n,15)}))}wo(t,e,n){const r=[this.oo,"/","google.firestore.v1.Firestore","/",t,"/channel"],s=new gs,i=fn(),o={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};this.useFetchStreams&&(o.xmlHttpFactory=new Ss({})),this.lo(o.initMessageHeaders,e,n),o.encodeInitMessageHeaders=!0;const a=r.join("");Ls("Connection","Creating WebChannel: "+a,o);const c=s.createWebChannel(a,o);let u=!1,h=!1;const l=new Gc({Hr:t=>{h?Ls("Connection","Not sending because WebChannel is closed:",t):(u||(Ls("Connection","Opening WebChannel transport."),c.open(),u=!0),Ls("Connection","WebChannel sending:",t),c.send(t))},Jr:()=>c.close()}),d=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return d(c,As.EventType.OPEN,(()=>{h||Ls("Connection","WebChannel transport opened.")})),d(c,As.EventType.CLOSE,(()=>{h||(h=!0,Ls("Connection","WebChannel transport closed"),l.io())})),d(c,As.EventType.ERROR,(t=>{h||(h=!0,Ms("Connection","WebChannel transport errored:",t),l.io(new js(qs.UNAVAILABLE,"The operation could not be completed")))})),d(c,As.EventType.MESSAGE,(t=>{var e;if(!h){const n=t.data[0];Fs(!!n);const r=n,s=r.error||(null===(e=r[0])||void 0===e?void 0:e.error);if(s){Ls("Connection","WebChannel received error:",s);const t=s.status;let e=function(t){const e=ya[t];if(void 0!==e)return wa(e)}(t),n=s.message;void 0===e&&(e=qs.INTERNAL,n="Unknown error status: "+t+" with message "+s.message),h=!0,l.io(new js(e,n)),c.close()}else Ls("Connection","WebChannel received:",n),l.ro(n)}})),d(i,Es.STAT_EVENT,(t=>{t.stat===_s?Ls("Connection","Detected buffering proxy"):t.stat===Ts&&Ls("Connection","Detected no buffering proxy")})),setTimeout((()=>{l.so()}),0),l}}function Qc(){return"undefined"!=typeof document?document:null}
1425
+ /**
1426
+ * @license
1427
+ * Copyright 2020 Google LLC
1428
+ *
1429
+ * Licensed under the Apache License, Version 2.0 (the "License");
1430
+ * you may not use this file except in compliance with the License.
1431
+ * You may obtain a copy of the License at
1432
+ *
1433
+ * http://www.apache.org/licenses/LICENSE-2.0
1434
+ *
1435
+ * Unless required by applicable law or agreed to in writing, software
1436
+ * distributed under the License is distributed on an "AS IS" BASIS,
1437
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1438
+ * See the License for the specific language governing permissions and
1439
+ * limitations under the License.
1440
+ */function Jc(t){return new Ka(t,!0)}class Xc{constructor(t,e,n=1e3,r=1.5,s=6e4){this.Hs=t,this.timerId=e,this.mo=n,this.yo=r,this.po=s,this.Io=0,this.To=null,this.Eo=Date.now(),this.reset()}reset(){this.Io=0}Ao(){this.Io=this.po}Ro(t){this.cancel();const e=Math.floor(this.Io+this.bo()),n=Math.max(0,Date.now()-this.Eo),r=Math.max(0,e-n);r>0&&Ls("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Io} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.To=this.Hs.enqueueAfterDelay(this.timerId,r,(()=>(this.Eo=Date.now(),t()))),this.Io*=this.yo,this.Io<this.mo&&(this.Io=this.mo),this.Io>this.po&&(this.Io=this.po)}Po(){null!==this.To&&(this.To.skipDelay(),this.To=null)}cancel(){null!==this.To&&(this.To.cancel(),this.To=null)}bo(){return(Math.random()-.5)*this.Io}}
1441
+ /**
1442
+ * @license
1443
+ * Copyright 2017 Google LLC
1444
+ *
1445
+ * Licensed under the Apache License, Version 2.0 (the "License");
1446
+ * you may not use this file except in compliance with the License.
1447
+ * You may obtain a copy of the License at
1448
+ *
1449
+ * http://www.apache.org/licenses/LICENSE-2.0
1450
+ *
1451
+ * Unless required by applicable law or agreed to in writing, software
1452
+ * distributed under the License is distributed on an "AS IS" BASIS,
1453
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1454
+ * See the License for the specific language governing permissions and
1455
+ * limitations under the License.
1456
+ */class Yc{constructor(t,e,n,r,s,i,o,a){this.Hs=t,this.vo=n,this.Vo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.So=0,this.Do=null,this.Co=null,this.stream=null,this.xo=new Xc(t,e)}No(){return 1===this.state||5===this.state||this.ko()}ko(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Oo()}async stop(){this.No()&&await this.close(0)}Mo(){this.state=0,this.xo.reset()}Fo(){this.ko()&&null===this.Do&&(this.Do=this.Hs.enqueueAfterDelay(this.vo,6e4,(()=>this.$o())))}Bo(t){this.Lo(),this.stream.send(t)}async $o(){if(this.ko())return this.close(0)}Lo(){this.Do&&(this.Do.cancel(),this.Do=null)}qo(){this.Co&&(this.Co.cancel(),this.Co=null)}async close(t,e){this.Lo(),this.qo(),this.xo.cancel(),this.So++,4!==t?this.xo.reset():e&&e.code===qs.RESOURCE_EXHAUSTED?(Ps(e.toString()),Ps("Using maximum backoff delay to prevent overloading the backend."),this.xo.Ao()):e&&e.code===qs.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.Uo(),this.stream.close(),this.stream=null),this.state=t,await this.listener.Zr(e)}Uo(){}auth(){this.state=1;const t=this.Ko(this.So),e=this.So;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.So===e&&this.Go(t,n)}),(e=>{t((()=>{const t=new js(qs.UNKNOWN,"Fetching auth token failed: "+e.message);return this.Qo(t)}))}))}Go(t,e){const n=this.Ko(this.So);this.stream=this.jo(t,e),this.stream.Yr((()=>{n((()=>(this.state=2,this.Co=this.Hs.enqueueAfterDelay(this.Vo,1e4,(()=>(this.ko()&&(this.state=3),Promise.resolve()))),this.listener.Yr())))})),this.stream.Zr((t=>{n((()=>this.Qo(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Oo(){this.state=5,this.xo.Ro((async()=>{this.state=0,this.start()}))}Qo(t){return Ls("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}Ko(t){return e=>{this.Hs.enqueueAndForget((()=>this.So===t?e():(Ls("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class Zc extends Yc{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.yt=s}jo(t,e){return this.connection.wo("Listen",t,e)}onMessage(t){this.xo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Us()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.wt?(Fs(void 0===e||"string"==typeof e),_i.fromBase64String(e||"")):(Fs(void 0===e||e instanceof Uint8Array),_i.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?qs.UNKNOWN:wa(t.code);return new js(e,t.message||"")}(o);n=new Ua(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=Xa(t,r.document.name),i=Wa(r.document.updateTime),o=r.document.createTime?Wa(r.document.createTime):ni.min(),a=new Io({mapValue:{fields:r.document.fields}}),c=bo.newFoundDocument(s,i,o,a),u=r.targetIds||[],h=r.removedTargetIds||[];n=new Ma(u,h,c.key,c)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=Xa(t,r.document),i=r.readTime?Wa(r.readTime):ni.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new Ma([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=Xa(t,r.document),i=r.removedTargetIds||[];n=new Ma([],i,s,null)}else{if(!("filter"in e))return Us();{e.filter;const t=e.filter;t.targetId;const r=t.count||0,s=new ma(r),i=t.targetId;n=new xa(i,s)}}return n}(this.yt,t),n=function(t){if(!("targetChange"in t))return ni.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ni.min():e.readTime?Wa(e.readTime):ni.min()}(t);return this.listener.Wo(e,n)}zo(t){const e={};e.database=Za(this.yt),e.addTarget=function(t,e){let n;const r=e.target;return n=Ao(r)?{documents:ec(t,r)}:{query:nc(t,r)},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0?n.resumeToken=Ga(t,e.resumeToken):e.snapshotVersion.compareTo(ni.min())>0&&(n.readTime=Ha(t,e.snapshotVersion.toTimestamp())),n}(this.yt,t);const n=function(t,e){const n=function(t,e){switch(e){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return Us()}}(0,e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.yt,t);n&&(e.labels=n),this.Bo(e)}Ho(t){const e={};e.database=Za(this.yt),e.removeTarget=t,this.Bo(e)}}
1457
+ /**
1458
+ * @license
1459
+ * Copyright 2017 Google LLC
1460
+ *
1461
+ * Licensed under the Apache License, Version 2.0 (the "License");
1462
+ * you may not use this file except in compliance with the License.
1463
+ * You may obtain a copy of the License at
1464
+ *
1465
+ * http://www.apache.org/licenses/LICENSE-2.0
1466
+ *
1467
+ * Unless required by applicable law or agreed to in writing, software
1468
+ * distributed under the License is distributed on an "AS IS" BASIS,
1469
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1470
+ * See the License for the specific language governing permissions and
1471
+ * limitations under the License.
1472
+ */class tu extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.yt=r,this.nu=!1}su(){if(this.nu)throw new js(qs.FAILED_PRECONDITION,"The client has already been terminated.")}ao(t,e,n){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([r,s])=>this.connection.ao(t,e,n,r,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===qs.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new js(qs.UNKNOWN,t.toString())}))}_o(t,e,n,r){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection._o(t,e,n,s,i,r))).catch((t=>{throw"FirebaseError"===t.name?(t.code===qs.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new js(qs.UNKNOWN,t.toString())}))}terminate(){this.nu=!0}}class eu{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.iu=0,this.ru=null,this.ou=!0}uu(){0===this.iu&&(this.cu("Unknown"),this.ru=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.ru=null,this.au("Backend didn't respond within 10 seconds."),this.cu("Offline"),Promise.resolve()))))}hu(t){"Online"===this.state?this.cu("Unknown"):(this.iu++,this.iu>=1&&(this.lu(),this.au(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.cu("Offline")))}set(t){this.lu(),this.iu=0,"Online"===t&&(this.ou=!1),this.cu(t)}cu(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}au(t){const e=`Could not reach Cloud Firestore backend. ${t}\nThis 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.ou?(Ps(e),this.ou=!1):Ls("OnlineStateTracker",e)}lu(){null!==this.ru&&(this.ru.cancel(),this.ru=null)}}
1473
+ /**
1474
+ * @license
1475
+ * Copyright 2017 Google LLC
1476
+ *
1477
+ * Licensed under the Apache License, Version 2.0 (the "License");
1478
+ * you may not use this file except in compliance with the License.
1479
+ * You may obtain a copy of the License at
1480
+ *
1481
+ * http://www.apache.org/licenses/LICENSE-2.0
1482
+ *
1483
+ * Unless required by applicable law or agreed to in writing, software
1484
+ * distributed under the License is distributed on an "AS IS" BASIS,
1485
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1486
+ * See the License for the specific language governing permissions and
1487
+ * limitations under the License.
1488
+ */class nu{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.fu=[],this.du=new Map,this._u=new Set,this.wu=[],this.mu=s,this.mu.Ur((t=>{n.enqueueAndForget((async()=>{lu(this)&&(Ls("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Vs(t);e._u.add(4),await su(e),e.gu.set("Unknown"),e._u.delete(4),await ru(e)}(this))}))})),this.gu=new eu(n,r)}}async function ru(t){if(lu(t))for(const e of t.wu)await e(!0)}async function su(t){for(const e of t.wu)await e(!1)}function iu(t,e){const n=Vs(t);n.du.has(e.targetId)||(n.du.set(e.targetId,e),hu(n)?uu(n):vu(n).ko()&&au(n,e))}function ou(t,e){const n=Vs(t),r=vu(n);n.du.delete(e),r.ko()&&cu(n,e),0===n.du.size&&(r.ko()?r.Fo():lu(n)&&n.gu.set("Unknown"))}function au(t,e){t.yu.Ot(e.targetId),vu(t).zo(e)}function cu(t,e){t.yu.Ot(e),vu(t).Ho(e)}function uu(t){t.yu=new Va({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),ne:e=>t.du.get(e)||null}),vu(t).start(),t.gu.uu()}function hu(t){return lu(t)&&!vu(t).No()&&t.du.size>0}function lu(t){return 0===Vs(t)._u.size}function du(t){t.yu=void 0}async function fu(t){t.du.forEach(((e,n)=>{au(t,e)}))}async function pu(t,e){du(t),hu(t)?(t.gu.hu(e),uu(t)):t.gu.set("Unknown")}async function gu(t,e,n){if(t.gu.set("Online"),e instanceof Ua&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.du.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.du.delete(r),t.yu.removeTarget(r))}(t,e)}catch(n){Ls("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await mu(t,n)}else if(e instanceof Ma?t.yu.Kt(e):e instanceof xa?t.yu.Jt(e):t.yu.jt(e),!n.isEqual(ni.min()))try{const e=await Fc(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.yu.Zt(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.du.get(r);s&&t.du.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach((e=>{const n=t.du.get(e);if(!n)return;t.du.set(e,n.withResumeToken(_i.EMPTY_BYTE_STRING,n.snapshotVersion)),cu(t,e);const r=new pc(n.target,e,1,n.sequenceNumber);au(t,r)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){Ls("RemoteStore","Failed to raise snapshot:",e),await mu(t,e)}}async function mu(t,e,n){if(!pi(e))throw e;t._u.add(1),await su(t),t.gu.set("Offline"),n||(n=()=>Fc(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{Ls("RemoteStore","Retrying IndexedDB access"),await n(),t._u.delete(1),await ru(t)}))}async function yu(t,e){const n=Vs(t);n.asyncQueue.verifyOperationInProgress(),Ls("RemoteStore","RemoteStore received new credentials");const r=lu(n);n._u.add(3),await su(n),r&&n.gu.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n._u.delete(3),await ru(n)}function vu(t){return t.pu||(t.pu=function(t,e,n){const r=Vs(t);return r.su(),new Zc(e,r.connection,r.authCredentials,r.appCheckCredentials,r.yt,n)
1489
+ /**
1490
+ * @license
1491
+ * Copyright 2018 Google LLC
1492
+ *
1493
+ * Licensed under the Apache License, Version 2.0 (the "License");
1494
+ * you may not use this file except in compliance with the License.
1495
+ * You may obtain a copy of the License at
1496
+ *
1497
+ * http://www.apache.org/licenses/LICENSE-2.0
1498
+ *
1499
+ * Unless required by applicable law or agreed to in writing, software
1500
+ * distributed under the License is distributed on an "AS IS" BASIS,
1501
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1502
+ * See the License for the specific language governing permissions and
1503
+ * limitations under the License.
1504
+ */}(t.datastore,t.asyncQueue,{Yr:fu.bind(null,t),Zr:pu.bind(null,t),Wo:gu.bind(null,t)}),t.wu.push((async e=>{e?(t.pu.Mo(),hu(t)?uu(t):t.gu.set("Unknown")):(await t.pu.stop(),du(t))}))),t.pu
1505
+ /**
1506
+ * @license
1507
+ * Copyright 2017 Google LLC
1508
+ *
1509
+ * Licensed under the Apache License, Version 2.0 (the "License");
1510
+ * you may not use this file except in compliance with the License.
1511
+ * You may obtain a copy of the License at
1512
+ *
1513
+ * http://www.apache.org/licenses/LICENSE-2.0
1514
+ *
1515
+ * Unless required by applicable law or agreed to in writing, software
1516
+ * distributed under the License is distributed on an "AS IS" BASIS,
1517
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1518
+ * See the License for the specific language governing permissions and
1519
+ * limitations under the License.
1520
+ */}class wu{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new Bs,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new wu(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new js(qs.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Iu(t,e){if(Ps("AsyncQueue",`${e}: ${t}`),pi(t))return new js(qs.UNAVAILABLE,`${e}: ${t}`);throw t}
1521
+ /**
1522
+ * @license
1523
+ * Copyright 2017 Google LLC
1524
+ *
1525
+ * Licensed under the Apache License, Version 2.0 (the "License");
1526
+ * you may not use this file except in compliance with the License.
1527
+ * You may obtain a copy of the License at
1528
+ *
1529
+ * http://www.apache.org/licenses/LICENSE-2.0
1530
+ *
1531
+ * Unless required by applicable law or agreed to in writing, software
1532
+ * distributed under the License is distributed on an "AS IS" BASIS,
1533
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1534
+ * See the License for the specific language governing permissions and
1535
+ * limitations under the License.
1536
+ */class bu{constructor(t){this.comparator=t?(e,n)=>t(e,n)||ai.comparator(e.key,n.key):(t,e)=>ai.comparator(t.key,e.key),this.keyedMap=Ta(),this.sortedSet=new po(this.comparator)}static emptySet(t){return new bu(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof bu))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new bu;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}
1537
+ /**
1538
+ * @license
1539
+ * Copyright 2017 Google LLC
1540
+ *
1541
+ * Licensed under the Apache License, Version 2.0 (the "License");
1542
+ * you may not use this file except in compliance with the License.
1543
+ * You may obtain a copy of the License at
1544
+ *
1545
+ * http://www.apache.org/licenses/LICENSE-2.0
1546
+ *
1547
+ * Unless required by applicable law or agreed to in writing, software
1548
+ * distributed under the License is distributed on an "AS IS" BASIS,
1549
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1550
+ * See the License for the specific language governing permissions and
1551
+ * limitations under the License.
1552
+ */class Eu{constructor(){this.Tu=new po(ai.comparator)}track(t){const e=t.doc.key,n=this.Tu.get(e);n?0!==t.type&&3===n.type?this.Tu=this.Tu.insert(e,t):3===t.type&&1!==n.type?this.Tu=this.Tu.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.Tu=this.Tu.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.Tu=this.Tu.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.Tu=this.Tu.remove(e):1===t.type&&2===n.type?this.Tu=this.Tu.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.Tu=this.Tu.insert(e,{type:2,doc:t.doc}):Us():this.Tu=this.Tu.insert(e,t)}Eu(){const t=[];return this.Tu.inorderTraversal(((e,n)=>{t.push(n)})),t}}class _u{constructor(t,e,n,r,s,i,o,a,c){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=c}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new _u(t,e,bu.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&Uo(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t].type!==n[t].type||!e[t].doc.isEqual(n[t].doc))return!1;return!0}}
1553
+ /**
1554
+ * @license
1555
+ * Copyright 2017 Google LLC
1556
+ *
1557
+ * Licensed under the Apache License, Version 2.0 (the "License");
1558
+ * you may not use this file except in compliance with the License.
1559
+ * You may obtain a copy of the License at
1560
+ *
1561
+ * http://www.apache.org/licenses/LICENSE-2.0
1562
+ *
1563
+ * Unless required by applicable law or agreed to in writing, software
1564
+ * distributed under the License is distributed on an "AS IS" BASIS,
1565
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1566
+ * See the License for the specific language governing permissions and
1567
+ * limitations under the License.
1568
+ */class Tu{constructor(){this.Au=void 0,this.listeners=[]}}class Su{constructor(){this.queries=new Ia((t=>Fo(t)),Uo),this.onlineState="Unknown",this.Ru=new Set}}async function Au(t,e){const n=Vs(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new Tu),s)try{i.Au=await n.onListen(r)}catch(t){const n=Iu(t,`Initialization of query '${Vo(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.listeners.push(e),e.bu(n.onlineState),i.Au&&e.Pu(i.Au)&&Du(n)}async function Cu(t,e){const n=Vs(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.listeners.indexOf(e);t>=0&&(i.listeners.splice(t,1),s=0===i.listeners.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function ku(t,e){const n=Vs(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.listeners)e.Pu(t)&&(r=!0);s.Au=t}}r&&Du(n)}function Nu(t,e,n){const r=Vs(t),s=r.queries.get(e);if(s)for(const t of s.listeners)t.onError(n);r.queries.delete(e)}function Du(t){t.Ru.forEach((t=>{t.next()}))}class Ru{constructor(t,e,n){this.query=t,this.vu=e,this.Vu=!1,this.Su=null,this.onlineState="Unknown",this.options=n||{}}Pu(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new _u(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Vu?this.Du(t)&&(this.vu.next(t),e=!0):this.Cu(t,this.onlineState)&&(this.xu(t),e=!0),this.Su=t,e}onError(t){this.vu.error(t)}bu(t){this.onlineState=t;let e=!1;return this.Su&&!this.Vu&&this.Cu(this.Su,t)&&(this.xu(this.Su),e=!0),e}Cu(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Nu||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}Du(t){if(t.docChanges.length>0)return!0;const e=this.Su&&this.Su.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}xu(t){t=_u.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.Vu=!0,this.vu.next(t)}}
1569
+ /**
1570
+ * @license
1571
+ * Copyright 2017 Google LLC
1572
+ *
1573
+ * Licensed under the Apache License, Version 2.0 (the "License");
1574
+ * you may not use this file except in compliance with the License.
1575
+ * You may obtain a copy of the License at
1576
+ *
1577
+ * http://www.apache.org/licenses/LICENSE-2.0
1578
+ *
1579
+ * Unless required by applicable law or agreed to in writing, software
1580
+ * distributed under the License is distributed on an "AS IS" BASIS,
1581
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1582
+ * See the License for the specific language governing permissions and
1583
+ * limitations under the License.
1584
+ */class Ou{constructor(t){this.key=t}}class Lu{constructor(t){this.key=t}}class Pu{constructor(t,e){this.query=t,this.qu=e,this.Uu=null,this.hasCachedResults=!1,this.current=!1,this.Ku=Da(),this.mutatedKeys=Da(),this.Gu=jo(t),this.Qu=new bu(this.Gu)}get ju(){return this.qu}Wu(t,e){const n=e?e.zu:new Eu,r=e?e.Qu:this.Qu;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,c="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const u=r.get(t),h=qo(this.query,e)?e:null,l=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations);let f=!1;u&&h?u.data.isEqual(h.data)?l!==d&&(n.track({type:3,doc:h}),f=!0):this.Hu(u,h)||(n.track({type:2,doc:h}),f=!0,(a&&this.Gu(h,a)>0||c&&this.Gu(h,c)<0)&&(o=!0)):!u&&h?(n.track({type:0,doc:h}),f=!0):u&&!h&&(n.track({type:1,doc:u}),f=!0,(a||c)&&(o=!0)),f&&(h?(i=i.add(h),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{Qu:i,zu:n,$i:o,mutatedKeys:s}}Hu(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n){const r=this.Qu;this.Qu=t.Qu,this.mutatedKeys=t.mutatedKeys;const s=t.zu.Eu();s.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Us()}};return n(t)-n(e)}
1585
+ /**
1586
+ * @license
1587
+ * Copyright 2020 Google LLC
1588
+ *
1589
+ * Licensed under the Apache License, Version 2.0 (the "License");
1590
+ * you may not use this file except in compliance with the License.
1591
+ * You may obtain a copy of the License at
1592
+ *
1593
+ * http://www.apache.org/licenses/LICENSE-2.0
1594
+ *
1595
+ * Unless required by applicable law or agreed to in writing, software
1596
+ * distributed under the License is distributed on an "AS IS" BASIS,
1597
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1598
+ * See the License for the specific language governing permissions and
1599
+ * limitations under the License.
1600
+ */(t.type,e.type)||this.Gu(t.doc,e.doc))),this.Ju(n);const i=e?this.Yu():[],o=0===this.Ku.size&&this.current?1:0,a=o!==this.Uu;return this.Uu=o,0!==s.length||a?{snapshot:new _u(this.query,t.Qu,r,s,t.mutatedKeys,0===o,a,!1,!!n&&n.resumeToken.approximateByteSize()>0),Xu:i}:{Xu:i}}bu(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({Qu:this.Qu,zu:new Eu,mutatedKeys:this.mutatedKeys,$i:!1},!1)):{Xu:[]}}Zu(t){return!this.qu.has(t)&&!!this.Qu.has(t)&&!this.Qu.get(t).hasLocalMutations}Ju(t){t&&(t.addedDocuments.forEach((t=>this.qu=this.qu.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.qu=this.qu.delete(t))),this.current=t.current)}Yu(){if(!this.current)return[];const t=this.Ku;this.Ku=Da(),this.Qu.forEach((t=>{this.Zu(t.key)&&(this.Ku=this.Ku.add(t.key))}));const e=[];return t.forEach((t=>{this.Ku.has(t)||e.push(new Lu(t))})),this.Ku.forEach((n=>{t.has(n)||e.push(new Ou(n))})),e}tc(t){this.qu=t.Hi,this.Ku=Da();const e=this.Wu(t.documents);return this.applyChanges(e,!0)}ec(){return _u.fromInitialDocuments(this.query,this.Qu,this.mutatedKeys,0===this.Uu,this.hasCachedResults)}}class Mu{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class xu{constructor(t){this.key=t,this.nc=!1}}class Uu{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.sc={},this.ic=new Ia((t=>Fo(t)),Uo),this.rc=new Map,this.oc=new Set,this.uc=new po(ai.comparator),this.cc=new Map,this.ac=new Sc,this.hc={},this.lc=new Map,this.fc=wc.vn(),this.onlineState="Unknown",this.dc=void 0}get isPrimaryClient(){return!0===this.dc}}async function Fu(t,e){const n=function(t){const e=Vs(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=qu.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=Ju.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Bu.bind(null,e),e.sc.Wo=ku.bind(null,e.eventManager),e.sc.wc=Nu.bind(null,e.eventManager),e}(t);let r,s;const i=n.ic.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.ec();else{const t=await function(t,e){const n=Vs(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Cs.getTargetData(t,e).next((s=>s?(r=s,fi.resolve(r)):n.Cs.allocateTargetId(t).next((s=>(r=new pc(e,s,0,t.currentSequenceNumber),n.Cs.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.qi.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.qi=n.qi.insert(t.targetId,t),n.Ui.set(e,t.targetId)),t}))}(n.localStore,Po(e));n.isPrimaryClient&&iu(n.remoteStore,t);const i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await async function(t,e,n,r,s){t._c=(e,n,r)=>async function(t,e,n,r){let s=e.view.Wu(n);s.$i&&(s=await jc(t.localStore,e.query,!1).then((({documents:t})=>e.view.Wu(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=e.view.applyChanges(s,t.isPrimaryClient,i);return Ku(t,e.targetId,o.Xu),o.snapshot}(t,e,n,r);const i=await jc(t.localStore,e,!0),o=new Pu(e,i.Hi),a=o.Wu(i.documents),c=Pa.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),u=o.applyChanges(a,t.isPrimaryClient,c);Ku(t,n,u.Xu);const h=new Mu(e,n,o);return t.ic.set(e,h),t.rc.has(n)?t.rc.get(n).push(e):t.rc.set(n,[e]),u.snapshot}(n,e,r,"current"===i,t.resumeToken)}return s}async function Vu(t,e){const n=Vs(t),r=n.ic.get(e),s=n.rc.get(r.targetId);if(s.length>1)return n.rc.set(r.targetId,s.filter((t=>!Uo(t,e)))),void n.ic.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await qc(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),ou(n.remoteStore,r.targetId),zu(n,r.targetId)})).catch(di)):(zu(n,r.targetId),await qc(n.localStore,r.targetId,!0))}async function qu(t,e){const n=Vs(t);try{const t=await Vc(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.cc.get(e);r&&(Fs(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.nc=!0:t.modifiedDocuments.size>0?Fs(r.nc):t.removedDocuments.size>0&&(Fs(r.nc),r.nc=!1))})),await Wu(n,t,e)}catch(t){await di(t)}}function ju(t,e,n){const r=Vs(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ic.forEach(((n,r)=>{const s=r.view.bu(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Vs(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.listeners)t.bu(e)&&(r=!0)})),r&&Du(n)}(r.eventManager,e),t.length&&r.sc.Wo(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Bu(t,e,n){const r=Vs(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.cc.get(e),i=s&&s.key;if(i){let t=new po(ai.comparator);t=t.insert(i,bo.newNoDocument(i,ni.min()));const n=Da().add(i),s=new La(ni.min(),new Map,new yo(Zs),t,n);await qu(r,s),r.uc=r.uc.remove(i),r.cc.delete(e),Gu(r)}else await qc(r.localStore,e,!1).then((()=>zu(r,e,n))).catch(di)}function zu(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.rc.get(e))t.ic.delete(r),n&&t.sc.wc(r,n);t.rc.delete(e),t.isPrimaryClient&&t.ac.ls(e).forEach((e=>{t.ac.containsKey(e)||$u(t,e)}))}function $u(t,e){t.oc.delete(e.path.canonicalString());const n=t.uc.get(e);null!==n&&(ou(t.remoteStore,n),t.uc=t.uc.remove(e),t.cc.delete(n),Gu(t))}function Ku(t,e,n){for(const r of n)r instanceof Ou?(t.ac.addReference(r.key,e),Hu(t,r)):r instanceof Lu?(Ls("SyncEngine","Document no longer in limbo: "+r.key),t.ac.removeReference(r.key,e),t.ac.containsKey(r.key)||$u(t,r.key)):Us()}function Hu(t,e){const n=e.key,r=n.path.canonicalString();t.uc.get(n)||t.oc.has(r)||(Ls("SyncEngine","New document in limbo: "+n),t.oc.add(r),Gu(t))}function Gu(t){for(;t.oc.size>0&&t.uc.size<t.maxConcurrentLimboResolutions;){const e=t.oc.values().next().value;t.oc.delete(e);const n=new ai(si.fromString(e)),r=t.fc.next();t.cc.set(r,new xu(n)),t.uc=t.uc.insert(n,r),iu(t.remoteStore,new pc(Po(ko(n.path)),r,2,gi.at))}}async function Wu(t,e,n){const r=Vs(t),s=[],i=[],o=[];r.ic.isEmpty()||(r.ic.forEach(((t,a)=>{o.push(r._c(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=Pc.Ci(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.sc.Wo(s),await async function(t,e){const n=Vs(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>fi.forEach(e,(e=>fi.forEach(e.Si,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>fi.forEach(e.Di,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!pi(t))throw t;Ls("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.qi.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.qi=n.qi.insert(e,s)}}}(r.localStore,i))}async function Qu(t,e){const n=Vs(t);if(!n.currentUser.isEqual(e)){Ls("SyncEngine","User change. New user:",e.toKey());const t=await Uc(n.localStore,e);n.currentUser=e,function(t,e){t.lc.forEach((t=>{t.forEach((t=>{t.reject(new js(qs.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))}))})),t.lc.clear()}(n),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await Wu(n,t.ji)}}function Ju(t,e){const n=Vs(t),r=n.cc.get(e);if(r&&r.nc)return Da().add(r.key);{let t=Da();const r=n.rc.get(e);if(!r)return t;for(const e of r){const r=n.ic.get(e);t=t.unionWith(r.view.ju)}return t}}class Xu{constructor(){this.synchronizeTabs=!1}async initialize(t){this.yt=Jc(t.databaseInfo.databaseId),this.sharedClientState=this.gc(t),this.persistence=this.yc(t),await this.persistence.start(),this.localStore=this.Ic(t),this.gcScheduler=this.Tc(t,this.localStore),this.indexBackfillerScheduler=this.Ec(t,this.localStore)}Tc(t,e){return null}Ec(t,e){return null}Ic(t){return function(t,e,n,r){return new xc(t,e,n,r)}(this.persistence,new Mc,t.initialUser,this.yt)}yc(t){return new Rc(Lc.Bs,this.yt)}gc(t){return new zc}async terminate(){this.gcScheduler&&this.gcScheduler.stop(),await this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class Yu{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>ju(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=Qu.bind(null,this.syncEngine),await async function(t,e){const n=Vs(t);e?(n._u.delete(2),await ru(n)):e||(n._u.add(2),await su(n),n.gu.set("Unknown"))}(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Su}createDatastore(t){const e=Jc(t.databaseInfo.databaseId),n=(r=t.databaseInfo,new Wc(r));var r;return function(t,e,n,r){return new tu(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return e=this.localStore,n=this.datastore,r=t.asyncQueue,s=t=>ju(this.syncEngine,t,0),i=Kc.C()?new Kc:new $c,new nu(e,n,r,s,i);var e,n,r,s,i}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Uu(t,e,n,r,s,i);return o&&(a.dc=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}terminate(){return async function(t){const e=Vs(t);Ls("RemoteStore","RemoteStore shutting down."),e._u.add(5),await su(e),e.mu.shutdown(),e.gu.set("Unknown")}(this.remoteStore)}}
1601
+ /**
1602
+ * @license
1603
+ * Copyright 2017 Google LLC
1604
+ *
1605
+ * Licensed under the Apache License, Version 2.0 (the "License");
1606
+ * you may not use this file except in compliance with the License.
1607
+ * You may obtain a copy of the License at
1608
+ *
1609
+ * http://www.apache.org/licenses/LICENSE-2.0
1610
+ *
1611
+ * Unless required by applicable law or agreed to in writing, software
1612
+ * distributed under the License is distributed on an "AS IS" BASIS,
1613
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1614
+ * See the License for the specific language governing permissions and
1615
+ * limitations under the License.
1616
+ */function Zu(t,e,n){if(!n)throw new js(qs.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function th(t){if(!ai.isDocumentKey(t))throw new js(qs.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function eh(t){if(ai.isDocumentKey(t))throw new js(qs.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function nh(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Us()}function rh(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new js(qs.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=nh(t);throw new js(qs.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}
1617
+ /**
1618
+ * @license
1619
+ * Copyright 2020 Google LLC
1620
+ *
1621
+ * Licensed under the Apache License, Version 2.0 (the "License");
1622
+ * you may not use this file except in compliance with the License.
1623
+ * You may obtain a copy of the License at
1624
+ *
1625
+ * http://www.apache.org/licenses/LICENSE-2.0
1626
+ *
1627
+ * Unless required by applicable law or agreed to in writing, software
1628
+ * distributed under the License is distributed on an "AS IS" BASIS,
1629
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1630
+ * See the License for the specific language governing permissions and
1631
+ * limitations under the License.
1632
+ */const sh=new Map;class ih{constructor(t){var e;if(void 0===t.host){if(void 0!==t.ssl)throw new js(qs.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new js(qs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.useFetchStreams=!!t.useFetchStreams,function(t,e,n,r){if(!0===e&&!0===r)throw new js(qs.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling)}isEqual(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}
1633
+ /**
1634
+ * @license
1635
+ * Copyright 2020 Google LLC
1636
+ *
1637
+ * Licensed under the Apache License, Version 2.0 (the "License");
1638
+ * you may not use this file except in compliance with the License.
1639
+ * You may obtain a copy of the License at
1640
+ *
1641
+ * http://www.apache.org/licenses/LICENSE-2.0
1642
+ *
1643
+ * Unless required by applicable law or agreed to in writing, software
1644
+ * distributed under the License is distributed on an "AS IS" BASIS,
1645
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1646
+ * See the License for the specific language governing permissions and
1647
+ * limitations under the License.
1648
+ */class oh{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ih({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new js(qs.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 void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new js(qs.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 ih(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new $s;switch(t.type){case"gapi":const e=t.client;return new Ws(e,t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new js(qs.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=sh.get(t);e&&(Ls("ComponentProvider","Removing Datastore"),sh.delete(t),e.terminate())}(this),Promise.resolve()}}function ah(t,e,n,r={}){var i;const o=(t=rh(t,oh))._getSettings();if("firestore.googleapis.com"!==o.host&&o.host!==e&&Ms("Host has been set in both settings() and useEmulator(), emulator host will be used"),t._setSettings(Object.assign(Object.assign({},o),{host:`${e}:${n}`,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=Ns.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,i=t.sub||t.user_id;if(!i)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const o=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},t);return[s(JSON.stringify({alg:"none",type:"JWT"})),s(JSON.stringify(o)),""].join(".")}
1649
+ /**
1650
+ * @license
1651
+ * Copyright 2017 Google LLC
1652
+ *
1653
+ * Licensed under the Apache License, Version 2.0 (the "License");
1654
+ * you may not use this file except in compliance with the License.
1655
+ * You may obtain a copy of the License at
1656
+ *
1657
+ * http://www.apache.org/licenses/LICENSE-2.0
1658
+ *
1659
+ * Unless required by applicable law or agreed to in writing, software
1660
+ * distributed under the License is distributed on an "AS IS" BASIS,
1661
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1662
+ * See the License for the specific language governing permissions and
1663
+ * limitations under the License.
1664
+ */(r.mockUserToken,null===(i=t._app)||void 0===i?void 0:i.options.projectId);const o=r.mockUserToken.sub||r.mockUserToken.user_id;if(!o)throw new js(qs.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new Ns(o)}t._authCredentials=new Ks(new zs(e,n))}}
1665
+ /**
1666
+ * @license
1667
+ * Copyright 2020 Google LLC
1668
+ *
1669
+ * Licensed under the Apache License, Version 2.0 (the "License");
1670
+ * you may not use this file except in compliance with the License.
1671
+ * You may obtain a copy of the License at
1672
+ *
1673
+ * http://www.apache.org/licenses/LICENSE-2.0
1674
+ *
1675
+ * Unless required by applicable law or agreed to in writing, software
1676
+ * distributed under the License is distributed on an "AS IS" BASIS,
1677
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1678
+ * See the License for the specific language governing permissions and
1679
+ * limitations under the License.
1680
+ */class ch{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new hh(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ch(this.firestore,t,this._key)}}class uh{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new uh(this.firestore,t,this._query)}}class hh extends uh{constructor(t,e,n){super(t,e,ko(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ch(this.firestore,null,new ai(t))}withConverter(t){return new hh(this.firestore,t,this._path)}}function lh(t,e,...n){if(t=E(t),Zu("collection","path",e),t instanceof oh){const r=si.fromString(e,...n);return eh(r),new hh(t,null,r)}{if(!(t instanceof ch||t instanceof hh))throw new js(qs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(si.fromString(e,...n));return eh(r),new hh(t.firestore,null,r)}}
1681
+ /**
1682
+ * @license
1683
+ * Copyright 2020 Google LLC
1684
+ *
1685
+ * Licensed under the Apache License, Version 2.0 (the "License");
1686
+ * you may not use this file except in compliance with the License.
1687
+ * You may obtain a copy of the License at
1688
+ *
1689
+ * http://www.apache.org/licenses/LICENSE-2.0
1690
+ *
1691
+ * Unless required by applicable law or agreed to in writing, software
1692
+ * distributed under the License is distributed on an "AS IS" BASIS,
1693
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1694
+ * See the License for the specific language governing permissions and
1695
+ * limitations under the License.
1696
+ */
1697
+ /**
1698
+ * @license
1699
+ * Copyright 2017 Google LLC
1700
+ *
1701
+ * Licensed under the Apache License, Version 2.0 (the "License");
1702
+ * you may not use this file except in compliance with the License.
1703
+ * You may obtain a copy of the License at
1704
+ *
1705
+ * http://www.apache.org/licenses/LICENSE-2.0
1706
+ *
1707
+ * Unless required by applicable law or agreed to in writing, software
1708
+ * distributed under the License is distributed on an "AS IS" BASIS,
1709
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1710
+ * See the License for the specific language governing permissions and
1711
+ * limitations under the License.
1712
+ */
1713
+ class dh{constructor(t){this.observer=t,this.muted=!1}next(t){this.observer.next&&this.Rc(this.observer.next,t)}error(t){this.observer.error?this.Rc(this.observer.error,t):Ps("Uncaught Error in snapshot listener:",t.toString())}bc(){this.muted=!0}Rc(t,e){this.muted||setTimeout((()=>{this.muted||t(e)}),0)}}
1714
+ /**
1715
+ * @license
1716
+ * Copyright 2017 Google LLC
1717
+ *
1718
+ * Licensed under the Apache License, Version 2.0 (the "License");
1719
+ * you may not use this file except in compliance with the License.
1720
+ * You may obtain a copy of the License at
1721
+ *
1722
+ * http://www.apache.org/licenses/LICENSE-2.0
1723
+ *
1724
+ * Unless required by applicable law or agreed to in writing, software
1725
+ * distributed under the License is distributed on an "AS IS" BASIS,
1726
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1727
+ * See the License for the specific language governing permissions and
1728
+ * limitations under the License.
1729
+ */class fh{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=Ns.UNAUTHENTICATED,this.clientId=Ys.R(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{Ls("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(Ls("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}async getConfiguration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new js(qs.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new Bs;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this.onlineComponents&&await this.onlineComponents.terminate(),this.offlineComponents&&await this.offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Iu(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function ph(t,e){t.asyncQueue.verifyOperationInProgress();const n=await async function(t){return t.offlineComponents||(Ls("FirestoreClient","Using default OfflineComponentProvider"),await async function(t,e){t.asyncQueue.verifyOperationInProgress(),Ls("FirestoreClient","Initializing OfflineComponentProvider");const n=await t.getConfiguration();await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await Uc(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t.offlineComponents=e}(t,new Xu)),t.offlineComponents}(t);Ls("FirestoreClient","Initializing OnlineComponentProvider");const r=await t.getConfiguration();await e.initialize(n,r),t.setCredentialChangeListener((t=>yu(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yu(e.remoteStore,n))),t.onlineComponents=e}async function gh(t){const e=await async function(t){return t.onlineComponents||(Ls("FirestoreClient","Using default OnlineComponentProvider"),await ph(t,new Yu)),t.onlineComponents}(t),n=e.eventManager;return n.onListen=Fu.bind(null,e.syncEngine),n.onUnlisten=Vu.bind(null,e.syncEngine),n}class mh{constructor(){this.Bc=Promise.resolve(),this.Lc=[],this.qc=!1,this.Uc=[],this.Kc=null,this.Gc=!1,this.Qc=!1,this.jc=[],this.xo=new Xc(this,"async_queue_retry"),this.Wc=()=>{const t=Qc();t&&Ls("AsyncQueue","Visibility state changed to "+t.visibilityState),this.xo.Po()};const t=Qc();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Wc)}get isShuttingDown(){return this.qc}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.zc(),this.Hc(t)}enterRestrictedMode(t){if(!this.qc){this.qc=!0,this.Qc=t||!1;const e=Qc();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this.Wc)}}enqueue(t){if(this.zc(),this.qc)return new Promise((()=>{}));const e=new Bs;return this.Hc((()=>this.qc&&this.Qc?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.Lc.push(t),this.Jc())))}async Jc(){if(0!==this.Lc.length){try{await this.Lc[0](),this.Lc.shift(),this.xo.reset()}catch(t){if(!pi(t))throw t;Ls("AsyncQueue","Operation failed with retryable error: "+t)}this.Lc.length>0&&this.xo.Ro((()=>this.Jc()))}}Hc(t){const e=this.Bc.then((()=>(this.Gc=!0,t().catch((t=>{this.Kc=t,this.Gc=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}
1730
+ /**
1731
+ * @license
1732
+ * Copyright 2017 Google LLC
1733
+ *
1734
+ * Licensed under the Apache License, Version 2.0 (the "License");
1735
+ * you may not use this file except in compliance with the License.
1736
+ * You may obtain a copy of the License at
1737
+ *
1738
+ * http://www.apache.org/licenses/LICENSE-2.0
1739
+ *
1740
+ * Unless required by applicable law or agreed to in writing, software
1741
+ * distributed under the License is distributed on an "AS IS" BASIS,
1742
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1743
+ * See the License for the specific language governing permissions and
1744
+ * limitations under the License.
1745
+ */(t);throw Ps("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.Gc=!1,t))))));return this.Bc=e,e}enqueueAfterDelay(t,e,n){this.zc(),this.jc.indexOf(t)>-1&&(e=0);const r=wu.createAndSchedule(this,t,e,n,(t=>this.Yc(t)));return this.Uc.push(r),r}zc(){this.Kc&&Us()}verifyOperationInProgress(){}async Xc(){let t;do{t=this.Bc,await t}while(t!==this.Bc)}Zc(t){for(const e of this.Uc)if(e.timerId===t)return!0;return!1}ta(t){return this.Xc().then((()=>{this.Uc.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.Uc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Xc()}))}ea(t){this.jc.push(t)}Yc(t){const e=this.Uc.indexOf(t);this.Uc.splice(e,1)}}function yh(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of["next","error","complete"])if(t in n&&"function"==typeof n[t])return!0;return!1}
1746
+ /**
1747
+ * @license
1748
+ * Copyright 2020 Google LLC
1749
+ *
1750
+ * Licensed under the Apache License, Version 2.0 (the "License");
1751
+ * you may not use this file except in compliance with the License.
1752
+ * You may obtain a copy of the License at
1753
+ *
1754
+ * http://www.apache.org/licenses/LICENSE-2.0
1755
+ *
1756
+ * Unless required by applicable law or agreed to in writing, software
1757
+ * distributed under the License is distributed on an "AS IS" BASIS,
1758
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1759
+ * See the License for the specific language governing permissions and
1760
+ * limitations under the License.
1761
+ */(t)}class vh extends oh{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new mh,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||bh(this),this._firestoreClient.terminate()}}function wh(t,e){const n="string"==typeof t?t:e||"(default)",r=it("object"==typeof t?t:ht(),"firestore").getImmediate({identifier:n});if(!r._initialized){const t=(t=>{const e=u(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&ah(r,...t)}return r}function Ih(t){return t._firestoreClient||bh(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function bh(t){var e;const n=t._freezeSettings(),r=function(t,e,n,r){return new mi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,r.useFetchStreams)}
1762
+ /**
1763
+ * @license
1764
+ * Copyright 2020 Google LLC
1765
+ *
1766
+ * Licensed under the Apache License, Version 2.0 (the "License");
1767
+ * you may not use this file except in compliance with the License.
1768
+ * You may obtain a copy of the License at
1769
+ *
1770
+ * http://www.apache.org/licenses/LICENSE-2.0
1771
+ *
1772
+ * Unless required by applicable law or agreed to in writing, software
1773
+ * distributed under the License is distributed on an "AS IS" BASIS,
1774
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1775
+ * See the License for the specific language governing permissions and
1776
+ * limitations under the License.
1777
+ */(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,n);t._firestoreClient=new fh(t._authCredentials,t._appCheckCredentials,t._queue,r)}
1778
+ /**
1779
+ * @license
1780
+ * Copyright 2020 Google LLC
1781
+ *
1782
+ * Licensed under the Apache License, Version 2.0 (the "License");
1783
+ * you may not use this file except in compliance with the License.
1784
+ * You may obtain a copy of the License at
1785
+ *
1786
+ * http://www.apache.org/licenses/LICENSE-2.0
1787
+ *
1788
+ * Unless required by applicable law or agreed to in writing, software
1789
+ * distributed under the License is distributed on an "AS IS" BASIS,
1790
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1791
+ * See the License for the specific language governing permissions and
1792
+ * limitations under the License.
1793
+ */
1794
+ /**
1795
+ * @license
1796
+ * Copyright 2020 Google LLC
1797
+ *
1798
+ * Licensed under the Apache License, Version 2.0 (the "License");
1799
+ * you may not use this file except in compliance with the License.
1800
+ * You may obtain a copy of the License at
1801
+ *
1802
+ * http://www.apache.org/licenses/LICENSE-2.0
1803
+ *
1804
+ * Unless required by applicable law or agreed to in writing, software
1805
+ * distributed under the License is distributed on an "AS IS" BASIS,
1806
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1807
+ * See the License for the specific language governing permissions and
1808
+ * limitations under the License.
1809
+ */class Eh{constructor(t){this._byteString=t}static fromBase64String(t){try{return new Eh(_i.fromBase64String(t))}catch(t){throw new js(qs.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new Eh(_i.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}
1810
+ /**
1811
+ * @license
1812
+ * Copyright 2020 Google LLC
1813
+ *
1814
+ * Licensed under the Apache License, Version 2.0 (the "License");
1815
+ * you may not use this file except in compliance with the License.
1816
+ * You may obtain a copy of the License at
1817
+ *
1818
+ * http://www.apache.org/licenses/LICENSE-2.0
1819
+ *
1820
+ * Unless required by applicable law or agreed to in writing, software
1821
+ * distributed under the License is distributed on an "AS IS" BASIS,
1822
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1823
+ * See the License for the specific language governing permissions and
1824
+ * limitations under the License.
1825
+ */class _h{constructor(...t){for(let e=0;e<t.length;++e)if(0===t[e].length)throw new js(qs.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new oi(t)}isEqual(t){return this._internalPath.isEqual(t._internalPath)}}
1826
+ /**
1827
+ * @license
1828
+ * Copyright 2020 Google LLC
1829
+ *
1830
+ * Licensed under the Apache License, Version 2.0 (the "License");
1831
+ * you may not use this file except in compliance with the License.
1832
+ * You may obtain a copy of the License at
1833
+ *
1834
+ * http://www.apache.org/licenses/LICENSE-2.0
1835
+ *
1836
+ * Unless required by applicable law or agreed to in writing, software
1837
+ * distributed under the License is distributed on an "AS IS" BASIS,
1838
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1839
+ * See the License for the specific language governing permissions and
1840
+ * limitations under the License.
1841
+ */
1842
+ class Th{constructor(t){this._methodName=t}}
1843
+ /**
1844
+ * @license
1845
+ * Copyright 2017 Google LLC
1846
+ *
1847
+ * Licensed under the Apache License, Version 2.0 (the "License");
1848
+ * you may not use this file except in compliance with the License.
1849
+ * You may obtain a copy of the License at
1850
+ *
1851
+ * http://www.apache.org/licenses/LICENSE-2.0
1852
+ *
1853
+ * Unless required by applicable law or agreed to in writing, software
1854
+ * distributed under the License is distributed on an "AS IS" BASIS,
1855
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1856
+ * See the License for the specific language governing permissions and
1857
+ * limitations under the License.
1858
+ */class Sh{constructor(t,e){if(!isFinite(t)||t<-90||t>90)throw new js(qs.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new js(qs.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return Zs(this._lat,t._lat)||Zs(this._long,t._long)}}
1859
+ /**
1860
+ * @license
1861
+ * Copyright 2017 Google LLC
1862
+ *
1863
+ * Licensed under the Apache License, Version 2.0 (the "License");
1864
+ * you may not use this file except in compliance with the License.
1865
+ * You may obtain a copy of the License at
1866
+ *
1867
+ * http://www.apache.org/licenses/LICENSE-2.0
1868
+ *
1869
+ * Unless required by applicable law or agreed to in writing, software
1870
+ * distributed under the License is distributed on an "AS IS" BASIS,
1871
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1872
+ * See the License for the specific language governing permissions and
1873
+ * limitations under the License.
1874
+ */const Ah=/^__.*__$/;function Ch(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Us()}}class kh{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.yt=n,this.ignoreUndefinedProperties=r,void 0===s&&this.na(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get sa(){return this.settings.sa}ia(t){return new kh(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.yt,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}ra(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.ia({path:n,oa:!1});return r.ua(t),r}ca(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.ia({path:n,oa:!1});return r.na(),r}aa(t){return this.ia({path:void 0,oa:!0})}ha(t){return Lh(t,this.settings.methodName,this.settings.la||!1,this.path,this.settings.fa)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}na(){if(this.path)for(let t=0;t<this.path.length;t++)this.ua(this.path.get(t))}ua(t){if(0===t.length)throw this.ha("Document fields must not be empty");if(Ch(this.sa)&&Ah.test(t))throw this.ha('Document fields cannot begin and end with "__"')}}class Nh{constructor(t,e,n){this.databaseId=t,this.ignoreUndefinedProperties=e,this.yt=n||Jc(t)}da(t,e,n,r=!1){return new kh({sa:t,methodName:e,fa:n,path:oi.emptyPath(),oa:!1,la:r},this.databaseId,this.yt,this.ignoreUndefinedProperties)}}function Dh(t,e){if(Rh(t=E(t)))return function(t,e,n){if(!Rh(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=nh(n);throw"an object"===r?e.ha(t+" a custom object"):e.ha(t+" "+r)}}("Unsupported field value:",e,t),function(t,e){const n={};return Ii(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):wi(t,((t,r)=>{const s=Dh(r,e.ra(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}(t,e);if(t instanceof Th)return function(t,e){if(!Ch(e.sa))throw e.ha(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.ha(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.oa&&4!==e.sa)throw e.ha("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Dh(s,e.aa(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=E(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ko(e.yt,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ei.fromDate(t);return{timestampValue:Ha(e.yt,n)}}if(t instanceof ei){const n=new ei(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Ha(e.yt,n)}}if(t instanceof Sh)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Eh)return{bytesValue:Ga(e.yt,t._byteString)};if(t instanceof ch){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.ha(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:Qa(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.ha(`Unsupported field value: ${nh(t)}`)}(t,e)}function Rh(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ei||t instanceof Sh||t instanceof Eh||t instanceof ch||t instanceof Th)}const Oh=new RegExp("[~\\*/\\[\\]]");function Lh(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(i||o)&&(c+=" (found",i&&(c+=` in field ${r}`),o&&(c+=` in document ${s}`),c+=")"),new js(qs.INVALID_ARGUMENT,a+t+c)
1875
+ /**
1876
+ * @license
1877
+ * Copyright 2020 Google LLC
1878
+ *
1879
+ * Licensed under the Apache License, Version 2.0 (the "License");
1880
+ * you may not use this file except in compliance with the License.
1881
+ * You may obtain a copy of the License at
1882
+ *
1883
+ * http://www.apache.org/licenses/LICENSE-2.0
1884
+ *
1885
+ * Unless required by applicable law or agreed to in writing, software
1886
+ * distributed under the License is distributed on an "AS IS" BASIS,
1887
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1888
+ * See the License for the specific language governing permissions and
1889
+ * limitations under the License.
1890
+ */}class Ph{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ch(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new Mh(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(xh("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class Mh extends Ph{data(){return super.data()}}function xh(t,e){return"string"==typeof e?function(t,e,n){if(e.search(Oh)>=0)throw Lh(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new _h(...e.split("."))._internalPath}catch(r){throw Lh(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}(t,e):e instanceof _h?e._internalPath:e._delegate._internalPath}
1891
+ /**
1892
+ * @license
1893
+ * Copyright 2020 Google LLC
1894
+ *
1895
+ * Licensed under the Apache License, Version 2.0 (the "License");
1896
+ * you may not use this file except in compliance with the License.
1897
+ * You may obtain a copy of the License at
1898
+ *
1899
+ * http://www.apache.org/licenses/LICENSE-2.0
1900
+ *
1901
+ * Unless required by applicable law or agreed to in writing, software
1902
+ * distributed under the License is distributed on an "AS IS" BASIS,
1903
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1904
+ * See the License for the specific language governing permissions and
1905
+ * limitations under the License.
1906
+ */function Uh(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new js(qs.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Fh{}class Vh extends Fh{}function qh(t,e,...n){let r=[];e instanceof Fh&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof zh)).length,n=t.filter((t=>t instanceof jh)).length;if(e>1||e>0&&n>0)throw new js(qs.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(...)))`.")}
1907
+ /**
1908
+ * @license
1909
+ * Copyright 2020 Google LLC
1910
+ *
1911
+ * Licensed under the Apache License, Version 2.0 (the "License");
1912
+ * you may not use this file except in compliance with the License.
1913
+ * You may obtain a copy of the License at
1914
+ *
1915
+ * http://www.apache.org/licenses/LICENSE-2.0
1916
+ *
1917
+ * Unless required by applicable law or agreed to in writing, software
1918
+ * distributed under the License is distributed on an "AS IS" BASIS,
1919
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1920
+ * See the License for the specific language governing permissions and
1921
+ * limitations under the License.
1922
+ */(r);for(const e of r)t=e._apply(t);return t}class jh extends Vh{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new jh(t,e,n)}_apply(t){const e=this._parse(t);return Hh(t._query,e),new uh(t.firestore,t.converter,Mo(t._query,e))}_parse(t){const e=function(t){const e=t._freezeSettings(),n=Jc(t._databaseId);return new Nh(t._databaseId,!!e.ignoreUndefinedProperties,n)}(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Kh(o,i);const e=[];for(const n of o)e.push($h(r,t,n));a={arrayValue:{values:e}}}else a=$h(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Kh(o,i),a=function(t,e,n,r=!1){return Dh(n,t.da(r?4:3,e))}(n,"where",o,"in"===i||"not-in"===i);return Ji.create(s,i,a)}(t._query,0,e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function Bh(t,e,n){const r=e,s=xh("where",t);return jh._create(s,r,n)}class zh extends Fh{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new zh(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Xi.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Hh(n,t),n=Mo(n,t)}(t._query,e),new uh(t.firestore,t.converter,Mo(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function $h(t,e,n){if("string"==typeof(n=E(n))){if(""===n)throw new js(qs.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Oo(e)&&-1!==n.indexOf("/"))throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);const r=e.path.child(si.fromString(n));if(!ai.isDocumentKey(r))throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Vi(t,new ai(r))}if(n instanceof ch)return Vi(t,n._key);throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${nh(n)}.`)}function Kh(t,e){if(!Array.isArray(t)||0===t.length)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`);if(t.length>10)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`)}function Hh(t,e){if(e.isInequality()){const n=Ro(t),r=e.field;if(null!==n&&!n.isEqual(r))throw new js(qs.INVALID_ARGUMENT,`Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${r.toString()}'`);const s=Do(t);null!==s&&function(t,e,n){if(!n.isEqual(e))throw new js(qs.INVALID_ARGUMENT,`Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`)}(0,r,s)}const n=function(t,e){for(const n of t)for(const t of n.getFlattenedFilters())if(e.indexOf(t.op)>=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new js(qs.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new js(qs.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}class Gh{convertValue(t,e="none"){switch(Oi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Ai(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Ci(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Us()}}convertObject(t,e){const n={};return wi(t.fields,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Sh(Ai(t.latitude),Ai(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ni(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(Di(t));default:return null}}convertTimestamp(t){const e=Si(t);return new ei(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=si.fromString(t);Fs(lc(n));const r=new yi(n.get(1),n.get(3)),s=new ai(n.popFirst(5));return r.isEqual(e)||Ps(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),s}}
1923
+ /**
1924
+ * @license
1925
+ * Copyright 2020 Google LLC
1926
+ *
1927
+ * Licensed under the Apache License, Version 2.0 (the "License");
1928
+ * you may not use this file except in compliance with the License.
1929
+ * You may obtain a copy of the License at
1930
+ *
1931
+ * http://www.apache.org/licenses/LICENSE-2.0
1932
+ *
1933
+ * Unless required by applicable law or agreed to in writing, software
1934
+ * distributed under the License is distributed on an "AS IS" BASIS,
1935
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1936
+ * See the License for the specific language governing permissions and
1937
+ * limitations under the License.
1938
+ */class Wh{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Qh extends Ph{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new Jh(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(xh("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class Jh extends Qh{data(t={}){return super.data(t)}}class Xh{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new Wh(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new Jh(this._firestore,this._userDataWriter,n.key,n,new Wh(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new js(qs.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new Jh(t._firestore,t._userDataWriter,n.doc.key,n.doc,new Wh(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new Jh(t._firestore,t._userDataWriter,e.doc.key,e.doc,new Wh(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Yh(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Yh(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Us()}}
1939
+ /**
1940
+ * @license
1941
+ * Copyright 2020 Google LLC
1942
+ *
1943
+ * Licensed under the Apache License, Version 2.0 (the "License");
1944
+ * you may not use this file except in compliance with the License.
1945
+ * You may obtain a copy of the License at
1946
+ *
1947
+ * http://www.apache.org/licenses/LICENSE-2.0
1948
+ *
1949
+ * Unless required by applicable law or agreed to in writing, software
1950
+ * distributed under the License is distributed on an "AS IS" BASIS,
1951
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1952
+ * See the License for the specific language governing permissions and
1953
+ * limitations under the License.
1954
+ */function Zh(t){t=rh(t,ch);const e=rh(t.firestore,vh);return function(t,e,n={}){const r=new Bs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new dh({next:i=>{e.enqueueAndForget((()=>Cu(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new js(qs.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new js(qs.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.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Ru(ko(n.path),i,{includeMetadataChanges:!0,Nu:!0});return Au(t,o)}(await gh(t),t.asyncQueue,e,n,r))),r.promise}(Ih(e),t._key).then((n=>nl(e,t,n)))}class tl extends Gh{constructor(t){super(),this.firestore=t}convertBytes(t){return new Eh(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ch(this.firestore,null,e)}}function el(t){t=rh(t,uh);const e=rh(t.firestore,vh),n=Ih(e),r=new tl(e);return Uh(t._query),function(t,e,n={}){const r=new Bs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new dh({next:n=>{e.enqueueAndForget((()=>Cu(t,o))),n.fromCache&&"server"===r.source?s.reject(new js(qs.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.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Ru(n,i,{includeMetadataChanges:!0,Nu:!0});return Au(t,o)}(await gh(t),t.asyncQueue,e,n,r))),r.promise}(n,t._query).then((n=>new Xh(e,r,t,n)))}function nl(t,e,n){const r=n.docs.get(e._key),s=new tl(t);return new Qh(t,s,e._key,r,new Wh(n.hasPendingWrites,n.fromCache),e.converter)}!function(t,e=!0){Ds=ct,st(new _("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new vh(new Hs(t.getProvider("auth-internal")),new Js(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new js(qs.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new yi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),lt(ks,"3.8.0",t),lt(ks,"3.8.0","esm2017")}();function rl(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(t);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(t,r[s])&&(n[r[s]]=t[r[s]])}return n}function sl(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}
1955
+ /**
1956
+ * @license
1957
+ * Copyright 2020 Google LLC
1958
+ *
1959
+ * Licensed under the Apache License, Version 2.0 (the "License");
1960
+ * you may not use this file except in compliance with the License.
1961
+ * You may obtain a copy of the License at
1962
+ *
1963
+ * http://www.apache.org/licenses/LICENSE-2.0
1964
+ *
1965
+ * Unless required by applicable law or agreed to in writing, software
1966
+ * distributed under the License is distributed on an "AS IS" BASIS,
1967
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1968
+ * See the License for the specific language governing permissions and
1969
+ * limitations under the License.
1970
+ */
1971
+ lt("firebase","9.15.0","app");const il=sl,ol=new f("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),al="auth/user-disabled",cl=new O("@firebase/auth");function ul(t,...e){cl.logLevel<=C.ERROR&&cl.error(`Auth (${ct}): ${t}`,...e)}
1972
+ /**
1973
+ * @license
1974
+ * Copyright 2020 Google LLC
1975
+ *
1976
+ * Licensed under the Apache License, Version 2.0 (the "License");
1977
+ * you may not use this file except in compliance with the License.
1978
+ * You may obtain a copy of the License at
1979
+ *
1980
+ * http://www.apache.org/licenses/LICENSE-2.0
1981
+ *
1982
+ * Unless required by applicable law or agreed to in writing, software
1983
+ * distributed under the License is distributed on an "AS IS" BASIS,
1984
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1985
+ * See the License for the specific language governing permissions and
1986
+ * limitations under the License.
1987
+ */function hl(t,...e){throw dl(t,...e)}function ll(t,...e){return dl(t,...e)}function dl(t,...e){if("string"!=typeof t){const n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return ol.create(t,...e)}function fl(t,e,...n){if(!t)throw dl(e,...n)}function pl(t){const e="INTERNAL ASSERTION FAILED: "+t;throw ul(e),new Error(e)}function gl(t,e){t||pl(e)}
1988
+ /**
1989
+ * @license
1990
+ * Copyright 2020 Google LLC
1991
+ *
1992
+ * Licensed under the Apache License, Version 2.0 (the "License");
1993
+ * you may not use this file except in compliance with the License.
1994
+ * You may obtain a copy of the License at
1995
+ *
1996
+ * http://www.apache.org/licenses/LICENSE-2.0
1997
+ *
1998
+ * Unless required by applicable law or agreed to in writing, software
1999
+ * distributed under the License is distributed on an "AS IS" BASIS,
2000
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2001
+ * See the License for the specific language governing permissions and
2002
+ * limitations under the License.
2003
+ */const ml=new Map;function yl(t){gl(t instanceof Function,"Expected a class definition");let e=ml.get(t);return e?(gl(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,ml.set(t,e),e)}
2004
+ /**
2005
+ * @license
2006
+ * Copyright 2020 Google LLC
2007
+ *
2008
+ * Licensed under the Apache License, Version 2.0 (the "License");
2009
+ * you may not use this file except in compliance with the License.
2010
+ * You may obtain a copy of the License at
2011
+ *
2012
+ * http://www.apache.org/licenses/LICENSE-2.0
2013
+ *
2014
+ * Unless required by applicable law or agreed to in writing, software
2015
+ * distributed under the License is distributed on an "AS IS" BASIS,
2016
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2017
+ * See the License for the specific language governing permissions and
2018
+ * limitations under the License.
2019
+ */
2020
+ /**
2021
+ * @license
2022
+ * Copyright 2020 Google LLC
2023
+ *
2024
+ * Licensed under the Apache License, Version 2.0 (the "License");
2025
+ * you may not use this file except in compliance with the License.
2026
+ * You may obtain a copy of the License at
2027
+ *
2028
+ * http://www.apache.org/licenses/LICENSE-2.0
2029
+ *
2030
+ * Unless required by applicable law or agreed to in writing, software
2031
+ * distributed under the License is distributed on an "AS IS" BASIS,
2032
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2033
+ * See the License for the specific language governing permissions and
2034
+ * limitations under the License.
2035
+ */
2036
+ function vl(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.href)||""}function wl(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.protocol)||null}
2037
+ /**
2038
+ * @license
2039
+ * Copyright 2020 Google LLC
2040
+ *
2041
+ * Licensed under the Apache License, Version 2.0 (the "License");
2042
+ * you may not use this file except in compliance with the License.
2043
+ * You may obtain a copy of the License at
2044
+ *
2045
+ * http://www.apache.org/licenses/LICENSE-2.0
2046
+ *
2047
+ * Unless required by applicable law or agreed to in writing, software
2048
+ * distributed under the License is distributed on an "AS IS" BASIS,
2049
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2050
+ * See the License for the specific language governing permissions and
2051
+ * limitations under the License.
2052
+ */function Il(){return"undefined"==typeof navigator||!navigator||!("onLine"in navigator)||"boolean"!=typeof navigator.onLine||"http:"!==wl()&&"https:"!==wl()&&!function(){const t="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof t&&void 0!==t.id}()&&!("connection"in navigator)||navigator.onLine}
2053
+ /**
2054
+ * @license
2055
+ * Copyright 2020 Google LLC
2056
+ *
2057
+ * Licensed under the Apache License, Version 2.0 (the "License");
2058
+ * you may not use this file except in compliance with the License.
2059
+ * You may obtain a copy of the License at
2060
+ *
2061
+ * http://www.apache.org/licenses/LICENSE-2.0
2062
+ *
2063
+ * Unless required by applicable law or agreed to in writing, software
2064
+ * distributed under the License is distributed on an "AS IS" BASIS,
2065
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2066
+ * See the License for the specific language governing permissions and
2067
+ * limitations under the License.
2068
+ */
2069
+ class bl{constructor(t,e){this.shortDelay=t,this.longDelay=e,gl(e>t,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(o())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Il()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}
2070
+ /**
2071
+ * @license
2072
+ * Copyright 2020 Google LLC
2073
+ *
2074
+ * Licensed under the Apache License, Version 2.0 (the "License");
2075
+ * you may not use this file except in compliance with the License.
2076
+ * You may obtain a copy of the License at
2077
+ *
2078
+ * http://www.apache.org/licenses/LICENSE-2.0
2079
+ *
2080
+ * Unless required by applicable law or agreed to in writing, software
2081
+ * distributed under the License is distributed on an "AS IS" BASIS,
2082
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2083
+ * See the License for the specific language governing permissions and
2084
+ * limitations under the License.
2085
+ */function El(t,e){gl(t.emulator,"Emulator should always be set here");const{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}
2086
+ /**
2087
+ * @license
2088
+ * Copyright 2020 Google LLC
2089
+ *
2090
+ * Licensed under the Apache License, Version 2.0 (the "License");
2091
+ * you may not use this file except in compliance with the License.
2092
+ * You may obtain a copy of the License at
2093
+ *
2094
+ * http://www.apache.org/licenses/LICENSE-2.0
2095
+ *
2096
+ * Unless required by applicable law or agreed to in writing, software
2097
+ * distributed under the License is distributed on an "AS IS" BASIS,
2098
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2099
+ * See the License for the specific language governing permissions and
2100
+ * limitations under the License.
2101
+ */class _l{static initialize(t,e,n){this.fetchImpl=t,e&&(this.headersImpl=e),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:void pl("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:void pl("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:void pl("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}
2102
+ /**
2103
+ * @license
2104
+ * Copyright 2020 Google LLC
2105
+ *
2106
+ * Licensed under the Apache License, Version 2.0 (the "License");
2107
+ * you may not use this file except in compliance with the License.
2108
+ * You may obtain a copy of the License at
2109
+ *
2110
+ * http://www.apache.org/licenses/LICENSE-2.0
2111
+ *
2112
+ * Unless required by applicable law or agreed to in writing, software
2113
+ * distributed under the License is distributed on an "AS IS" BASIS,
2114
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2115
+ * See the License for the specific language governing permissions and
2116
+ * limitations under the License.
2117
+ */const Tl={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"internal-error",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error"},Sl=new bl(3e4,6e4);
2118
+ /**
2119
+ * @license
2120
+ * Copyright 2020 Google LLC
2121
+ *
2122
+ * Licensed under the Apache License, Version 2.0 (the "License");
2123
+ * you may not use this file except in compliance with the License.
2124
+ * You may obtain a copy of the License at
2125
+ *
2126
+ * http://www.apache.org/licenses/LICENSE-2.0
2127
+ *
2128
+ * Unless required by applicable law or agreed to in writing, software
2129
+ * distributed under the License is distributed on an "AS IS" BASIS,
2130
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2131
+ * See the License for the specific language governing permissions and
2132
+ * limitations under the License.
2133
+ */function Al(t,e){return t.tenantId&&!e.tenantId?Object.assign(Object.assign({},e),{tenantId:t.tenantId}):e}async function Cl(t,e,n,r,s={}){return kl(t,s,(async()=>{let s={},i={};r&&("GET"===e?i=r:s={body:JSON.stringify(r)});const o=y(Object.assign({key:t.config.apiKey},i)).slice(1),a=await t._getAdditionalHeaders();return a["Content-Type"]="application/json",t.languageCode&&(a["X-Firebase-Locale"]=t.languageCode),_l.fetch()(Dl(t,t.config.apiHost,n,o),Object.assign({method:e,headers:a,referrerPolicy:"no-referrer"},s))}))}async function kl(t,e,n){t._canInitEmulator=!1;const r=Object.assign(Object.assign({},Tl),e);try{const e=new Rl(t),s=await Promise.race([n(),e.promise]);e.clearNetworkTimeout();const i=await s.json();if("needConfirmation"in i)throw Ol(t,"account-exists-with-different-credential",i);if(s.ok&&!("errorMessage"in i))return i;{const e=s.ok?i.errorMessage:i.error.message,[n,o]=e.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw Ol(t,"credential-already-in-use",i);if("EMAIL_EXISTS"===n)throw Ol(t,"email-already-in-use",i);if("USER_DISABLED"===n)throw Ol(t,"user-disabled",i);const a=r[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(o)throw function(t,e,n){const r=Object.assign(Object.assign({},il()),{[e]:n});return new f("auth","Firebase",r).create(e,{appName:t.name})}(t,a,o);hl(t,a)}}catch(e){if(e instanceof d)throw e;hl(t,"network-request-failed")}}async function Nl(t,e,n,r,s={}){const i=await Cl(t,e,n,r,s);return"mfaPendingCredential"in i&&hl(t,"multi-factor-auth-required",{_serverResponse:i}),i}function Dl(t,e,n,r){const s=`${e}${n}?${r}`;return t.config.emulator?El(t.config,s):`${t.config.apiScheme}://${s}`}class Rl{constructor(t){this.auth=t,this.timer=null,this.promise=new Promise(((t,e)=>{this.timer=setTimeout((()=>e(ll(this.auth,"network-request-failed"))),Sl.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Ol(t,e,n){const r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const s=ll(t,e,r);return s.customData._tokenResponse=n,s}
2134
+ /**
2135
+ * @license
2136
+ * Copyright 2020 Google LLC
2137
+ *
2138
+ * Licensed under the Apache License, Version 2.0 (the "License");
2139
+ * you may not use this file except in compliance with the License.
2140
+ * You may obtain a copy of the License at
2141
+ *
2142
+ * http://www.apache.org/licenses/LICENSE-2.0
2143
+ *
2144
+ * Unless required by applicable law or agreed to in writing, software
2145
+ * distributed under the License is distributed on an "AS IS" BASIS,
2146
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2147
+ * See the License for the specific language governing permissions and
2148
+ * limitations under the License.
2149
+ */
2150
+ /**
2151
+ * @license
2152
+ * Copyright 2020 Google LLC
2153
+ *
2154
+ * Licensed under the Apache License, Version 2.0 (the "License");
2155
+ * you may not use this file except in compliance with the License.
2156
+ * You may obtain a copy of the License at
2157
+ *
2158
+ * http://www.apache.org/licenses/LICENSE-2.0
2159
+ *
2160
+ * Unless required by applicable law or agreed to in writing, software
2161
+ * distributed under the License is distributed on an "AS IS" BASIS,
2162
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2163
+ * See the License for the specific language governing permissions and
2164
+ * limitations under the License.
2165
+ */
2166
+ function Ll(t){if(t)try{const e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch(t){}}function Pl(t){return 1e3*Number(t)}function Ml(t){const[e,n,r]=t.split(".");if(void 0===e||void 0===n||void 0===r)return ul("JWT malformed, contained fewer than 3 sections"),null;try{const t=i(n);return t?JSON.parse(t):(ul("Failed to decode base64 JWT payload"),null)}catch(t){return ul("Caught error parsing JWT payload as JSON",null==t?void 0:t.toString()),null}}
2167
+ /**
2168
+ * @license
2169
+ * Copyright 2020 Google LLC
2170
+ *
2171
+ * Licensed under the Apache License, Version 2.0 (the "License");
2172
+ * you may not use this file except in compliance with the License.
2173
+ * You may obtain a copy of the License at
2174
+ *
2175
+ * http://www.apache.org/licenses/LICENSE-2.0
2176
+ *
2177
+ * Unless required by applicable law or agreed to in writing, software
2178
+ * distributed under the License is distributed on an "AS IS" BASIS,
2179
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2180
+ * See the License for the specific language governing permissions and
2181
+ * limitations under the License.
2182
+ */
2183
+ async function xl(t,e,n=!1){if(n)return e;try{return await e}catch(e){throw e instanceof d&&function({code:t}){return"auth/user-disabled"===t||"auth/user-token-expired"===t}
2184
+ /**
2185
+ * @license
2186
+ * Copyright 2020 Google LLC
2187
+ *
2188
+ * Licensed under the Apache License, Version 2.0 (the "License");
2189
+ * you may not use this file except in compliance with the License.
2190
+ * You may obtain a copy of the License at
2191
+ *
2192
+ * http://www.apache.org/licenses/LICENSE-2.0
2193
+ *
2194
+ * Unless required by applicable law or agreed to in writing, software
2195
+ * distributed under the License is distributed on an "AS IS" BASIS,
2196
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2197
+ * See the License for the specific language governing permissions and
2198
+ * limitations under the License.
2199
+ */(e)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class Ul{constructor(t){this.user=t,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(t){var e;if(t){const t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}{this.errorBackoff=3e4;const t=(null!==(e=this.user.stsTokenManager.expirationTime)&&void 0!==e?e:0)-Date.now()-3e5;return Math.max(0,t)}}schedule(t=!1){if(!this.isRunning)return;const e=this.getInterval(t);this.timerId=setTimeout((async()=>{await this.iteration()}),e)}async iteration(){try{await this.user.getIdToken(!0)}catch(t){return void("auth/network-request-failed"===(null==t?void 0:t.code)&&this.schedule(!0))}this.schedule()}}
2200
+ /**
2201
+ * @license
2202
+ * Copyright 2020 Google LLC
2203
+ *
2204
+ * Licensed under the Apache License, Version 2.0 (the "License");
2205
+ * you may not use this file except in compliance with the License.
2206
+ * You may obtain a copy of the License at
2207
+ *
2208
+ * http://www.apache.org/licenses/LICENSE-2.0
2209
+ *
2210
+ * Unless required by applicable law or agreed to in writing, software
2211
+ * distributed under the License is distributed on an "AS IS" BASIS,
2212
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2213
+ * See the License for the specific language governing permissions and
2214
+ * limitations under the License.
2215
+ */class Fl{constructor(t,e){this.createdAt=t,this.lastLoginAt=e,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ll(this.lastLoginAt),this.creationTime=Ll(this.createdAt)}_copy(t){this.createdAt=t.createdAt,this.lastLoginAt=t.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}
2216
+ /**
2217
+ * @license
2218
+ * Copyright 2019 Google LLC
2219
+ *
2220
+ * Licensed under the Apache License, Version 2.0 (the "License");
2221
+ * you may not use this file except in compliance with the License.
2222
+ * You may obtain a copy of the License at
2223
+ *
2224
+ * http://www.apache.org/licenses/LICENSE-2.0
2225
+ *
2226
+ * Unless required by applicable law or agreed to in writing, software
2227
+ * distributed under the License is distributed on an "AS IS" BASIS,
2228
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2229
+ * See the License for the specific language governing permissions and
2230
+ * limitations under the License.
2231
+ */async function Vl(t){var e;const n=t.auth,r=await t.getIdToken(),s=await xl(t,async function(t,e){return Cl(t,"POST","/v1/accounts:lookup",e)}(n,{idToken:r}));fl(null==s?void 0:s.users.length,n,"internal-error");const i=s.users[0];t._notifyReloadListener(i);const o=(null===(e=i.providerUserInfo)||void 0===e?void 0:e.length)?i.providerUserInfo.map((t=>{var{providerId:e}=t,n=rl(t,["providerId"]);return{providerId:e,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}})):[];const a=(c=t.providerData,u=o,[...c.filter((t=>!u.some((e=>e.providerId===t.providerId)))),...u]);var c,u;const h=t.isAnonymous,l=!(t.email&&i.passwordHash||(null==a?void 0:a.length)),d=!!h&&l,f={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:a,metadata:new Fl(i.createdAt,i.lastLoginAt),isAnonymous:d};Object.assign(t,f)}
2232
+ /**
2233
+ * @license
2234
+ * Copyright 2020 Google LLC
2235
+ *
2236
+ * Licensed under the Apache License, Version 2.0 (the "License");
2237
+ * you may not use this file except in compliance with the License.
2238
+ * You may obtain a copy of the License at
2239
+ *
2240
+ * http://www.apache.org/licenses/LICENSE-2.0
2241
+ *
2242
+ * Unless required by applicable law or agreed to in writing, software
2243
+ * distributed under the License is distributed on an "AS IS" BASIS,
2244
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2245
+ * See the License for the specific language governing permissions and
2246
+ * limitations under the License.
2247
+ */
2248
+ class ql{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(t){fl(t.idToken,"internal-error"),fl(void 0!==t.idToken,"internal-error"),fl(void 0!==t.refreshToken,"internal-error");const e="expiresIn"in t&&void 0!==t.expiresIn?Number(t.expiresIn):function(t){const e=Ml(t);return fl(e,"internal-error"),fl(void 0!==e.exp,"internal-error"),fl(void 0!==e.iat,"internal-error"),Number(e.exp)-Number(e.iat)}(t.idToken);this.updateTokensAndExpiration(t.idToken,t.refreshToken,e)}async getToken(t,e=!1){return fl(!this.accessToken||this.refreshToken,t,"user-token-expired"),e||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(t,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(t,e){const{accessToken:n,refreshToken:r,expiresIn:s}=await
2249
+ /**
2250
+ * @license
2251
+ * Copyright 2020 Google LLC
2252
+ *
2253
+ * Licensed under the Apache License, Version 2.0 (the "License");
2254
+ * you may not use this file except in compliance with the License.
2255
+ * You may obtain a copy of the License at
2256
+ *
2257
+ * http://www.apache.org/licenses/LICENSE-2.0
2258
+ *
2259
+ * Unless required by applicable law or agreed to in writing, software
2260
+ * distributed under the License is distributed on an "AS IS" BASIS,
2261
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2262
+ * See the License for the specific language governing permissions and
2263
+ * limitations under the License.
2264
+ */
2265
+ async function(t,e){const n=await kl(t,{},(async()=>{const n=y({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:r,apiKey:s}=t.config,i=Dl(t,r,"/v1/token",`key=${s}`),o=await t._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",_l.fetch()(i,{method:"POST",headers:o,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(t,e);this.updateTokensAndExpiration(n,r,Number(s))}updateTokensAndExpiration(t,e,n){this.refreshToken=e||null,this.accessToken=t||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(t,e){const{refreshToken:n,accessToken:r,expirationTime:s}=e,i=new ql;return n&&(fl("string"==typeof n,"internal-error",{appName:t}),i.refreshToken=n),r&&(fl("string"==typeof r,"internal-error",{appName:t}),i.accessToken=r),s&&(fl("number"==typeof s,"internal-error",{appName:t}),i.expirationTime=s),i}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(t){this.accessToken=t.accessToken,this.refreshToken=t.refreshToken,this.expirationTime=t.expirationTime}_clone(){return Object.assign(new ql,this.toJSON())}_performRefresh(){return pl("not implemented")}}
2266
+ /**
2267
+ * @license
2268
+ * Copyright 2020 Google LLC
2269
+ *
2270
+ * Licensed under the Apache License, Version 2.0 (the "License");
2271
+ * you may not use this file except in compliance with the License.
2272
+ * You may obtain a copy of the License at
2273
+ *
2274
+ * http://www.apache.org/licenses/LICENSE-2.0
2275
+ *
2276
+ * Unless required by applicable law or agreed to in writing, software
2277
+ * distributed under the License is distributed on an "AS IS" BASIS,
2278
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2279
+ * See the License for the specific language governing permissions and
2280
+ * limitations under the License.
2281
+ */function jl(t,e){fl("string"==typeof t||void 0===t,"internal-error",{appName:e})}class Bl{constructor(t){var{uid:e,auth:n,stsTokenManager:r}=t,s=rl(t,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ul(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=s.displayName||null,this.email=s.email||null,this.emailVerified=s.emailVerified||!1,this.phoneNumber=s.phoneNumber||null,this.photoURL=s.photoURL||null,this.isAnonymous=s.isAnonymous||!1,this.tenantId=s.tenantId||null,this.providerData=s.providerData?[...s.providerData]:[],this.metadata=new Fl(s.createdAt||void 0,s.lastLoginAt||void 0)}async getIdToken(t){const e=await xl(this,this.stsTokenManager.getToken(this.auth,t));return fl(e,this.auth,"internal-error"),this.accessToken!==e&&(this.accessToken=e,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),e}getIdTokenResult(t){return async function(t,e=!1){const n=E(t),r=await n.getIdToken(e),s=Ml(r);fl(s&&s.exp&&s.auth_time&&s.iat,n.auth,"internal-error");const i="object"==typeof s.firebase?s.firebase:void 0,o=null==i?void 0:i.sign_in_provider;return{claims:s,token:r,authTime:Ll(Pl(s.auth_time)),issuedAtTime:Ll(Pl(s.iat)),expirationTime:Ll(Pl(s.exp)),signInProvider:o||null,signInSecondFactor:(null==i?void 0:i.sign_in_second_factor)||null}}(this,t)}reload(){return async function(t){const e=E(t);await Vl(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}(this)}_assign(t){this!==t&&(fl(this.uid===t.uid,this.auth,"internal-error"),this.displayName=t.displayName,this.photoURL=t.photoURL,this.email=t.email,this.emailVerified=t.emailVerified,this.phoneNumber=t.phoneNumber,this.isAnonymous=t.isAnonymous,this.tenantId=t.tenantId,this.providerData=t.providerData.map((t=>Object.assign({},t))),this.metadata._copy(t.metadata),this.stsTokenManager._assign(t.stsTokenManager))}_clone(t){return new Bl(Object.assign(Object.assign({},this),{auth:t,stsTokenManager:this.stsTokenManager._clone()}))}_onReload(t){fl(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=t,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(t){this.reloadListener?this.reloadListener(t):this.reloadUserInfo=t}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(t,e=!1){let n=!1;t.idToken&&t.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(t),n=!0),e&&await Vl(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const t=await this.getIdToken();return await xl(this,async function(t,e){return Cl(t,"POST","/v1/accounts:delete",e)}(this.auth,{idToken:t})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map((t=>Object.assign({},t))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(t,e){var n,r,s,i,o,a,c,u;const h=null!==(n=e.displayName)&&void 0!==n?n:void 0,l=null!==(r=e.email)&&void 0!==r?r:void 0,d=null!==(s=e.phoneNumber)&&void 0!==s?s:void 0,f=null!==(i=e.photoURL)&&void 0!==i?i:void 0,p=null!==(o=e.tenantId)&&void 0!==o?o:void 0,g=null!==(a=e._redirectEventId)&&void 0!==a?a:void 0,m=null!==(c=e.createdAt)&&void 0!==c?c:void 0,y=null!==(u=e.lastLoginAt)&&void 0!==u?u:void 0,{uid:v,emailVerified:w,isAnonymous:I,providerData:b,stsTokenManager:E}=e;fl(v&&E,t,"internal-error");const _=ql.fromJSON(this.name,E);fl("string"==typeof v,t,"internal-error"),jl(h,t.name),jl(l,t.name),fl("boolean"==typeof w,t,"internal-error"),fl("boolean"==typeof I,t,"internal-error"),jl(d,t.name),jl(f,t.name),jl(p,t.name),jl(g,t.name),jl(m,t.name),jl(y,t.name);const T=new Bl({uid:v,auth:t,email:l,emailVerified:w,displayName:h,isAnonymous:I,photoURL:f,phoneNumber:d,tenantId:p,stsTokenManager:_,createdAt:m,lastLoginAt:y});return b&&Array.isArray(b)&&(T.providerData=b.map((t=>Object.assign({},t)))),g&&(T._redirectEventId=g),T}static async _fromIdTokenResponse(t,e,n=!1){const r=new ql;r.updateFromServerResponse(e);const s=new Bl({uid:e.localId,auth:t,stsTokenManager:r,isAnonymous:n});return await Vl(s),s}}
2282
+ /**
2283
+ * @license
2284
+ * Copyright 2019 Google LLC
2285
+ *
2286
+ * Licensed under the Apache License, Version 2.0 (the "License");
2287
+ * you may not use this file except in compliance with the License.
2288
+ * You may obtain a copy of the License at
2289
+ *
2290
+ * http://www.apache.org/licenses/LICENSE-2.0
2291
+ *
2292
+ * Unless required by applicable law or agreed to in writing, software
2293
+ * distributed under the License is distributed on an "AS IS" BASIS,
2294
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2295
+ * See the License for the specific language governing permissions and
2296
+ * limitations under the License.
2297
+ */class zl{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(t,e){this.storage[t]=e}async _get(t){const e=this.storage[t];return void 0===e?null:e}async _remove(t){delete this.storage[t]}_addListener(t,e){}_removeListener(t,e){}}zl.type="NONE";const $l=zl;
2298
+ /**
2299
+ * @license
2300
+ * Copyright 2019 Google LLC
2301
+ *
2302
+ * Licensed under the Apache License, Version 2.0 (the "License");
2303
+ * you may not use this file except in compliance with the License.
2304
+ * You may obtain a copy of the License at
2305
+ *
2306
+ * http://www.apache.org/licenses/LICENSE-2.0
2307
+ *
2308
+ * Unless required by applicable law or agreed to in writing, software
2309
+ * distributed under the License is distributed on an "AS IS" BASIS,
2310
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2311
+ * See the License for the specific language governing permissions and
2312
+ * limitations under the License.
2313
+ */function Kl(t,e,n){return`firebase:${t}:${e}:${n}`}class Hl{constructor(t,e,n){this.persistence=t,this.auth=e,this.userKey=n;const{config:r,name:s}=this.auth;this.fullUserKey=Kl(this.userKey,r.apiKey,s),this.fullPersistenceKey=Kl("persistence",r.apiKey,s),this.boundEventHandler=e._onStorageEvent.bind(e),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(t){return this.persistence._set(this.fullUserKey,t.toJSON())}async getCurrentUser(){const t=await this.persistence._get(this.fullUserKey);return t?Bl._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(t){if(this.persistence===t)return;const e=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=t,e?this.setCurrentUser(e):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,n="authUser"){if(!e.length)return new Hl(yl($l),t,n);const r=(await Promise.all(e.map((async t=>{if(await t._isAvailable())return t})))).filter((t=>t));let s=r[0]||yl($l);const i=Kl(n,t.config.apiKey,t.name);let o=null;for(const n of e)try{const e=await n._get(i);if(e){const r=Bl._fromJSON(t,e);n!==s&&(o=r),s=n;break}}catch(t){}const a=r.filter((t=>t._shouldAllowMigration));return s._shouldAllowMigration&&a.length?(s=a[0],o&&await s._set(i,o.toJSON()),await Promise.all(e.map((async t=>{if(t!==s)try{await t._remove(i)}catch(t){}}))),new Hl(s,t,n)):new Hl(s,t,n)}}
2314
+ /**
2315
+ * @license
2316
+ * Copyright 2020 Google LLC
2317
+ *
2318
+ * Licensed under the Apache License, Version 2.0 (the "License");
2319
+ * you may not use this file except in compliance with the License.
2320
+ * You may obtain a copy of the License at
2321
+ *
2322
+ * http://www.apache.org/licenses/LICENSE-2.0
2323
+ *
2324
+ * Unless required by applicable law or agreed to in writing, software
2325
+ * distributed under the License is distributed on an "AS IS" BASIS,
2326
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2327
+ * See the License for the specific language governing permissions and
2328
+ * limitations under the License.
2329
+ */function Gl(t){const e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Xl(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Wl(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Zl(e))return"Blackberry";if(td(e))return"Webos";if(Ql(e))return"Safari";if((e.includes("chrome/")||Jl(e))&&!e.includes("edge/"))return"Chrome";if(Yl(e))return"Android";{const e=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=t.match(e);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function Wl(t=o()){return/firefox\//i.test(t)}function Ql(t=o()){const e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Jl(t=o()){return/crios\//i.test(t)}function Xl(t=o()){return/iemobile/i.test(t)}function Yl(t=o()){return/android/i.test(t)}function Zl(t=o()){return/blackberry/i.test(t)}function td(t=o()){return/webos/i.test(t)}function ed(t=o()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function nd(){return function(){const t=o();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}()&&10===document.documentMode}function rd(t=o()){return ed(t)||Yl(t)||td(t)||Zl(t)||/windows phone/i.test(t)||Xl(t)}
2330
+ /**
2331
+ * @license
2332
+ * Copyright 2020 Google LLC
2333
+ *
2334
+ * Licensed under the Apache License, Version 2.0 (the "License");
2335
+ * you may not use this file except in compliance with the License.
2336
+ * You may obtain a copy of the License at
2337
+ *
2338
+ * http://www.apache.org/licenses/LICENSE-2.0
2339
+ *
2340
+ * Unless required by applicable law or agreed to in writing, software
2341
+ * distributed under the License is distributed on an "AS IS" BASIS,
2342
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2343
+ * See the License for the specific language governing permissions and
2344
+ * limitations under the License.
2345
+ */
2346
+ function sd(t,e=[]){let n;switch(t){case"Browser":n=Gl(o());break;case"Worker":n=`${Gl(o())}-${t}`;break;default:n=t}const r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${ct}/${r}`}
2347
+ /**
2348
+ * @license
2349
+ * Copyright 2022 Google LLC
2350
+ *
2351
+ * Licensed under the Apache License, Version 2.0 (the "License");
2352
+ * you may not use this file except in compliance with the License.
2353
+ * You may obtain a copy of the License at
2354
+ *
2355
+ * http://www.apache.org/licenses/LICENSE-2.0
2356
+ *
2357
+ * Unless required by applicable law or agreed to in writing, software
2358
+ * distributed under the License is distributed on an "AS IS" BASIS,
2359
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2360
+ * See the License for the specific language governing permissions and
2361
+ * limitations under the License.
2362
+ */class id{constructor(t){this.auth=t,this.queue=[]}pushCallback(t,e){const n=e=>new Promise(((n,r)=>{try{n(t(e))}catch(t){r(t)}}));n.onAbort=e,this.queue.push(n);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(t){if(this.auth.currentUser===t)return;const e=[];try{for(const n of this.queue)await n(t),n.onAbort&&e.push(n.onAbort)}catch(t){e.reverse();for(const t of e)try{t()}catch(t){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==t?void 0:t.message})}}}
2363
+ /**
2364
+ * @license
2365
+ * Copyright 2020 Google LLC
2366
+ *
2367
+ * Licensed under the Apache License, Version 2.0 (the "License");
2368
+ * you may not use this file except in compliance with the License.
2369
+ * You may obtain a copy of the License at
2370
+ *
2371
+ * http://www.apache.org/licenses/LICENSE-2.0
2372
+ *
2373
+ * Unless required by applicable law or agreed to in writing, software
2374
+ * distributed under the License is distributed on an "AS IS" BASIS,
2375
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2376
+ * See the License for the specific language governing permissions and
2377
+ * limitations under the License.
2378
+ */class od{constructor(t,e,n){this.app=t,this.heartbeatServiceProvider=e,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new cd(this),this.idTokenSubscription=new cd(this),this.beforeStateQueue=new id(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=ol,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=t.name,this.clientVersion=n.sdkClientVersion}_initializeWithPersistence(t,e){return e&&(this._popupRedirectResolver=yl(e)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await Hl.create(this,t),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(t){}await this.initializeCurrentUser(e),this.lastNotifiedUid=(null===(r=this.currentUser)||void 0===r?void 0:r.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const t=await this.assertedPersistence.getCurrentUser();return this.currentUser||t?this.currentUser&&t&&this.currentUser.uid===t.uid?(this._currentUser._assign(t),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(t,!0):void 0}async initializeCurrentUser(t){var e;const n=await this.assertedPersistence.getCurrentUser();let r=n,s=!1;if(t&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(e=this.redirectUser)||void 0===e?void 0:e._redirectEventId,i=null==r?void 0:r._redirectEventId,o=await this.tryRedirectSignIn(t);n&&n!==i||!(null==o?void 0:o.user)||(r=o.user,s=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(s)try{await this.beforeStateQueue.runMiddleware(r)}catch(t){r=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(t)))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return fl(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(t){let e=null;try{e=await this._popupRedirectResolver._completeRedirectFn(this,t,!0)}catch(t){await this._setRedirectUser(null)}return e}async reloadAndSetCurrentUserOrClear(t){try{await Vl(t)}catch(t){if("auth/network-request-failed"!==(null==t?void 0:t.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(t)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const t=navigator;return t.languages&&t.languages[0]||t.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(t){const e=t?E(t):null;return e&&fl(e.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(e&&e._clone(this))}async _updateCurrentUser(t,e=!1){if(!this._deleted)return t&&fl(this.tenantId===t.tenantId,this,"tenant-id-mismatch"),e||await this.beforeStateQueue.runMiddleware(t),this.queue((async()=>{await this.directlySetCurrentUser(t),this.notifyAuthListeners()}))}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(t){return this.queue((async()=>{await this.assertedPersistence.setPersistence(yl(t))}))}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(t){this._errorFactory=new f("auth","Firebase",t())}onAuthStateChanged(t,e,n){return this.registerStateListener(this.authStateSubscription,t,e,n)}beforeAuthStateChanged(t,e){return this.beforeStateQueue.pushCallback(t,e)}onIdTokenChanged(t,e,n){return this.registerStateListener(this.idTokenSubscription,t,e,n)}toJSON(){var t;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(t=this._currentUser)||void 0===t?void 0:t.toJSON()}}async _setRedirectUser(t,e){const n=await this.getOrInitRedirectPersistenceManager(e);return null===t?n.removeCurrentUser():n.setCurrentUser(t)}async getOrInitRedirectPersistenceManager(t){if(!this.redirectPersistenceManager){const e=t&&yl(t)||this._popupRedirectResolver;fl(e,this,"argument-error"),this.redirectPersistenceManager=await Hl.create(this,[yl(e._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(t){var e,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(e=this._currentUser)||void 0===e?void 0:e._redirectEventId)===t?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId)===t?this.redirectUser:null}async _persistUserIfCurrent(t){if(t===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(t)))}_notifyListenersIfCurrent(t){t===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var t,e;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(e=null===(t=this.currentUser)||void 0===t?void 0:t.uid)&&void 0!==e?e:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,e,n,r){if(this._deleted)return()=>{};const s="function"==typeof e?e:e.next.bind(e),i=this._isInitialized?Promise.resolve():this._initializationPromise;return fl(i,this,"internal-error"),i.then((()=>s(this.currentUser))),"function"==typeof e?t.addObserver(e,n,r):t.addObserver(e)}async directlySetCurrentUser(t){this.currentUser&&this.currentUser!==t&&this._currentUser._stopProactiveRefresh(),t&&this.isProactiveRefreshEnabled&&t._startProactiveRefresh(),this.currentUser=t,t?await this.assertedPersistence.setCurrentUser(t):await this.assertedPersistence.removeCurrentUser()}queue(t){return this.operations=this.operations.then(t,t),this.operations}get assertedPersistence(){return fl(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(t){t&&!this.frameworks.includes(t)&&(this.frameworks.push(t),this.frameworks.sort(),this.clientVersion=sd(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var t;const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());return n&&(e["X-Firebase-Client"]=n),e}}function ad(t){return E(t)}class cd{constructor(t){this.auth=t,this.observer=null,this.addObserver=function(t,e){const n=new I(t,e);return n.subscribe.bind(n)}((t=>this.observer=t))}get next(){return fl(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function ud(t,e,n){const r=ad(t);fl(r._canInitEmulator,r,"emulator-config-failed"),fl(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");const s=!!(null==n?void 0:n.disableWarnings),i=hd(e),{host:o,port:a}=function(t){const e=hd(t),n=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",s=/^(\[[^\]]+\])(:|$)/.exec(r);if(s){const t=s[1];return{host:t,port:ld(r.substr(t.length+1))}}{const[t,e]=r.split(":");return{host:t,port:ld(e)}}}(e),c=null===a?"":`:${a}`;r.config.emulator={url:`${i}//${o}${c}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:o,port:a,protocol:i.replace(":",""),options:Object.freeze({disableWarnings:s})}),s||function(){function t(){const t=document.createElement("p"),e=t.style;t.innerText="Running in emulator mode. Do not use with production credentials.",e.position="fixed",e.width="100%",e.backgroundColor="#ffffff",e.border=".1em solid #000000",e.color="#b50000",e.bottom="0px",e.left="0px",e.margin="0px",e.zIndex="10000",e.textAlign="center",t.classList.add("firebase-emulator-warning"),document.body.appendChild(t)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",t):t())}
2379
+ /**
2380
+ * @license
2381
+ * Copyright 2020 Google LLC
2382
+ *
2383
+ * Licensed under the Apache License, Version 2.0 (the "License");
2384
+ * you may not use this file except in compliance with the License.
2385
+ * You may obtain a copy of the License at
2386
+ *
2387
+ * http://www.apache.org/licenses/LICENSE-2.0
2388
+ *
2389
+ * Unless required by applicable law or agreed to in writing, software
2390
+ * distributed under the License is distributed on an "AS IS" BASIS,
2391
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2392
+ * See the License for the specific language governing permissions and
2393
+ * limitations under the License.
2394
+ */()}function hd(t){const e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function ld(t){if(!t)return null;const e=Number(t);return isNaN(e)?null:e}class dd{constructor(t,e){this.providerId=t,this.signInMethod=e}toJSON(){return pl("not implemented")}_getIdTokenResponse(t){return pl("not implemented")}_linkToIdToken(t,e){return pl("not implemented")}_getReauthenticationResolver(t){return pl("not implemented")}}
2395
+ /**
2396
+ * @license
2397
+ * Copyright 2020 Google LLC
2398
+ *
2399
+ * Licensed under the Apache License, Version 2.0 (the "License");
2400
+ * you may not use this file except in compliance with the License.
2401
+ * You may obtain a copy of the License at
2402
+ *
2403
+ * http://www.apache.org/licenses/LICENSE-2.0
2404
+ *
2405
+ * Unless required by applicable law or agreed to in writing, software
2406
+ * distributed under the License is distributed on an "AS IS" BASIS,
2407
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2408
+ * See the License for the specific language governing permissions and
2409
+ * limitations under the License.
2410
+ */async function fd(t,e){return async function(t,e){return Cl(t,"POST","/v1/accounts:sendOobCode",Al(t,e))}(t,e)}
2411
+ /**
2412
+ * @license
2413
+ * Copyright 2020 Google LLC
2414
+ *
2415
+ * Licensed under the Apache License, Version 2.0 (the "License");
2416
+ * you may not use this file except in compliance with the License.
2417
+ * You may obtain a copy of the License at
2418
+ *
2419
+ * http://www.apache.org/licenses/LICENSE-2.0
2420
+ *
2421
+ * Unless required by applicable law or agreed to in writing, software
2422
+ * distributed under the License is distributed on an "AS IS" BASIS,
2423
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2424
+ * See the License for the specific language governing permissions and
2425
+ * limitations under the License.
2426
+ */
2427
+ /**
2428
+ * @license
2429
+ * Copyright 2020 Google LLC
2430
+ *
2431
+ * Licensed under the Apache License, Version 2.0 (the "License");
2432
+ * you may not use this file except in compliance with the License.
2433
+ * You may obtain a copy of the License at
2434
+ *
2435
+ * http://www.apache.org/licenses/LICENSE-2.0
2436
+ *
2437
+ * Unless required by applicable law or agreed to in writing, software
2438
+ * distributed under the License is distributed on an "AS IS" BASIS,
2439
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2440
+ * See the License for the specific language governing permissions and
2441
+ * limitations under the License.
2442
+ */
2443
+ class pd extends dd{constructor(t,e,n,r=null){super("password",n),this._email=t,this._password=e,this._tenantId=r}static _fromEmailAndPassword(t,e){return new pd(t,e,"password")}static _fromEmailAndCode(t,e,n=null){return new pd(t,e,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(t){const e="string"==typeof t?JSON.parse(t):t;if((null==e?void 0:e.email)&&(null==e?void 0:e.password)){if("password"===e.signInMethod)return this._fromEmailAndPassword(e.email,e.password);if("emailLink"===e.signInMethod)return this._fromEmailAndCode(e.email,e.password,e.tenantId)}return null}async _getIdTokenResponse(t){switch(this.signInMethod){case"password":
2444
+ /**
2445
+ * @license
2446
+ * Copyright 2020 Google LLC
2447
+ *
2448
+ * Licensed under the Apache License, Version 2.0 (the "License");
2449
+ * you may not use this file except in compliance with the License.
2450
+ * You may obtain a copy of the License at
2451
+ *
2452
+ * http://www.apache.org/licenses/LICENSE-2.0
2453
+ *
2454
+ * Unless required by applicable law or agreed to in writing, software
2455
+ * distributed under the License is distributed on an "AS IS" BASIS,
2456
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2457
+ * See the License for the specific language governing permissions and
2458
+ * limitations under the License.
2459
+ */
2460
+ return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithPassword",Al(t,e))}(t,{returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithEmailLink",Al(t,e))}(t,{email:this._email,oobCode:this._password});default:hl(t,"internal-error")}}async _linkToIdToken(t,e){switch(this.signInMethod){case"password":return async function(t,e){return Cl(t,"POST","/v1/accounts:update",e)}(t,{idToken:e,returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithEmailLink",Al(t,e))}(t,{idToken:e,email:this._email,oobCode:this._password});default:hl(t,"internal-error")}}_getReauthenticationResolver(t){return this._getIdTokenResponse(t)}}
2461
+ /**
2462
+ * @license
2463
+ * Copyright 2020 Google LLC
2464
+ *
2465
+ * Licensed under the Apache License, Version 2.0 (the "License");
2466
+ * you may not use this file except in compliance with the License.
2467
+ * You may obtain a copy of the License at
2468
+ *
2469
+ * http://www.apache.org/licenses/LICENSE-2.0
2470
+ *
2471
+ * Unless required by applicable law or agreed to in writing, software
2472
+ * distributed under the License is distributed on an "AS IS" BASIS,
2473
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2474
+ * See the License for the specific language governing permissions and
2475
+ * limitations under the License.
2476
+ */async function gd(t,e){return Nl(t,"POST","/v1/accounts:signInWithIdp",Al(t,e))}
2477
+ /**
2478
+ * @license
2479
+ * Copyright 2020 Google LLC
2480
+ *
2481
+ * Licensed under the Apache License, Version 2.0 (the "License");
2482
+ * you may not use this file except in compliance with the License.
2483
+ * You may obtain a copy of the License at
2484
+ *
2485
+ * http://www.apache.org/licenses/LICENSE-2.0
2486
+ *
2487
+ * Unless required by applicable law or agreed to in writing, software
2488
+ * distributed under the License is distributed on an "AS IS" BASIS,
2489
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2490
+ * See the License for the specific language governing permissions and
2491
+ * limitations under the License.
2492
+ */class md extends dd{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(t){const e=new md(t.providerId,t.signInMethod);return t.idToken||t.accessToken?(t.idToken&&(e.idToken=t.idToken),t.accessToken&&(e.accessToken=t.accessToken),t.nonce&&!t.pendingToken&&(e.nonce=t.nonce),t.pendingToken&&(e.pendingToken=t.pendingToken)):t.oauthToken&&t.oauthTokenSecret?(e.accessToken=t.oauthToken,e.secret=t.oauthTokenSecret):hl("argument-error"),e}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(t){const e="string"==typeof t?JSON.parse(t):t,{providerId:n,signInMethod:r}=e,s=rl(e,["providerId","signInMethod"]);if(!n||!r)return null;const i=new md(n,r);return i.idToken=s.idToken||void 0,i.accessToken=s.accessToken||void 0,i.secret=s.secret,i.nonce=s.nonce,i.pendingToken=s.pendingToken||null,i}_getIdTokenResponse(t){return gd(t,this.buildRequest())}_linkToIdToken(t,e){const n=this.buildRequest();return n.idToken=e,gd(t,n)}_getReauthenticationResolver(t){const e=this.buildRequest();return e.autoCreate=!1,gd(t,e)}buildRequest(){const t={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)t.pendingToken=this.pendingToken;else{const e={};this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=y(e)}return t}}
2493
+ /**
2494
+ * @license
2495
+ * Copyright 2020 Google LLC
2496
+ *
2497
+ * Licensed under the Apache License, Version 2.0 (the "License");
2498
+ * you may not use this file except in compliance with the License.
2499
+ * You may obtain a copy of the License at
2500
+ *
2501
+ * http://www.apache.org/licenses/LICENSE-2.0
2502
+ *
2503
+ * Unless required by applicable law or agreed to in writing, software
2504
+ * distributed under the License is distributed on an "AS IS" BASIS,
2505
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2506
+ * See the License for the specific language governing permissions and
2507
+ * limitations under the License.
2508
+ */class yd{constructor(t){var e,n,r,s,i,o;const a=v(w(t)),c=null!==(e=a.apiKey)&&void 0!==e?e:null,u=null!==(n=a.oobCode)&&void 0!==n?n:null,h=function(t){switch(t){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(r=a.mode)&&void 0!==r?r:null);fl(c&&u&&h,"argument-error"),this.apiKey=c,this.operation=h,this.code=u,this.continueUrl=null!==(s=a.continueUrl)&&void 0!==s?s:null,this.languageCode=null!==(i=a.languageCode)&&void 0!==i?i:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(t){const e=function(t){const e=v(w(t)).link,n=e?v(w(e)).deep_link_id:null,r=v(w(t)).deep_link_id;return(r?v(w(r)).link:null)||r||n||e||t}(t);try{return new yd(e)}catch(t){return null}}}
2509
+ /**
2510
+ * @license
2511
+ * Copyright 2020 Google LLC
2512
+ *
2513
+ * Licensed under the Apache License, Version 2.0 (the "License");
2514
+ * you may not use this file except in compliance with the License.
2515
+ * You may obtain a copy of the License at
2516
+ *
2517
+ * http://www.apache.org/licenses/LICENSE-2.0
2518
+ *
2519
+ * Unless required by applicable law or agreed to in writing, software
2520
+ * distributed under the License is distributed on an "AS IS" BASIS,
2521
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2522
+ * See the License for the specific language governing permissions and
2523
+ * limitations under the License.
2524
+ */class vd{constructor(){this.providerId=vd.PROVIDER_ID}static credential(t,e){return pd._fromEmailAndPassword(t,e)}static credentialWithLink(t,e){const n=yd.parseLink(e);return fl(n,"argument-error"),pd._fromEmailAndCode(t,n.code,n.tenantId)}}vd.PROVIDER_ID="password",vd.EMAIL_PASSWORD_SIGN_IN_METHOD="password",vd.EMAIL_LINK_SIGN_IN_METHOD="emailLink";
2525
+ /**
2526
+ * @license
2527
+ * Copyright 2020 Google LLC
2528
+ *
2529
+ * Licensed under the Apache License, Version 2.0 (the "License");
2530
+ * you may not use this file except in compliance with the License.
2531
+ * You may obtain a copy of the License at
2532
+ *
2533
+ * http://www.apache.org/licenses/LICENSE-2.0
2534
+ *
2535
+ * Unless required by applicable law or agreed to in writing, software
2536
+ * distributed under the License is distributed on an "AS IS" BASIS,
2537
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2538
+ * See the License for the specific language governing permissions and
2539
+ * limitations under the License.
2540
+ */
2541
+ class wd{constructor(t){this.providerId=t,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(t){this.defaultLanguageCode=t}setCustomParameters(t){return this.customParameters=t,this}getCustomParameters(){return this.customParameters}}
2542
+ /**
2543
+ * @license
2544
+ * Copyright 2019 Google LLC
2545
+ *
2546
+ * Licensed under the Apache License, Version 2.0 (the "License");
2547
+ * you may not use this file except in compliance with the License.
2548
+ * You may obtain a copy of the License at
2549
+ *
2550
+ * http://www.apache.org/licenses/LICENSE-2.0
2551
+ *
2552
+ * Unless required by applicable law or agreed to in writing, software
2553
+ * distributed under the License is distributed on an "AS IS" BASIS,
2554
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2555
+ * See the License for the specific language governing permissions and
2556
+ * limitations under the License.
2557
+ */class Id extends wd{constructor(){super(...arguments),this.scopes=[]}addScope(t){return this.scopes.includes(t)||this.scopes.push(t),this}getScopes(){return[...this.scopes]}}
2558
+ /**
2559
+ * @license
2560
+ * Copyright 2020 Google LLC
2561
+ *
2562
+ * Licensed under the Apache License, Version 2.0 (the "License");
2563
+ * you may not use this file except in compliance with the License.
2564
+ * You may obtain a copy of the License at
2565
+ *
2566
+ * http://www.apache.org/licenses/LICENSE-2.0
2567
+ *
2568
+ * Unless required by applicable law or agreed to in writing, software
2569
+ * distributed under the License is distributed on an "AS IS" BASIS,
2570
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2571
+ * See the License for the specific language governing permissions and
2572
+ * limitations under the License.
2573
+ */class bd extends Id{constructor(){super("facebook.com")}static credential(t){return md._fromParams({providerId:bd.PROVIDER_ID,signInMethod:bd.FACEBOOK_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return bd.credentialFromTaggedObject(t)}static credentialFromError(t){return bd.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return bd.credential(t.oauthAccessToken)}catch(t){return null}}}bd.FACEBOOK_SIGN_IN_METHOD="facebook.com",bd.PROVIDER_ID="facebook.com";
2574
+ /**
2575
+ * @license
2576
+ * Copyright 2020 Google LLC
2577
+ *
2578
+ * Licensed under the Apache License, Version 2.0 (the "License");
2579
+ * you may not use this file except in compliance with the License.
2580
+ * You may obtain a copy of the License at
2581
+ *
2582
+ * http://www.apache.org/licenses/LICENSE-2.0
2583
+ *
2584
+ * Unless required by applicable law or agreed to in writing, software
2585
+ * distributed under the License is distributed on an "AS IS" BASIS,
2586
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2587
+ * See the License for the specific language governing permissions and
2588
+ * limitations under the License.
2589
+ */
2590
+ class Ed extends Id{constructor(){super("google.com"),this.addScope("profile")}static credential(t,e){return md._fromParams({providerId:Ed.PROVIDER_ID,signInMethod:Ed.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:e})}static credentialFromResult(t){return Ed.credentialFromTaggedObject(t)}static credentialFromError(t){return Ed.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthIdToken:e,oauthAccessToken:n}=t;if(!e&&!n)return null;try{return Ed.credential(e,n)}catch(t){return null}}}Ed.GOOGLE_SIGN_IN_METHOD="google.com",Ed.PROVIDER_ID="google.com";
2591
+ /**
2592
+ * @license
2593
+ * Copyright 2020 Google LLC
2594
+ *
2595
+ * Licensed under the Apache License, Version 2.0 (the "License");
2596
+ * you may not use this file except in compliance with the License.
2597
+ * You may obtain a copy of the License at
2598
+ *
2599
+ * http://www.apache.org/licenses/LICENSE-2.0
2600
+ *
2601
+ * Unless required by applicable law or agreed to in writing, software
2602
+ * distributed under the License is distributed on an "AS IS" BASIS,
2603
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2604
+ * See the License for the specific language governing permissions and
2605
+ * limitations under the License.
2606
+ */
2607
+ class _d extends Id{constructor(){super("github.com")}static credential(t){return md._fromParams({providerId:_d.PROVIDER_ID,signInMethod:_d.GITHUB_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return _d.credentialFromTaggedObject(t)}static credentialFromError(t){return _d.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return _d.credential(t.oauthAccessToken)}catch(t){return null}}}_d.GITHUB_SIGN_IN_METHOD="github.com",_d.PROVIDER_ID="github.com";
2608
+ /**
2609
+ * @license
2610
+ * Copyright 2020 Google LLC
2611
+ *
2612
+ * Licensed under the Apache License, Version 2.0 (the "License");
2613
+ * you may not use this file except in compliance with the License.
2614
+ * You may obtain a copy of the License at
2615
+ *
2616
+ * http://www.apache.org/licenses/LICENSE-2.0
2617
+ *
2618
+ * Unless required by applicable law or agreed to in writing, software
2619
+ * distributed under the License is distributed on an "AS IS" BASIS,
2620
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2621
+ * See the License for the specific language governing permissions and
2622
+ * limitations under the License.
2623
+ */
2624
+ class Td extends Id{constructor(){super("twitter.com")}static credential(t,e){return md._fromParams({providerId:Td.PROVIDER_ID,signInMethod:Td.TWITTER_SIGN_IN_METHOD,oauthToken:t,oauthTokenSecret:e})}static credentialFromResult(t){return Td.credentialFromTaggedObject(t)}static credentialFromError(t){return Td.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthAccessToken:e,oauthTokenSecret:n}=t;if(!e||!n)return null;try{return Td.credential(e,n)}catch(t){return null}}}Td.TWITTER_SIGN_IN_METHOD="twitter.com",Td.PROVIDER_ID="twitter.com";
2625
+ /**
2626
+ * @license
2627
+ * Copyright 2020 Google LLC
2628
+ *
2629
+ * Licensed under the Apache License, Version 2.0 (the "License");
2630
+ * you may not use this file except in compliance with the License.
2631
+ * You may obtain a copy of the License at
2632
+ *
2633
+ * http://www.apache.org/licenses/LICENSE-2.0
2634
+ *
2635
+ * Unless required by applicable law or agreed to in writing, software
2636
+ * distributed under the License is distributed on an "AS IS" BASIS,
2637
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2638
+ * See the License for the specific language governing permissions and
2639
+ * limitations under the License.
2640
+ */
2641
+ class Sd{constructor(t){this.user=t.user,this.providerId=t.providerId,this._tokenResponse=t._tokenResponse,this.operationType=t.operationType}static async _fromIdTokenResponse(t,e,n,r=!1){const s=await Bl._fromIdTokenResponse(t,n,r),i=Ad(n);return new Sd({user:s,providerId:i,_tokenResponse:n,operationType:e})}static async _forOperation(t,e,n){await t._updateTokensIfNecessary(n,!0);const r=Ad(n);return new Sd({user:t,providerId:r,_tokenResponse:n,operationType:e})}}function Ad(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}
2642
+ /**
2643
+ * @license
2644
+ * Copyright 2020 Google LLC
2645
+ *
2646
+ * Licensed under the Apache License, Version 2.0 (the "License");
2647
+ * you may not use this file except in compliance with the License.
2648
+ * You may obtain a copy of the License at
2649
+ *
2650
+ * http://www.apache.org/licenses/LICENSE-2.0
2651
+ *
2652
+ * Unless required by applicable law or agreed to in writing, software
2653
+ * distributed under the License is distributed on an "AS IS" BASIS,
2654
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2655
+ * See the License for the specific language governing permissions and
2656
+ * limitations under the License.
2657
+ */class Cd extends d{constructor(t,e,n,r){var s;super(e.code,e.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,Cd.prototype),this.customData={appName:t.name,tenantId:null!==(s=t.tenantId)&&void 0!==s?s:void 0,_serverResponse:e.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(t,e,n,r){return new Cd(t,e,n,r)}}function kd(t,e,n,r){return("reauthenticate"===e?n._getReauthenticationResolver(t):n._getIdTokenResponse(t)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw Cd._fromErrorAndOperation(t,n,e,r);throw n}))}
2658
+ /**
2659
+ * @license
2660
+ * Copyright 2020 Google LLC
2661
+ *
2662
+ * Licensed under the Apache License, Version 2.0 (the "License");
2663
+ * you may not use this file except in compliance with the License.
2664
+ * You may obtain a copy of the License at
2665
+ *
2666
+ * http://www.apache.org/licenses/LICENSE-2.0
2667
+ *
2668
+ * Unless required by applicable law or agreed to in writing, software
2669
+ * distributed under the License is distributed on an "AS IS" BASIS,
2670
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2671
+ * See the License for the specific language governing permissions and
2672
+ * limitations under the License.
2673
+ */
2674
+ async function Nd(t,e,n=!1){const r="signIn",s=await kd(t,r,e),i=await Sd._fromIdTokenResponse(t,r,s);return n||await t._updateCurrentUser(i.user),i}
2675
+ /**
2676
+ * @license
2677
+ * Copyright 2020 Google LLC
2678
+ *
2679
+ * Licensed under the Apache License, Version 2.0 (the "License");
2680
+ * you may not use this file except in compliance with the License.
2681
+ * You may obtain a copy of the License at
2682
+ *
2683
+ * http://www.apache.org/licenses/LICENSE-2.0
2684
+ *
2685
+ * Unless required by applicable law or agreed to in writing, software
2686
+ * distributed under the License is distributed on an "AS IS" BASIS,
2687
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2688
+ * See the License for the specific language governing permissions and
2689
+ * limitations under the License.
2690
+ */
2691
+ async function Dd(t,e,n){const r=E(t),s={requestType:"PASSWORD_RESET",email:e};n&&
2692
+ /**
2693
+ * @license
2694
+ * Copyright 2020 Google LLC
2695
+ *
2696
+ * Licensed under the Apache License, Version 2.0 (the "License");
2697
+ * you may not use this file except in compliance with the License.
2698
+ * You may obtain a copy of the License at
2699
+ *
2700
+ * http://www.apache.org/licenses/LICENSE-2.0
2701
+ *
2702
+ * Unless required by applicable law or agreed to in writing, software
2703
+ * distributed under the License is distributed on an "AS IS" BASIS,
2704
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2705
+ * See the License for the specific language governing permissions and
2706
+ * limitations under the License.
2707
+ */
2708
+ function(t,e,n){var r;fl((null===(r=n.url)||void 0===r?void 0:r.length)>0,t,"invalid-continue-uri"),fl(void 0===n.dynamicLinkDomain||n.dynamicLinkDomain.length>0,t,"invalid-dynamic-link-domain"),e.continueUrl=n.url,e.dynamicLinkDomain=n.dynamicLinkDomain,e.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(fl(n.iOS.bundleId.length>0,t,"missing-ios-bundle-id"),e.iOSBundleId=n.iOS.bundleId),n.android&&(fl(n.android.packageName.length>0,t,"missing-android-pkg-name"),e.androidInstallApp=n.android.installApp,e.androidMinimumVersionCode=n.android.minimumVersion,e.androidPackageName=n.android.packageName)}(r,s,n),await fd(r,s)}async function Rd(t,e,n){await async function(t,e){return Cl(t,"POST","/v1/accounts:resetPassword",Al(t,e))}(E(t),{oobCode:e,newPassword:n})}function Od(t,e,n){return async function(t,e){return Nd(ad(t),e)}(E(t),vd.credential(e,n))}const Ld="__sak";
2709
+ /**
2710
+ * @license
2711
+ * Copyright 2019 Google LLC
2712
+ *
2713
+ * Licensed under the Apache License, Version 2.0 (the "License");
2714
+ * you may not use this file except in compliance with the License.
2715
+ * You may obtain a copy of the License at
2716
+ *
2717
+ * http://www.apache.org/licenses/LICENSE-2.0
2718
+ *
2719
+ * Unless required by applicable law or agreed to in writing, software
2720
+ * distributed under the License is distributed on an "AS IS" BASIS,
2721
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2722
+ * See the License for the specific language governing permissions and
2723
+ * limitations under the License.
2724
+ */class Pd{constructor(t,e){this.storageRetriever=t,this.type=e}_isAvailable(){try{return this.storage?(this.storage.setItem(Ld,"1"),this.storage.removeItem(Ld),Promise.resolve(!0)):Promise.resolve(!1)}catch(t){return Promise.resolve(!1)}}_set(t,e){return this.storage.setItem(t,JSON.stringify(e)),Promise.resolve()}_get(t){const e=this.storage.getItem(t);return Promise.resolve(e?JSON.parse(e):null)}_remove(t){return this.storage.removeItem(t),Promise.resolve()}get storage(){return this.storageRetriever()}}
2725
+ /**
2726
+ * @license
2727
+ * Copyright 2020 Google LLC
2728
+ *
2729
+ * Licensed under the Apache License, Version 2.0 (the "License");
2730
+ * you may not use this file except in compliance with the License.
2731
+ * You may obtain a copy of the License at
2732
+ *
2733
+ * http://www.apache.org/licenses/LICENSE-2.0
2734
+ *
2735
+ * Unless required by applicable law or agreed to in writing, software
2736
+ * distributed under the License is distributed on an "AS IS" BASIS,
2737
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2738
+ * See the License for the specific language governing permissions and
2739
+ * limitations under the License.
2740
+ */class Md extends Pd{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(t,e)=>this.onStorageEvent(t,e),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=function(){const t=o();return Ql(t)||ed(t)}()&&function(){try{return!(!window||window===window.top)}catch(t){return!1}}(),this.fallbackToPolling=rd(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(const e of Object.keys(this.listeners)){const n=this.storage.getItem(e),r=this.localCache[e];n!==r&&t(e,r,n)}}onStorageEvent(t,e=!1){if(!t.key)return void this.forAllChangedKeys(((t,e,n)=>{this.notifyListeners(t,n)}));const n=t.key;if(e?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const r=this.storage.getItem(n);if(t.newValue!==r)null!==t.newValue?this.storage.setItem(n,t.newValue):this.storage.removeItem(n);else if(this.localCache[n]===t.newValue&&!e)return}const r=()=>{const t=this.storage.getItem(n);(e||this.localCache[n]!==t)&&this.notifyListeners(n,t)},s=this.storage.getItem(n);nd()&&s!==t.newValue&&t.newValue!==t.oldValue?setTimeout(r,10):r()}notifyListeners(t,e){this.localCache[t]=e;const n=this.listeners[t];if(n)for(const t of Array.from(n))t(e?JSON.parse(e):e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((t,e,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:e,newValue:n}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,e){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(t,e){await super._set(t,e),this.localCache[t]=JSON.stringify(e)}async _get(t){const e=await super._get(t);return this.localCache[t]=JSON.stringify(e),e}async _remove(t){await super._remove(t),delete this.localCache[t]}}Md.type="LOCAL";const xd=Md;
2741
+ /**
2742
+ * @license
2743
+ * Copyright 2020 Google LLC
2744
+ *
2745
+ * Licensed under the Apache License, Version 2.0 (the "License");
2746
+ * you may not use this file except in compliance with the License.
2747
+ * You may obtain a copy of the License at
2748
+ *
2749
+ * http://www.apache.org/licenses/LICENSE-2.0
2750
+ *
2751
+ * Unless required by applicable law or agreed to in writing, software
2752
+ * distributed under the License is distributed on an "AS IS" BASIS,
2753
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2754
+ * See the License for the specific language governing permissions and
2755
+ * limitations under the License.
2756
+ */class Ud extends Pd{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(t,e){}_removeListener(t,e){}}Ud.type="SESSION";const Fd=Ud;
2757
+ /**
2758
+ * @license
2759
+ * Copyright 2019 Google LLC
2760
+ *
2761
+ * Licensed under the Apache License, Version 2.0 (the "License");
2762
+ * you may not use this file except in compliance with the License.
2763
+ * You may obtain a copy of the License at
2764
+ *
2765
+ * http://www.apache.org/licenses/LICENSE-2.0
2766
+ *
2767
+ * Unless required by applicable law or agreed to in writing, software
2768
+ * distributed under the License is distributed on an "AS IS" BASIS,
2769
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2770
+ * See the License for the specific language governing permissions and
2771
+ * limitations under the License.
2772
+ */
2773
+ /**
2774
+ * @license
2775
+ * Copyright 2019 Google LLC
2776
+ *
2777
+ * Licensed under the Apache License, Version 2.0 (the "License");
2778
+ * you may not use this file except in compliance with the License.
2779
+ * You may obtain a copy of the License at
2780
+ *
2781
+ * http://www.apache.org/licenses/LICENSE-2.0
2782
+ *
2783
+ * Unless required by applicable law or agreed to in writing, software
2784
+ * distributed under the License is distributed on an "AS IS" BASIS,
2785
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2786
+ * See the License for the specific language governing permissions and
2787
+ * limitations under the License.
2788
+ */
2789
+ class Vd{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){const e=this.receivers.find((e=>e.isListeningto(t)));if(e)return e;const n=new Vd(t);return this.receivers.push(n),n}isListeningto(t){return this.eventTarget===t}async handleEvent(t){const e=t,{eventId:n,eventType:r,data:s}=e.data,i=this.handlersMap[r];if(!(null==i?void 0:i.size))return;e.ports[0].postMessage({status:"ack",eventId:n,eventType:r});const o=Array.from(i).map((async t=>t(e.origin,s))),a=await function(t){return Promise.all(t.map((async t=>{try{return{fulfilled:!0,value:await t}}catch(t){return{fulfilled:!1,reason:t}}})))}(o);e.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:a})}_subscribe(t,e){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(e)}_unsubscribe(t,e){this.handlersMap[t]&&e&&this.handlersMap[t].delete(e),e&&0!==this.handlersMap[t].size||delete this.handlersMap[t],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}
2790
+ /**
2791
+ * @license
2792
+ * Copyright 2020 Google LLC
2793
+ *
2794
+ * Licensed under the Apache License, Version 2.0 (the "License");
2795
+ * you may not use this file except in compliance with the License.
2796
+ * You may obtain a copy of the License at
2797
+ *
2798
+ * http://www.apache.org/licenses/LICENSE-2.0
2799
+ *
2800
+ * Unless required by applicable law or agreed to in writing, software
2801
+ * distributed under the License is distributed on an "AS IS" BASIS,
2802
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2803
+ * See the License for the specific language governing permissions and
2804
+ * limitations under the License.
2805
+ */
2806
+ function qd(t="",e=10){let n="";for(let t=0;t<e;t++)n+=Math.floor(10*Math.random());return t+n}
2807
+ /**
2808
+ * @license
2809
+ * Copyright 2019 Google LLC
2810
+ *
2811
+ * Licensed under the Apache License, Version 2.0 (the "License");
2812
+ * you may not use this file except in compliance with the License.
2813
+ * You may obtain a copy of the License at
2814
+ *
2815
+ * http://www.apache.org/licenses/LICENSE-2.0
2816
+ *
2817
+ * Unless required by applicable law or agreed to in writing, software
2818
+ * distributed under the License is distributed on an "AS IS" BASIS,
2819
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2820
+ * See the License for the specific language governing permissions and
2821
+ * limitations under the License.
2822
+ */Vd.receivers=[];class jd{constructor(t){this.target=t,this.handlers=new Set}removeMessageHandler(t){t.messageChannel&&(t.messageChannel.port1.removeEventListener("message",t.onMessage),t.messageChannel.port1.close()),this.handlers.delete(t)}async _send(t,e,n=50){const r="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let s,i;return new Promise(((o,a)=>{const c=qd("",20);r.port1.start();const u=setTimeout((()=>{a(new Error("unsupported_event"))}),n);i={messageChannel:r,onMessage(t){const e=t;if(e.data.eventId===c)switch(e.data.status){case"ack":clearTimeout(u),s=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(s),o(e.data.response);break;default:clearTimeout(u),clearTimeout(s),a(new Error("invalid_response"))}}},this.handlers.add(i),r.port1.addEventListener("message",i.onMessage),this.target.postMessage({eventType:t,eventId:c,data:e},[r.port2])})).finally((()=>{i&&this.removeMessageHandler(i)}))}}
2823
+ /**
2824
+ * @license
2825
+ * Copyright 2020 Google LLC
2826
+ *
2827
+ * Licensed under the Apache License, Version 2.0 (the "License");
2828
+ * you may not use this file except in compliance with the License.
2829
+ * You may obtain a copy of the License at
2830
+ *
2831
+ * http://www.apache.org/licenses/LICENSE-2.0
2832
+ *
2833
+ * Unless required by applicable law or agreed to in writing, software
2834
+ * distributed under the License is distributed on an "AS IS" BASIS,
2835
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2836
+ * See the License for the specific language governing permissions and
2837
+ * limitations under the License.
2838
+ */function Bd(){return window}
2839
+ /**
2840
+ * @license
2841
+ * Copyright 2020 Google LLC.
2842
+ *
2843
+ * Licensed under the Apache License, Version 2.0 (the "License");
2844
+ * you may not use this file except in compliance with the License.
2845
+ * You may obtain a copy of the License at
2846
+ *
2847
+ * http://www.apache.org/licenses/LICENSE-2.0
2848
+ *
2849
+ * Unless required by applicable law or agreed to in writing, software
2850
+ * distributed under the License is distributed on an "AS IS" BASIS,
2851
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2852
+ * See the License for the specific language governing permissions and
2853
+ * limitations under the License.
2854
+ */
2855
+ function zd(){return void 0!==Bd().WorkerGlobalScope&&"function"==typeof Bd().importScripts}
2856
+ /**
2857
+ * @license
2858
+ * Copyright 2019 Google LLC
2859
+ *
2860
+ * Licensed under the Apache License, Version 2.0 (the "License");
2861
+ * you may not use this file except in compliance with the License.
2862
+ * You may obtain a copy of the License at
2863
+ *
2864
+ * http://www.apache.org/licenses/LICENSE-2.0
2865
+ *
2866
+ * Unless required by applicable law or agreed to in writing, software
2867
+ * distributed under the License is distributed on an "AS IS" BASIS,
2868
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2869
+ * See the License for the specific language governing permissions and
2870
+ * limitations under the License.
2871
+ */
2872
+ const $d="firebaseLocalStorageDb",Kd="firebaseLocalStorage",Hd="fbase_key";class Gd{constructor(t){this.request=t}toPromise(){return new Promise(((t,e)=>{this.request.addEventListener("success",(()=>{t(this.request.result)})),this.request.addEventListener("error",(()=>{e(this.request.error)}))}))}}function Wd(t,e){return t.transaction([Kd],e?"readwrite":"readonly").objectStore(Kd)}function Qd(){const t=indexedDB.open($d,1);return new Promise(((e,n)=>{t.addEventListener("error",(()=>{n(t.error)})),t.addEventListener("upgradeneeded",(()=>{const e=t.result;try{e.createObjectStore(Kd,{keyPath:Hd})}catch(t){n(t)}})),t.addEventListener("success",(async()=>{const n=t.result;n.objectStoreNames.contains(Kd)?e(n):(n.close(),await function(){const t=indexedDB.deleteDatabase($d);return new Gd(t).toPromise()}(),e(await Qd()))}))}))}async function Jd(t,e,n){const r=Wd(t,!0).put({[Hd]:e,value:n});return new Gd(r).toPromise()}function Xd(t,e){const n=Wd(t,!0).delete(e);return new Gd(n).toPromise()}class Yd{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await Qd()),this.db}async _withRetries(t){let e=0;for(;;)try{const e=await this._openDb();return await t(e)}catch(t){if(e++>3)throw t;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return zd()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Vd._getInstance(zd()?self:null),this.receiver._subscribe("keyChanged",(async(t,e)=>({keyProcessed:(await this._poll()).includes(e.key)}))),this.receiver._subscribe("ping",(async(t,e)=>["keyChanged"]))}async initializeSender(){var t,e;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(t){return null}}(),!this.activeServiceWorker)return;this.sender=new jd(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(t=n[0])||void 0===t?void 0:t.fulfilled)&&(null===(e=n[0])||void 0===e?void 0:e.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(t){if(this.sender&&this.activeServiceWorker&&function(){var t;return(null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null}()===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const t=await Qd();return await Jd(t,Ld,"1"),await Xd(t,Ld),!0}catch(t){}return!1}async _withPendingWrite(t){this.pendingWrites++;try{await t()}finally{this.pendingWrites--}}async _set(t,e){return this._withPendingWrite((async()=>(await this._withRetries((n=>Jd(n,t,e))),this.localCache[t]=e,this.notifyServiceWorker(t))))}async _get(t){const e=await this._withRetries((e=>async function(t,e){const n=Wd(t,!1).get(e),r=await new Gd(n).toPromise();return void 0===r?null:r.value}(e,t)));return this.localCache[t]=e,e}async _remove(t){return this._withPendingWrite((async()=>(await this._withRetries((e=>Xd(e,t))),delete this.localCache[t],this.notifyServiceWorker(t))))}async _poll(){const t=await this._withRetries((t=>{const e=Wd(t,!1).getAll();return new Gd(e).toPromise()}));if(!t)return[];if(0!==this.pendingWrites)return[];const e=[],n=new Set;for(const{fbase_key:r,value:s}of t)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(s)&&(this.notifyListeners(r,s),e.push(r));for(const t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),e.push(t));return e}notifyListeners(t,e){this.localCache[t]=e;const n=this.listeners[t];if(n)for(const t of Array.from(n))t(e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,e){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Yd.type="LOCAL";const Zd=Yd;
2873
+ /**
2874
+ * @license
2875
+ * Copyright 2020 Google LLC
2876
+ *
2877
+ * Licensed under the Apache License, Version 2.0 (the "License");
2878
+ * you may not use this file except in compliance with the License.
2879
+ * You may obtain a copy of the License at
2880
+ *
2881
+ * http://www.apache.org/licenses/LICENSE-2.0
2882
+ *
2883
+ * Unless required by applicable law or agreed to in writing, software
2884
+ * distributed under the License is distributed on an "AS IS" BASIS,
2885
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2886
+ * See the License for the specific language governing permissions and
2887
+ * limitations under the License.
2888
+ */function tf(t){return new Promise(((e,n)=>{const r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=t=>{const e=ll("internal-error");e.customData=t,n(e)},r.type="text/javascript",r.charset="UTF-8",function(){var t,e;return null!==(e=null===(t=document.getElementsByTagName("head"))||void 0===t?void 0:t[0])&&void 0!==e?e:document}().appendChild(r)}))}new bl(3e4,6e4);
2889
+ /**
2890
+ * @license
2891
+ * Copyright 2019 Google LLC
2892
+ *
2893
+ * Licensed under the Apache License, Version 2.0 (the "License");
2894
+ * you may not use this file except in compliance with the License.
2895
+ * You may obtain a copy of the License at
2896
+ *
2897
+ * http://www.apache.org/licenses/LICENSE-2.0
2898
+ *
2899
+ * Unless required by applicable law or agreed to in writing, software
2900
+ * distributed under the License is distributed on an "AS IS" BASIS,
2901
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2902
+ * See the License for the specific language governing permissions and
2903
+ * limitations under the License.
2904
+ */
2905
+ class ef extends dd{constructor(t){super("custom","custom"),this.params=t}_getIdTokenResponse(t){return gd(t,this._buildIdpRequest())}_linkToIdToken(t,e){return gd(t,this._buildIdpRequest(e))}_getReauthenticationResolver(t){return gd(t,this._buildIdpRequest())}_buildIdpRequest(t){const e={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return t&&(e.idToken=t),e}}function nf(t){return Nd(t.auth,new ef(t),t.bypassAuthState)}function rf(t){const{auth:e,user:n}=t;return fl(n,e,"internal-error"),
2906
+ /**
2907
+ * @license
2908
+ * Copyright 2019 Google LLC
2909
+ *
2910
+ * Licensed under the Apache License, Version 2.0 (the "License");
2911
+ * you may not use this file except in compliance with the License.
2912
+ * You may obtain a copy of the License at
2913
+ *
2914
+ * http://www.apache.org/licenses/LICENSE-2.0
2915
+ *
2916
+ * Unless required by applicable law or agreed to in writing, software
2917
+ * distributed under the License is distributed on an "AS IS" BASIS,
2918
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2919
+ * See the License for the specific language governing permissions and
2920
+ * limitations under the License.
2921
+ */
2922
+ async function(t,e,n=!1){const{auth:r}=t,s="reauthenticate";try{const i=await xl(t,kd(r,s,e,t),n);fl(i.idToken,r,"internal-error");const o=Ml(i.idToken);fl(o,r,"internal-error");const{sub:a}=o;return fl(t.uid===a,r,"user-mismatch"),Sd._forOperation(t,s,i)}catch(t){throw"auth/user-not-found"===(null==t?void 0:t.code)&&hl(r,"user-mismatch"),t}}(n,new ef(t),t.bypassAuthState)}async function sf(t){const{auth:e,user:n}=t;return fl(n,e,"internal-error"),async function(t,e,n=!1){const r=await xl(t,e._linkToIdToken(t.auth,await t.getIdToken()),n);return Sd._forOperation(t,"link",r)}(n,new ef(t),t.bypassAuthState)}
2923
+ /**
2924
+ * @license
2925
+ * Copyright 2020 Google LLC
2926
+ *
2927
+ * Licensed under the Apache License, Version 2.0 (the "License");
2928
+ * you may not use this file except in compliance with the License.
2929
+ * You may obtain a copy of the License at
2930
+ *
2931
+ * http://www.apache.org/licenses/LICENSE-2.0
2932
+ *
2933
+ * Unless required by applicable law or agreed to in writing, software
2934
+ * distributed under the License is distributed on an "AS IS" BASIS,
2935
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2936
+ * See the License for the specific language governing permissions and
2937
+ * limitations under the License.
2938
+ */class of{constructor(t,e,n,r,s=!1){this.auth=t,this.resolver=n,this.user=r,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(e)?e:[e]}execute(){return new Promise((async(t,e)=>{this.pendingPromise={resolve:t,reject:e};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(t){this.reject(t)}}))}async onAuthEvent(t){const{urlResponse:e,sessionId:n,postBody:r,tenantId:s,error:i,type:o}=t;if(i)return void this.reject(i);const a={auth:this.auth,requestUri:e,sessionId:n,tenantId:s||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(t){this.reject(t)}}onError(t){this.reject(t)}getIdpTask(t){switch(t){case"signInViaPopup":case"signInViaRedirect":return nf;case"linkViaPopup":case"linkViaRedirect":return sf;case"reauthViaPopup":case"reauthViaRedirect":return rf;default:hl(this.auth,"internal-error")}}resolve(t){gl(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(t),this.unregisterAndCleanUp()}reject(t){gl(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(t),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}
2939
+ /**
2940
+ * @license
2941
+ * Copyright 2020 Google LLC
2942
+ *
2943
+ * Licensed under the Apache License, Version 2.0 (the "License");
2944
+ * you may not use this file except in compliance with the License.
2945
+ * You may obtain a copy of the License at
2946
+ *
2947
+ * http://www.apache.org/licenses/LICENSE-2.0
2948
+ *
2949
+ * Unless required by applicable law or agreed to in writing, software
2950
+ * distributed under the License is distributed on an "AS IS" BASIS,
2951
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2952
+ * See the License for the specific language governing permissions and
2953
+ * limitations under the License.
2954
+ */const af=new bl(2e3,1e4);class cf extends of{constructor(t,e,n,r,s){super(t,e,r,s),this.provider=n,this.authWindow=null,this.pollId=null,cf.currentPopupAction&&cf.currentPopupAction.cancel(),cf.currentPopupAction=this}async executeNotNull(){const t=await this.execute();return fl(t,this.auth,"internal-error"),t}async onExecution(){gl(1===this.filter.length,"Popup operations only handle one event");const t=qd();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch((t=>{this.reject(t)})),this.resolver._isIframeWebStorageSupported(this.auth,(t=>{t||this.reject(ll(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var t;return(null===(t=this.authWindow)||void 0===t?void 0:t.associatedEvent)||null}cancel(){this.reject(ll(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,cf.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e,n;(null===(n=null===(e=this.authWindow)||void 0===e?void 0:e.window)||void 0===n?void 0:n.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(ll(this.auth,"popup-closed-by-user"))}),2e3):this.pollId=window.setTimeout(t,af.get())};t()}}cf.currentPopupAction=null;
2955
+ /**
2956
+ * @license
2957
+ * Copyright 2020 Google LLC
2958
+ *
2959
+ * Licensed under the Apache License, Version 2.0 (the "License");
2960
+ * you may not use this file except in compliance with the License.
2961
+ * You may obtain a copy of the License at
2962
+ *
2963
+ * http://www.apache.org/licenses/LICENSE-2.0
2964
+ *
2965
+ * Unless required by applicable law or agreed to in writing, software
2966
+ * distributed under the License is distributed on an "AS IS" BASIS,
2967
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2968
+ * See the License for the specific language governing permissions and
2969
+ * limitations under the License.
2970
+ */
2971
+ const uf="pendingRedirect",hf=new Map;class lf extends of{constructor(t,e,n=!1){super(t,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],e,void 0,n),this.eventId=null}async execute(){let t=hf.get(this.auth._key());if(!t){try{const e=await async function(t,e){const n=function(t){return Kl(uf,t.config.apiKey,t.name)}(e),r=function(t){return yl(t._redirectPersistence)}(t);if(!await r._isAvailable())return!1;const s="true"===await r._get(n);return await r._remove(n),s}(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}hf.set(this.auth._key(),t)}return this.bypassAuthState||hf.set(this.auth._key(),(()=>Promise.resolve(null))),t()}async onAuthEvent(t){if("signInViaRedirect"===t.type)return super.onAuthEvent(t);if("unknown"!==t.type){if(t.eventId){const e=await this.auth._redirectUserForId(t.eventId);if(e)return this.user=e,super.onAuthEvent(t);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}function df(t,e){hf.set(t._key(),e)}async function ff(t,e,n=!1){const r=ad(t),s=
2972
+ /**
2973
+ * @license
2974
+ * Copyright 2021 Google LLC
2975
+ *
2976
+ * Licensed under the Apache License, Version 2.0 (the "License");
2977
+ * you may not use this file except in compliance with the License.
2978
+ * You may obtain a copy of the License at
2979
+ *
2980
+ * http://www.apache.org/licenses/LICENSE-2.0
2981
+ *
2982
+ * Unless required by applicable law or agreed to in writing, software
2983
+ * distributed under the License is distributed on an "AS IS" BASIS,
2984
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2985
+ * See the License for the specific language governing permissions and
2986
+ * limitations under the License.
2987
+ */
2988
+ function(t,e){return e?yl(e):(fl(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}(r,e),i=new lf(r,s,n),o=await i.execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}
2989
+ /**
2990
+ * @license
2991
+ * Copyright 2020 Google LLC
2992
+ *
2993
+ * Licensed under the Apache License, Version 2.0 (the "License");
2994
+ * you may not use this file except in compliance with the License.
2995
+ * You may obtain a copy of the License at
2996
+ *
2997
+ * http://www.apache.org/licenses/LICENSE-2.0
2998
+ *
2999
+ * Unless required by applicable law or agreed to in writing, software
3000
+ * distributed under the License is distributed on an "AS IS" BASIS,
3001
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3002
+ * See the License for the specific language governing permissions and
3003
+ * limitations under the License.
3004
+ */class pf{constructor(t){this.auth=t,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(t){this.consumers.add(t),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,t)&&(this.sendToConsumer(this.queuedRedirectEvent,t),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(t){this.consumers.delete(t)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let e=!1;return this.consumers.forEach((n=>{this.isEventForConsumer(t,n)&&(e=!0,this.sendToConsumer(t,n),this.saveEventToCache(t))})),this.hasHandledPotentialRedirect||!function(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return mf(t);default:return!1}}
3005
+ /**
3006
+ * @license
3007
+ * Copyright 2020 Google LLC
3008
+ *
3009
+ * Licensed under the Apache License, Version 2.0 (the "License");
3010
+ * you may not use this file except in compliance with the License.
3011
+ * You may obtain a copy of the License at
3012
+ *
3013
+ * http://www.apache.org/licenses/LICENSE-2.0
3014
+ *
3015
+ * Unless required by applicable law or agreed to in writing, software
3016
+ * distributed under the License is distributed on an "AS IS" BASIS,
3017
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3018
+ * See the License for the specific language governing permissions and
3019
+ * limitations under the License.
3020
+ */(t)||(this.hasHandledPotentialRedirect=!0,e||(this.queuedRedirectEvent=t,e=!0)),e}sendToConsumer(t,e){var n;if(t.error&&!mf(t)){const r=(null===(n=t.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";e.onError(ll(this.auth,r))}else e.onAuthEvent(t)}isEventForConsumer(t,e){const n=null===e.eventId||!!t.eventId&&t.eventId===e.eventId;return e.filter.includes(t.type)&&n}hasEventBeenHandled(t){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(gf(t))}saveEventToCache(t){this.cachedEventUids.add(gf(t)),this.lastProcessedEventTime=Date.now()}}function gf(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter((t=>t)).join("-")}function mf({type:t,error:e}){return"unknown"===t&&"auth/no-auth-event"===(null==e?void 0:e.code)}
3021
+ /**
3022
+ * @license
3023
+ * Copyright 2020 Google LLC
3024
+ *
3025
+ * Licensed under the Apache License, Version 2.0 (the "License");
3026
+ * you may not use this file except in compliance with the License.
3027
+ * You may obtain a copy of the License at
3028
+ *
3029
+ * http://www.apache.org/licenses/LICENSE-2.0
3030
+ *
3031
+ * Unless required by applicable law or agreed to in writing, software
3032
+ * distributed under the License is distributed on an "AS IS" BASIS,
3033
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3034
+ * See the License for the specific language governing permissions and
3035
+ * limitations under the License.
3036
+ */
3037
+ const yf=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,vf=/^https?/;async function wf(t){if(t.config.emulator)return;const{authorizedDomains:e}=await async function(t,e={}){return Cl(t,"GET","/v1/projects",e)}(t);for(const t of e)try{if(If(t))return}catch(t){}hl(t,"unauthorized-domain")}function If(t){const e=vl(),{protocol:n,hostname:r}=new URL(e);if(t.startsWith("chrome-extension://")){const s=new URL(t);return""===s.hostname&&""===r?"chrome-extension:"===n&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):"chrome-extension:"===n&&s.hostname===r}if(!vf.test(n))return!1;if(yf.test(t))return r===t;const s=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+s+"|"+s+")$","i").test(r)}
3038
+ /**
3039
+ * @license
3040
+ * Copyright 2020 Google LLC.
3041
+ *
3042
+ * Licensed under the Apache License, Version 2.0 (the "License");
3043
+ * you may not use this file except in compliance with the License.
3044
+ * You may obtain a copy of the License at
3045
+ *
3046
+ * http://www.apache.org/licenses/LICENSE-2.0
3047
+ *
3048
+ * Unless required by applicable law or agreed to in writing, software
3049
+ * distributed under the License is distributed on an "AS IS" BASIS,
3050
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3051
+ * See the License for the specific language governing permissions and
3052
+ * limitations under the License.
3053
+ */const bf=new bl(3e4,6e4);function Ef(){const t=Bd().___jsl;if(null==t?void 0:t.H)for(const e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function _f(t){return new Promise(((e,n)=>{var r,s,i;function o(){Ef(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ef(),n(ll(t,"network-request-failed"))},timeout:bf.get()})}if(null===(s=null===(r=Bd().gapi)||void 0===r?void 0:r.iframes)||void 0===s?void 0:s.Iframe)e(gapi.iframes.getContext());else{if(!(null===(i=Bd().gapi)||void 0===i?void 0:i.load)){const e=`__${"iframefcb"}${Math.floor(1e6*Math.random())}`;return Bd()[e]=()=>{gapi.load?o():n(ll(t,"network-request-failed"))},tf(`https://apis.google.com/js/api.js?onload=${e}`).catch((t=>n(t)))}o()}})).catch((t=>{throw Tf=null,t}))}let Tf=null;
3054
+ /**
3055
+ * @license
3056
+ * Copyright 2020 Google LLC.
3057
+ *
3058
+ * Licensed under the Apache License, Version 2.0 (the "License");
3059
+ * you may not use this file except in compliance with the License.
3060
+ * You may obtain a copy of the License at
3061
+ *
3062
+ * http://www.apache.org/licenses/LICENSE-2.0
3063
+ *
3064
+ * Unless required by applicable law or agreed to in writing, software
3065
+ * distributed under the License is distributed on an "AS IS" BASIS,
3066
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3067
+ * See the License for the specific language governing permissions and
3068
+ * limitations under the License.
3069
+ */
3070
+ const Sf=new bl(5e3,15e3),Af={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Cf=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function kf(t){const e=t.config;fl(e.authDomain,t,"auth-domain-config-required");const n=e.emulator?El(e,"emulator/auth/iframe"):`https://${t.config.authDomain}/__/auth/iframe`,r={apiKey:e.apiKey,appName:t.name,v:ct},s=Cf.get(t.config.apiHost);s&&(r.eid=s);const i=t._getFrameworks();return i.length&&(r.fw=i.join(",")),`${n}?${y(r).slice(1)}`}async function Nf(t){const e=await function(t){return Tf=Tf||_f(t),Tf}(t),n=Bd().gapi;return fl(n,t,"internal-error"),e.open({where:document.body,url:kf(t),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Af,dontclear:!0},(e=>new Promise((async(n,r)=>{await e.restyle({setHideOnLeave:!1});const s=ll(t,"network-request-failed"),i=Bd().setTimeout((()=>{r(s)}),Sf.get());function o(){Bd().clearTimeout(i),n(e)}e.ping(o).then(o,(()=>{r(s)}))}))))}
3071
+ /**
3072
+ * @license
3073
+ * Copyright 2020 Google LLC.
3074
+ *
3075
+ * Licensed under the Apache License, Version 2.0 (the "License");
3076
+ * you may not use this file except in compliance with the License.
3077
+ * You may obtain a copy of the License at
3078
+ *
3079
+ * http://www.apache.org/licenses/LICENSE-2.0
3080
+ *
3081
+ * Unless required by applicable law or agreed to in writing, software
3082
+ * distributed under the License is distributed on an "AS IS" BASIS,
3083
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3084
+ * See the License for the specific language governing permissions and
3085
+ * limitations under the License.
3086
+ */const Df={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Rf{constructor(t){this.window=t,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(t){}}}function Of(t,e,n,r=500,s=600){const i=Math.max((window.screen.availHeight-s)/2,0).toString(),a=Math.max((window.screen.availWidth-r)/2,0).toString();let c="";const u=Object.assign(Object.assign({},Df),{width:r.toString(),height:s.toString(),top:i,left:a}),h=o().toLowerCase();n&&(c=Jl(h)?"_blank":n),Wl(h)&&(e=e||"http://localhost",u.scrollbars="yes");const l=Object.entries(u).reduce(((t,[e,n])=>`${t}${e}=${n},`),"");if(function(t=o()){var e;return ed(t)&&!!(null===(e=window.navigator)||void 0===e?void 0:e.standalone)}(h)&&"_self"!==c)return function(t,e){const n=document.createElement("a");n.href=t,n.target=e;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}
3087
+ /**
3088
+ * @license
3089
+ * Copyright 2021 Google LLC
3090
+ *
3091
+ * Licensed under the Apache License, Version 2.0 (the "License");
3092
+ * you may not use this file except in compliance with the License.
3093
+ * You may obtain a copy of the License at
3094
+ *
3095
+ * http://www.apache.org/licenses/LICENSE-2.0
3096
+ *
3097
+ * Unless required by applicable law or agreed to in writing, software
3098
+ * distributed under the License is distributed on an "AS IS" BASIS,
3099
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3100
+ * See the License for the specific language governing permissions and
3101
+ * limitations under the License.
3102
+ */(e||"",c),new Rf(null);const d=window.open(e||"",c,l);fl(d,t,"popup-blocked");try{d.focus()}catch(t){}return new Rf(d)}const Lf="__/auth/handler",Pf="emulator/auth/handler";function Mf(t,e,n,r,s,i){fl(t.config.authDomain,t,"auth-domain-config-required"),fl(t.config.apiKey,t,"invalid-api-key");const o={apiKey:t.config.apiKey,appName:t.name,authType:n,redirectUrl:r,v:ct,eventId:s};if(e instanceof wd){e.setDefaultLanguage(t.languageCode),o.providerId=e.providerId||"",function(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(const[t,e]of Object.entries(i||{}))o[t]=e}if(e instanceof Id){const t=e.getScopes().filter((t=>""!==t));t.length>0&&(o.scopes=t.join(","))}t.tenantId&&(o.tid=t.tenantId);const a=o;for(const t of Object.keys(a))void 0===a[t]&&delete a[t];return`${function({config:t}){if(!t.emulator)return`https://${t.authDomain}/${Lf}`;return El(t,Pf)}
3103
+ /**
3104
+ * @license
3105
+ * Copyright 2020 Google LLC
3106
+ *
3107
+ * Licensed under the Apache License, Version 2.0 (the "License");
3108
+ * you may not use this file except in compliance with the License.
3109
+ * You may obtain a copy of the License at
3110
+ *
3111
+ * http://www.apache.org/licenses/LICENSE-2.0
3112
+ *
3113
+ * Unless required by applicable law or agreed to in writing, software
3114
+ * distributed under the License is distributed on an "AS IS" BASIS,
3115
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3116
+ * See the License for the specific language governing permissions and
3117
+ * limitations under the License.
3118
+ */(t)}?${y(a).slice(1)}`}const xf="webStorageSupport";const Uf=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Fd,this._completeRedirectFn=ff,this._overrideRedirectResult=df}async _openPopup(t,e,n,r){var s;gl(null===(s=this.eventManagers[t._key()])||void 0===s?void 0:s.manager,"_initialize() not called before _openPopup()");return Of(t,Mf(t,e,n,vl(),r),qd())}async _openRedirect(t,e,n,r){var s;return await this._originValidation(t),s=Mf(t,e,n,vl(),r),Bd().location.href=s,new Promise((()=>{}))}_initialize(t){const e=t._key();if(this.eventManagers[e]){const{manager:t,promise:n}=this.eventManagers[e];return t?Promise.resolve(t):(gl(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(t);return this.eventManagers[e]={promise:n},n.catch((()=>{delete this.eventManagers[e]})),n}async initAndGetManager(t){const e=await Nf(t),n=new pf(t);return e.register("authEvent",(e=>{fl(null==e?void 0:e.authEvent,t,"invalid-auth-event");return{status:n.onEvent(e.authEvent)?"ACK":"ERROR"}}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:n},this.iframes[t._key()]=e,n}_isIframeWebStorageSupported(t,e){this.iframes[t._key()].send(xf,{type:xf},(n=>{var r;const s=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r[xf];void 0!==s&&e(!!s),hl(t,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(t){const e=t._key();return this.originValidationPromises[e]||(this.originValidationPromises[e]=wf(t)),this.originValidationPromises[e]}get _shouldInitProactively(){return rd()||Ql()||ed()}};var Ff="@firebase/auth",Vf="0.21.0";
3119
+ /**
3120
+ * @license
3121
+ * Copyright 2020 Google LLC
3122
+ *
3123
+ * Licensed under the Apache License, Version 2.0 (the "License");
3124
+ * you may not use this file except in compliance with the License.
3125
+ * You may obtain a copy of the License at
3126
+ *
3127
+ * http://www.apache.org/licenses/LICENSE-2.0
3128
+ *
3129
+ * Unless required by applicable law or agreed to in writing, software
3130
+ * distributed under the License is distributed on an "AS IS" BASIS,
3131
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3132
+ * See the License for the specific language governing permissions and
3133
+ * limitations under the License.
3134
+ */
3135
+ class qf{constructor(t){this.auth=t,this.internalListeners=new Map}getUid(){var t;return this.assertAuthConfigured(),(null===(t=this.auth.currentUser)||void 0===t?void 0:t.uid)||null}async getToken(t){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(t)}}addAuthTokenListener(t){if(this.assertAuthConfigured(),this.internalListeners.has(t))return;const e=this.auth.onIdTokenChanged((e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}));this.internalListeners.set(t,e),this.updateProactiveRefresh()}removeAuthTokenListener(t){this.assertAuthConfigured();const e=this.internalListeners.get(t);e&&(this.internalListeners.delete(t),e(),this.updateProactiveRefresh())}assertAuthConfigured(){fl(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}
3136
+ /**
3137
+ * @license
3138
+ * Copyright 2020 Google LLC
3139
+ *
3140
+ * Licensed under the Apache License, Version 2.0 (the "License");
3141
+ * you may not use this file except in compliance with the License.
3142
+ * You may obtain a copy of the License at
3143
+ *
3144
+ * http://www.apache.org/licenses/LICENSE-2.0
3145
+ *
3146
+ * Unless required by applicable law or agreed to in writing, software
3147
+ * distributed under the License is distributed on an "AS IS" BASIS,
3148
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3149
+ * See the License for the specific language governing permissions and
3150
+ * limitations under the License.
3151
+ */
3152
+ /**
3153
+ * @license
3154
+ * Copyright 2021 Google LLC
3155
+ *
3156
+ * Licensed under the Apache License, Version 2.0 (the "License");
3157
+ * you may not use this file except in compliance with the License.
3158
+ * You may obtain a copy of the License at
3159
+ *
3160
+ * http://www.apache.org/licenses/LICENSE-2.0
3161
+ *
3162
+ * Unless required by applicable law or agreed to in writing, software
3163
+ * distributed under the License is distributed on an "AS IS" BASIS,
3164
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3165
+ * See the License for the specific language governing permissions and
3166
+ * limitations under the License.
3167
+ */
3168
+ const jf=h("authIdTokenMaxAge")||300;let Bf=null;function zf(t=ht()){const e=it(t,"auth");if(e.isInitialized())return e.getImmediate();const n=function(t,e){const n=it(t,"auth");if(n.isInitialized()){const t=n.getImmediate();if(g(n.getOptions(),null!=e?e:{}))return t;hl(t,"already-initialized")}return n.initialize({options:e})}(t,{popupRedirectResolver:Uf,persistence:[Zd,xd,Fd]}),r=h("authTokenSyncURL");if(r){const t=(s=r,async t=>{const e=t&&await t.getIdTokenResult(),n=e&&((new Date).getTime()-Date.parse(e.issuedAtTime))/1e3;if(n&&n>jf)return;const r=null==e?void 0:e.token;Bf!==r&&(Bf=r,await fetch(s,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))});!function(t,e,n){E(t).beforeAuthStateChanged(e,n)}(n,t,(()=>t(n.currentUser))),function(t,e,n,r){E(t).onIdTokenChanged(e,n,r)}(n,(e=>t(e)))}var s;const i=u("auth");return i&&ud(n,`http://${i}`),n}var $f;$f="Browser",st(new _("auth",((t,{options:e})=>{const n=t.getProvider("app").getImmediate(),r=t.getProvider("heartbeat"),{apiKey:s,authDomain:i}=n.options;return((t,n)=>{fl(s&&!s.includes(":"),"invalid-api-key",{appName:t.name}),fl(!(null==i?void 0:i.includes(":")),"argument-error",{appName:t.name});const r={apiKey:s,authDomain:i,clientPlatform:$f,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:sd($f)},o=new od(t,n,r);return function(t,e){const n=(null==e?void 0:e.persistence)||[],r=(Array.isArray(n)?n:[n]).map(yl);(null==e?void 0:e.errorMap)&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,null==e?void 0:e.popupRedirectResolver)}(o,e),o})(n,r)}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((t,e,n)=>{t.getProvider("auth-internal").initialize()}))),st(new _("auth-internal",(t=>(t=>new qf(t))(ad(t.getProvider("auth").getImmediate()))),"PRIVATE").setInstantiationMode("EXPLICIT")),lt(Ff,Vf,function(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}($f)),lt(Ff,Vf,"esm2017");class Kf extends Error{constructor(){super("no frames found"),this.name="NoFramesFoundError"}}class Hf extends Error{constructor(){super("request timeout"),this.name="RequestTimeoutError"}}class Gf extends Error{constructor(){super("user not logged in"),this.name="UserNotLoggedInError"}}class Wf extends Error{constructor(){super("no colorway size assets found"),this.name="NoColorwaySizeAssetsFoundError"}}class Qf extends Error{constructor(){super("no styles found"),this.name="NoStylesFoundError"}}class Jf extends Error{constructor(t,e){super("recommended available sizes error"),this.name="RecommendedAvailableSizesError",this.recommended_size=t,this.available_sizes=e}}var Xf=Object.freeze({__proto__:null,NoFramesFoundError:Kf,RequestTimeoutError:Hf,UserNotLoggedInError:Gf,NoColorwaySizeAssetsFoundError:Wf,NoStylesFoundError:Qf,RecommendedAvailableSizesError:Jf});class Yf{constructor(t,e){this.firestore=t,this.auth=zf(e),this.auth.setPersistence(xd)}get id(){var t;return null===(t=this.user)||void 0===t?void 0:t.uid}onInit(){return new Promise((t=>{this.auth.onAuthStateChanged((e=>{if(this.setUser(e),e)return t();throw new Gf}))}))}setUser(t){this.user=t}async getToken(){var t;if(!(null===(t=this.user)||void 0===t?void 0:t.uid))throw new Gf;return await this.user.getIdToken()}async getUserProfile(){var t;if(!(null===(t=this.user)||void 0===t?void 0:t.uid))throw new Gf;const e=await Zh(function(t,e,...n){if(t=E(t),1===arguments.length&&(e=Ys.R()),Zu("doc","path",e),t instanceof oh){const r=si.fromString(e,...n);return th(r),new ch(t,null,new ai(r))}{if(!(t instanceof ch||t instanceof hh))throw new js(qs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(si.fromString(e,...n));return th(r),new ch(t.firestore,t instanceof hh?t.converter:null,new ai(r))}}(this.firestore,"users",this.id));return e.data()}async login(t,e){this.auth.currentUser&&await this.auth.signOut();const n=await Od(this.auth,t,e);this.setUser(n.user)}async logout(){await this.auth.signOut(),this.setUser(null)}async sendPasswordResetEmail(t){await Dd(this.auth,t)}async confirmPasswordReset(t,e){await Rd(this.auth,t,e)}}class Zf{constructor(){this.promisefyOnSnapshot=t=>{let e;const n=new Promise((n=>e=function(t,...e){var n,r,s;t=E(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||yh(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(yh(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let c,u,h;if(t instanceof ch)u=rh(t.firestore,vh),h=ko(t._key.path),c={next:n=>{e[o]&&e[o](nl(u,t,n))},error:e[o+1],complete:e[o+2]};else{const n=rh(t,uh);u=rh(n.firestore,vh),h=n._query;const r=new tl(u);c={next:t=>{e[o]&&e[o](new Xh(u,r,n,t))},error:e[o+1],complete:e[o+2]},Uh(t._query)}return function(t,e,n,r){const s=new dh(r),i=new Ru(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Au(await gh(t),i))),()=>{s.bc(),t.asyncQueue.enqueueAndForget((async()=>Cu(await gh(t),i)))}}(Ih(u),h,a,c)}(t,(t=>n(t)))));return{promise:n,unsubscribe:()=>e()}},this.firestore=wh(Zf.App),this.user=new Yf(this.firestore,Zf.App)}onInit(){return this.user.onInit()}query(t,e){const n=qh(lh(this.firestore,t),e);return this.promisefyOnSnapshot(n)}getDocs(t,e){return el(qh(lh(this.firestore,t),...e))}}Zf.App=ut({apiKey:"AIzaSyDfjBWzpmzb-mhGN8VSURxzLg6nkzmKUD8",authDomain:"fittingroom-dev-5d248.firebaseapp.com",projectId:"fittingroom-dev-5d248",storageBucket:"fittingroom-dev-5d248.appspot.com",messagingSenderId:"2298664147",appId:"1:2298664147:web:340bda75cd5d25f3997026"});const tp=t=>{if(t.code===al)throw new Error("account has been disabled");throw new Error(t.message)};class ep{static async Fetch({user:t,endpointPath:e,method:n,body:r}){const s="https://tfr.dev.thefittingroom.xyz/v1"+e,i={method:n,headers:{"Content-Type":"application/json",Authorization:`Bearer ${await t.getToken()}`},credentials:"include"};r&&(i.body=JSON.stringify(r));const o=await fetch(s,i);if(o.ok)return o;if(500===o.status)throw new Error(o.statusText);const a=await o.json();return Promise.reject(a)}static Get(t,e){return this.Fetch({user:t,endpointPath:e,method:"GET",body:null})}static Post(t,e,n=null){return this.Fetch({user:t,endpointPath:e,method:"POST",body:n})}static Put(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"PUT",body:n})}static Patch(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"PATCH",body:n})}static Delete(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"DELETE",body:n})}}class np{constructor(t,e){this.brandId=t,this.firebase=e}get user(){return this.firebase.user}get isLoggedIn(){return!this.firebase||Boolean(this.user.id)}async tryOn(t){if(!this.isLoggedIn)throw new Gf;try{return await this.getColorwaySizeAssetFrames(t)}catch(e){if(e instanceof Kf)throw new Kf;return this.requestThenGetColorwaySizeAssetFrames(t)}}async awaitAvatarCreated(){if(!this.isLoggedIn)throw new Gf;const{promise:t,unsubscribe:e}=this.firebase.query("users",Bh(new _h("__name__"),"==",this.user.id)),n=setTimeout((()=>{throw e(),new Hf}),np.AVATAR_TIMEOUT),r=await t;clearTimeout(n);return"CREATED"===r.docs[0].data().avatar_status}async getRecommendedSize(t){if(!this.isLoggedIn)throw new Gf;const e=await ep.Get(this.user,`/styles/${t}/recommendation`);return await e.json()}async getStyles(t,e){const n=[Bh("brand_id","==",this.brandId)];(null==t?void 0:t.length)>0&&n.push(Bh("id","in",t)),(null==e?void 0:e.length)>0&&n.push(Bh("brand_style_id","in",e));try{const t=await this.firebase.getDocs("styles",n),e=new Map;return t.forEach((t=>{const n=t.data();e.set(n.id,n)})),e}catch(t){return tp(t)}}awaitColorwaySizeAssetFrames(t){if(!this.isLoggedIn)throw new Gf;return this.getColorwaySizeAssetFrames(t)}async requestThenGetColorwaySizeAssetFrames(t){var e,n;const[r,s]=await(i=this.getColorwaySizeAssetFromSku(t),i.then((t=>[null,t])).catch((t=>[t])));var i;if(r)throw r;try{return await this.requestColorwaySizeAssetFrames(s.id),this.awaitColorwaySizeAssetFrames(t)}catch(r){if(!r.recommended_size_id)throw new Error(r);const t=r,i=(await this.getStyles([s.style_id],null)).get(s.style_id);if(!(null==i?void 0:i.sizes))throw new Qf;const o=(null===(e=i.sizes[t.recommended_size_id])||void 0===e?void 0:e.label)||(null===(n=i.sizes[t.recommended_size_id])||void 0===n?void 0:n.size),a=t.available_size_ids.filter((t=>{var e;return(null===(e=i.sizes[t])||void 0===e?void 0:e.size)!==o})).map((t=>{var e,n;return(null===(e=i.sizes[t])||void 0===e?void 0:e.label)||(null===(n=i.sizes[t])||void 0===n?void 0:n.size)}));throw new Jf(o,a)}}async getColorwaySizeAssetFromSku(t){const e=await this.getColorwaySizeAssets(null,[t]);if(!(null==e?void 0:e.size))throw new Wf;return Array.from(e.values())[0]}async getColorwaySizeAssets(t,e){const n=[Bh("brand_id","==",this.brandId)];t&&n.push(Bh("style_id","==",t)),(null==e?void 0:e.length)>0&&n.push(Bh("sku","in",e));try{const t=await this.firebase.getDocs("colorway_size_assets",n),e=new Map;return t.forEach((t=>{const n=t.data();e.set(n.id,n)})),e}catch(t){return tp(t)}}async requestColorwaySizeAssetFrames(t){if(!this.isLoggedIn)throw new Gf;await ep.Post(this.user,`/colorway-size-assets/${t}/frames`)}async getColorwaySizeAssetFrames(t){var e,n,r;const s=await this.user.getUserProfile(),i=(null===(r=null===(n=null===(e=null==s?void 0:s.vto)||void 0===e?void 0:e[this.brandId])||void 0===n?void 0:n[t])||void 0===r?void 0:r.frames)||[];if(!i.length)throw new Kf;if(!await(t=>{const e=new Image;return e.src=t,new Promise((t=>{e.onerror=()=>t(!1),e.onload=()=>t(!0)}))})(i[0]))throw new Kf;return i}}np.AVATAR_TIMEOUT=process.env.AVATAR_TIMEOUT?Number(process.env.AVATAR_TIMEOUT):1e4;const rp=t=>new np(t,new Zf);var sp;!function(t){t.NOT_CREATED="NOT_CREATED",t.CREATED="CREATED",t.PENDING="PENDING"}(sp||(sp={}));var ip=Object.freeze({__proto__:null,get AvatarState(){return sp}});export{Xf as Errors,rp as initShop,t as requests,e as responses,ip as types};
3169
+ //# sourceMappingURL=index.min.js.map